我现在已经写了一个自由口子程序,然后多次调用,在硬件没有出错的情况下通信都正常了。但是还有一个问题没有解决,好几天了,都不知怎么解决,希望高手帮帮小弟!
我是在一个M位的上升沿调用子程序,通信正常后有标志位,然后再清掉M位,如下述程序:
LD M3.0
= L60.0
LD M3.0
EU
= L63.7
LD L60.0
CALL SXSF_commucation:SBR1, L63.7, 4, 16#53, 100, M10.0
LD M10.0
R M3.0, 1
R M10.0, 1
子程序中226先发送应答信号,伺服返回应答信号,PLC接收后再发送数据,然后置标志位,子程序大概这样。
正常情况下通信正常,但是当伺服断电后,266发送应答信号后,接收不到返回信号,就不能置标志位,就无法清复M位,再用其它M位调用此子程序时,有在同一周期内同时调用同一子程序,就通信不正常了。
不知怎么解决,希望大家指点一下,谢谢!
我有一个想法,就是在主程序中再判断一下是否有通信超时,不知是不是SM86.2,然后在统一复位?不知道要不要设置SMB92,93,
希望大家帮帮忙,小弟感激万分!