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

使用STL编程用户自己的功能

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

简介具有功能值的 FC 功能允许编程用户自己的功能,但是 SCL 编程语言也可以。既然可以在程序中混合使用由不同语言创建的块,就可以使用 STL 语言编制一个 FC 功能,然后在 SCL 中调用它

    具有功能值的FC功能允许编程用户自己的功能,但是SCL编程语言也可以。既然可以在程序中混合使用由不同语言创建的块,就可以使用STL语言编制一个FC功能,然后在SCL中调用它,从而使用更多种类的STL功能,比如直接存取变量地址或者通过地址寄存器寻址。

    可以用两种方式编程STL块:递增式或面向源文件方式。如果选择面向源文件方式编程,则其步骤和SCL相同:

    ①在Source Files(源文件)容器中创建一个STL源文件。

    ②双击打开STL源文件。

    ③使用STL编程语言编程源程序。

    ④如果给功能选择了符号名,则更新符号表。

    ⑤编译STL程序,以使编译的功能在Blocks(块)容器中有效。

    ⑥可以用同样的方式调用一个新的功能,这里是指SCL程序中的标准功能。

    面向源文件的STL编程使用与SCL块编程几乎一样的关键字。具有功能值的有关功能的主要区别是程序中功能值的名称为RET_VAL(

ret_val)。在程序中就可以把功能值赋给变量RET_VAL

    对于这个小示例,选择功能扫描、启动和复位一个定时器功能,以获得定时器功能的简化处理。。

    功能T_SCAN产生参数化的定时器地址的状态:

   FUNCTION T_SCAN  :  BOOL

   VAR_INPUT

   T_NO : TIMER;

   END_VAR

   BEGIN

    UT_NO;  =RET_VAL;

   END_FUNCTION

    通过一个输入,功能T_PULSE启动定时器地址用作一个脉冲:

   FUNCTION T_PULSE : VOID

   VAR INPUT

    TNO : TIMER; Start : BOOL;

   Ti_me_value  :  S5TIME;

   END_VAR

   BEGIN

    UStart; L Time_value; SI T_NO;

   END_FUNCTION

    在每次调用时,功能T_RESET复位定时器地址:

   FUNCTION  T_RESET  :  VOID

   VAR_INPUT

   T_NOTIMER;

   END_VAR

   BEGIN

   SET; R  T_NO;

   END_FUNCTION

    编译后,这些功能在SCL中的使用如下:

   IF  NOT  T_SCAN (T1)

   THEN  T_PULSE( T_NO :=T2,

   Start :=E1.0,

   Time_vaule:=S5T#5s);

   ELSE    T_RESET lT3);

   END_IF;