设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
Modbus通讯问题引发的思考?
返回列表
发新帖
[三菱]
Modbus通讯问题引发的思考?
[复制链接]
43212
|
0
|
2024-8-10 19:42:49
|
显示全部楼层
|
阅读模式
摘要
有朋友在易维通匠说提问S7-1200与S7-200的Modbus通信问题,针对这问题,高级自动化工程师【北岛李工】编写技术文章对Modbus RTU通讯进行说明,希望对大家有帮助。北岛李工有丰富的PLC应用经验,工程师朋友们可进入工匠圈和李工多多交流。
来源:方正智芯
点击阅读原文,进入北岛李工的主页
用户问题@阿清sir(进入匠说参与讨论):
问题补充说明:
由于通信涉及很多方面,李工只能根据提问者反馈的情况,猜测可能的问题原因。而当通信出现故障时,不同的情况遇到的问题可能不一样,无法一概而论。因此,最好的办法是做一个通信连载的教程,把整个流程梳理一遍。当你有了基本概念,再根据自己的实际情况,有针对性的查找原因会更简单些。
本章我们先简单介绍下Modbus的通信原理,然后介绍下例程中需要用的硬件及网络的拓扑结构。
Modbus RTU是一种主从通信协议,其物理层采用RS485网络。RS485的串行通信规程中规定应用数据单元(Application Data Unit,ADU)的最大长度为256个字节。在Modbus RTU协议中,从站地址占用1个字节,校验位占用2个字节,因此协议数据单元PDU(Protocol Data Unit)的最大长度为256-1-2=253字节。
在协议数据单元PDU中,功能代码占用1个字节,因此数据长度为0~252个字节。如下图:
图 MODBUS RTU ADU
Modbus通信协议的PDU包括三种:
1)Modbus请求PDU(Modbus Request PDU);
2)Modbus应答PDU(Modbus Response PDU);
3)Modbus异常应答PDU(Modbus Exception Response PDU);
以功能代码“0x01”为例,其请求PDU的格式如下表:
图 MODBUS 请求PDU格式
其应答PDU的格式如下表:
图 MODBUS应答PDU格式
不同的功能码其数据长度的单位不同。位(bits)操作的功能码,其请求数据的长度以“位”为单位;字(WORD)操作的功能码,其请求数据的长度以“字”为单位;
比如:功能码0x01(读取线圈),其请求数据(线圈数量)是以“位(bits)”为单位的;而功能码0x03(读取保持寄存器),其请求数据(保持寄存器)是以“字(WORD)”为单位的;
Modbus通信协议规定了不同的参数地址,与PLC的CPU地址有一种对应关系。以S7-200 Smart为例,Modbus参数地址与CPU的地址的对应关系见下面的表格:
图 S7-200 Smart存储区与Modbus地址参数对照表
本例程主站采用S7-1200的PLC,从站采用S7-200 Smart的PLC。
1、硬件配置:
1.1 主站:
S7-1200 CPU1215C;
CM1241-RS485;
1.2 从站:
S7-200 Smart CPU ST40;
2、通信任务:
2.1 Modbus主站读取从站Modbus参数地址40001开始的10个字长的数据;
2.2 Modbus主站将6个字长的数据写入到从站起始Modbus参数地址40011;
2.3 Modbus主站读取从站Modbus参数地址10001开始的8个位的数据;
2.4 Modbus主站将8个位写入到从站Modbus参数地址00001;
3、网络连接:
主站的CM1241-RS485模块通过Profibus电缆连接到从站CPU ST40本体的RS485端口;为了监控和下载程序方便,可以用交换机将CPU ST40、CPU1215C和编程电脑PG/PC连接起来。整个网络拓扑图如下:
关于Modbus的通信原理及本例程的网络拓扑结构就介绍到这里,下一篇文章我们介绍Modbus主站CPU1215C的配置。
李工的个人介绍
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
北岛李工
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』