ModbusRTU通信,我好像发现一个PLC的BUG,欢迎探讨~

已锁定

手机用户20230117256324

西门子1847工业学习平台

  • 帖子

    4
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2023-01-17

普通 普通 如何晋级?

ModbusRTU通信,我好像发现一个PLC的BUG,欢迎探讨~

2336

6

2025-03-13 23:55:05

环境如下:

CPU:1217 DC/DC/DC

远程IO:ET200SP PtP模块

软件:TIA Portal V19

外设:两台ModbusSlave从站外设(一主二从)


现象:在外设重启过程中,或485链路有较大噪声的时候,PLC通信功能挂死,接收缓冲区数据不刷新并上报通信错误(接收缓冲区前四个字节01 01 81 E2);但通过示波器、USB转485等工具抓取485链路上的通信报文没有异常(PLC正常发送、设备正常回复);此时断开一个外设与PTP模块连接、或模块重新上下电并初始化端口,PLC将恢复通信功能;

PS:实测该问题与从站相应时间相关,当两台从站响应时间为3-5ms时问题出现,当两台从站响应时间为50ms左右时问题不出现;


分析过程:

1)拆解PtP模块外壳,发现有两枚485电平转换芯片(485通信只使用一枚);

2)485电平转换芯片实现功能:将PtP模块MCU的UART-TX信号(电平转换芯片引脚DI)转换成485信号(A\B)发送,将接收到的485信号(A\B)差分运算按照+-200mV判别阈值输出标准电平给到PtP模块MCU的UART-RX信号(电平转换芯片引脚RO);

3)PLC感知外部485链路状态只能通过RO信号;

4)PtP模块单板飞线引出RO信号,连接示波器,发现在设备重启、485链路噪声较大时,RO链路上将解码出乱码字节(非设备回复报文字节),此时会触发模块挂死,即使485链路恢复正常后,PLC通信模块也处于挂死状态(链路报文收发正常,接收缓冲区数据不刷新并上报通信错误);

5)通过使用外置信号源对RO信号进行注扰测试,也会复现问题;


PLC的BUG:欢迎大家复现、讨论

解析RO信号异常上报通信错误没毛病,但当链路恢复正常却依然无法恢复通信功能不合理;从测试结果来看可以通过拉高RO总线的形式恢复故障(掉站外设不回复总线默认状态拉高、外部程控电源强行拉高总线)

ModbusRTU通信,我好像发现一个PLC的BUG,欢迎探讨~ 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15208条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。