Modbus协议和点表要点.docx
《Modbus协议和点表要点.docx》由会员分享,可在线阅读,更多相关《Modbus协议和点表要点.docx(397页珍藏版)》请在冰豆网上搜索。
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校验,传输时低字节在前,高字节在后
01功能码可由上位机发送请求本通讯转换器中的一个或多个线圈(实际输出)状态,返回实际输出点接通/断开状态。
具体实例:
1>查询
查询信息规定了要读的起始线圈和线圈量,线圈的起始地址为零,1-16个线圈的寻址地址分为0-15。
例:
请求从机设备17读20-56线圈。
SlaveAddress11
Function01
StartingAddressHi
StartingAddressLo
No.ofPointsHi
00
13
00
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。
02功能码可由上位机发送请求本通讯转换器中的一个或多个接点(实际输入)状态,返回实际输入点接通/断开状态。
具体实例
1>查询
0,1-16个输入口
查询信息规定了要读的输入起始地址,以及输入信号的数量。
输入起始地址为的地址分别为0-15。
例:
请求读从机设备17的10197-10218的输入位状态。
SlaveAddress11
02
00
C4
00
16
Function
StartingAddressHiStartingAddressLoNo.ofPointsHi
No.ofRointsLo
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个剩余位需填零。
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命令示例:
数据发送顺序示例:
04功能码可由上位机发送请求本通讯转换器中的有效模拟量值
/断
05功能码可由上位机发送设置本通讯转换器中的一个线圈(实际输出)状态,返回实际输出点接通开状态。
例:
按查询要求返回响应
11
05
00
AC
FF
00
ErrorCheck(LRCorCRC)
2>响应
线圈为强制状态后即返回正常响应
SlaveAddress
Function
CoilAddressHi
CoilAddressLo
ForceDataHi
ForceDataLo
ErrorCheck(LRCorCRC)
2.9功能域中16命令示例:
16(0x10)功能码可由上位机发送设置本通讯转换器中的有效寄存器,数据发送顺序示例:
从站中变量地址
所对应功能码
变量名称
R/W
4x0001
0x03/0x10
一段MCM100_1(地址:
2)交流单元有无(1:
有0:
无)
R,W
4x0002
0x03/0x10
一段MCM100_1(地址:
2)交流单元通讯故障次数报警
R,W
4x0003
0x03/0x10
一段MCM100_1(地址:
2)交流单元检测交流过压设定值0.01
R,W
4x0004
0x03/0x10
一段MCM100_1(地址:
2)交流单元检测交流欠压设定值0.01
R,W
4x0005
0x03/0x10
一段电池巡检单元数量(最大可设6块)
R,W
4x0006
0x03/0x10
一段电池巡检单元通讯故障次数设定
R,W
4x0007
0x03/0x10
一段单体电池电压过压值设定0.01
R,W
4x0008
0x03/0x10
一段单体电池电压欠压值设定0.01
R,W
4x0009
0x03/0x10
一段电池温度过温报警0.1
R,W
4x0010
0x03/0x10
一段地址为4的巡检仪采集的#1路温度值微调
R,W
4x0011
0x03/0x10
一段地址为4的巡检仪采集的#2路温度值微调
R,W
4x0012
0x03/0x10
一段地址为4的蓄电池巡检单元采集单体电池电压微调
R,W
4x0013
0x03/0x10
一段地址为5的蓄电池巡检单元采集单体电池电压微调
R,W
4x0014
0x03/0x10
一段地址为6的蓄电池巡检单元采集单体电池电压微调
R,W
4x0015
0x03/0x10
一段地址为7的蓄电池巡检单元采集单体电池电压微调
R,W
4x0016
0x03/0x10
一段地址为8的蓄电池巡检单元采集单体电池电压微调
R,W
4x0017
0x03/0x10
一段地址为9的蓄电池巡检单元采集单体电池电压微调
R,W
4x0018
0x03/0x10
一段支路绝缘巡检单元数量
R,W
4x0019
0x03/0x10
一段支路绝缘巡检单元通讯故障次数设定
R,W
4x0020
0x03/0x10
一段地址为10的绝缘巡检单元CT值数字微调
R,W
4x0021
0x03/0x10
一段地址为11的绝缘巡检单元CT值数字微调
R,W
4x0022
0x03/0x10
一段地址为12的绝缘巡检单元CT值数字微调
R,W
4x0023
0x03/0x10
一段地址为13的绝缘巡检单元CT值数字微调
R,W
4x0024
0x03/0x10
一段地址为14的绝缘巡检单元CT值数字微调
R,W
4x0025
0x03/0x10
一段地址为15的绝缘巡检单元CT值数字微调
R,W
4x0026
0x03/0x10
一段开关量巡检单元数量
R,W
4x0027
0x03/0x10
一段开关量巡检单元通讯故障次数设定
R,W
4x0028
0x03/0x10
一段JK001单元通讯故障次