您可以使用 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;