欢迎光临入喜工业控制技术(上海)有限公司
当前位置
首页 > 新闻中心
西门子S7 200与单片机Modbus 485 通讯
2021/8/27 20:53:29
西门子S7 200与单片机Modbus 485 通讯

S7 200与单片机通过Modbus 485 通讯,知道从站单片机地址为01 03 01 01 31 88,01 02 01 00 00 02 F8 37,怎么确定Modbus地址
1、
01 03 01 01 31 88  不是MODBUS RTU 03 功能码的请求帧,最后两个字节31 88是CRC 校验,验证了一下确实是前面四个字节 01 03 01 01 的检验码。应该还有两个字节的数据个数才符合 MDOBUS RTU 03 功能码的请求帧,是不是贴错了。就这个解释如下
01 03 01 01 这四个字节:
第1个字节 01 是设备地址
第2个字节 03 是功能码,读保持寄存器
第3、4个字节 01 01 是保持寄存器地址,先转换成十进制,那就是257,再加上1就是 258,然后在最前面加上保持寄存器地址标识 4,并凑够5位数,则是 40258。至于 40258 是200 侧保持区那一个那还要看200 侧的保持寄存器区是怎么定义的。
2、
01 02 01 00 00 02 F8 37 经验证是完整的,读从站的数字量输入。
第1个字节 01 是设备地址
第2个字节 02 是功能码,读从站数字量输入
第3、4个字节 01 00,就是地址,转换成十进制,就是 256,再加上 1,则为 257,再在最前面加上区域标识,则地址为 10257。
257 是不是超出了 200 的过程映像区的大小?
https://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/Smart%20SMS/019.html
第一个数据为站地址,第二个是功能嘛,所以单片机应该站地址是1,使用03功能码读单片机数据,数据开始地址01,PLC中地址40001+1=40002,数据长度1,直接调用MSG指令读即可。
第二个指令是读单片机输入区,站地址1,数据地址10001+100HEX=10257,数据长度2,用MSG指令读即可。
注意端口波特率设置,为MODBUS库指令分配好V区。

联系方式
CONTACT US

电话:13818569113      15721373211

邮箱:fushidianji@139.com

网址:http://www.jiansujiabc.com

地址:上海青浦区北青公路7171号111-112室

用手机扫描二维码关闭