Modbus协议和点表.docx
- 文档编号:409279
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:399
- 大小:252.74KB
Modbus协议和点表.docx
《Modbus协议和点表.docx》由会员分享,可在线阅读,更多相关《Modbus协议和点表.docx(399页珍藏版)》请在冰豆网上搜索。
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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Modbus 协议