使用变量配置将函数块的变量映射到流程图。对于函数块中的声明,在不提供完整地址的情况下,将变量分配给设备输入/输出。稍后,将在全局变量列表中为应用程序的所有函数块实例集中提供准确的地址也包括VAR_CONFIG声明。这个带有VAR_CONFIG声明的全局变量列表称为“变量配置”。
对于分配给I/O地址的变量的更改,CODESYS立即在流程图中显示它们。对于由变量配置映射的变量的更改,CODESYS直到任务结束时才显示它们。 |
在函数块中声明变量
在函数块中声明变量时,在关键字VAR和END_VAR之间声明变量,并为变量分配不完整的地址。用星号(*)标记这些不完整的地址。
语法:
<identifier> AT %<I|Q>*:<data type>;
.例如
定义两个本地I/O变量:输入变量xLocIn和输出变量xLocOut。
FUNCTION_BLOCK locio
VAR
xLocIn AT %I*: BOOL := TRUE;
xLocOut AT %Q*: BOOL;
END_VAR
全局变量列表的变量配置中的地址的最终定义
在用作变量配置的全局变量列表中,使用关键字VAR_CONFIG和END_VAR之间的绝对地址定义变量声明。
必须使用完整的实例路径声明VAR_CONFIG变量,用点(.)分隔单个的POU和实例名。声明必须包含一个地址,其类(输入/输出)与函数块中不完整地址(%I*, %Q*)的类一致。数据类型也必须一致。
语法:
<instance variable path> AT %<I|Q><location>: <data type>;
如果path实例不存在,则报告错误。如果您用不完整的地址声明的变量没有可用的地址配置,CODESYS也会打印一个错误。
.例如
上面例子中的locio函数块在程序中使用如下:
PROGRAM PLC_PRG
VAR
locioVar1: locio;
locioVar2: locio;
END_VAR
全局变量列表中正确的变量配置应该是这样的:
VAR_CONFIG
PLC_PRG.locioVar1.xLocIn AT %IX1.0 : BOOL;
PLC_PRG.locioVar1.xLocOut AT %QX0.0 : BOOL;
PLC_PRG.locioVar2.xLocIn AT %IX1.0 : BOOL;
PLC_PRG.locioVar2.xLocOut AT %QX0.3 : BOOL;
END_VAR
.另请参阅