当前位置: 主页 > PLC控制

s7-200plc自由口通讯问题,求高手帮助

S7-200PLC用自由口编写主战程序,轮训两台MODBUS从站,主站程序做好下载后监视状态表数据都能读过来.但是当我给三台测试的plc断电又从新上电后,数据就都读不回来了,然后把主站plc的程序从新下载一遍又正常了不知道这是什么问题,求高手帮忙分析分析:主程序如下
NETwork1//网络标题
//网络注释
LDSM0.1
MOVB9,SMB30
MOVB2#11000100,SMB87
MOVW5,SMW90
MOVW5,SMW92
MOVB255,SMB94
MOVB0,VB400
MOVB0,VB401
ATCHint1,23
ATCHINT0,9
ENI
Network2
LDNT56
TONT56,1
Network3
LDT56
EU
LPS
RSM87.7,1
INCBVB401


AB=VB401,3
MOVB0,VB401
LRD
AB=VB401,1
XMTVB200,0
LPP
AB=VB401,2
XMTVB300,0中断0程序如下:

LDSM0.0
LPS
SM10.0,1
AB=VB401,1
SSM87.7,1
MOVB4,SMB88
AENO
RCVVB100,0
LPP
AB=VB401,2
SSM87.7,1
MOVB3,SMB88
AENO
RCVVB500,0

最佳答案

你可以在两次轮训结束后增加一个重启的过程或者在读到通讯故障的信号后,关闭自由口,再重新打开自由口,或者读取一个长度为0的信号(清空缓存区),就不会造成循环停止了

提问者对于答案的评价:
谢谢,虽然不是很明白,但是感谢你的热心回答

专家置评

已阅,最佳答案正确。
在接收条件里做了定时器超时中断,需要在中断程序里再做个判断,是因为时间到了才进入中断,还是收到结束字符进入的。如果是定时到了,再从新触发下接收,直至收到结束字符在开始新一轮的发送。就是要把丢站超时这个结束条件考虑进来,不然这个循环就卡在那里了。

  • 关注微信

猜你喜欢

微信公众号