s7-200 226cn作为主站,从站是4个485输出的模块,地址分别为1、2、3、4。通过自由口通讯与PLC联结,PLC下发控制字给对应地址的从站,从站回发数据。但是在通讯过程中,只能3个从站与PLC通讯,而且第4个从站不能与PLC通讯,断掉任意一个从站4号从站就通讯,同理,只能同时有3个从站与PLC通讯。这是什么问题呢,难道是PLC通讯负荷问题?请高手赐教!!不胜感谢!
问题补充:
看到楼下轻轻飞的回答,感觉有点明白了,是不是整个数据采集周期延时问题,PLC呼叫从站的时候,到效验、取数这个时间过程长了,导致呼叫到4号从站的时候,通讯周期就大于整个循环周期了?
最佳答案
减小SMW90的给定值,加大SMW92的给定值.
补充:
自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500.请尽可能用高速率的.
由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。
建议你加一个字符接收中断功能。
字符接收中断
S7-200 CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。
每接收到一个字符,就会产生一次中断。对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。
对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。
一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。这种情况下可以使用字符接收中断功能。
提问者对于答案的评价:
问题解决
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc358378.html