PND系列485通信规约ModBus0321分析.docx

上传人:b****7 文档编号:23966531 上传时间:2023-05-23 格式:DOCX 页数:19 大小:68.86KB
下载 相关 举报
PND系列485通信规约ModBus0321分析.docx_第1页
第1页 / 共19页
PND系列485通信规约ModBus0321分析.docx_第2页
第2页 / 共19页
PND系列485通信规约ModBus0321分析.docx_第3页
第3页 / 共19页
PND系列485通信规约ModBus0321分析.docx_第4页
第4页 / 共19页
PND系列485通信规约ModBus0321分析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

PND系列485通信规约ModBus0321分析.docx

《PND系列485通信规约ModBus0321分析.docx》由会员分享,可在线阅读,更多相关《PND系列485通信规约ModBus0321分析.docx(19页珍藏版)》请在冰豆网上搜索。

PND系列485通信规约ModBus0321分析.docx

PND系列485通信规约ModBus0321分析

PND系列保护测控装置

 

通信规约

南京禾东电力科技有限公司

2012-8

*南京禾东电力科技有限公司对该说明书有可能修改,请注意版本更新!

版权所有,未经本公司之书面许可,本手册中任何段落、章节内容均不得被摘抄、拷贝或以任何形式复制与传播,否则一切后果由违者承担。

本公司保留一切法律权利。

注意CAUTION:

◆该装置必须有专业人员进行安装与检修

◆在对该装置进行任何内部或外部操作前、必须切断输入信号和电源;

◆始终使用合适的电压检测装置来确定仪表各部位无电压

◆提供给该装置的电参数需在额定范围内

下述情况会导致装置损坏或装置工作的异常:

◆辅助电源电压超范围

◆配电系统频率超范围

◆电流或电压输入极性不正确

◆带电拨通信插头

◆未按要求连接端子连线

目录

5.通讯规约1

5.1.规约简述1

5.2.通讯举例说明2

5.3.通讯地址表7

5.4数据转换13

5.通讯规约

5.1.规约简述

Modbus通讯规约被广泛的作为系统集成的标准。

当通讯命令发送至仪器时,符合相应地址码的设备接收通讯命令,读取信息,如果没有出错则执行相应的任务,然后把执行结果返送给发送者;如果出错则返送错误报告信息(CRC16校验码出错则不返送任何信息)或者不返送任何信息。

其通讯数据帧格式如下:

地址码

功能码

数据区

校验码

8位

8位

N×8位

16位CRC

地址码:

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

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

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

当从机回送信息时,相应的地址码表明该信息来自于相应地址的从机。

功能码:

主机发送的功能码告诉从机执行怎么样的任务,从机的功能码则表明从机响应主机相应任务进行了操作。

Modbus通讯规约定义的功能码为01H到7FH,多功能电力仪表使用了其中一部分功能码。

下表列出了所用到的功能码的具体含义及操作。

代码(Hex)

含义

操作

01H

读状态量输出

读取一路或多路开关量输出状态数据(遥控)

02H

读开关量输入

读取一路或多路开关量状态输入数(遥信)

03H

读取数据

读取指定寄存器开始的一个或多个数据

05H

写开关量输出

控制一路继电器“合/分”输出,遥控

06H

写单个寄存器

把设置的单个数值写入指定的寄存器

10H

写多个寄存器

把设置的多个数值写入指定的寄存器

22H

时钟对时广播

把设置的时间值写入网络内的从机

注:

如果从机发送的功能码的最高位是1(功能码>127),则表明从机没有响应操作或发送出错。

数据区:

数据区是根据不同的功能码而不同。

数据区可以是实际数值,设置点,主机发送给从机或从机发送给主机的地址。

数据区包含需要从机执行什么动作或由从机采集的返送信息,这些信息可以是数值、参考地址等等。

例如,功能码告诉从机读取寄存器的值,则数据区必须包含要读取的寄存器的起始地址及读取长度。

如果功能码告诉从机设置某些连续寄存器的值,则数据区还要包含这些数值。

对于不同的从机,地址和数据信息可能都不相同。

校验码:

校验码可用于主机或从机判断接受信息是否出错。

有时由于电子噪音或其它一些干扰,信息在传输过程中会发生细微的变化,这时自己根据信息计算所得的检验码与信息中包含的校验码就会不一致,从而判断接受信息出错。

校验码保证了主机或从机对在传送中出错的信息不起作用,增加了系统的安全和效率。

校验码采用CRC-16校验方法。

计算CRC码的步骤为:

(1).预置16位寄存器为FFFFH。

称此寄存器为CRC寄存器;

(2).把第一个8位数据与CRC寄存器的低位相异或,把结果放于CRC寄存器;

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

(4).如果最低位为0:

重复第3步(再次移位)如果最低位为1:

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

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

(6).重复步骤2到步骤5,进行下一个8位数据的处理;

(7).最后得到的CRC寄存器即为CRC码。

(CRC码=CRC_L+CRC_H)

出错返送:

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

从机返送的错误码的格式如下:

地址码:

1字节

功能码:

1字节(最高位为1)

错误码:

1字节

CRC码:

2字节

响应回送如下出错命令。

81–非法的数据

5.2.通讯举例说明

5.2.1功能码“01”:

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

例如:

主机要读取地址为01,输出状态量OUT1,OUT2的输出状态。

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

起始位地址

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码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

01

读开关量输出状态

数据长度

1

01

1个字节(8个BIT位)

OUT状态数据

1

02

OUT寄存器内容bit0对应OUT1

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

CRC码

2

D049

由XXX1仪表计算得到CRC码

5.2.2功能码“02”:

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

例如:

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

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

起始DI地址

DI寄存器数据(16进制)

备注

0000

0B

IN1/IN2/IN4状态为“1”,DI3状态为“0”

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

02

读开关量输入状态

起始BIT位

2

0000

起始BIT位地址为0000

读数据长度

2

0004

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

CRC码

2

79C9

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

02

读开关量输入状态

数据长度

1

05

1个字节(8个BIT位)

DI状态数据

1

DI0

1个字节(8个BIT位)

BIT0~BIT7:

分别对应外部开入1至外部开入8

DI状态数据

1

DI1

BIT0~BIT3:

分别对应外部开入9至外部开入12

BIT4:

控制回路断线;BIT5:

PT断线

EVT状态数据

1

EVT0

对应保护事件表,按顺序排列(见下表)

EVT状态数据

1

EVT1

对应保护事件表,按顺序排列(见下表)

EVT状态数据

1

EVT2

对应保护事件表,按顺序排列(见下表)

CRC码

2

E04F

由XXX1保护计算得到CRC码

PND3204遥信回码报文举例

0102050030000000AD52:

控制回路断线,PT断线

保护事件表(PND3101线路保护测控装置)

事件代码

名称

事件代码

名称

EVT0BIT0

电流Ⅰ段动作

EVT1BIT6

保护启动

EVT0BIT1

电流Ⅱ段动作

EVT1BIT7

低压解列

EVT0BIT2

电流Ⅲ段动作

EVT2BIT0

准同期合闸动作

EVT0BIT3

零流Ⅰ段动作

EVT2BIT1

二次重合闸动作

EVT0BIT4

零流Ⅱ段动作

EVT2BIT2

事件结束号

EVT0BIT5

零流Ⅲ段动作

20

EVT0BIT6

重合闸动作

21

EVT0BIT7

低周动作

22

EVT1BIT0

过负荷动作

23

EVT1BIT1

开关不跳闸

24

EVT1BIT2

电流反时限动作

25

EVT1BIT3

零序反时限动作

26

EVT1BIT4

电流加速段动作

27

EVT1BIT5

零流加速段动作

28

保护事件表(PND3204厂用变压器)

事件代码

名称

事件代码

名称

EVT0BIT0

电流Ⅰ段动作

EVT1BIT6

保护启动

EVT0BIT1

电流Ⅱ段动作

EVT1BIT7

低电压动作

EVT0BIT2

电流Ⅲ段动作

EVT2BIT0

准同期合闸动作

EVT0BIT3

零流Ⅰ段动作

EVT2BIT1

二次重合闸动作

EVT0BIT4

零流Ⅱ段动作

EVT2BIT2

低侧零流Ⅰ段动作

EVT0BIT5

零流Ⅲ段动作

EVT2BIT3

低侧零流Ⅱ段动作

EVT0BIT6

重合闸动作

EVT2BIT4

低侧零流Ⅲ段动作

EVT0BIT7

低周动作

EVT2BIT5

低侧零序反时限动作

EVT1BIT0

过负荷动作

EVT2zBIT6

事件结束号

EVT1BIT1

开关不跳闸

24

EVT1BIT2

电流反时限动作

25

EVT1BIT3

零序反时限动作

26

EVT1BIT4

电流加速段动作

27

EVT1BIT5

零流加速段动作

28

保护事件表(PND3904PT保护装置)

事件代码

名称

事件代码

名称

EVT0BIT0

IPT过压I段

EVT1BIT6

保护启动

EVT0BIT1

IPT过压II段

EVT1BIT7

低压解列

EVT0BIT2

IPT低压I段

EVT2BIT0

准同期合闸动作

EVT0BIT3

IIPT低压II段

EVT2BIT1

二次重合闸动作

EVT0BIT4

IIPT零序过压

EVT2BIT2

事件结束号

EVT0BIT5

零流Ⅲ段动作

20

EVT0BIT6

IIPT过压I段

21

EVT0BIT7

低周动作

22

EVT1BIT0

IPT零序过压

23

EVT1BIT1

开关不跳闸

24

EVT1BIT2

IPT低压I段

25

EVT1BIT3

零序反时限动作

26

EVT1BIT4

IIPT过压II段

27

EVT1BIT5

IIPT低压I段

28

5.2.3功能码“03”:

读多路寄存器输入

XXX1一次最多允许读取64个数据寄存器.

例如:

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

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

寄存器地址

寄存器数据(16进制)

对应XXX1电量

000H

03E9

UAA相电压

001H

03E8

UBB相电压

002H

03E7

UCC相电压

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

03

读取寄存器

起始地址

2

0000

起始地址为0000

数据长度

3

000A

读取10个寄存器(共20个字节)

CRC码

2

C5CD

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

03

读取寄存器

返回字节数

1

0X14

10个寄存器共20个字节

寄存器数据1

2

03E9

测量A相电流(系数4096/6=682.67)

寄存器数据2

2

03E8

测量B相电流(系数4096/6=682.67)

寄存器数据3

2

03E7

测量C相电流(系数4096/6=682.67)

寄存器数据4

2

03E7

测量A相电压(系数4096/120=34.13)

寄存器数据5

2

03E7

测量B相电压(系数4096/120=34.13)

寄存器数据6

2

03E7

测量C相电压(系数4096/120=34.13)

寄存器数据7

2

03E7

有功P(系数4096/(120*6*3)=1.896)

寄存器数据8

2

03E7

无功Q(系数4096/(120*6*3)=1.896)

寄存器数据9

2

03E7

功率因数Cos(系数4096/

(1)=4096)

寄存器数据10

2

03E7

频率FCos(4096/(64)=64)

CRC码

2

BC5B

由XXX1仪表计算得到CRC码

注:

测量数据最高位为符号位

PND31012204遥测回码报文举例,电压50V,电流5A

010314540D0000550DA906A906AB06C612D004FD17800C43C300

PND3904遥测回码报文举例电压50V

01031CAA06AA06AA06D60ADA0ADD0A0100AA06AA06AA06D70AD40AE30A0000D700007E22,

5.2.4功能码“05”:

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

例1:

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

控制命令为:

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

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

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出BIT位

2

0000

对应输出继电器BIT0位(OUT1)

控制命令

2

FF00

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

CRC码

2

8C3A

由主机计算得到CRC码

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

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

例2:

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

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出BIT1位

2

0001

对应输出继电器BIT1位(OUT2)

控制命令

2

0000

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

CRC码

2

9C0A

由主机计算得到CRC码

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

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

5.2.5功能码“06”:

写单路寄存器

例如:

主机要把数据0x0064,保存到地址为CCH的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,寄存器地址为CCH的XXX1表原存储信息为:

寄存器地址

原来存储数据(16进制)

CCH

0x0064

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

从机地址

1

01

发送至地址为01的从机

功能码

1

06

写单路寄存器

起始地址

2

00CC

要写入的寄存器地址

写入数据

2

0064

对应的新数据

CRC码

2

481E

由主机计算得到的CRC码

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

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

5.2.6功能码“10”:

写多路寄存器

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

Modbus通讯规约中的寄存器指的是16位(即2字节)。

这样从机存储器都是二个字节。

XXX1一次最多允许保存25个数据寄存器。

例如:

主机要把3344,1122保存到地址为0020,0021的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为0020/0021的表内存储信息为:

地址

原来存储数据(16进制)

0020

3344

0021

1122

主机发送的报文格式:

主机发送

字节数

发送信息

举例

从机地址

1

01

发送至从机01

功能码

1

10

写多路寄存器

起始地址

2

0020

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

保存数据字长度

2

0002

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

保存数据字节长

1

04

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

保存数据1

2

3344

数据地址0020

保存数据2

2

1122

数据地址0021

CRC码

2

32AF

由主机计算得到的CRC码

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

从机响应

字节数

字节数

举例

从机地址

1

01

来自从机01

功能码

1

10

写多路寄存器

起始地址

2

0020

起始地址为001C

保存数据字长度

2

0002

保存2个字长度的数据

CRC码

2

4002

由从机计算得到的CRC码

5.2.7功能码“16”:

时钟对时

例如:

主机要把时间数据2008年10月31日星期513时54分30秒对从机网络进行对时。

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

广播地址

1

01

地址01

功能码

1

0X16

时钟对时

数据长度

2

0007

广播数据的长度字节

广播数据1

2

2008

广播数据2

2

0010

广播数据3

2

0031

广播数据4

2

0005

星期(1~7)

广播数据5

2

0013

广播数据6

2

0054

广播数据7

2

0030

CRC码

2

2B80

由主机计算得到的CRC码

注:

时间数据为BCD码

从机(XXX1)不返回报文。

5.3.通讯地址表

5.3.101功能码读取1路或多路开关量输出状态:

05功能码执行1路开关量输出:

系统参数

地址

项目

00H

YK1

01H

YK2

5.3.202功能码读取1路或多路开关量输入状态:

系统参数

地址

项目

00H

IN1

01H

IN2

02H

IN3

03H

IN4

5.3.303功能码读取遥测量

基本电量

地址

项目3201

项目3204

项目3904

000H(00)

测量A相电流

测量A相电流

1Ua

001H(01)

测量B相电流

测量B相电流

1Ub

002H(02)

测量C相电流

测量C相电流

1Uc

003H(03)

测量A相电压

测量A相电压

1Uab

004H(04)

测量B相电压

测量B相电压

1Ubc

005H(05)

测量C相电压

测量C相电压

1Uca

006H(06)

P有功

P有功

1Uo

007H(07)

Q无功

Q无功

2Ua

008H(08)

Cos功率因数

Cos功率因数

2Ub

009H(09)

F频率

F频率

2Uc

00AH(10)

2Uab

00BH(11)

2Ubc

00CH(12)

2Uca

00DH(13)

2Uo

00EH(14)

00FH(15)

010H(16)

011H(17)

012H(18)

013H(19)

014H(20)

1、Rx:

通过通讯读取的寄存器内容(读值);

2、PT:

电压互感器一次/二次值;

CT:

电流互感器一次/二次值;

三相总功率,电能数据采用32位,即四字节(2个字)格式;

其余电量数据采用16位,即二字节(1个字)格式;

所有读值均为16进制码,按上表计算后才能得到相应的工程量;

电压、电流、频率、视在功率、电能、为无符号数;

功率因数、有功功率、无功功率为有符号数,读值(Rx)的最高位(Bit)为1时为负数,应取补码(所有位取反加1)。

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

当前位置:首页 > 经管营销 > 经济市场

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

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