这是MODBUS的帧结构,也就是用字节构成的语句:
第2部分ADDRESS,就是ID地址。
ID地址用个字节表示。因为一个字节有8位二进制数码,所以它可以表示0到255,也因此,ID地址可以从零一直编码到255,用十六进制写成00H~FFH。
ID地址很重要,它是主站识别从站的标识。我们来看下图:
第3部分是FUNCTION,也即命令。FUNCTION也用一个字节来表示。
我们来看看MODCON公司是怎样定义命令的,如下:
我们来看下图:
我们知道,用单片机构成的系统中,一定存在存储区。存储区分为随机存储器RAM和只读存储器ROM,以及可擦写的EPROM存储器。重要数据就保存在EPROM中。
例如某型电力仪表,它采集的数据在EPROM中的分配关系如下:
注意看右边蓝色背景中的编码,EPROM内存地址11中保存的是A相电压,内存地址12中保存的是B相电压,……,内存地址23中保存的是C相电流。
注意,地址域最前面的编码4XXXX,表示这是保持寄存器中的数值信息。在MODICON的引用指南中有如下解释:
10000-19999表示遥信输入状态,用02H命令读。输入状态一般为位格式,用于保存开关量;
30000-39999表示模拟量输入寄存器,用04H命令读,输入寄存器一般用于保存模拟量;
40000-49999表示保持寄存器,用03H命令读,10H命令写。
不过哦,在实际编程时,千万不要把这里的X0000中的1、2和4当成地址了!这只是写法区分而已,实际编程时要把它们去掉的。例如40011地址,在实际编程时,它的地址就是000B。
另外,有时地址是从0开始编写的。因此编程时,地址要减1。具体要看通信协议文本才能确认。
如果我们想读取三相电压,那么我们就必须采用06H命令。
第4部分是DATA,也即数据。DATA用多个字节来表示。
对于上述仪表,如果我们想读从寄存器地址11开始直到23的12项内容,则在DATA中应当写明寄存器的地址:“00 0B”,也即地址11。还有所读寄存器的数量:"00 0C",也即连续12个寄存器。
第5部分是CRC,也即校验码。
关于CRC校验码的意义在第3部分已经叙述过了,此处不再重复。
第6部分是END,也即终止位。
终止位与起始位完全一致。
==========================
现在我们来看看如何编写MODBUS的通信帧。
先看06H命令帧,这是主站读取从站寄存器信息的命令帧。
我们来看MODICON的引用解释:
11 06 00 01 00 03 CRC
我们就用上述电力仪表来举例,设此电力仪表的ID地址为01H,我们要读从40011开始的12个连续寄存器中的内容。于是主站的06H命令帧为:
01 06 000B 000C F80D
最后的F8 0DH为CRC校验码。
注意到上述通信帧中有8个字节,如果物理层的RS485通信速率是9600bps,则下传这个命令信息帧需要8X10/9600=8.3毫秒。
在写通信帧时,CRC校验码如何写?这要借助于专用软件。看下图:
图中的CRCDlg就是计算CRC的专用软件。点击后,弹出的对话框如右侧,把通信帧中除了CRC的之外的内容输入进去,然后点击CRC按钮,就自动计算出了CRC校验码。
那么这款仪表的回应帧会是什么样的呢?
我们假定此款电力仪表采集的信息是:
三相电压:220V、219V、222V,相电压平均值:220V;三相线电压:380V、378V、385V,线电压平均值:381V;零序电流:0A;三相电流:680A,640A,678A。
注意哦,这里的数值是随意编写的,不是电路上的具体值。不要把这些数据与实际系统去生搬硬套哦!
现在,我们来看看电力仪表的回应帧:
01 06 18 00DC 00DB 00DE 00DC 017C 017A 0181 017D 0000 02A8 0280 02A6 014F
解释一下:01 06 同主站的下行帧;18表示回应帧中有24个字节的数据内容;00DC 00DB 00DE 00DC这四个值就是三相电压220V、219V、222V和相电压平均值220V;017C 017A 0181 017D这四个值就是三相线电压380V、378V、385V和线电压平均值381V; 0000 02A8 0280 02A6这四个值就是零序电流0A、三相电流680A、640A、和678A。
最后的014F是CRC校验码。
注意到这个上行信息帧有29个字节,如果物理层的RS485总线通信速率为9600bps,则发送此信息帧需要29X10/9600=30.2毫秒。
================
大家可能要问,在PLC编程软件上看到的MODBUS通信帧又是什么样的?我们看下图:
这种模块化的编程语言符合IEC61131-3标准,在PLC的实际编程中大量使用。显见,它与梯形图有很大的区别。
在实际运行中,PLC首先用广播命令在RS485总线上向全体从站发布读取第一从站数据的命令帧。与此同时,所有的从站都竖着耳朵在听,当第一从站听到后,发现此命令是针对自己的,而且发现主站已经把总线控制权让出,于是第一从站就占用总线发送读信息的返回数据帧,然后再交换总线控制权给PLC。
接着,PLC又发出读命令给第二从站,以及随后的各个从站,而各个从站也与第一从站类似地占用总线发还数据,再退还总线的控制权。
由此我们看到,之所以在OSI模型中,要求下层系统必须无条件地透明地提供本层的各种服务,其原因也在于此。
相信,如果知友们能够认真地看到这里,对物理层和数据链路层应当有了较深的理解。再也不会说物理层和数据链路层是“很模糊的概念”了。
我对某位知友说现场总线是很模糊的概念,留下了如此深刻的记忆。其实这也很典型。记得有次到某变电所现场去调试设备,要连接电力变压器。我向变压器的现场工程师索要通信协议,此人说:我们的通信协议就是RS485。经过说明后,他又说:我们的协议就是那个MODBUS,是标准协议。一副大义凌然的样子,孰不知,在我眼里,此人在信息交换技术方面是个绝对外行。最后,到我们撤离现场,电力变压器也没有接入电力监控系统,倒霉的是甲方,挺遗憾的。
===================
我们来看一个实例:
下图是上海二工生产的某型多功能电力仪表的通信协议(有时又叫做数据点表)摘录:
假定此电力仪表的ID地址为25,也即1AH。现在我们要都从0007H开始到0017H共9个电压和电流参数,于是主站的下行通信帧为:
1A 06 0006 0009 AA26
回应帧呢,没法知道,因为实际线路中电压和电流参数到底是多少,我们无法准确得知。不过,如果回应帧是这样的: 8A 06 0006 0009 AA26,您认为这是为什么?
告诉你吧。说明数据存储区的地址出错了,也可能是电力仪表的通信速率不对,等等。需要仔细检查。
在这种情况下,系统会自动把下行帧的ID地址加上80H再显现出来,以提示编程者。
================
好,本帖到这里该结束了。
在本帖中,我们知道了数据链路层的意义和功能,知道了数据链路层的帧结构,知道了MODBUS协议的帧结构,以及MODBUS主站发送的读数据下行帧结构和意义,知道了从站发送的读数据返回帧的结构和意义。也更加深入地知晓物理层的意义,以及物理层与数据链路层的关系。
最后按照惯例,我给大家提2个问题:
第一个问题:
如果RS485也即物理层的通信速率是9600bps,假定上述9个从站中所读的信息都如与本文中描述的电力仪表相一致,我的问题是:PLC从读第一个仪表开始,到最后循环结束又返回到第一个仪表,这一周期需要有多长的时间?
第二个问题:
数据链路层所用到的设备有哪些?例如网关、网桥、通信卡件、网络接口、交换机等等,您选择哪个设备?
没见回答,我自问自答吧:
先看第一个问题的答案:
我们已经知道下行帧占用总线的时间是8.3毫秒,返回帧是30.2毫秒,主站收到报文后处理时间为1毫秒,于是总循环时间为:
T=9X(8.3+30.2)+8X1=354.5ms
也即0.355s。
再看第二个问题的答案:
数据链路层用到的设备包括:通信卡件和网桥,也可能有接口转换装置。
您答对了吗?
更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 职业教育培训中心 网站详细了解,或咨询电话:134-1532-8282 ,咨询QQ:
你也可以留下你的联系方式,让课程老师跟你详细解答: 在线咨询
猜你感兴趣的课程:
已关注:1
课程价格:请咨询
教学点: 1个
东莞虎门电工培训考电工证在哪里报名?380V电动机对地绝缘为零,为什么还可以正常启动,并长时间连续运行?电机的电压 380V 三角型接法,每次停机后、启动前按规程用500...[详情]
已关注:3
课程价格:请咨询
教学点: 1个
武汉江汉区健康管理师培训?最近大火的健康管理师究竟是干什么的?随着工业化、城镇化、人口老龄化进程加速发展,健康管理师越来越受到热捧。一场疫情,健康管理师火爆...[详情]
已关注:2
课程价格:请咨询
教学点: 1个
上海普陀区电工上岗证考试培训?为什么考高级电工证的人越来越多了?有什么好处?电工等级证分为五个等级,初级(五级)、中级(四级)、高级(三级)、技师(二级)、...[详情]
已关注:6
课程价格:请咨询
教学点: 1个
成都双流区一级建造师培训机构?记住这13个数字 考一建时可以多拿分4个30天1.工资支付管理:建筑施工企业因暂时生产经营困难无法按劳动合同约定的日期支付工资的,应当...[详情]
已关注:15
课程价格:请咨询
教学点: 1个
公明正规的会计培训机构?会计收付实现制说什么?会计是以货币为主要的计量单位,以凭证为主要的依据,借助于专门的技术方法,对一定单位的资金运动进行全面、综合、连...[详情]
已关注:13
课程价格:请咨询
教学点: 1个
合肥二级建造师培训机构哪几家比较好?各大培训机构该如何甄选? 二建培训行业的几家网校各有千秋,但也让众多考生选择培训时各种纠结。所以如何区别几家网校,选出最...[详情]
已关注:12
课程价格:请咨询
教学点: 1个
无锡一级造价师培训班费用?造价工程师考试决胜法宝:信心学会体验成功感对学习一般的学生来说,这一点尤为重要。每当自己解决了一个难题,就应该好好地体验一下成功感...[详情]
相关推荐
成人高考大专有哪些专业
临沂消防工程师培训多少钱
上海一级消防工程师培训机构排名
上海健康管理师培训班报名
临沂消防工程师报名时间
德州消防工程师报名时间
广州消防工程师培训班价格多少
淄博消防工程师培训报名哪个好
温馨提示:本页是关于广州荔湾区哪里可以快速拿电工证的信息,提供了广州荔湾区哪里可以快速拿电工证相关的课程介绍与在线咨询服务。
还没有找到合适的课程?赶快告诉香瓜教育课程顾问,让我们顾问马上联系您! 靠谱 的培训课程,省时又省力!
手机访问