1.主控传递指令
与LAD编程语言中使用主控传递指令的方法相同,使用STL编程示例程序如下:
2.程序调用指令
STL编程语言中包括“CALL”、“CC”和“UC”指令,用于程序的调用,CC(有条件调用)与UC(无条件调用)指令只能调用无形参的函数、函数块,与LAD中(CALL)指令的使用相同。“CALL”指令相当于LAD编程语言中的CALL_FB、CALL_FC、CALL_SFB、CALL_SFC指令,“CALL”指令的使用参考下面的示例程序。
(1)函数的调用
固定格式 CALLFCX。X为函数号。
例如函数FC6的调用,FC6带有形参,符号“:”左边为形参,右边为赋的实参,如果形参不赋值,程序调用报错。
CALL FC6
形参 实参
NO OF TOOL:=MW100
TIME OUT:=S5T#12S
FOUND:=Q0.1
ERROR:=Q 100.0
(2)系统函数的调用
固定格式 CALL SFCX。X为系统函数号。
例如系统函数SFC43的调用,不带有形参。
CALL SFC43 //SFC43实现重新触发看门狗定时器功能
系统函数如果带有形参,与函数的调用相同,必须赋值,否则程序调用报错。
(3)函数块的调用
固定格式 CALLFBX,DBY。X为函数块号,Y为背景数据块号,函数块与背景数据块使用符号“,”隔离。
例如函数块FB99的调用,背景数据块为DB1,带有形参,符号“:”左边为形参,右边为赋的实参,由于调用函数块带有背景数据块,形参可以直接赋值,也可以稍后对背景数据块中的变量赋值。多次调用函数块时,必须分配不同的数据块作为背景数据块。
CALL FB99,DB1
形参 实参
MAX_RPM:=#RPM1_MAX(www.xing528.com)
MIN_RPM:=MW2
MAX_POWER:=MW4
MAX_TEMP:=#TEMP1
如果函数块A作为函数块B的形参,在函数块B调用函数块A时,不分配背景数据块,例如函数块FB_A的调用:
CALL #FB_A
IN_1:=
IN_2:=
OUT_1:=
OUT_2:=
调用函数块B时,分配的背景数据块中包括所有函数A和B的背景参数,如果在函数块B中插入多个函数块作为形参,程序调用时只使用一个数据块作为背景数据块,节省数据块的资源(不能节省CPU的存储区),这样函数块具有多重背景数据块的能力,在函数块创建时可以选择。
(4)系统函数块的调用
固定格式 CALL SFBX,DBY。X为函数块号,Y为背景数据块号,系统函数块与背景数据块使用符号“,”隔离。
例如函数块SFB4的调用,背景数据块为DB4,带有形参,符号“:”左边为形参,右边为赋的实参,由于调用系统函数块带有背景数据块,形参可以直接赋值,也可以稍后对背景数据块中的变量赋值。多次调用系统函数块时,必须分配不同的数据块作为背景数据块。
CALL SFB4,DB4
形参 实参
IN:=I0.1
PT:=T#20s
Q:=M0.0
ET:=MW10
3.程序结束指令
BE(程序结束)与BEU(程序无条件结束)指令使用方法相同,如果程序执行上述指令,CPU终止当前程序块的扫描,跳回程序块调用处继续扫描其他程序,如果程序结束指令被跳转指令跳过,程序扫描不结束,从跳转的目标点继续扫描。指令的使用参考下面的示例程序:
BEC为有条件程序结束,在BEC指令前,必须加入条件触发,示例程序如下:
如果M1.1为1,程序结束;如果M1.1为0,程序继续运行,与BE、BEU指令不同,BEC指令触发条件没有满足,置RLO位为1,所以M1.1为0时,M1.2为1。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。