S7-200 Smart 做为modbus 485通讯主站的报文格式

PLC使用modbus库指令写数据,串口精灵接收到数据如下:02 10 00 27 00 02 04 01 00 02 10 BE 45 ,现在已经可以确定02是PLC站号,10是功能码6,0027是我的起始地址40040,0002应该是写入的个数,至于后面的04 01 00 02 10,我就不太清楚了,我写的值应该就是1才对。

最佳答案

02 10 00 27 00 02 04 01 00 02 10 BE 45,按从左至右分段,解释如下
第一个字节 02 是从站地址                                               MBUS_MSG 指令的 SLAVE 脚
10      是功能码 10H,即功能码 16,是写多个保持寄存器
00 27 是写保持寄存器的起始地址 ,即 40040                 MBUS_MSG 指令的 ADDR 脚
00 02 写二个保持寄存器                                                  MBUS_MSG 指令的 COUNT 脚
04      共写入4个字节数据
01 00 写到从站保持寄存器 40040 的值,由MBUS_MSG 指令 DATAPTR 脚指定的存储单元开始的第一个字,比如你在引管脚写的是 &VB100,则VW100的值就是 16#0100
02 10  写到从站保持寄存器 40041 的值,由MBUS_MSG 指令 DATAPTR 脚指定的存储单元开始的第2个字,比如你在引管脚写的是 &VB100,则VW102的值就是 16#0210
BE 45 是指令自动产生的 CRC16检验码。
检查 DATAPTR  脚指定的存储单元开始的第一个字、第二个字你写的是什么内容
10H 功能码的主站请求帧结构示例如图
通讯资料如下
MODBUS RTU
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html

图片说明:

S7-200 Smart 做为modbus 485通讯主站的报文格式

提问者对于答案的评价:
谢谢,回答的很详细。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日
下一篇 2020年10月30日

相关推荐

发表回复

登录后才能评论