发布时间:2019-08-24 来源:众智博远
通过变量表,可定义对特定 POU 局部有的变量。在以下情况下使用局部变量:
您要创建不引用对地址或全局符号的可移值子例程。
您要使用临时变量(声明为 TEMP 的局部变量)进行计算,以便释放 PLC 存储器。
您要为子例程定义输入和输出。
如果以上描述对您的具体情况不适用,则无需使用局部变量;可在符号表中定义符号值,从而将其全部设置为全局变量。
了解局部变量
您可以使用程序编辑器的变量表来分配对个别子例程或中断例程的变量。
局部变量可用作传递至子例程的参数,并可用于增加子例程的移植性或重新使用子例程。
程序中的每个 POU 都有自身的变量表,并占 L 存储器的 64 个字节(如果在 LAD 或 FBD 中编程,则占 60 个字节)。借助局部变量表,可对特定范围内的变量进行定义:局部变量仅在创建时所处的 POU 内部。相反,在每个 POU 中均有的全局符号只能在符号表中定义。当您为全局符号和局部变量使用相同的符号名时(例如 INPUT1),在定义局部变量的 POU 中局部定义优先,在其他 POU 中使用全局定义。
在局部变量表中进行分配时,指定声明类型(TEMP、IN、IN_OUT 或 OUT)和数据类型,但不要指定存储器地址;程序编辑器自动在 L 存储器中为所有局部变量分配存储器位置。
变量表符号地址分配将符号名称与存储相关数据值的 L 存储器地址进行关联。局部变量表不支持对符号名称直接赋值的符号常数(这在符号/全局变量表中是允许的)。
可进行的局部变量分配类型取决于在其中进行分配的 POU。主程序 (OB1)、中断例程和子例程可使用临时 (TEMP) 变量。只有在执行块时,临时变量才可用,块执行完成后,临时变量可被覆盖。