请教各位老师:
1、用1200作从站,使用MODSCAN测试40001中数值为16#0015,但是用串口助手读40001的话要发代码010300000001840A。我想问下PLC中40001地址是如何对应到串口助手中0000地址的?这两个地址是转换的?
2、1200中MB_SLAVE_DB参数MB_HOLD_REG输入为p#DB1.DBX0.0 WORD 20。我用串口助手发01030020000185C0,PLC回复01 83 02 C0 F1。我想请教个PLC回复的代码是什么意思?
最佳答案
1、如果MB_SLAVE_DB参数MB_HOLD_REG输入为p#DB1.DBX0.0 WORD 20,那么串口助手的40001地址对应DB1.DBW0, 而40020对应的是DB1.DBW19, 帮助说明见图1
2、见图2的说明,发送的数据01030020000185C0 顺序看意义如下
01 1200的站号
03 功能码--读取字
00 20 从第20个字读取,也就是你例子中的 DB1.DBW20开始读取(你例子中只到DBW19)
00 01 连续读取1个字
85 C0 发送数据(以上6个字节的CRC校验码)
而PLC回复的 01 83 02 C0 F1意义如下
01 1200的站号
83 读取故障
02 故障代码(数据地址错误或地址超出 MB_HOLD_REG 的有效范围)
C0 F1 以上三个字节的CRC校验码
图片说明:
提问者对于答案的评价:
谢谢回答,回答很详细。
我想问下你图2的截图是哪本手册里的?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202987.html