300 SCL 定时器

能写个简单的SCL 定时器例子吗

最佳答案

调用定时器函数
Calling Timer Functions
定时器函数像函数一样调用,函数标识符能够在任意点使用取代表达式中的一个地址,函数结果的类型兼容被取代的地址。

返回到调用块的函数值(返回值)是数据类型S5TIME的时间值。

绝对和动态调用(Absolute or Dynamic Call)

在调用中,能够以定时器号键入一个TIMER数据类型的绝对值(如:T_NO:=T10),然而此值在运行时不能修改。

取代绝对数字,也能够指定一个INT类型的变量或常量。这种方法的优点是每次调用中能够动态指派变量或常量一个不同的数字。

要做到动态调用,也能够指定一个TIMER类型的变量。

例子(Examples)

// 绝对调用的例子:
CurrTime:=S_ODT (T_NO  :=T10,
                 S     :=TRUE,
                 TV    :=T#1s,
                 R     :=FALSE,
                 BI    :=biVal,
                 Q     :=actFlag);

// 动态调用的例子: 在FOR循环的每个分支,调用了不同的定时器函数:
FUNCTION_BLOCK TIME
VAR_INPUT
 MY_TIMER  : ARRAY [1..4] of STRUCT
                       T_NO  : INT;
                         TV  : WORD;
                         END_STRUCT;
.
.
END_VAR
.
.
FOR I:= 1 TO 4 DO
CurrTime:= S_ODT(T_NO:=MY_TIMER[I].T_NO, S:=true, TV:= MY_TIMER[I].TV);
END_FOR;

// 使用TIMER数据类型变量的动态调用的例子:
FUNCTION_BLOCK TIMER
VAR_INPUT
 mytimer:TIMER;
END_VAR
.
.
CurrTime:=S_ODT (T_NO:=mytimer,.....);

提问者对于答案的评价:
感谢 已OK

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc287831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日
下一篇 2020年10月30日

相关推荐