您可定义动作并将它们分配至功能块和程序。动作是额外的实现。可以用不同于基本实现的语言来创建动作。每个动作都被赋予了名称。
动作用于自己所属的功能块或程序的数据。它使用定义的输入/输出变量以及本地变量,并且不包含其自己的声明。
下图显示了 FB 中的动作
在该示例中,功能块 FB1 的每次调用增大或减小输出变量 out,具体取决于输入变量 in 的值。功能块的调用动作 Reset,将输出变量 out 设置为 0。在这两种情况下将写入同一变量 out。
要添加操作,在应用程序树或应用程序树的全局节点中选择相应的程序或功能块,单击绿色加号按钮,并执行命令操作...。也可右键单击程序或功能块节点,并执行命令添加对象 > 操作。在添加操作对话框中,定义操作名称以及所需的实现语言。
EcoStruxure Machine Expert 利用功能块内的继承简化面向对象的编程:当在继承自另一功能块的功能块上执行添加对象时,列出基本功能块中使用的动作、方法、属性和转换元素以供选择:
o在基本功能块中定义的访问说明符为 PUBLIC、PROTECTED 和 INTERNAL 的动作、方法、属性和转换元素可供选择。您可以调整继承对象的定义。在继承对象中,将相同的访问说明符分配给源元素。
o访问说明符为 PRIVATE 的动作、方法、属性和转换不可选择,因为对基本功能块的访问受限。
语法
<Program_name>.<Action_name>
或
<Instance_name>.<Action_name>
注意 FBD 中的说明(请参阅下面示例)
如果需要在其自己的运算块中调用动作,该运算块是它所属的程序或功能块,则可使用操作名称。
该部分提供在自另一个 POU 中的操作调用示例。
所有示例的声明:
PROGRAM PLC_PRG
VAR
Inst : Counter;
END_VAR
在另一个 POU 中调用动作 Reset,该调用在 IL 中编程:
CAL Inst.Reset(In := FALSE)
LD Inst.out
ST ERG
在另一个 POU 中调用动作 Reset,该调用在 ST 中编程:
Inst.Reset(In := FALSE);
Erg := Inst.out;
在另一个 POU 中调用动作 Reset,该调用在 FBD 中编程:
FBD 中的操作
注意: IEC 标准不能识别顺序功能图 (SFC) 中操作以外的操作。这些操作是必要的部分,包含在图的特定步要处理的指令。