Modbus协议和点表.docx

上传人:b****0 文档编号:409279 上传时间:2022-10-09 格式:DOCX 页数:399 大小:252.74KB
下载 相关 举报
Modbus协议和点表.docx_第1页
第1页 / 共399页
Modbus协议和点表.docx_第2页
第2页 / 共399页
Modbus协议和点表.docx_第3页
第3页 / 共399页
Modbus协议和点表.docx_第4页
第4页 / 共399页
Modbus协议和点表.docx_第5页
第5页 / 共399页
点击查看更多>>
下载资源
资源描述

Modbus协议和点表.docx

《Modbus协议和点表.docx》由会员分享,可在线阅读,更多相关《Modbus协议和点表.docx(399页珍藏版)》请在冰豆网上搜索。

Modbus协议和点表.docx

Modbus协议和点表

公司Modbus通讯协议部分功能码描述

本通讯协议描述了公司GZDW直流屏监控系统在ModbusRTU通讯模式下的信息传输,输入输出命令格式和数据地址的定义,以方便第三方使用和开发,保证信息和数据在上位监控计算机和公司直流屏系统之间有效的传输。

1•物理接口:

1.1串行通讯口采用RS485方式。

1.2信息传输方式采用半双工异步方式,起始位1位,数据位8位,无校验,停止位1位。

1.3数据传输速率为9600bps(默认),存在选项.

1.4在现场总线设备中,GZDW直流屏通讯口作从站.

2.本通讯转换器支持的MODBUSRTU通讯帧结构解释:

符合标准ModbusRTU通讯协议格式

每个Modbus通讯帧由以下几个部分组成:

1)地址域

2)功能域

3)数据域

4)校验域数据发送顺序:

地址域(1Byte)功能域(1Byte)

数据域(NByte)

校验域(2Byte)

2.1地址域

ModbusRTU从站地址域为一个字节,公司直流屏系统地址固定为0x03,其响应网络数据帧中地址

域数据与自身地址相等的数据信息命令。

2.2功能码域

ModbusRTU通讯协议中功能码域包括一个字节,有关本公司直流系统功能码参见下表

功能码

含义

功能描述

0x01

读取开关量输出

读取公司直流系统内一个或多个继电器(实际输出)

0x02

读取开关量输入

读取公司直流系统内一个或多个开关输入状态

0x03

读取寄存器

读取公司直流系统内一个或多个寄存器值

0x04

读取输入寄存器

读取公司直流系统内一个或多个变量

0x05

写单个线圈

设定公司直流系统内单个实际输出

0x10

设置寄存器

设置公司直流系统内一个或多个寄存器值

2.3数据域

ModbusRTU通讯协议数据域长度不定,视具体情况而定.数据域中数据采用高字节在前,低字节在

后的传输顺序,例如:

一个16位寄存器包含数据为0x12BC,该寄存器数据发送顺序为:

高位字节:

0x12低位字节:

0xBC

2.4校验域

公司直流系统ModbusRTU通讯协议采用16位CRC校验,传输时低字节在前,高字节在后

01H读线圈状态数据帧格式(主机---从机)

从站地址

1字节

功能码01H

1字节

位数据请求开始地址

2字节

位请求个数

2字节

CRC校验码

2字节

应答01H数据帧(从机

---主机)

从站地址

1字节

功能码01H

1字节

字节数(字节记数器)

1字节

位数据

n字节

CRC校验码

2字节

01功能码可由上位机发送请求本通讯转换器中的一个或多个线圈(实际输出)状态,返回实际输出点接通/断开状态。

具体实例:

1>查询

查询信息规定了要读的起始线圈和线圈量,线圈的起始地址为零,1-16个线圈的寻址地址分为0-15。

例:

请求从机设备17读20-56线圈。

SlaveAddress11

Function01

StartingAddressHi00

StartingAddressLo13

No.ofPointsHi00

No.ofRointsLo25

ErrorCheck(LRCorCRC)——

2>响应

响应信息中的各线圈的状态与数据区的每一位的值相对应,仁ON;0=OFF。

第一个数据字节的

LSB为查询中的寻址地址,其他的线圈按顺序在该字节中由低位向高位排列,直至8个为止,下一个

字节也是从低位向高位排例。

若返回的线圈数不是8的倍数,则在最后的数据字节中的剩余位至字节

的最高位全部填零,字节数区说明全部数据的字节数

SlaveAddress11

Function01

ByteCount05

Data(Coils27-20)CD

Data(Coils35-28)6B

Data(Coils43-36)B2

Data(Coils51-44)0E

Data(Coils56-52)1B

ErrorCheck(LRCorCRC)——

注释:

线圈27-20的状态用CDH表示,二进制值为11001101,该字节的MCB为线圈27,LSB为20。

线圈从左(27)向右(20)状态分别为ON-ON-OFF-OFF-ON-ON-OFF-ON,因此第一个字节中的线圈从左到右应是27-20。

下一个字节的线圈应为35至28。

位数据串行转输从低位到高位,即20.27,28.35。

后一个数据字节中,56-52线圈的状态为1BH(或二进制00011011),线圈56是左数第4位,线圈52是该字节的最低位,所线圈56至52的状态分别为ON-ON-OFF-ON-ON注意3个剩余位(至最高位的数)全部填0。

02H读接点状态数据帧格式(主机---从机)

从站地址

1字节

功能码02H

1字节

位数据请求开始地址

2字节

位请求个数

2字节

CRC校验码

2字节

应答02H数据帧(从机

---主机)

从站地址

1字节

功能码02H

1字节

字节数(字节记数器)

1字节

位数据

n字节

CRC校验码

2字节

02功能码可由上位机发送请求本通讯转换器中的一个或多个接点(实际输入)状态,返回实际输入点接通/断开状态。

具体实例

1>查询

0,1-16个输入口

查询信息规定了要读的输入起始地址,以及输入信号的数量。

输入起始地址为的地址分别为0-15。

例:

请求读从机设备17的10197-10218的输入位状态。

SlaveAddress11

Function02

StartingAddressHi00

StartingAddressLoC4

No.ofPointsHi00

No.ofRointsLo16

ErrorCheck(LRCorCRC)——

2>响应

响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1=ON;0=OFF,第一个数据

字节的LSB为查询中的寻址地址,其他输入口按顺序在该字节中由低位向高位排列,直至8个位为止。

下一个字节中的8个输入位也是从低位到高位排列。

若返回的输入位数不是8的倍数,则在最后的数

据字节中的剩余位直至字节的最高位全部填零。

字节的最高位,字节数区。

说明了全部数据的字节数。

SlaveAddress11

Function02

ByteCount03

Data(Inputs10204-10197)AC

Data(Inputs10212-10205)DB

Data(Inputs10218-10213)35

ErrorCheck(LRCorCRC)-

注释:

输入位10204-10197的状态用35H(或二进制00110101)表示。

输入位10218为左数第3位,10213输入位为LSB,输入位10218-10213的状态分别为ON-ON-OFF-ON-OFF-ON,注意最位还有2个剩余位需填零。

例:

请求读从机设备17的108,109,110三个地址的变量值。

03H读寄存器数据帧格式(主机-•

-从机)

从站地址

1

字节

功能码03H

1

字节

数据请求开始地址

2

字节

寄存器请求个数

2

字节

CRC校验码

2

字节

具体实例

1>查询

查询信息规定了要读的寄存器起始地址及寄存器的数量,对应的地址分别为0-15

应答03H数据帧(从机

---主机)

从站地址

1字节

功能码03H

1字节

字节数(2*应答寄存器数)

1字节

第一个寄存器数据

2字节

第一个寄存器数据

2字节

CRC校验码

2字节

寄存器寻址起始地址为0000,寄存器1-16所

03功能码可由上位机发送请求本通讯转换器中的有效寄存器,数据发送顺序示例:

2>响应

响应信息中的寄存器数据为二进制数据,每个寄存器分别对应2个字节,第一个字节为高位值数据,

第二个字节为低位数据。

例按查询要求返回响应。

注释:

寄存器40108的数据用022BH2个字节(或用十进制555)表示,寄存器40109-40110中的数据为0000和0064H,(十进制时为0和100)

2>响应

响应信息中的模拟量数据为二进制数据,每个模拟量分别对应2个字节,第一个字节为高位值数据,

第二个字节为低位数据。

例按查询要求返回响应。

注释:

模拟量30108的数据用022BH2个字节(或用十进制555)表示,模拟量30109-30110中的数据为0000和0064H,(十进制时为0和100)

2.7功能域中04命令示例:

SlaveAddress

11

Function

ByteCount

DataHi(Register40108)

DataLo(Register40108)

DataHi(Register40109)

DataLo(Register40109)

DataHi(Register40110)

DataLo(Register40110)

04

06

02

2B

00

00

00

64

ErrorCheck(LRCorCRC)

数据发送顺序示例:

04功能码可由上位机发送请求本通讯转换器中的有效模拟量值

/断

05功能码可由上位机发送设置本通讯转换器中的一个线圈(实际输出)状态,返回实际输出点接通开状态。

2>响应

线圈为强制状态后即返回正常响应

SlaveAddress

Function

CoilAddressHi

CoilAddressLo

ForceDataHi

ForceDataLo

ErrorCheck(LRCorCRC)

例:

按查询要求返回响应

11

05

00

AC

FF

00

 

具体实例

1>查询

把数据按顺序预置到各(4X类型)寄存器中,信息中规定了要预置的寄存器类型,寄存器寻址的起始

地址为0,寄存器1寻址地址为0。

查询数据区中指定了寄存器的预置值,M84和484型控制器使用10位

二进制数据,2个字节,剩余的高6位置0。

而其他类型的控制器使用一个16位二进制数据,每个寄

存器2个字节。

例:

请求在从机设备17中的2个寄存器中放入预置值,起始寄存器为40002,预置值为000AH和0102H。

SlaveAddress11

Function10

StartingAddressHi

StartingAddressLo

No.ofRegistersHi

00

01

00

No.ofRegistersLo

ByteCount

DataHi

02

04

00

DataLo

0A

DataHi

01

DataLo

02

ErrorCheck(LRCorCRC)

2>响应

例:

按查询要求返回响应

正常响应返回从机地址,功能代码和起始地址和预置寄存器数。

StartingAddressHi

StartingAddressLo

No.ofRegistersHi

No.ofRegistersLo

ErrorCheck(LRCorCRC)

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

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

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

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