您好,杭州萧优自动化科技有限公司网站欢迎您!
6ES7288-2DR08-0AA0西门子 SIMATIC S7-200 SMART, 数字输出 SM DR08, 8 DO,继电器 2A
LAD 或 FBD 中编程,则占 60
个字节)。借助局部变量表,可对特定范围内的变量进行定义:局部变量仅在创建时所处
的 POU 内部有效。相反,在每个 POU
中均有效的全局符号只能在符号表中定义。当您为全局符号和局部变量使用相同的符号名
时(例如 INPUT1),在定义局部变量的 POU 中局部定义优先,在其他 POU
中使用全局定义。
在局部变量表中进行分配时,指定声明类型(TEMP、IN、IN_OUT 或
OUT)和数据类型,但不要指定存储器地址;程序编辑器自动在 L
存储器中为所有局部变量分配存储器位置。
变量表符号地址分配将符号名称与存储相关数据值的 L
存储器地址进行关联。局部变量表不支持对符号名称直接赋值的符号常数(这在符号/全
局变量表中是允许的)。
说明
PLC 不会将本地数据值初始化为零。您必须在程序逻辑中初始化所用局部变量。
局部变量的声明类型
可进行的局部变量分配类型取决于在其中进行分配的 POU。主程序
(OB1)、中断例程和子例程可使用临时 (TEMP)
变量。只有在执行块时,临时变量才可用,块执行完成后,临时变量可被覆盖。
编程概念
5.6 变量表
S7-200 SMART
系统手册, V2.4, 03/2019, A5E03822234-AF 121
数据值可以作为参数与子例程间进行传递,具体如下所述:
● 如果要将数据值传递至子例程,则在子例程变量表中创建一个变量,并将其声明类型
指定为 IN。 ● 如果要将子例程中建立的数据值传回至调用例程,则在子例程的变量表中创建一个变
量,并将其声明类型指定为 OUT。 ● 如果要将初始数据值传递至子例程,则执行一项可修改数据值的操作,并将修改后的
结果传回至调用例程,然后在子例程变量表中创建一个变量,并将其声明类型指定为
IN_OUT。
声明类型 说明
IN 调用 POU 提供的输入参数。
OUT 返回到调用 POU 的输出参数。
IN_OUT 参数,其值由调用 POU 提供、由子例程修改,然后返回到调用
POU。
TEMP 临时保存在局部数据堆栈中的临时变量。一旦 POU
完全执行,临时变量值不再可用。在两次 POU
执行之间,临时变量不保持其值。
局部变量的数据类型检查
将局部变量作为子例程参数传递时,在该子例程局部变量表中指定的数据类型必须与调用
POU 中值的数据类型相匹配。
示例
您从 OB1 调用 SBR0,将称为 INPUT1 的全局符号用作子例程的输入参数。
在 SBR0 的局部变量表中,您已经将一个称为 FIRST 的局部变量定义为输入参数。
当 OB1 调用 SBR0 时,INPUT1 的值被传递至 FIRST。
INPUT1 和 FIRST 的数据类型必须匹配。
如果 INPUT1 是实数,FIRST 也是实数,则数据类型匹配。如果 INPUT1 是实数,但
FIRST 是整数,则数据类型不匹配,只有纠正了这一错误,程序才能编译。
编程概念
5.6 变量表
S7-200 SMART
122 系统手册, V2.4, 03/2019, A5E03822234-AF
查看变量表
要查看在程序编辑器中选择的 POU 的变量表,在“视图”(View) 菜单的“窗口”(Windows)
区域中,从“组件”(Component) 下拉列表中选择“变量表”(Variable table)。
说明
可将变量表放在快速访问工具栏 (页 103)上以便于访问。
在变量表中赋值
说明
在程序中使用局部变量之前,先在变量表中赋值。在程序中使用符号名时,程序编辑器首
先检查相应 POU
的局部变量表,然后检查符号表。如果符号名在这两处均未定义,程序编辑器则将之视为
未定义的全局符号;此类符号用绿色波浪下划线加以指示。程序编辑器不会自动重新读取
变量表并对您的程序逻辑做出更正。如果以后对该符号名称的数据类型分配进行定义(在
局部变量表中),必须在符号名称前手动插入一个井号
(#),例如:#UndefinedLocalVar(在程序逻辑中)因此,在使用之前声明变量可将编程
工作量降至最低。
每个子例程调用的输入/输出参数的最大限制是
16。如果尝试下载一个超出此项限制的程序,STEP 7-Micro/WIN SMART 返回错误。
编程概念