PS690UModBus通讯规约201.docx

上传人:b****5 文档编号:12388779 上传时间:2023-04-18 格式:DOCX 页数:18 大小:22.39KB
下载 相关 举报
PS690UModBus通讯规约201.docx_第1页
第1页 / 共18页
PS690UModBus通讯规约201.docx_第2页
第2页 / 共18页
PS690UModBus通讯规约201.docx_第3页
第3页 / 共18页
PS690UModBus通讯规约201.docx_第4页
第4页 / 共18页
PS690UModBus通讯规约201.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

PS690UModBus通讯规约201.docx

《PS690UModBus通讯规约201.docx》由会员分享,可在线阅读,更多相关《PS690UModBus通讯规约201.docx(18页珍藏版)》请在冰豆网上搜索。

PS690UModBus通讯规约201.docx

PS690UModBus通讯规约201

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

PS690U系列测控保护装置:

ModBus网络只有一个主机,所有通信都由他发出。

网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所通信设备决定。

采样这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。

PS690U系列测控保护装置提供了标准的RS-485通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。

通讯数据的类型及格式:

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

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

字格式(串行数据)

11位二进制

起始位

1位

数据位

8位

奇偶校验位

1位:

有奇偶校验位/无:

无奇偶校验位

停止位

1位:

有奇偶校验位/2位:

无奇偶校验位

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

数据格式:

地址码

功能码

数据区

错误校检

数据长度:

1字节

1字节

N字节

16位CRC码(冗余循环码)

★注:

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

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

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

一、通讯信息传输过程:

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

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

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

1.1地址码:

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

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

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

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

主机

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

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

主机广播地址码为0。

1.2功能码:

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

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

PS690U系列测控保护装置仅用到其中的一部分功能码。

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

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

表1.1PS690U支持的MODBUS部分功能码

功能码

名称

作用

0x01

读取线圈状态

取得一组逻辑线圈的当前状态(ON/OFF)

0x02

读取输入状态

取得一组开关输入的当前状态(ON/OFF)

0x03

读取保持寄存器

在一个或多个保持寄存器中取得当前的二进制值

0x04

读取输入寄存器

在一个或多个输入寄存器中取得当前的二进制值

0x05

强置单线圈

强置一个逻辑线圈的通断状态

0x06

预置单寄存器

把具体二进制值装入一个保持寄存器

0x10

预置多寄存器

把具体二进制值装入一串连续的保持寄存器

表1.2MODBUS功能码与数据类型对应表

功能码

功能

数据类型

0x01

0x02

0x03

整型、字符型、状态字、浮点型

0x04

整型、状态字、浮点型

0x05

0x06

整型、字符型、状态字、浮点型

0x10

整型、字符型、状态字、浮点型

表1.3MODBUS部分功能码与PS690U数据抽象表

功能码

名称

PS690U抽象体

0x01

读取线圈状态

对应装置复归及遥控开关状态

0x02

读取输入状态

对应装置的遥信、告警遥信、保护动作元件

0x03

读取保持寄存器

对应装置的时间、区号、定值、压板

0x04

读取输入寄存器

对应装置的遥测量、电度量

0x05

强置单线圈

对应装置的复归及遥控开关

0x06

预置单寄存器

对应装置的时间、区号、定值、压板

0x10

预置多寄存器

对应装置的时间、区号、定值、压板

 1.3数据区:

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

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

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

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

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

690U系列测控保护装置采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03或04),可以任意读取其数据寄存器(其数据信息表详见附带的Excel文件)。

PS690U系列测控保护装置的数据寄存器存储的量多达上百个(如:

电流、电压、功率、定值、软压板、时间等),并且都是16位(2字节)的二进制数据,并且高位在前。

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

数据区的数据都是两个字节,并且高位在前。

二、MODBUS功能码简介

2.1功能码“02”:

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

例如:

主机要读取地址为01,起始地址为0x0000,开关量DI0~DI29的输入状态。

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

01

读开关量输出状态

起始BIT位

2

0000

起始BIT位地址为0000

读数据长度

2

001E

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

CRC码

2

BC02

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

01

读开关量输入状态

数据长度

1

04

4个字节(32个BIT位)

数据1

1

CD

DI7-DI0

数据2

1

6B

DI15-DI8

数据3

1

B2

DI23-DI16

数据4

1

0E

DI29-DI24(空缺高位补零)

CRC码

2

41C5

由从机计算得到CRC码

2.2功能码“01”:

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

例如:

主机要读取地址为01,起始地址为0x0000,开关量DO0~DO29的输出状态。

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

01

读开关量输出状态

起始BIT位

2

0000

起始BIT位地址为0000

读数据长度

2

001E

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

CRC码

2

BC02

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

01

读开关量输出状态

数据长度

1

04

4个字节(32个BIT位)

数据1

1

CD

DO7-DO0

数据2

1

6B

DO15-DO8

数据3

1

B2

DO23-DO16

数据4

1

0E

DO29-DO24(空缺高位补零)

CRC码

2

41C5

由从机计算得到CRC码

2.3功能码“03”或“04”:

读保持寄存器或输入寄存器数据

例如:

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

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

寄存器地址

寄存器数据(16进制)

对应PS690U电量

0000

1784

线电压Uab

0001

1780

线电压Ubc

0002

178A

线电压Uca

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

04

读取输入寄存器

起始地址

2

0000

起始地址为0116

读数据长度

2

0003

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

CRC码

2

B00B

由主机计算得到CRC码

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

 

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

04

读取输入寄存器

读取字

1

06

3个寄存器共6个字节

寄存器数据1

2

1784

地址为0116内存的内容

寄存器数据2

2

1780

地址为0117内存的内容

寄存器数据3

2

178A

地址为0118内存的内容

CRC码

2

19A1

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

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

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

例2:

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

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出BIT位

2

0001

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

控制命令

2

0000

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

CRC码

2

9C0A

由主机计算得到CRC码

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

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

2.5功能码“06”:

写单路保持寄存器

例如:

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

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

地址

原来存储数据(16进制)

0005

04B0

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

从机地址

1

01

发送至地址为01的从机

功能码

1

06

写单路寄存器

起始地址

2

0005

要写入的寄存器地址

写入数据

2

07D0

对应的新数据

CRC码

2

9A67

由主机计算得到的CRC码

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

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

2.6功能码“10”:

写多路保持寄存器

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

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

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

由于PS690U的保持寄存器(含时间、区号、定值、压板等)由多种类型的数据组成,因此一次只允许预置同种类型的多路数据寄存器。

例如:

主机要把044C,09C4保存到地址为0005,0006的从机寄存器中去(从机地址码为01)。

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

地址

原来存储数据(16进制)

0005

04B0

0006

1388

主机发送的报文格式:

主机发送

字节数

发送信息

举例

从机地址

1

01

发送至从机01

功能码

1

10

写多路保持寄存器

起始地址

2

0005

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

保存数据字长度

2

0002

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

保存数据字节长

1

04

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

保存数据1

2

044C

数据地址0005

保存数据2

2

09C4

数据地址0006

CRC码

2

F4B4

由主机计算得到的CRC码

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

从机响应

字节数

字节数

举例

从机地址

1

01

来自从机01

功能码

1

10

写多路寄存器

起始地址

2

0005

起始地址为0005

保存数据字长度

2

0002

保存2个字长度的数据

CRC码

2

51C9

由从机计算得到的CRC码

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

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

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

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

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

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

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

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

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

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

PS690U从主机接收到的信息如有CRC错误,则将被PS690U测控保护装置忽略。

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

地址码:

1字节

功能码:

1字节(最高位为1)

错误码:

1字节

CRC码:

2字节。

 

PS690U响应回送如下错误码:

错误码

内容

备注

1

非法的功能码

2

非法的数据地址

3

非法的数据值

4

从机执行失败

5

确认

需要长时间才能执行完毕,防止主机超时

6

从机设备忙

7

否定确认

8

从机读内存奇偶错

 

附录A:

PS690U各寄存器的起始地址及分类

A.1PS690U各寄存器的起始地址

PS690U的DI、DO、AI、AO的起始地址均为0x0000。

A.2开关量输入状态DI表分类

序号

名称

读权

写权

备注

1

SOE事件位序列

Y

N

e.g.《速断动作》位,数量因工程而定

2

COS事件位序列

Y

N

e.g.《AD自检》位,数量因工程而定

A.3开关量输出状态DO表分类

序号

名称

读权

写权

备注

1

远方复归

Y

Y

该类开出只有一个数据地址

2

遥控输出

Y

Y

每路开关量输出占一个数据地址

A.4输入寄存器数据AI表分类

序号

名称

读权

写权

备注

1

遥测量

Y

N

e.g.《A相电流Ia》,数量因工程而定

2

电度量

Y

N

e.g.《有功电度》,数量因工程而定

遥测值=寄存器值*工程量程/物理量程=寄存器值*系数

遥测寄存器值必须要用数据类型short截数,e.g.(0xE50x75)=-6795;而非58741。

乘系数后的测量值为:

-6795*1000/30000=-6795*0.0333333334=-226.5

电度值=(有符号电度寄存器值高16位*65535+无符号电度寄存器值低16位)*系数;即电度值是由2个数据寄存器组成。

由两个电度寄存器值组成的电度必须要用数据类型int截数,e.g.(0xE50x75)高16位;(0xE60x75)低16位,合成后(0xE50x750xE60x75)=-6795*65535+58997=-445258123,乘系数0.001后的实际电度值为:

-445258.123

对于PS690U系列测控保护传送的值均为系统二次侧的值,要得到一次侧的值必须要在主站上乘于CT或PT的系数。

A.5保持寄存器数据AO表分类

序号

名称

读权

写权

备注

1

对时

Y

Y

时间寄存器数必须为4个

2

定值区号

Y

Y

只有一个数据地址,区号范围:

[1,10]

3

当前区号对应定值

Y

Y

e.g.《速断定值》,数量因工程而定

4

软压板

Y

Y

e.g.《过负荷压板》,数量因工程而定

A.6时间寄存器的格式

数据地址

名称

举例:

2003、04、1110:

17:

23446ms

0x0000

年高、低字节

0x07D3

0x0001

月、日

0x040B

0x0002

时、分

0x0A11

0x0003

毫秒高、低字节

0x5B96

附录B:

PS690U报文举例

B.1读遥测及电度量的数据帧

e.g.50个寄存器数据其中26个属遥测、24个属电度

TX:

01040000001931C0

RX:

01043200000000000000010003000300000000000000000000000061A8FFFFFFFF00000001FFFFFFFEFFFFFFFF00000001FFFFFFFE3EAD

前26个遥测寄存器数据拼凑成13个遥测量分别为:

0、0、0、1、3、3、0、0、0、0、0、0、25000

前24个电度寄存器数据拼凑成6个电度量分别为:

-1、1、-2、-1、1、-2

B.2读开入量、告警遥信及保护动作元件数据帧

e.g.34个遥测点,其值都为0

TX:

010200000022F813

RX:

0102050000000000A252

B.3读定值区号的数据帧

定值区号的数据地址为0x0004。

TX:

010300040001C5CB

RX:

01030200017984

B.4读当前运行区号对应定值的数据帧

定值的数据地址为0x0005。

TX:

010300050002D40A

RX:

010304044C09C43D17

B.5读压板的数据帧

软压板的起始数据地址与定值个数有关,其起始地址为0x0005+定值个数;若PS690U装置有13个定值,则压板起始数据的种子为:

0x0012

TX:

010300120002640E

RX:

010304000000013BF3

B.6远方复归数据帧

远方复归的数据地址为0x0000。

TX:

01050000FF008C3A

RX:

01050000FF008C3A

B.7遥控数据帧

遥控第一路开关的数据地址为0x0001。

控合第一路开关:

TX:

01050001FF00DDFA

RX:

01050001FF00DDFA

控分第一路开关:

TX:

0105000100009C0A

RX:

0105000100009C0A

B.8对时数据帧

时间的起始数据地址为0x0000,数据寄存器数必须为4

e.g.2003/04/1110:

17:

23446ms

TX:

0110000000040807D3040B0A115B965997

RX:

011000000004C1CA

B.9切换定值区号数据帧

定值区号的数据地址为0x0004。

TX:

01060004000109CB

RX:

01060004000109CB

TX:

0110000400010200016614

RX:

0110000400014008

B.10写定值数据帧

定值的起始数据地址为0x0005。

TX:

0106000507D09A67

RX:

0106000507D09A67

TX:

01100005000204044C09C4F4B4

RX:

01100005000251C9

B.11写压板数据帧

软压板的起始数据地址与定值个数有关,其起始地址为0x0005+定值个数;若PS690U装置有13个定值,则压板起始数据的种子为:

0x0012

TX:

010600120001E80F

RX:

010600120001E80F

TX:

0110001200020400000001B2BA

RX:

011000120002E1CD

备注:

软压板的起始数据地址在每个型号的装置中的值可能会不同。

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

当前位置:首页 > IT计算机 > 计算机软件及应用

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

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