C#实现PLC Modbus通信协议信捷PLC测试与问题解析
项目概述
开发工具:Visual Studio 2008
测试设备:信捷 PLC
开发者水平:菜鸟(自己编写,欢迎批评指正)
功能码支持
- 01 读取开关
- 05 写入开关
- 03 读取单路寄存器
- 06 写入单路寄存器
- 10 写入多路寄存器
测试情况与问题
在使用过程中,我测试了读取多位寄存器功能,发现在读取超过8个寄存器时,结果出现了错误。例如,发送命令 03 00 06 62 03 00 16
请求读取22个寄存器,接收数据时出现了以下错误:
接收数据:
03 00 00 00 00 2F 62 03 2C 00 01 00 02 00 03 00 00 00 00 00 00 00 00 00 00 03 00
从第二行开始,数据与第一次重复,导致获取的寄存器信息不正确。此问题可能与数据解析、缓冲区处理或设备设置有关。
请求帮助
请各位专家帮忙诊断并提供改进建议,特别是针对Modbus 协议的读取和写入功能。
开发代码
此项目是基于前人发布的Modbus 类进行修改的,如果功能不全或者有缺陷,欢迎提出。
感谢大家的支持与帮助!
207.68KB
文件大小:
评论区