
MODBUS规约模式:RTU模式。传输速率:2400 来自bps,4800b林措汉套异斗久江ps,9600bps,19200bps。串行口通360百科讯数据格式:1 州地缺简统危几个起始位,8 个数据位通六求实赵, 无校验位,1个停止位。
- 中文名 ModBus通信规约
- 传输方式 异步串行通信方式
- 最大传输距离 1200米
- 连接主站数目 1个
- 连接从站数目 最多31个
参数和特性
MODBUS规约模式:RTU模式。
传输速率:2400 bps,4800bps,9600bps,19200bps。
串行口通讯数据格式:1 个起始位,8 个数据位, 无校验位,1个停止位。
通讯介质:推荐采用0.来自5mm的双绞线,不带屏蔽层。(原因是如果使用屏360百科蔽双绞线,但现场接地处理不好反而影响通讯质量)。
应答时间:小于4月受方落容费.5个byte传输时间(帧间隔最小时间) + 10ms。
连接方式
RS-485网络的匹配电阻选取:双绞线网络两端的匹配电阻选取,以现场通信正常为准,一般地1.2km时取120Ω,600m时取220Ω,300m时取330Ω,如通信误码率较大,观察通信时的波形,匹配电阻做适当改变
功能码
功能码02H: 读取开关量输入(读实遥信和虚遥信)。
功能码03H: 读取保持寄存器(读事来自件记录等)
功能码04H: 读取输入寄存器(读远动遥测)
功能码05H: 强制单点继电器输出(远方复归、单步的遥控跳闸、遥控合闸)。
功能码06H: 向保持寄存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)
功能码10H: 向保持寄存器(内存区)写多个16位的字(通讯对时)。
报文格式
由于软件编程错误360百科,对协议理解错误或通讯干扰等原因,MODBUS通信子站接收到主站的报文后,可以采用营事总损倍罪情等提约异常响应报文给予回见往持切定强行便困答,异常响应报文格式举例如下:
FC 05H 主资家某服可降初就题许站=>子站:远方复归
报文 | 内容含义 | 备注 |
角伤究1字节 | MOD零刻外赵跑星频下升BUS地址 | 01H 举例 |
1字节 | 功能码 | 05H |
1字节 | 线圈地址高字节 | 01H |
1字节 | 线圈地址低字节 | 07H |
1字节 | 强制线圈数值高字节 | FFH |
1字节 | 强制线圈数值低字节 | 00H |
1字节 | CRC高字节 | 则互3CH |
1字节 | CRC低字节 | 07H |
异常卫鱼设标者略影仅响应报文 子站=>主站
报文 | 内容含义 | 备注 |
1字节 | MODBU满油首参权毛S地址 | 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 |
转载请注明出处安可林文章网 » ModBus通信规约