TIAv17环境下再次学习练习STL-63块调用
标签:
西门子tiastl编程call调用块 |
分类: 西门子软硬件 |
继续学习STL编程,这一篇开始学习块调用。
CALL
<逻辑块标识符>用于调用功能(FC)或功能块(FB)、系统功能(SFC)或系统功能块(SFB),或调用由
Siemens 提供的标准预编程的程序块。CALL 指令调用作为地址输入的 FC 和 SFC,或 FB 和
SFB,它与 RLO 或任何其它条件无关。如果使用
CALL 调用 FB 或 SFB,必须为块提供相关的背景数据块。在被调用块处理完成之后,调用块程序将继续逻辑处理。可以绝对方式或符号方式指定逻辑块的地址。在
SFB/SFC 调用结束之后,将恢复寄存器内容。
调用块可通过变量表与被调用块交换参数。在输入有效的 CALL 声明后,变量表将自动在 STL
程序中扩展。
如果调用 FB、SFB、FC 或 SFC,且被调用块的变量声明表具有
IN、OUT 和 IN_OUT 声明,这些变量将作为形式参数表被添加到调用块中。
当调用 FC 和 SFC
时,必须从调用逻辑块将实际参数分配给形式参数。
当调用 FB 和 SFB
时,必须仅指定那些必须由前一个调用更改的实际参数。在处理完 FB 之后,实际参数将被保存在背景数据块中。如果实际参数是数据块,必须指定完整的绝对地址,例如:DB1、DBW2。IN
参数可作为常数、绝对或符号地址来指定。而 OUT 和 IN_OUT
参数必须作为绝对或符号地址来指定。必须确保所有地址和常数符合要传送的数据类型。
CALL 保存返回地址(选择器和相对地址)、两个当前数据块的选择器以及 B
(块)堆栈中的 MA 位。此外,CALL 将取消激活 MCR
依存关系,然后创建要传送的块的本地数据区。

加载中…