关于SCL定时器寻址的问题

二.定时器使用
 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/plc187065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月25日 下午10:53
下一篇 2017年7月25日 下午10:53

相关推荐