PMAC®9900E标准电量监测仪MODBUS串行通信协议ZHUHAIPILOTELECTRONICSCo.,LtdDoc.No.03-0304-002珠海派诺电子有限公司PMAC®9900E标准电量监测仪-MODBUS串行通讯协议2目录第一章简介----------------------------------------------------------------------------------21.1串行通讯协议的目的----------------------------------------------------------21.2MODBUS通讯协议的版本------------------------------------------------------2第二章PMAC®9900E-MODBUS串行通讯协议详细说明-----------------------------22.1协议基本规则---------------------------------------------------------------------22.2传送模式---------------------------------------------------------------------------22.3包裹结构---------------------------------------------------------------------------22.3.1地址域--------------------------------------------------------------------32.3.2功能码域-----------------------------------------------------------------32.3.3数据域--------------------------------------------------------------------32.3.4校验域--------------------------------------------------------------------32.4网络时间---------------------------------------------------------------------------32.5异常响应---------------------------------------------------------------------------32.6广播命令---------------------------------------------------------------------------4第三章通信包裹-----------------------------------------------------------------------------43.116位/32位数据通讯模式-------------------------------------------------------43.2读寄存器包裹-------------------------------------------------------------------43.3写寄存器包裹-------------------------------------------------------------------5第四章计算CRC-16校验码----------------------------------------------------------------7第五章PMAC®9900E寄存器说明-------------------------------------------------------8附录APMAC®9900E-MODBUS寄存器表---------------------------------------8附录B符号寄存器含义--------------------------------------------------------------13附录C数据单位-----------------------------------------------------------------------13附录A有关继电器的操作-----------------------------------------------------------14第六章通信包裹范例----------------------------------------------------------------------14PMAC®9900E标准电量监测仪-MODBUS串行通讯协议3第一章简介通信协议详细地描述了PMAC®9900E在MODBUS通讯模式下的输入和输出命令、信息和数据,以便第三方使用和开发。1.1串行通讯协议的作用通信协议的作用使信息和数据在上位机(主站)和PMAC®9900E之间有效地传递,它包括:1)允许主站访问和设定所连接PMAC®9900E的全部设置参数;2)允许访问PMAC®9900E的所有测量数据和事件纪录。1.2MODBUS通讯协议的版本该通讯协议适用于本公司已经出厂的所有各种版本的PMAC®9900E仪表,对于日后的系列若有改动会加以特别说明。第二章PMAC®9900E-MODBUS串行通信协议详细说明2.1PMAC®9900E-MODBUS协议基本规则以下规则确定在RS485(或者RS232C)回路控制器和其他RS485串行通信回路中设备的通信规则:1)所有RS485回路通信应遵照主/从方式。在这种方式下,信息和数据在单个主站和最多32个从站(监控设备)之间传递;2)主站将初始化和控制所有在RS485通信回路上传递的信息;3)无论如何都不能从一个从站开始通信;4)所有RS485环路上的通信都以“打包”方式发生。一个包裹就是一个简单的字符串(每个字符串8位),一个包裹中最多可含255个字节。组成这个包裹的字节构成标准异步串行数据,并按8位数据位,1位停止位,无校验位的方式传递。串行数据流由类似于RS232C中使用的设备产生;5)主站发送包裹称为请求,从站发送包裹称为响应;6)任何情况从站只能响应主站一个请求。2.2传送模式MODBUS协议可以采用ASCII或者RTU模式传送数据。PMAC®9900E仅仅支持RTU模式,8位数据位,无校验位,1位停止位。2.3MODBUS包裹结构描述每个MODBUS包裹都由以下几个部分组成:1)地址域2)功能码域3)数据域4)校验域2.3.1地址域MODBUS的从站地址域长度为一个字节,包含包裹传送的从站地址。有效的从站地址PMAC®9900E标准电量监测仪-MODBUS串行通讯协议4范围从1~247。从站如果接收到一帧从站地址域信息与自身地址相符合的包裹时,应当执行包裹中所包含的命令。从站所响应的包裹中该域为自身地址。2.3.2功能码域MODBUS包裹中功能域长度为一个字节,用以通知从站应当执行何操作。从站响应包裹中应当包含主站所请求操作的相同功能域字节。有关PMAC®9900E的功能码参照下表。功能码含义功能0x03读取寄存器获得当前PMAC®9900E内部一个或多个当前寄存器值0x10设置寄存器将指定数值写入PMAC®9900E内部一个或多个寄存器内2.3.3数据域MODBUS数据域长度不定,依据其具体功能而定。MODBUS数据域采用”BIGINDIAN”模式,即是高位字节在前,低位字节在后。举例如下:Example2.11个16位寄存器包含数值为0x12AB,寄存器数值发送顺序为:高位字节=0x12低位字节=0x0AB2.3.4校验域MODBUS-RTU模式采用16位CRC校验。发送设备应当对包裹中的每一个数据都进行CRC16计算,最后结果存放入检验域中。接收设备也应当对包裹中的每一个数据(除校验域以外)进行CRC16计算,将结果域校验域进行比较。只有相同的包裹才可以被接受。具体的CRC校验算法参照附录。2.4网络时间考虑在RS485网络上传送包裹需要遵循以下有关时间的规定:1)主站请求包裹结束到从站响应包裹开始之间的时间最小为20毫秒,最大为250毫秒,典型值为60毫秒;2)从站响应包裹结束到主站下一请求包裹开始之间的时间在16位模式下典型值为100毫秒,在32位模式下典型值为500毫秒;3)包裹中相邻两个字节之间的最大时间依据通讯波特率不同而不同,一般来说最大字节时间为3倍的字节发送时间(例如9600波特率下,字节间隔为3毫秒;4800波特率时,字节间隔为6毫秒)。2.5异常响应如果主站发送了一个非法的包裹给PMAC®9900E或者是主站请求一个无效的数据寄存器时,异常的数据响应就会产生。这个异常数据响应由从站地址、功能码、故障码和校验域组成。当功能码域的高比特位置为1时,说明此时的数据帧为异常响应。下表说明异常功能码的含义:功能码名称01非法功能码说明PMAC®9900E-MODBUS只支持03H和10H功能码,该码表示从站接收到非法的功能码;或者是PMAC®9900E接收到一个错误的操作密码。02非法数据地址说明PMAC®9900E接收到无效的数据地址,或者是请求寄存器不在有效的寄存器范围内。PMAC®9900E标准电量监测仪-MODBUS串行通讯协议52.6广播命令PMAC®9900E-MODBUS协议不支持广播命令。第三章通讯包裹PMAC®9900E-MODBUS支持两个功能码,标准的MODBUS协议仅支持16位数据模式,也就说传输任何测量值最大为65535。为了支持传输更大的测量值,PMAC®9900E提供了扩展的32位数据模式。3.1节将描述16位数据模式与32位数据模式的不同。3.2节将说明PMAC®9900E的读数据包裹和响应包裹的格式。3.3节将说明PMAC®9900E写数据包裹和响应包裹的格式。3.116位/32位数据通讯模式16位数据模式中,所有的数据都是通过一个16位寄存器表示,即使实际数值超过65535,但是传输的最大值只能为65535。32位模式中,所有的数据都是依照如下规则组织的:1)除电能参数以外的实时数据和设置参数都是用两个寄存器说明:高位寄存器=实际值/10000(商值)低位寄存器=实际值/10000(余数)这种设定方式是为了兼容MODICON的PLC装置;2)符号寄存器,高位寄存器固定位0,低位寄存器仍然保持原有数据;3)电能数据不论采用16位或者32位数据模式,都可以采用两个寄存器表示:16位数据模式:高16位=实际值/1000(商值)低16位=实际值/1000(余数)32位数据模式:高32位寄存器:高16位=0低16位=实际值/1000000(商值)低32位寄存器:高16位=(实际值/10000)/100(余数)低16位=实际值/10000(余数)在16位数据模式下,电能数据最大为65000MWH;在32位数据模式下,电能数据最大为2000GWH。3.2读寄存器(功能码03)由主站机发送的包裹请求PMAC®9900E响应所有有效的寄存器(在起始寄存器和终止寄存器之间)。一般读寄存器不需要密码,但在以下两种情况下需要正确的密码。1)去读一个被保护的寄存器:目前唯一被保护的寄存器是保护仪表密码的寄存器。2)如果“只读保护”寄存器(地址43017)已设置,那么密码正确才能读任何寄存器。在响应包裹中仅仅有效的寄存器才能被发送。PMAC®9900E没有配置的寄存器或对该输入电压模式下不存在的寄存器将不被发送。由于MODBUS协议中并没有专门的密码域,所以执行与密码相关的操作时需要执行一个特殊的操作。首先采用写寄存器功能码将密码写入密码寄存器中(地址43051)。无论写入密码是否正确,PMAC®9900E都会做出响