首页 理论教育 STL程序控制指令详解

STL程序控制指令详解

更新时间:2025-01-08 工作计划 版权反馈
【摘要】:1.主控传递指令与LAD编程语言中使用主控传递指令的方法相同,使用STL编程示例程序如下:2.程序调用指令STL编程语言中包括“CALL”、“CC”和“UC”指令,用于程序的调用,CC与UC指令只能调用无形参的函数、函数块,与LAD中指令的使用相同。

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。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈