二.定时器使用
currenttime:=S_ODT( T_NO :=mytime,
S :=cmd_openclose,
R :=reset,
TV :=delay_time,
BI :=com_time,
Q :=status_feedback);
Currenttime
必须设置为S5TIME类型的数据。 Mytime为TIMER类型的值,为T1,T2,T3等等。注意:将mytime设置为TIMER类型只能作为函数变量形式调用,否则将出错。不能在临时参数的区定义。
这是一个网上的资料写的 ,但是我自己写了一个定义的是临时变量也没出现错误,模拟了下也是可以的
VAR_TEMP
i:INT;
qt:ARRAY[1..8] OF bool;
CurrTime :S5TIME;
MY_TIMER: ARRAY [1..8] of STRUCT
T_NO: INT;
qt:BOOL;
END_STRUCT;
END_VAR
CurrTime:=S_ODT(T_NO:=MY_TIMER[I].T_NO, S:=true, TV:= t#30s,Q:=qt[i]);
我的这个程序定时器就是临时变量,模拟正常,问下各位到底这个可以不呢
问题补充:
前几段是网上的资料,后面的是我写的,
我写的这段跟本没占用实际的定时器资源,那么是不是可以像这样用无数个定时呢
最佳答案
你自己也写了:注意:将mytime设置为TIMER类型只能作为函数变量形式调用,否则将出错。不能在临时参数的区定义。
然后你定义的T_NO是INT变量,当然可以用临时变量了。
补充:你的T_NO数值也是有限制的,取决于你的CPU的定时器个数,也不能多次使用,毕竟重复使用1个定时器会乱的
提问者对于答案的评价:
没有解决 不过靠点谱 给你吧
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc169563.html