您现在所在的是:

施耐德电气论坛

回帖:6个,阅读:1397 [上一页] [1] [下一页]
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/7/18 15:40:56
#0楼
从Modbus开始说现场总线(二)

Modbus作为一个应用层的协议,最初是为了实现PLC间通讯的,所以基础的协议内容相对简单,传输的数据主要分为四类:离散量(开关量)输入,离散量(开关量,线圈)输出,输入寄存器,保持寄存器。对应电力系统中的术语,分别是:遥信,遥控,遥测,遥调。实际使用中因为一个保持寄存器可以作为十六个开关量使用,而且读和写都支持,大家都习惯通过读/写保持寄存器来搞定一切。
最初的Modbus协议基于RS-232/485链路,有两种编码方式,RTU和ASCII,这也是为什么有时候看到“Modbus RTU”说法的由来,后面我们介绍的帧格式就是RTU格式,ASCII格式已经很少用了。
其实Modbus的通讯格式非常容易理解,主站给从站发送一条报文,大概相当于网友问支付宝:支付宝(从站地址),内定的锦鲤(数据类型,保持寄存器)第二名(寄存器地址)是多少(读数据,暗号03)啊(校验码)?报文格式如下(16进制):
   01             03             00 01           00 01           D5 CA
从机地址        功能码          数据地址      读取数据个数       CRC校验
支付宝回复网友: 支付宝(从站地址),这个嘛(重复读数据功能码),没有(返回数据长度,二),是0017这厮(返回数据),真没有(校验码):
01         03             02             0017           F8 4A
 从机地址   功能码     数据字节个数    两个字节数据    CRC校验

这样,Modbus主机就完成了一次对从机数据的读操作,是不是很简单?最常用的两个功能码就是上面介绍的0x03(读连续多个保持寄存器)和0x10(十进制16,写多个保持寄存器),其他的功能码,基本类似,无非是类型(离散量,寄存器,…)数量(单个,连续多个)的不同组合。当然还少不了错误处理等细节,详细内容见参考文献。
寄存器地址是从0000开始的,对应于Modicon(施耐德)PLC中的40001,如果是寄存器地址从0001开始,并直接对应寄存器地址40001,Modbus RTU协议就有了一个别名JBUS,可以理解为JBUS是Modbus的一个常用功能子集。另外有的厂商在返回数据时,数据长度不是按字节计算,而是按字计算,也无法和标准Modbus协议兼容。
把Modbus报文去掉地址和CRC校验码嵌入到以太网的数据帧中,就成了TCP-Modbus,如下图。这样串行设备(我们前面讲的断路器,多数都是通过附件成为一个串行设备)就可以很方便的接入以太网了,当然这个“嵌入”的过程,是由网关完成的。

附件 Modbus-3.jpg

Modbus协议的主要内容就介绍完了,我们会发现,作为一个应用层协议,Modbus并没有定义数据的格式和含义,例如,读一个保持寄存器的值,我们得到一个16位的数,至于这个数是每一位代表一个开关量的状态,还是一个无符号整数,或者是32位浮点数的高字节或者低字节,就要靠通讯双方自行定义了。所以实现Modbus通讯的很大一部分工作就是按照双方的通讯数据表逐个处理。
[此贴子已经被作者于2019/7/18 15:45:29编辑过]
50
weicy007
文章数:571
年度积分:50
历史总积分:50
品牌积分(施耐德):852
注册时间:2019/4/29
发站内信
发表于:2019/7/18 17:49:28
#1楼
支付宝的比喻亮了表情
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
品牌积分(施耐德):268
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/7/18 18:35:01
#2楼
又见大师的文章了!精彩!给你点赞!
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
20905
bnnyygy
文章数:5989
年度积分:1571
历史总积分:20905
品牌积分(施耐德):162
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2019/7/18 20:54:28
#3楼
好评,通讯这块确实头疼
8135
0aguang0
文章数:1636
年度积分:258
历史总积分:8135
品牌积分(施耐德):2046
注册时间:2010/10/21
发站内信
发表于:2019/7/19 20:42:58
#4楼
回复 #1楼 weicy007
支付宝.表示.内定.真没有...是0017号....真没有
大亮啊表情
水平一般,能力有限.如有错误之处.欢迎并感谢指出.我一定认真学习积极改正.请勿DISS.
949
秦无忧
文章数:42
年度积分:50
历史总积分:949
品牌积分(施耐德):1
注册时间:2016/11/1
发站内信
发表于:2019/9/10 10:31:10
#5楼
表情
胆大心细~
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/9/11 8:50:13
#6楼
回复 #5楼 秦无忧
阿弥陀佛。。。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005