概述
外部设备对接记录之一
- 背景
- 现象
- 分析现象
背景
OpenTCS 运行小车需要对接电梯,采用 Modbus 转 485 控制器设备进行梯控对接,使用一段代码执行心跳检测时,会发生自动打开控制器的指示灯现象(指示灯原本是通过 Socket 发送特定指令开启和关闭),两份代码分别如下
1.Socket Client ,socket 发送特定命令开启指示灯
2.基于Spring Boot实现的 modbus 心跳通信
https://github.com/yoloyl/modbusHb
使用工具
Modbus 转485控制器,串口连接设备
现象
正常现象
基于Spring Boot实现的 modbus 心跳通信,实时检测控制器是否在线,若在线返回连接成功,否则返回连接失败
异常现象描述
当物理电脑同时通过网线连接 Modbus 转 485 设备,串口连接设备工具插入电脑 USB 接口(同时另一端接入控制器的AB,作为将 Modbus 协议数据转为 485 通信),启动 Spring Boot的 modbus 心跳通信应用程序,几分钟后,Modbus 转 485 设备指示灯 DO1 和 DO2 同时亮起
分析现象
1.首次怀疑定时检测心跳程序会发送报文走串口设备,导致指示灯异常打开,通过使用串口监视工具,监视工具在指示灯亮起时未读取到命令数据。
2.经过分析,有可能是通过网线,数据经网络报文传输,导致设备灯异常亮起
于是通过 WireShark 抓包工具实时监测心跳检测应用启动发送过程
结果如上,当指示灯亮起时,wireshark 抓到一段含有 data 的数据包,将如上数据转存到本地,通过串口调试工具,发送保存下来的文件,果然,设备指示灯会打开
经过咨询设备供应商,该段报文为不完整的 RTU 数据,也即是说发出去一条 Modbus RTU 的数据,被设备识别并响应(打开指示灯)
发现最终原因是设备可以接收 Modbus RTU 的指令,且与心跳检测程序的数据包重合了部分
最后
以上就是迷人发带为你收集整理的外部设备对接记录一背景现象分析现象的全部内容,希望文章能够帮你解决外部设备对接记录一背景现象分析现象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复