S7200 SMART SR20 CPU,自带网口和一个RS485的串口。网口连接电脑作为编程口,同时RS485串口作为Modbus通讯口用连接第三方上位机软件。
通过库文件编写ModbusRTU通讯,作为主站测试时读取仪表数据能正常接收到内容。作为从站时,硬件接线PLC RS485串口连接电脑,通过USB转485模块连接到电脑。
电脑作为主站使用Modbus 调试助手发送数据读取寄存器,但是无读到数据。
调试助手端口号设置正确已不存在问题。求助有经验的人帮我看下是哪里有问题,谢谢!
PLC 地址2,数据在&VB0开始的寄存器中,串口发送功能码3,读取数据起始地址40001,
PLC程序和串口助手发送和回馈报文内容如下图:(只能上传一张图所以只发送串口报文图片)
问题补充:
Modbus助手给01功能码读取Q寄存器读得到,读其他数据读不到。01功能码的报文是
02 01 00 00 00 08 3D FF
回馈报文
02 01 01 00 51 CC,其中回馈报文
02 地址
01 功能码
01 字节数
00 8个位的状态
但是发现寄存其起始地址得从00000开始,通过Q点检控的实际状态才是正确的,从00001开始出现移位。
在功能码03读保持寄存器时发送报文
02 03 9C 41 00 04 3A 7E
回馈故障报文是
02 83 02 30 F1
图片说明:
最佳答案
串口调试工具的地址设置错了,寄存器地址40001开始,要改成0开始
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc287003.html