当前位置首页 > 百科> 正文

ModBus通信规约

2019-04-23 11:45:09 百科

ModBus通信规约

ModBus通信规约指的是对MODBUS规约的模式和通信速率的一种定义。

基本介绍

  • 中文名:ModBus通信规约
  • 传输方式:异步串列通信方式
  • 最大传输距离:1200米
  • 连线主站数目:1个
  • 连线从站数目:最多31个
  • 通讯介质:推荐採用0.5mm的双绞线

通讯参数和传输特性

MODBUS规约模式:RTU模式。
传输速率:2400 bps,4800bps,9600bps,19200bps。
串列口通讯数据格式:1 个起始位,8 个数据位, 无校验位,1个停止位。
通讯介质:推荐採用0.5mm的双绞线,不带禁止层。(原因是如果使用禁止双绞线,但现场接地处理不好反而影响通讯质量)。
应答时间:小于4.5个byte传输时间(帧间隔最小时间) + 10ms。

通讯连线方式

RS-485网路的匹配电阻选取:双绞线网路两端的匹配电阻选取,以现场通信正常为準,一般地1.2km时取120Ω,600m时取220Ω,300m时取330Ω,如通信误码率较大,观察通信时的波形,匹配电阻做适当改变
通讯连线方式通讯连线方式

支持的MODBUS功能码

功能码02H: 读取开关量输入(读实遥信和虚遥信)。
功能码03H: 读取保持暂存器(读事件记录等)
功能码04H: 读取输入暂存器(读远动遥测)
功能码05H: 强制单点继电器输出(远方复归、单步的遥控跳闸、遥控合闸)。
功能码06H: 向保持暂存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)
功能码10H: 向保持暂存器(记忆体区)写多个16位的字(通讯对时)。

异常回响报文格式

由于软体编程错误,对协定理解错误或通讯干扰等原因,MODBUS通信子站接收到主站的报文后,可以採用异常回响报文给予回答,异常回响报文格式举例如下:
FC 05H 主站=>子站:远方复归
报文
内容含义
备注
1位元组
MODBUS地址
01H 举例
1位元组
功能码
05H
1位元组
线圈地址高位元组
01H
1位元组
线圈地址低位元组
07H
1位元组
强制线圈数值高位元组
FFH
1位元组
强制线圈数值低位元组
00H
1位元组
CRC高位元组
3CH
1位元组
CRC低位元组
07H
异常回响报文 子站=>主站
报文
内容含义
备注
1位元组
MODBUS地址
01H 举例
1位元组
功能码
85H
1位元组
异常代码
02H
1位元组
CRC高位元组
C3H
1位元组
CRC低位元组
51H
子站通过校验,发现主站报文有问题,将回响报文将主站的功能码最高位(D7)置
1,如例子中的02H,异常回响报文中有固定的一个位元组作为“异常代码”,表示异常原因。
异常代码
含义
01
非法功能码。子站无法处理主站报文中的功能码。
02
非法数据地址。子站无法处理主站报文中的数据地址。
03
非法数据内容。主站报文中的数据不能满足子站的要求格式。
04
子站设备错误。
05
确认帧。
06
子站忙。

时间格式

本规约中使用到的对时报文的时间格式,事件记录中的时间格式,参见下面说明。七个八位位组的二进制时间
2 毫秒 2
2 毫秒 2
IV
(RES1)0
2 分 2
0(SU)
(RES2) 0 0
2 时 2
2 星期 2
2 日 2
(RES3) 0 0 0 0
2 月 2
(RES4) 0
2 年 2

读全遥信

主站传送:
从机地址
功能码
开始地址H
开始地址L
遥信点数H
遥信点数L
CRC码H
CRC码L
01
02
00
00
00
20
79
D2
子站回响
地址
功能码
位元组数
遥信数值(LSB-MSB)
CRC码H
CRC码L
01
02
04
01
本位元组的LSB对应遥信点号1
02
00
00
本位元组的MSB对应遥信点号32
5B
DE
注意:
1)MMP-5000D供有32个遥信(实遥信和虚遥信),因此主站从开始地址0读0x20个遥信点。
2)本例应答报文中:数值01的D0位为1代表MMP-5000D的“远方控制”为1;数值02中的D1位为1代表MMP-5000D的跳位信号为1。
3)子站回响中的LSB,MSB指D0位和D7位,通讯点号依次採用升序的方式,比如第一个位元组的D0位为遥信点号1…它的D7位为遥信点号8;第二个节字的D0位就为遥信点号9,它的D7位为遥信点号16,依次类推。

读全遥测

主站传送:
从机地址
功能码
开始地址H
开始地址L
遥测点数H
遥测点数L
CRC码H
CRC码L
01
04
00
00
00
0F
B0
0E
子站回响
地址
功能码
位元组数
设备状态字
H L
第一个遥测值
H L
第N个遥测值
CRC码H
CRC码L
01
04
1E
00
01
6A
A0
B6
1B
“设备状态字”的D0为1,表示请求读全遥信
MMP-5000D的“频率”遥测值
注意:
1)遥测报文第一个测点为“设备状态字”,不用入库,第二个开始才是“频率”,以后依次后推。
2)远动遥测值的数据格式採用带品质描述的被测值(MEA)定义
BIT0 = 溢出位(OV)
BIT1 = 差错位(ER)
BIT2 = 测试位(TEST),该位置1表示本遥测量为综自功能
BIT15~BIT3 = 被测值(MVAL),範围-4096 ~4095
3)“设备状态字”占用两个位元组,它的低位元组的D0位为1表示有实遥信和虚遥信变位,要求主站使用“读全遥信”报文来读取,一旦执行了“读全遥信”,则“设备状态字的D0位变为0;“设备状态字”的D1位为1:表示保护装置有事件记录,要求主站使用连续执行“读单个事件记录”来读取事件记录,子站没有新的事件记录时,D1位自动变为0。通讯管理机可以根据需要选择是否使用“设备状态字”。
4)如果不需要使用“设备状态字”,可以将报文中的开始地址设为0x0001,则第一个读到的遥测值就是“频率”。
5)遥测值计算方法:
电压4095对应1.2倍的额定值1.2*100 = 120V电流4095对应1.2倍的额定值1.2*5 = 6A功率4095对应1.2倍的额定值(1.2*57.77*1.2*5)*3 = 1248W频率4095对应1.2倍的额定值1.2*50 = 60Hz功率因素4095对应1倍的额定值1.000本例中:6AA0为第一个遥测值(频率),它被放大8倍,满量程值为4095,对应60Hz(50Hz的1.2倍)。
因此频率如下计算:0x6AA0/8/4095*60.0Hz = 49.993Hz
例:========MMP-5000D读全遥测========
TX:01 04 00 00 00 0F B0 0E
RX:01 04 1E 00 01 6A A0 00 00 00 00 00 00 36 C0 40 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 C0 B6 1B

读电度值

主站传送:
从机地址
功能码
电度对象起始地址H
电度对象起始地址L
电度对象数目H
电度对象数目L
CRC码H
CRC码L
01
03
00
00
00
01
85
B2
子站回响:
地址
功能码
位元组数
正向有功电度
LSB MSB
反向有功电度
LSB MSB
正向无功电度
LSB MSB
反向无功电度
LSB MSB
CRC码H
CRC码L
01
03
10
E8
03
00
00
B6
07
00
00
B8
0B
00
00
A0
0F
00
00
B6
1B
正向有功电度值为:
0x000003E8(1000W/1kW)
反向有功电度
0x000007D0(2000W/2kW)
正向无功电度
0x00000BB8(3000Var/3kVar)
反向无功电度
0x00000FA0(4000Var/4kvar)
注意:
每个电度值由4个位元组组成一个32位字,它的单位是W(瓦特)或Var(乏)报文中先收到的是电度的低位位元组,后收到的是高位位元组。例:========MMP-5000D读电度值========
TX:01 03 02 00 00 01 85 B2
RX:01 03 10 E8 03 00 00 D0 07 00 00 B8 0B 00 00 A0 0F 00 00 93 CD

广播对时

主站传送:
从机地址
功能码
开始地址H
开始地址L
暂存器数H
暂存器数L
位元组总数
毫秒L
毫秒H
00
10
04
80
00
04
08
98
B7
分钟
小时
月份
年份
保留
CRC码H
CRC码L
16
12
17
01
07
00
87
78
说明:
1.对时时间为07年1月23日18时22分47秒000毫秒
2.广播对时的从机地址设为00

广播信号复归

方式一:採用功能码05H向单个线圈264写ON信号(0xFF00),产生远方信号复归功能。
主站传送:
从机地址
功能码
线圈地址H
线圈地址L
强制线圈数值H
强制线圈数值L
CRC码H
CRC码L
00
05
01
07
FF
00
3D
D6
方式二:採用功能码06H向单个保持暂存器0x0000写数值0x0000,产生远方复归功能。
主站传送:
从机地址
功能码
暂存器地址H
暂存器地址L
设定数值H
设定数值L
CRC码H
CRC码L
00
06
00
00
00
00
89
CA
说明:
1)如果需要点对点复归,只要将从机地址从广播地址00改为相应设备地址即可。
2)两种方式通讯管理机可以任意选择。

遥控跳闸的选择命令

採用功能码06H向单个保持暂存器0x0101写数值0xFFFF,产生遥控跳闸的选择功能。
主站传送:
从机地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
01
01
FF
FF
D8
46
子站回响:
子站地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
01
01
FF
FF
D8
46

遥控跳闸的执行命令

採用功能码06H向单个保持暂存器0x0011写数值0xFFFF,产生遥控跳闸的执行。
主站传送:
从机地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
00
11
FF
FF
D8
7F
子站回响:
子站地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
00
11
FF
FF
D8
7F

遥控合闸的选择命令

採用功能码06H向单个保持暂存器0x0100写数值0xFFFF,产生遥控合闸的选择功能。
主站传送:
从机地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
01
00
FF
FF
89
86
子站回响:
子站地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
01
00
FF
FF
89
86

遥控合闸的执行命令

採用功能码06H向单个保持暂存器0x0010写数值0xFFFF,产生遥控合闸的执行。
主站传送:
从机地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数值L
CRC码H
CRC码L
01
06
00
10
FF
FF
89
BF
子站回响:
子站地址
功能码
暂存器地址H
暂存器地址L
暂存器数值H
暂存器数据L
CRC码H
CRC码L
01
06
00
10
FF
FF
89
BF

单报文直接遥控跳闸

採用功能码05H向线圈0x0001写数值0xFF00,产生单报文直接遥控跳闸。慎用本命令!
主站传送:
从机地址
功能码
线圈地址H
线圈地址L
强制线圈数值H
强制线圈数值L
CRC码H
CRC码L
01
05
00
01
FF
00
DD
FA
子站回响:
从机地址
功能码
线圈地址H
线圈地址L
强制线圈数值H
强制线圈数值L
CRC码H
CRC码L
01
05
00
01
FF
00
DD
FA

单报文直接遥控合闸

採用功能码05H向线圈0x0000写数值0xFF00,产生单报文直接遥控合闸。慎用本命令!
主站传送:
从机地址
功能码
线圈地址H
线圈地址L
强制线圈数值H
强制线圈数值L
CRC码H
CRC码L
01
05
00
00
FF
00
8C
3A
子站回响:
从机地址
功能码
线圈地址H
线圈地址L
强制线圈数值H
强制线圈数值L
CRC码H
CRC码L
01
05
00
00
FF
00
8C
3A

读单个事件记录

採用功能码03H向保持暂存器地址0x0001,读一个字,产生读一个事件记录的作用。
主站传送:
从机地址
功能码
事件记录地址H
事件记录地址L
事件记录个数H
事件记录个数L
CRC码H
CRC码L
01
03
00
01
00
01
D5
CA
子站回响:
从机地址
功能码
位元组数
事件条目数H
事件条目数L
事件代码H
(事件组号)
事件代码L
(事件代码)
动作值
02:合; 01:分
01
03
0C
00
01
04
09
02
毫秒L
毫秒H
分钟
小时
月份
年份
CRC码H
CRC码L
A5
4D
19
12
17
01
07
2F
EB
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net