天天看点

西门子与施耐德Modbus RTU通信协议不同

如今施耐德与西门子大家用的挺多,同样的协议,却不完全一样,蛋疼的协议如下:

施耐德M241比较符合 通用协议,如下

站号,功能号, 地址高低 数据个数高 低 校验
01,       03,       00,C8,   00,70,          C5,D0,

写入时:站号,功能号, 地址高低, 数据个数高低,----- 校验
01 10 00 C8 00 70 E0 ,数据00 70个字,校验
           

而西门子协议如下:西门子MB server

写1站号00地址
29,序号,0,0,0,6,1,6,0,0,0,123
写1站号03=123
29-序,      N z g ah al dh dl          
29,43,0,0,0,6,1,6,0,3,0,123
写1站16多个
29,47,0,0,0,13,1,16,0,0,0,3,6,0,11,0,22,0,33
29,x,0,0,0,n
29,48,0,0,0,13,1,16,0,0,0,3,6,0,250,0,22,0,33
读
[0][1]  0   0   0   n z g d d d,n
29,  49,  0,   0,   0,   6,1,3,0,0,0,10
0x17功能=23读写0,5地址读取0,3个地址,地址0,3写入0,2个数据4个字节数据,无校验
0,4,0,0,0,15,1,23,0,5,0,3,0,3,0,2,4,0,111,0,222
23功能: 0,5地址读取06个数据,写入0x0003地址,个数0x0002个数据4个字节数据如下:
0,0,5,0,0,0,15,1,23,0,5,0,6,0,3,0,2,4,0,111,0,222
读取0x0000地址,读取个数0x0001个,写入地址0x0000,个数0x0003个6字节数据
29,50,0,0,0,17,1,23,0,0,0,1,0,0,0,3,6,0,17,0,111,0,102
读取0x0000地址, 个数0x0001, 写入地址0x0000, 写入个数0x0004个8字节 数据
29,51,0,0,0,19,1,23,0,0,0,1,0,0,0,4,8,0,17,0,111,0,102,0,103
0x10=16写三个
29,52,0,0,0,13,1,16,0,0,0,3,6,0,17,0,111,0,102