没有合适的资源?快使用搜索试试~ 我知道了~
PMC-1316_Modbus规约_V1.2_20220623.pdf
需积分: 9 2 下载量 128 浏览量
2022-10-12
19:01:59
上传
评论
收藏 261KB PDF 举报
温馨提示
试读
18页
PMC-1316_Modbus规约_V1.2_20220623.pdf
资源推荐
资源详情
资源评论
PMC-1316智能通信网关机
Modbus通信协议
(V1.2)
PMC-1316 智能网关 Modbus 通信协议
版本 V1.0
1
1 简介
本规约详细地描述了PMC-1316智能通信网关机在MODBUS 通讯模式下的输入和输
出命令、信息和数据,以便于第三方开发和使用。
本协议使信息和数据在上位机主站和PMC-1316子站(后文中子站均为PMC-1316)之
间有效地传递,它包括:
1)允许主站通过子站对所有接入装置的的出口进行遥控;
2)允许主站访问子站搜集的所有测量数据;
3)允许主站访问子站搜集的所有SOE信息;
2 MODBUS串行通信协议详细说明
2.1
协议基本规则
MODBUS协议广泛用于RS-485通信网中,一个RS-485通信网可支持多个子站:
a) 所有通信应遵照主/从方式。在这种方式下,信息和数据在单个MODBUS主站和最
多32个子站监控设备之间传递;
b) 主站将初始化和控制所有在RS485通信回路上传递的信息;
c) 子站不能发起通信;
d) 所有信息以“数据包”形式进行传递,数据包由一串字节组成(每个字节8位)。一个
数据包中最多可含255个字节。
e) 主站发送数据包称为请求,子站发送数据包称为响应;
f) 任何时候只有能有一个子站响应主站一个请求。
2.2 传送模式
MODBUS协议包括ASCII和RTU两种模式。本协议采用MODBUS-RTU模式。
MODBUS-RTU模式中:
奇/偶校验模式,按照1位启动位、8位数据位、1位校验位、1位停止位传送。
无校验模式,按照1位启动位、8位数据位、2位停止位传送。
本装置支持以上三种校验模式。
2.3 MODBUS 数据包结构描述
每个MODBUS 数据包都由以下几个部分组成:
(1) 地址域
(2) 功能码域
(3) 数据域
(4) 校验域
2.3.1 地址域
MODBUS的从站地址域长度为一个字节,有效的从站地址范围从1~247。地址0专门
用于广播地址。从站如果接收到一帧从站地址域信息与自身地址相符合的数据包时,应当执
PMC-1316 智能网关 Modbus 通信协议
版本 V1.0
2
行数据包中所包含的命令。从站所响应的数据包中该域为自身地址。
2.3.2 功能码域
MODBUS数据包中功能码长度为一个字节,用以通知从站应当执行何种操作。从站响
应数据保中应当包含主站所请求操作的相同功能域字节。本装置支持的功能码如下表:
功能码
含义
功能
0x03
读取寄存器
遥测、遥信、SOE等
0x04
读取寄存器
自定义数据
0x10
设置一个或多个寄存器
对时
0x05
设置线圈
遥控继电器
2.3.3 数据域
MODBUS 数据域长度不定,依据其具体功能而定。MODBUS数据域采用“BIG INDIAN”
模式,即高位字节在前低位字节在后。举例如下:
1个数值为0x12AB 的寄存器发送顺序为:高位字节0x12,低位字节0xAB。
子站支持的基本数据类型包括:char(字符型)、uint16(无符号短整形 16 位)、int16(有符号
短整形 16 位)、uint32(无符号长整形 32 位)、int32(有符号长整形 32 位)、float(浮点数 32
位)、int64(有符号长整型 64 位)、状态字。具体的上传数据格式说明如下:
char: 字符型,由1个字节byte0(bit0~bit7)组成。如1个char数据占用1个寄存器地址,
数据发送顺序为0x00,byte0;如2个char占用1个寄存器地址,则发送顺序为char1,char2。
uint16和int16:16位的短整形,由两个字节byte0(bit0~bit7)、byte1(bit8~bit15)组
成,占用1个寄存器地址,数据发送顺序为:byte1、byte0。
uint32和int32: 32位的长整形,由四个字节byte0(bit0~bit7)、byte1(bit8~bit15)、
byte2(bit16~bit23)、byte3(bit24~bit31)组成,占用两个寄存器地址,数据发送顺序为:
byte3、byte2、byte1、byte0。
float:符合IEEE754格式,共4字节,占两个寄存器地址。例如:2.66表示为0x71、0x3D、
0x2A、0x40,数据发送顺序为0x40、0x2A、0x3D、0x71。
Int64:64位的长整形,由八个字节byte0(bit0~bit7)、byte1(bit8~bit15)、byte2(bit16~
bit23)、byte3(bit24~bit31)、byte4(bit32~bit38)、byte5(bit40~bit47)、byte6(bit48~bit55)、
byte7(bit56~bit63)组成 。
状态字:每个bit位有固定含义,发送顺序为高位字节在前,低位字节在后。
2.3.4 校验域
MODBUS-RTU模式采用16位CRC校验,发生器多项式为(X
16
+X
15
+X
2
+1)。发送
设备应当对数据包中的每一个数据都进行CRC16计算,最后结果存放入检验域中。接收设
备也应当对数据包中的每一个数据(除校验域以外)进行CRC16计算,将结果域校验域进行比
PMC-1316 智能网关 Modbus 通信协议
版本 V1.0
3
较。只有相同的数据包才可以被接受。具体的CRC校验算法参照附录A。
2.4 网络时间考虑
在RS485 网络上传送数据包需要遵循以下有关时间的规定:
(1) 主站请求数据包结束到从站响应数据包开始之间的时间最小为20毫秒,最大为250
毫秒,典型值为60毫秒;
(2) 从站响应数据包结束到主站下一请求数据包开始之间的时间典型值为100 毫秒;
(3) 数据包中相邻两个字节之间的最大时间依据通讯波特率不同而不同,一般来说最大
字节时间为3倍的字节发送时间(例如9600 波特率下,字节间隔为3毫秒;4800波特率时,
字节间隔为6 毫秒 );
(4) 通讯程序必须在接收到最后一字节数据一定延时间隔后(一般是3.5个字符长度)
才能从接收缓冲区提取数据进行处理,超过这个延时间隔接收到的数据被认为是下一帧数
据。
2.5 异常响应
如果主站发送了一个非法的数据包给子站或者是主站请求一个无效的寄存器时,就会产
生异常响应。异常响应由子站地址、功能码、故障码和校验域组成。当功能码的高比特位置
为1时,说明此数据包为异常响应。故障码的含义参照下表:
故障码名称
功能码
说 明
0x01(非法功能码)
0x80+原功能码
表示从站接收到不支持的功能码(除上面列举的功能码)。
0x02(非法数据地址)
0x80+原功能码
请求的寄存器地址不在本装置允许的范围内。
0x03(非法数据值)
0x80+原功能码
①读写数据时寄存器数量超出允许范围;②数据长度错误
0x04(操作寄存器失败)
0x80+原功能码
读写失败
2.6
广播命令
地址域为 00H 时认为是广播命令,只在10H功能码时有效。广播命令时,子站只接收
数据包,不响应,这是为了防止网络内的子站同时响应时堵塞网络。广播命令只用于广播对
时。
3 通讯数据包
3.1 遥控(0x05)
主站指定要操作的继电器的地址,数据域的内容指定继电器的动作,0xFF00有效,发
送其他的数据不会影响继电器的状态。从站响应数据中,对正确设置的数据,返回请求帧。
如果设置值无效,响应异常数据值。
剩余17页未读,继续阅读
资源评论
小菜鸟py
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功