消弧控制器通讯协议
通讯协议(MODBUS RTU)
YTM-9800、
一、通讯协议
(一)、通讯传送方式:
通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUS RTU 通讯规约相兼容:
编 码 8 位二进制 起始位 1 位 数据位 8 位
奇偶校验位 1 位(偶校验位) 停止位 2 位
错误校检 CRC (冗余循环码) 波特率 9600
初始结构 = ≥4 字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节
错误校检 = 16 位CRC 码 结束结构 = ≥4 字节的时间
地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主
机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地 址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回 送的从机地址。
功能码:通讯传送的第二个字节。ModBus 通讯规约定义功能号为1 到127。本仪表只利用其中
的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机 响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行 操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127) ,则表明从机 没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从
机或从机发送给主机的地址。
CRC 码:二字节的错误检测码。
(二)、通讯规约:
当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息, 如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、 执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。
1.信息帧结构
信息帧结构
地址码 功能码 数据区 错误校验码 8 位 8 位 N × 8 位 16 位
地址码:地址码是信息帧的第一字节(8 位) ,从0 到255。这个字节表明由用户设置地址的从机
将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码 的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。
功能码:主机发送的功能码告诉从机执行什么任务。表1-1 列出的功能码都有具体的含义及
操作。
功能码代码 含义 操作 03 读取数据 读取当前寄存器内一个或多个二进制值
数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、
参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取 寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。
错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它
一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16 校验方法。
注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。
2.错误校验
冗余循环码(CRC )包含2 个字节,即16 位二进制。CRC 码由发送设备计算,放置于发 送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC 码,比较计算得到的CRC 码 是否与接收到的相符,如果两者不相符,则表明出错。
CRC 码的计算方法是,先预置16 位寄存器全为1。再逐步把每8 位数据信息进行处理。 在进行CRC 码计算时只用8 位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校 验位,都不参与CRC 码计算。
在计算CRC 码时,8 位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0 填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低 位为0,不进行异或运算。
这个过程一直重复8 次。第8 次移位后,下一个8 位再与现在寄存器的内容相相异或, 这个过程与以上一样重复8 次。当所有的数据信息处理完后,最后寄存器的内容即为CRC 码值。CRC 码中的数据发送、接收时低字节在前。
计算CRC 码的步骤为:
1) 预置16 位寄存器为十六进制FFFF (即全为1)。称此寄存器为CRC 寄存器; 2) 把第一个8 位数据与16 位CRC 寄存器的低位相异或,把结果放于CRC 寄存器; 3) 把寄存器的内容右移一位(朝低位) ,用0 填补最高位,检查最低位;
4) 如果最低位为0:重复第3 步(再次移位); 如果最低位为1:CRC 寄存器与多项式A001 (1010 0000 0000 0001)进行异或;
5) 重复步骤3 和4,直到右移8 次,这样整个8 位数据全部进行了处理; 6) 重复步骤2 到步骤5,进行下一个8 位数据的处理; 7) 最后得到的CRC 寄存器即为CRC 码。
(三)、寄存器地址与内容对照表:
开入量(只读 功能码2),数据类型 bit
寄存器地址 0 1 2 3 4 5 6 7 8 9 10
内容 第1路开入量 第2路开入量 第3路开入量 第4路开入量 第5路开入量 第6 路开入量 第7 路开入量 第8 路开入量 第9 路开入量 第10 路开入量 第11 路开入量
备注 A 相合 B 相合 C 相合 A 相熔断 B 相熔断 C 相熔断 外部复归 外部闭锁 隔离合 备用 备用
开出量(读 功能码1; 写 功能码5), 数据类型 bit
寄存器地址 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
15
内容 第1路开出量 第2路开出量 第3路开出量 第4路开出量 第5路开出量 第6 路开出量 第7 路开出量 第8 路开出量 第9 路开出量 第10 路开出量 第11 路开出量 第12 路开出量 第13 路开出量 第14 路开出量 第15 路开出量
备注 备用
a 相合输出 备用
b 相合输出 备用
c 相合输出 备用
金属接地 备用 备用 备用 备用 备用 备用
弧光接地
写入:ff00把动作状态字清零 (016)
动作状态字复位
保持寄存器(读 功能码4; ), 数据类型 float
寄存器地址 0 1 2 3
内容 第1路模拟量 第2路模拟量 第3路模拟量 第4路模拟量
备注 电压Ua 电压Ub 电压Uc
零序电压Uo
9 第5 路模拟量 零序电流Io 50 作状态字(850 ushort) 1; //0 过流 2; //1 弧光接地a 3; //2 弧光接地b 4; //3 弧光接地c 5; //4 金属接地a 6; //5 金属接地b 7; //6 金属接地c 8; //7 pt断线 9; //8 弧光接地a(返回) 10; /9 弧光接地b (返回) 11; //10 弧光接地c(返回) 12; //11 启动线圈 13; // 保留
设置寄存器(读 功能码3; 写 功能码16), 数据类型 整型
寄存器地址 内容 备注 装置地址 1 操作口令 23 遥信确认时间 4
(装置定值) 速断电流*100 1 6 速断过流时间*10 2
启动线圈时间*10 3 自动返回时间*10 4 控制字1-8 5
(四)、接线
对于RS485,将主机的“+”与从机的“+”相接,将主机的“-”与从机的“-”相接,
对于RS232,将主机的“TXD ”接从机的“RXD ”,将主机的“RXD ”接从机的“TXD ”,将主 机的“GND ”接从机的“GND ”。报文范例发: 发:01 04 00 00 00 02 71 cb 收:01 04 00 00 00 00 fb 84
发送:01 02 00 00 00 0A F8 0D 接收:01 02 02 01 00 B8 28
01 02 02 00 00 B9 B8
上位机发给装置:
发01 03 00 00 00 0A C5 CD 收:
加电压01 03 14 B2 BD A2 BD FE 02 76 22 F5 A9 70 29 50 68 F4 A9 70 29 76 1A BC 9F 无电压01 03 14 00 01 00 00 00 00 00 00 00 55 00 00 00 00 00 00 03 E8 00 02 8F E7
出口板
发01 01 00 00 00 0A bc 0d 收01 01 02 00 00 B9 FC
安徽一天电气技术有限公司