微机保护装置通讯协议MODBUS-RTU-V1.1版珠海市恒瑞电力科技有限公司2013-3微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-1-一、协议概述本协议适用于HDPx、DPx、EDPx、DPML系列保护装置。本协议为轮询方式的应答式规约,允许一个主站对应32个从站。数据帧间的间隔时间应大于50ms。数据为字时,均采用高字节在前、低字节在后、高位字在前、低位字在后的原则(校验码除外)。从站地址为00时为广播方式。1、物理层:传输方式:RS-485通信地址:1~255通信波特率:2400bps~19200bps。传输介质:屏蔽双绞线2、链路层:■传输方式:主从半双工方式。数据在一根通信线路上进行双向传输的应答式连接(发送完后,再接收)。主站首先寻址到唯一的从站,接着主站将会收到对应的终端设备发出的应答信号。协议只允许应用在主站与终端设备之间,禁止在独立的终端设备之间互相交换数据。■数据帧格式,表1-1如示:表1-1:起始位数据位奇偶校验位停止位流控制1位8位无1位无■数据包格式,表1-2如示:表1-2:数据格式地址域功能域数据域错误检测域数据长度1字节1字节N字节16位CRC码(冗余循环码)当从站接收到主站的数据帧后,首先进行地址验证,如是从站,则从站进行数据帧的CRC校验码计算,并与接收到的主站发出的CRC码进行比较,如相等,则执行相应的功能码,并对主站做出响应(从站的地址、功能码、数据区、CRC的低字节,CRC的高字节);如经地址验证不为该从站,则退出,不做出任何的响应。地址域从站地址为一个字节,该字节标明了主站与从站进行通信的入口,所以该地址是每个从站所必须的,并且有且只有一个,从站之间绝不能相互重复,否则会引起通信链路上的冲突而导致通信错误。有效的从站地址范围从1~247。从站地址为00时为广播方式。功能域该码值为一个字节,它标识了主站要在终端设备上是做何种操作。详细内容参见表1-3所示。微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-2-表1-3:功能码(HEX)定义操作03读寄存器数据读取一个或多个寄存器的数据(读遥测、遥信、定值、SOE)05写开关量输出DO控制一路继电器“合/分”输出(遥控,复归)10写单或多个寄存器修改定值、校时数据域数据区包括需要由从站返送何种信息或执行什么动作。这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如,主站通过功能码03告诉从站返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。对于不同的从站,地址和数据信息都不相同(应给出通讯信息表)。数据区的数据都是两个字节,并且高位在前。错误检测域CRC的校验由两个8位字节组成,低字节在前,高字节在后。是用于主设备与终端设备之间数据传输过程中的错误侦测校验方式。它将附加在发送的整个数据包后面。当接收设备接收完一个完整的数据包后,进行CRC循环冗余代码的计算,并与接收到CRC代码进行比较,由此来判断接收数据正确否,如接收装置计算的CRC与接收到的CRC的值相等,则说明接收数据正确,否则,表示接收到了错误的数据。校验码为除错误检测域的所有字节的CRC-16校验码,发生器多项式为(X16+X15+X2+1)。CRC的计算步骤如下:1.预置1个16位的寄存器(下称CRC寄存器),初试化其内容为十六进制数0xFFFF;2.把第一个待计算的数据即通讯信息帧的首字节与CRC寄存器的低8位相异或,把结果放回CRC寄存器;3.把CRC寄存器的内容右移一位用0填补最高位即进行逻辑移位处理并检查右移后的移出位;4.如果移出位为0重复第3步即再次右移一位,如果移出位为1则CRC寄存器与CRC生成多项式0xA001(1010000000000001)进行异或运算,结果放回CRC寄存器;5.重复步骤3和4,直到右移8次,对整个8位数据全部进行同样处理;6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理,直至全部字节处理完毕。微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-3-二、应用层详解本节将对各个应用功能码做详细的解释。并对相应的功能代码举出相应的例子,以便在软件中对通信规约的编写与调试和修改。1、读寄存器—功能码03H读从站寄存器的数据,不支持广播。说明:可用于读实时遥测值、遥信量、保护定值、SOE等,可一次读一个或多个值,一次命令读寄存器总个数不能超过120个。寄存器的具体定义见对应的【装置寄存器表】主站下行字节数示例(HEX)描述从站地址101从站地址为1(十进制)功能码103读寄存器(实时测量值)寄存器起始地址高字节100起始地址为0000H寄存器起始地址低字节100寄存器个数高字节100读寄存器个数为4个寄存器个数低字节104CRC1624409CRC校验码从站响应:每个寄存器分别对应2个字节,第一个字节为高位值数据,第二个字节为低位数据。从站上行字节数示例(HEX)描述从站地址101从站地址为100(十进制)功能码103读寄存器(实时测量值)字节数108寄存器数据共8个字节第1个寄存器数据高字节100该测量值对应寄存器地址为0000H第1个寄存器数据低字节100第2个寄存器数据高字节1E1该测量值对应寄存器地址为0001H第2个寄存器数据低字节164第3个寄存器数据高字节1E1该测量值对应寄存器地址为0002H第3个寄存器数据低字节1C8第4个寄存器数据高字节1E2该测量值对应寄存器地址为0003H第4个寄存器数据低字节12CCRC1620D11CRC校验码注:遥测值均做了整数化处理,电流、电压、频率遥测值为实际值×100,功率遥测值为实际值×10,功率因素值为实际值×1000。2、写开关量输出—功能码05H强制某个继电器为ON或OFF状态,不支持广播。说明:可用于遥控、复归等,一次只能操作一个继电器。继电器号的具体定义见对应的【装置寄存器表】。继电器号为00FF时,用作复归。微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-4-主站下行字节数示例(HEX)描述从站地址101从站地址为1(十进制)功能码105强制继电器继电器号高字节100继电器号为0000继电器号低字节100控制命令高字节1FFFF00H值—合,0000H值—分,其它值对线圈无效。控制命令低字节100CRC1628C3ACRC校验码从站响应返回的报文格式:与主站发送的报文格式及数据内容完全相同。从站上行字节数示例(HEX)描述从站地址101从站地址为1(十进制)功能码105强制继电器继电器号高字节100继电器号为0000继电器号低字节100控制命令高字节1FFFF00H值—合,0000H值—分,其它值对线圈无效。控制命令低字节100CRC1628C3ACRC校验码3、写寄存器—功能码10H把数据按顺序预置到各寄存器中,广播时该功能代码可把数据预置到全部从站中的相同类型的寄存器中(比如校时)。说明:可用于修改保护定值、校时等,可一次修改一个或多个定值项,一次命令写寄存器总个数不能超过60个。必须注意的是该命令只对可写的寄存器有效。寄存器的具体定义见对应的【装置寄存器表】。主站下行字节数示例(HEX)描述从站地址101从站地址为01(十进制)功能码110写寄存器寄存器起始地址高字节101起始地址为0100H寄存器起始地址低字节100寄存器个数高字节100写寄存器个数为4个寄存器个数低字节104字节数108寄存器数据共8个字节第1个寄存器数据高字节100将地址为0100H的寄存器值修改为0000H第1个寄存器数据低字节100第2个寄存器数据高字节10F将地址为0101H的寄存器值修改为0FFFH第2个寄存器数据低字节1FF第3个寄存器数据高字节103将地址为0102H的寄存器值修改为03FFH第3个寄存器数据低字节1FF第4个寄存器数据高字节101将地址为0103H的寄存器值修微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-5-第4个寄存器数据低字节1F4改为01F4HCRC162XXXXCRC校验码从站正常响应返回从站地址,功能代码和起始地址和写寄存器的数量。从站上行字节数示例(HEX)描述从站地址101从站地址为01(十进制)功能码110写寄存器寄存器起始地址高字节101起始地址为0100H寄存器起始地址低字节100寄存器个数高字节100写寄存器个数为4个寄存器个数低字节104CRC162C036CRC校验码4、异常响应除广播外,主站向从站设备发送查询并希望有一个正常响应,主站查询中有可能产生4种事件:从站接收查询,通讯正常处理信息,则返回一个正常响应事件。由于通讯出错,从站不能接收查询数据,因而不返回响应。此时,主站依靠处理程序给出查询超时事件。若从站接收查询,发现有CRC通讯错误,并未返回响应,此时,依靠主机处理程序给出查询超时事件。从机接收查询,无通讯错误,但无法处理(如读不正确的功能码,不存在的寄存器地址,写寄存器值超限)时,向主机报告错误的性质。当主站发送了一个非法的消息帧给从站时,异常的数据响应就会产生。这个异常数据响应由从站地址、功能码、特征码和校验域组成。从站将接收的功能码的最高位(MSB)置为1时,说明此时为异常响应。所响应的特征码的含义:01H:表示从站接收到非法的功能码02H:表示所请求的寄存器地址不在有效的寄存器地址范围内03H:表示数据不在寄存器所允许的范围内04H:表示没有所请求的数据注:CRC校验出错将不予响应主站下行字节数示例(HEX)描述从站地址101从站地址为01(十进制)功能码110写寄存器(定值)寄存器起始地址高字节12A起始地址为2A5CH寄存器起始地址低字节15C寄存器个数高字节100写寄存器个数为1个寄存器个数低字节101微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-6-字节数102寄存器数据共2个字节寄存器数据高字节1A9写地址为2A5CH寄存器的值为A98B寄存器数据低字节18BCRC1621F39CRC校验码从站上行字节数示例(HEX)描述从站地址101从站地址为01功能码190功能码高位置1特征码102寄存器地址不在有效的寄存器地址范围内CRC162CDC1CRC校验码四、应用示例4.1读实时测量值读出保护装置实时测量的状态字、开入量、电流、线电压、功率、功率因数、频率。实时测量值地址从0000H开始。以EDPM-410为例。其它类型的装置,具体参照各自的modbus地址表。主站下行字节数示例(HEX)描述从站地址101从站地址为01(十进制)功能码103读寄存器(实时测量值)寄存器起始地址20000起始地址为0000H寄存器个数2000C读寄存器个数为12个CRC16245CFCRC校验码从站上行字节数示例(HEX)描述从站地址101从站地址为01(十进制)功能码103读寄存器(实时测量值)字节数118寄存器数据共24个字节第1个寄存器数据20001状态字节、遥信字节1第2个寄存器数据20000遥信字节2、遥信字节3第3个寄存器数据201F4A相电流为5.00A第4个寄存器数据201F2B相电流为4.98A第5个寄存器数据201F6C相电流为5.02A第6个寄存器数据20064零序电流为1.00A第7个寄存器数据22760AB线电压为100.80V第8个寄存器数据2270CBC线电压为99.96V第9个寄存器数据21E72三相有功功率为779.4W第10个寄存器数据20EBF三相无功功率为377.5W第11个寄存器数据20384功率因数为0.9第12个寄存器数据21388频率CRC162764DCRC校验码微机保护装置通信协议Modbus-RTU文本珠海恒瑞电力科技有限公司-7-其中状态字节:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Bit0—为1时,标识从站上电或复位,需要主站进行校时。Bit1—为1时,标识从站有新的SOE事