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

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

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

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

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位的字格式:

字格式(串行数据)

11位二进制

起始位

1位

数据位

8位

奇偶校验位

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

起始BIT位地址为0000

读数据长度

2

0004

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

CRC码

2

79C9

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

02

读开关量输入状态

数据长度

1

01

1个字节(8个BIT位)

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

1个字节(8个BIT位)

DO状态数据

1

02

DO寄存器内容

CRC码

2

D049

由从机计算得到CRC码

2.3功能码“03”:

读多路寄存器输入

例如:

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

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

寄存器地址

寄存器数据(16进制)

对应PDM电量

0116

1784

UA

0117

1780

UB

0118

178A

UC

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

03

读取寄存器

起始地址

2

0116

起始地址为0116

数据长度

3

0003

读取3个寄存器(共6个字节)

CRC码

2

E5F3

由主机计算得到CRC码

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

 

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

03

读取寄存器

读取字

1

06

3个寄存器共6个字节

寄存器数据1

2

1784

地址为0116内存的内容

寄存器数据2

2

1780

地址为0117内存的内容

寄存器数据3

2

178A

地址为0118内存的内容

CRC码

2

5847

由从机计算得到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”:

写单路寄存器

例如:

主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。

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

地址

原来存储数据(16进制)

002C

04B0

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

从机地址

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进制)

002C

04B0

002D

1388

主机发送的报文格式:

主机发送

字节数

发送信息

举例

从机地址

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)响应返回的报文格式:

从机响应

字节数

字节数

举例

从机地址

1

01

来自从机01

功能码

1

10

写多路寄存器

起始地址

2

002C

起始地址为002C

保存数据字长度

2

0002

保存2个字长度的数据

CRC码

2

8001

由从机计算得到的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仅有瞬时值测量功能)

电量

瞬时值地址

平均值地址

最大值地址

最小值地址

备注

Uan

0116H

013DH

0164H

018BH

A相相电压

Ubn

0117H

013EH

0165H

018CH

B相相电压

Ucn

0118H

013FH

0166H

018DH

C相相电压

Uab

0119H

0140H

0167H

018EH

AB相线电压

Ubc

011AH

0141H

0168H

018FH

BC相线电压

Uca

011BH

0142H

0169H

0190H

CA相线电压

Ia

011CH

0143H

016AH

0191H

A相电流

Ib

011DH

0144H

016BH

0192H

B相电流

Ic

011EH

0145H

016CH

0193H

C相电流

In

011FH

0146H

016DH

0194H

不平衡电流

W

0120H

0147H

016EH

0195H

有功功率

VAR

0121H

0148H

016FH

0196H

无功功率

VA

0122H

0149H

0170H

0197H

视在功率

PF

0123H

014AH

0171H

0198H

功率因数

FREQ

0124H

014BH

0172H

0199H

频率

WA

0125H

014CH

0173H

019AH

A相有功功率

WB

0126H

014DH

0174H

019BH

B相有功功率

WC

0127H

014EH

0175H

019CH

C相有功功率

VARA

0128H

014FH

0176H

019DH

A相无功功率

VARB

0129H

0150H

0177H

019EH

B相无功功率

VARC

012AH

0151H

0178H

019FH

C相无功功率

VAA

012BH

0152H

0179H

01A0H

A相视在功率

VAB

012CH

0153H

017AH

01A1H

B相视在功率

VAC

012DH

0154H

017BH

01A2H

C相视在功率

PFA

012EH

0155H

017CH

01A3H

A相功率因数

PFB

012FH

0156H

017DH

01A4H

B相功率因数

PFC

0130H

0157H

017EH

01A5H

C相功率因数

KFVa

0131H

0158H

017FH

01A6H

A相电压K值

KFVb

0132H

0159H

0180H

01A7H

B相电压K值

KFVc

0133H

015AH

0181H

01A8H

C相电压K值

KFIa

0134H

015BH

0182H

01A9H

A相电流K值

KFIb

0135H

015CH

0183H

01AAH

B相电流K值

KFIc

0136H

015DH

0184H

01ABH

C相电流K值

保留

0137H

015EH

0185H

01ACH

 

保留

0138H

015FH

0186H

01ADH

 

保留

0139H

0160H

0187H

01AEH

 

 

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

地址

字节位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

电压谐波分量

电流谐波分量

REV

IMB

01CAH

A

B

C

A

B

C

 

 

电压

电流

电量

01CBH

AN

BN

CN

AB

BC

CA

A

B

C

N

W

VAR

VA

PF

FQ

01CCH

保留

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

地址

字节位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

电压谐波分量

电流谐波分量

REV

IMB

01CEH

A

B

C

A

B

C

 

 

电压

电流

电量

01CFH

AN

BN

CN

AB

BC

CA

A

B

C

N

W

VAR

VA

PF

FQ

01D0H

保留

注:

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

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

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

地址

字节位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

状态

电压谐波分量

电流谐波分量

REV

IMB

01DAH

ON

LK

A

B

C

A

B

C

 

 

电压

电流

电量

01DBH

AN

BN

CN

AB

BC

CA

A

B

C

N

W

VAR

VA

PF

FQ

01DCH

保留

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

地址

字节位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

状态

电压谐波分量

电流谐波分量

REV

IMB

01DEH

ON

LK

A

B

C

A

B

C

 

 

电压

电流

电量

01DFH

AN

BN

CN

AB

BC

CA

A

B

C

N

W

VAR

VA

PF

FQ

01E0H

保留

注:

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

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

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

其他位:

为1表示相关电量值触发继电器动作,为0则没有触发继电器动作。

电能量寄存器地址和通讯数据表

电能量是以ASCII码的方

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

当前位置:首页 > 工作范文 > 行政公文

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

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