您可以使用 pragma'is_connected' 来标记一个布尔型功能块变量,当调用一个功能模块实例时,该变量会提供 POU 的相关输入是否有赋值的信息。
使用该pragma需要在受影响的功能块上使用属性'reflection' 。
语法 :
{attribute 'is_connected' := '<input variable>'}
示例
在功能块FB 中,为每个输入变量都声明了一个局部变量(in1 和in2 ),每次都在属性'is connected' 前加上输入变量的名称。func 本身会获得 pragma 属性'reflection' 。
调用功能块实例时,如果分配给局部变量的输入已收到赋值,则该局部变量将被TRUE 。
{attribute 'reflection'}
FUNCTION_BLOCK FB
VAR_INPUT
in1: INT;
in2: INT;
END_VAR
VAR
{attribute 'is_connected' := 'in1'}
in1_connection_info: BOOL;
{attribute 'is_connected' := 'in2'}
in2_connection_info: BOOL;
END_VAR
假设调用功能块实例时,in1 接收外部赋值,in 2 不接收赋值。结果代码如下
in1_connection_info := TRUE; in2_connection_info := FALSE;