MODBUSRTU通讯规约重点讲义资料.docx

上传人:b****4 文档编号:5505953 上传时间:2022-12-17 格式:DOCX 页数:25 大小:183.16KB
下载 相关 举报
MODBUSRTU通讯规约重点讲义资料.docx_第1页
第1页 / 共25页
MODBUSRTU通讯规约重点讲义资料.docx_第2页
第2页 / 共25页
MODBUSRTU通讯规约重点讲义资料.docx_第3页
第3页 / 共25页
MODBUSRTU通讯规约重点讲义资料.docx_第4页
第4页 / 共25页
MODBUSRTU通讯规约重点讲义资料.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

MODBUSRTU通讯规约重点讲义资料.docx

《MODBUSRTU通讯规约重点讲义资料.docx》由会员分享,可在线阅读,更多相关《MODBUSRTU通讯规约重点讲义资料.docx(25页珍藏版)》请在冰豆网上搜索。

MODBUSRTU通讯规约重点讲义资料.docx

MODBUSRTU通讯规约重点讲义资料

附录一:

MODBUS_RTU通讯规约(本协议采用主从问答方式)

PDM系列仪表/变送器:

PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。

MODBUS通讯协议:

ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus兼容的监控系统之间进行信息交换和数据传送。

PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:

组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。

广泛的系统集成:

PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。

通讯数据的类型及格式:

信息传输为异步方式,并以字节为单位。

在主站和从站之间传递的通讯信息是11位的字格式:

字格式(串行数据1位二进

起始

数据

奇偶校验有奇偶校验无:

无奇偶校验

停止位1位:

有奇偶校验位/2位:

无奇偶校验位

●通讯数据(信息帧)格式

数据格式:

地址码功能码数据区错误校检

数据长度:

1字节1字节N字节16位CRC码(冗余循环码)

★注:

1、1个字节由8位二进制数组成(既8bit)。

2、ModBus是Modicon公司的注册商标。

3、“从机”在本文件中既为PDM。

一、通讯信息传输过程:

当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。

返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。

如果CRC校验出错就不返回任何信息。

1.1地址码:

地址码是每次通讯信息帧的第一字节(8位),从0到255。

这个字节表明由用户设置地址的从机将接收由主机发送来的信息。

每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。

当从机回送信息时,回送数据均以各自的地址码开始。

主机

发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。

相应的地址码表明该信息来自于何处。

1.2功能码:

是每次通讯信息帧传送的第二个字节。

ModBus通讯规约可定义的功能码为1到127。

PDM系列仪表/变送器仅用到其中的一部分功能码。

作为主机请求发送,通过功能码告诉从机应执行什么动作。

作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。

表8.1MODBUS部分功能码

功能码定义操作(二进制)

02读开关量输入读取一路或多路开关量状态输入数据

01读开关量输出读取一路或多路开关量输出状态数据

03读寄存器数据读取一个或多个寄存器的数据

05写开关量输出控制一路继电器“合/分”输出

06写单路寄存器把一组二进制数据写入单个寄存器

10写多路寄存器把多组二进制数据写入多个寄存器

1.3数据区:

数据区包括需要由从机返送何种信息或执行什么动作。

这些信息可以是数据(如:

开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。

例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。

对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。

PDM系列仪表/变送器采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。

PDM系列仪表/变送器的数据寄存器存储的电量多达几百个(如:

电流、电压、功率、0~31次谐波分量等),并且都是16位(2字节)的二进制数据,并且高位在前;一次最多可读取寄存器数(既各种电量的数量)是50个。

PDM响应的命令格式是从机地址、功能码、数据区及CRC码。

数据区的数据都是两个字节,并且高位在前(电能量除外)。

注:

1、PDM-820AC/ACM/ACR、PDM-800AC/ACM具有“03”、“06”、“10”功能码;

2、如果PDM采用MODBUSASCII通讯协议,其通讯数据格式为;7个数据位,1个

停止位,偶校验。

二、MODBUS功能码简介

2.1功能码“02”:

读1路或多路开关量状态输入

例如:

主机要读取地址为01,开关量DI1—DI4的输入状态。

从机(PDM)数据寄存器的地址和数据为:

起始位地址

DI寄存器数据进制)16(

备注

0000

0B

DI1/DI2/DI4状态为“1”,DI3状态为“0”

主机发送的报文格式:

主机发送

字节数

发送的信息

注备

从机地址

1

01

的从机01发送至地址为

功能码

1

02

读开关量输入状态

BIT起始位

2

0000

0000位地址为起始BIT

读数据长度

2

0004

路开关量输入状态位读取4

CRC码

2

79C9

码由主机计算得到CRC

从机(PDM)响应返回的报文格式:

从机响应

字节数

返回的信息

注备

从机地址

1

01

来自从机01

功能码

1

02

读开关量输入状态

数据长度

1

01

位)BIT1个字节(8个

DI状态数据

1

0B

DI寄存器内容

CRC码

2

E04F

由从机计算得到CRC码

2.2功能码“01”:

读1路或多路开关量输出状态

例如:

主机要读取地址为01,开关量DO1,DO2的输出状态。

从机(PDM)数据寄存器的地址和数据为:

起始位地址

DO寄存器数据)进制(16

备注

0000

02

DO2输出状态为“1”,DO1输出状态为“0”

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

01

读开关量输出状态

起始BIT位

2

0000

起始BIT位地址为0000

读数据长度

2

0002

读取2路继电器输出状态位

CRC码

2

BDCB

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

01

读开关量输出状态

数据长度

1

01

BIT81个字节(个位)

DO状态数据

1

02

寄存器内容DO

CRC码

2

D049

码由从机计算得到CRC

2.3功能码“03”:

读多路寄存器输入

例如:

主机要读取地址为01,起始地址为0116的3个从机寄存器数据。

从机(PDM)数据寄存器的地址和数据为:

寄存器地址寄存器数据对应PDM电量进制)16(01161784UA

UB01171780

UC

0118

178A

主机发送的报文格式:

主机发送字节数发送的信息备注

从机地址101发送至地址为01的从机

功能码103读取寄存器

起始地址20116起始地址为0116

数据长度30003读取3个寄存器个字节)(共6CRC码2E5F3由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

从机响应字节数返回的信息备注

从机地址101来自从机01

功能码103读取寄存器

读取字1063个寄存器共6个字节

寄存器数据121784地址为0116内存的内容

寄存器数据221780地址为0117内存的内容

寄存器数据32178A地址为0118内存的内容

CRC码25847由从机计算得到CRC码

2.4功能码“05”:

写1路开关量输出(“遥控”)

例1:

开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。

控制命令为:

“FF00”为控制继电器“合”;

“0000”为控制继电器“分”;

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出BIT位

2

0000

对应输出继电器BIT位(DO1)

控制命令

2

FF00

控制该路继电器输出为“合”状态位

CRC码

2

8C3A

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

例2:

开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出BIT位

2

0001

对应输出继电器BIT位(DO2)

控制命令

2

0000

控制该路继电器输出为“合”状态位

CRC码

2

9C0A

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

写单路寄存器2.5功能码“06”

的从机寄存器中去,保存到地址为002C(从机地址码为01)例如:

主机要把数据07D0通讯数据保存结束后,地址为002C的PDM表原存储信息为:

地址原来存储数据进制)16(04B0

002C

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

从机地址

1

01

发送至地址为01的从机

功能码

1

06

写单路寄存器

起始地址

2

002C

要写入的寄存器地址

写入数据

2

07D0

对应的新数据

码CRC

2

4BAF

由主机计算得到的CRC码

PDM)响应返回的报文格式:

从机(

与主机发送的报文格式及数据内容完全相同。

2.6功能码“10”:

写多路寄存器

主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。

Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。

这样PDM的存储器都是二个字节。

由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。

例如:

主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:

地址原来存储数据进制)16(04B0002C

1388

002D

主机发送的报文格式:

主机发送

字节数

发送信息

举例

从机地址

1

01

发送至从机01

功能码

1

10

写多路寄存器

起始地址

2

002C

要写入的寄存器的起始地址

保存数据字长度

2

0002

保存数据的字长度(共2字)

保存数据字节长

1

04

保存数据的字节长度(共4字节)

保存数据1

2

04B0

数据地址002C

保存数据2

2

1388

数据地址002D

CRC码

2

FC63

由主机计算得到的CRC码

从机(PDM)响应返回的报文格式:

从机响应相线电压0169HCAUca011BH0190H0142H011CHIa视在功率0170H0122H0149HVA0197H功率因数PF0123H0171H014AH0198H频率014BHFREQ0199H0124H0172H相有功功率014CH0173HA019AHWA0125H相有功功率0126H014DH019BH0174HWBB相有功功率0127H019CH014EHC0175HWC相无功功率VARA019DH0128H014FHA0176H相无功功率0129H019EH0150H0177HBVARB相无功功率012AH0151H019FH0178HVARCC相视在功率0179H0152H01A0HVAAA012BH相视在功率B017AH012CH0153H01A1HVAB相视在功率VA012DH0154HCC017BH01A2H相功率因数PFA01A3H012EH0155HA017CH相功率因数01A4HPFB012FH0156HB017DH相功率因数01A5HPFCC0130H0157H017EH值0131H0158H相电压017FH01A6HKAKFVa值KB相电压KFVb0132H0159H0180H01A7H值KFK01A8HC相电压Vc0133H015AH0181H值KF相电流KA015BHIa0134H0182H01A9H值相电流01AAH0135H015CH0183HBKIbKF

值K相电流01ABH015DHIcKF0136H0184HC0137H保留0185H015EH01ACH01ADH0186H0138H保留015FH01AEH0187H0160H0139H保留

字节数0143H016AH

字节数0191H

举例相电流A

从机地址

1

01

来自从机01

功能码Ib011DH

1016BH0144H

100192H

写多路寄存器相电流B

起始地址011EHIc

20145H016CH

002C0193H

起始地址为002C相电流C

保存数据字长度In011FH

2016DH0146H

00020194H

保存2个字长度的数据不平衡电流

CRC码W0120HVAR0121H

2016EH0147H016FH0148H

80010195H0196H

由从机计算得到的CRC码有功功率无功功率

三、错误校验码(CRC校验):

主机或从机可用校验码进行判别接收信息是否正确。

由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收),这样增加了系统的安全和效率。

MODBUS通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。

CRC码由发送设备(主机)计算,放置于发送信息帧的尾部。

接收信息的设备(从机)再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错。

在进行CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。

CRC码的计算方法是:

1.预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器;

2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低

8位相异或,把结果放于CRC寄存器;

3.把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查右移后的移出位;

4.如果移出位为0:

重复第3步(再次右移一位);

如果移出位为1:

CRC寄存器与多项式A001(1010000000000001)进行异或;

5.重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;

6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;

7.将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低

字节进行交换;

8.最后得到的CRC寄存器内容即为:

CRC码。

四、通讯错误信息及数据的处理:

当PDM表检测到除了CRC码出错以外的错误时,必须向主机回送信息,功能码的最高位置为1,即从机返送给主机的功能码是在主机发送的功能码的基础上加128。

以下的这些代码表明有意外的错误发生。

PDM从主机接收到的信息如有CRC错误,则将被PDM表忽略。

PDM返送的错误码的格式如下(CRC码除外):

地址码:

1字节

功能码:

1字节(最高位为1)

错误码:

1字节

CRC码:

2字节。

PDM响应回送如下错误码:

81.非法的功能码。

接收到的功能码PDM表不支持。

82.非法的数据位置。

指定的数据位置超出PDM表的范围。

83.非法的数据值。

接收到主机发送的数据值超出PDM相应地址的数据范围。

附录二:

PDM-820/800AC系列通讯数据表(遥测部分)说明:

PDM-8X0AC代表PDM-820AC及PDM-800AC两种产品;

820AC系列包括AC/ACM/ACR三种产品,800AC系列包括AC/ACM两种产品。

瞬时值测量功能常规电量寄存器地址和通讯数据表)PDM-800AC仅有(***

电量注最小值地址瞬时值地址平均值地址备最大值地址相相电压018BH0116H0164H013DHUanA相相电压0165HUbnB0117H018CH013EH相相电压0166H0118HC013FHUcn018DH相线电压0167HUabAB0119H018EH0140H相线电压0141H018FH011AH0168HBCUbc

电量越上限检测标志位(*除PDM-8X0AC外适用)

地址

字节位

1514

131211

10

9

8

7

6543210

电压谐波分量

电流谐波分量REVIMB

01CAH

//

///

//

/A

B

CABC

电压

电流

电量

01CBH

ANBN

CNABBC

ACA

BC

WVARVAPFFQN/

01CCH保留

电量越下限检测标志位(*除PDM-8X0AC外适用)

地址

字节位

1514

13

1211

10

9

8

7

6543210

电压谐波分量

电流谐波分量REVIMB

01CEH

//

///

//

/A

BC

AB

C

电压

电流

电量

01CFH

ANBN

CNABBC

ACA

BC

N/WVARVAPFFQ

保留01D0H

注:

地址01CAH-01CFH寄存器内为上、下限标志位,位为1表示超过(上限)

或低于(下限),位为0表示没有超限。

继电器1状态输出标志位(*除PDM-8X0AC外适用)

地址

字节位

14

15

13

1211

109

87

6540321

状态

电压谐波分量

电流谐波分量REVIMB

01DAH

//

///

/ON

LKA

B

C

ABC

01DBH

ANBN

电压CNABBC

ACA

电流BC

电量/NWVARVAPFFQ

01DCH保留

继电器2状态输出标志位(*除PDM-8X0AC外适用)

地址

字节位

1514

1213

11

109

8

7

6543210

状态

电压谐波分量

电流谐波分量REVIMB

01DEH

//

///

/ON

LKA

CABB

C

01DFH

ANBN

电压CNABBC

ACA

电流BC

电量VARW/VAPFFQN

01E0H保留

注:

地址01DAH-01E0H寄存器内为继电器1和2的状态位,状态位ON位为1表

示继电器动作,为0没有触发,状态位LK:

为1表示继电器闭锁,为0没有闭锁。

则没有触发继电器动作。

0表示相关电量值触发继电器动作,为1其他位:

电能量寄存器地址和通讯数据表3位为小数位码总长度为16位,后电能量是以ASCII码的方式存储的,转换为BCD30303030353434323330313032323638”如:

+WH读取值为“

544230102.268”+WH实际值为“

正向有功电能量正向无功电能量

电+WH

地址

01B2H(高位)0+VARH

001BAH(高位)

+WH

01B3H

1

+VARH

01BBH

1

+WH

01B4H2

+VARH

201BCH

+WH

01B5H

3

+VARH

01BDH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1