您现在的位置是:首页 > PLC技术 > PLC技术

STL编程语言的CALL调用语句

来源:艾特贸易2017-06-05

简介用户可以使用 CALL 语句调用 FB 、 FC 、 SFB 和 SFC 。 CALL 是无条件调用的,也就是说,指定的块总是被调用,且不依赖任何条件进行处理(不可以调用组织块,因为它们是操作系统通过事

    用户可以使用CALL语句调用FBFCSFBSFCCALL是无条件调用的,也就是说,指定的块总是被调用,且不依赖任何条件进行处理(不可以调用组织块,因为它们是操作系统通过事件来驱动的)。

    艾特贸易网提示:CALL语句可以改变数据块寄存器BDDI、地址寄存器AR1AR2,包括RLO的状态位以及累加器的内容。

    1.调用功能块

    CALL语句之后用逗号分开,用户通过指定功能块和与调用有关的实例数据块调用功能块FB,两个块(功能块和实例数据块)可以用绝对寻址或符号寻址。把绝对地址赋值给符号地址,是用具有相关的功能块作为数据类型的实例数据块形成的符号表来完成的。

    块参数表紧跟CALL操作之后。在与源有关的输入中,块参数表放置在两个圆括号中,每个块参数通过逗号分开。

    如果是功能块,当该块被调用时,用户不需要预置所有的块参数,未预置的块参数保持其当前值。如果用户没有给定任何参数,在与源有关的输入中,两个圆括号也被省略。但是,如果块参数作为指针,至少在第一次调用时预置,输入一个有意义的值。

    如果用户使用块属性“多个实例能力”形成功能块,可以在其他“多个实例能力”的功能块中将这些块作为局部实例调用。在此过程中,被调用的功能块利用调用功能块的实例数据块来存储它的局部数据。用户在调用功能块的静态局部数据中声明局部实例,然后在程序中可以调用该功能块(没有声明实例数据块)。局部实例在“更高层”功能块内作为复杂数据类型来对待。

    2.调用功能

    用户通过指定功能来调用功能FC,在CALL之后,既可以用绝对寻址也可以用符号寻址。其后紧跟参数表,列在面向源输入情况下的圆括号中。用户必须预置所有的当前参数,但参数可任意排序。具有功能值的调用功能与没有功能值的调用功能所用形式完全相同,只是与功能值相一致的第一个输出参数有RET_VAL名。

    3.调用系统块

   CPU操作系统有系统功能(SFC)和系统功能块(SFB)供用户使用,系统块的数目和类型取决于CPU,所有的系统块通过CALL调用。

    调用系统功能块与调用用户自己写的功能块具有相同的方法,用SFB的数据类型在用户存储器中建立相关的实例数据块。调用系统功能与调用用户自己写的功能具有相同的方法。

    系统块只在CPU操作系统中才有。如果在离线编程时想要调用系统块,编程器需要调用接口的描述,以初始化参数。该界面描述位于System Function Block(系统功能块)下的Standard Library(标准库)中。在这里,当调用一个系统块时,程序编辑器将相关的接口描述复制到离线容器“块”,被复制的接口描述作为“正常”块对象出现。