TIAv17环境下再次学习练习STL-66调用SFB

标签:
西门子tiastl编程调用sfb |
分类: 西门子软硬件 |
继续学习TIA环境下STL编程,这一篇学习调用SFB。
该指令用于调用由 Siemens 提供的标准功能块(SFB)。CALL
指令调用作为地址输入的 SFB,与 RLO或其它条件无关。如果使用
CALL
调用系统功能块,必须为其提供一个背景数据块(1500PLC中似乎不需要)。在处理完所调用的块之后,处理过程将继续处理调用该块的程序。可以绝对方式或符号方式指定逻辑块的地址。
调用块可通过变量表与被调用块交换参数。在输入有效的 CALL
指令后,变量表将自动在语句表程序中扩展。
如果调用系统功能块,且被调用块的变量声明表具有 IN、OUT 和
IN_OUT 声明,这些变量将作为形式参数表被添加到调用块的程序中。
当调用系统功能块时,由于在处理系统功能块之后实际参数被保存在背景数据块中,因而只需指定那些必须由前一个调用更改的实际参数。如果实际参数是数据块,必须指定完整的绝对地址,例如:DB1、DBW2。
IN 参数可作为常数、绝对或符号地址来指定。而 OUT 和 IN_OUT
参数必须作为绝对或符号地址来指定。必须确保所有地址和常数符合要传送的数据类型。
CALL 保存返回地址(选择器和相对地址)、两个打开的数据块的选择器以及
B (块)堆栈中的 MA 位。此外,CALL 将取消激活 MCR
依存关系,然后创建要传送的块的本地数据区。
实际做一个练习。
新建一个STL程序段,输入CALLSFB后,会自动列出可以调用的SFB列表
比如选择SEL,显示如下
选择???处,可以选择数据类型
选择INT类型,补充所有参数
编译下载