三相电量表(MODBUS)通讯协议(VER2.0)1、概述通信协议详细地描述了电量表的输入和输出命令、信息和数据,以便第三方使用和开发。1.1通信协议的作用使信息和数据在上位机(主站)和电压表之间有效地传递,允许访问电量表的所有测量数据。电量表通信协议(VER1.0)采用MODBUSRTU协议,本协议规定了应用系统中主机与电量表之间在应用层的通信协议,它在应用系统中所处的位置如下图所示:主机本协议所处的位置从机:电量表1.2物理接口:连接上位机的主通信口,采用标准串行RS485通讯口。信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验。数据传输缺省速率为9600b/s(1200、2400、4800、9600、19200可选)。2、MODBURTU通信协议详述2.1协议基本规则以下规则确定在回路控制器和其他串行通信回路中设备的通信规则。1)所有回路通信应遵照主/从方式。在这种方式下,信息和数据在单个主站和从站(监控设备)之间传递。2)主站将初始化和控制所有在通信回路上传递的信息。3)无论如何都不能从一个从站开始通信。4)所有环路上的通信都以“打包”方式发生。一个包裹就是一个简单的字符串,一个包裹中最多可含255个字节。组成这个包裹的字节构成标准异步串行数据,并按8位数据位,1位停止位,无校验位的方式传递。5)所有回路上的传送均分为两种打包方式:A)主机发送命令B)从机返回命令6)若主站或任何从站接收到含有未知命令的包裹,则该包裹将被忽略,且接收站不予响应。2.2数据帧结构描述地址功能代码数据数量RS485数据1...数据nCRC16位校验3、传输格式(1)读数据命令主站发送命令:地址功能码寄存器起始地址寄存器个数CRC1byte032byte2byte2byte正常应答返回:地址功能码数据区字节数数据区CRC16位校验1byte031byte.....2byte异常应答返回:非法功能从站地址功能码异常码CRC16校验80H+原功能码01非法数据地址从站地址功能码异常码CRC16校验80H+原功能码02非法数据值从站地址功能码异常码CRC16校验80H+原功能码03帧格式(10位)起始位D0D1D2D3D4D5D6D7停止位(2)、写数据命令主站发送命令:地址功能码寄存器起始地址寄存器个数数据区字节数写入的数据CRC1byte102byte2byte1byte.....2byte正常应答返回:地址功能码寄存器起始地址寄存器个数CRC16位校验1byte102byte2byte2byte异常应答返回:非法功能从站地址功能码异常码CRC16校验80H+原功能码01非法数据地址从站地址功能码异常码CRC16校验80H+原功能码02非法数据值从站地址功能码异常码CRC16校验80H+原功能码03帧格式(10位)起始位D0D1D2D3D4D5D6D7停止位注:CRC检验码低位在前高位在后;寄存器地址、数据均为高位在前低位在后;4、三相电量参数信息参数代码描述说明40001A相电压2byte只读单位0.01VPT40002B相电压2byte只读单位0.01VPT40003C相电压2byte只读单位0.01V*PT40004A相电流2byte只读单位0.001ACT40005B相电流2byte只读单位0.001ACT40006C相电流2byte只读单位0.001ACT40007总有功功率低16位2byte只读单位1WCTPT40008总有功功率高16位2byte只读单位1W最高位符号位40009总无功功率低16位2byte只读单位1WCTPT40010总无功功率高16位2byte只读单位1W最高位符号位CTPT40011功率因数总和2byte只读单位0.001最高位符号位40012A相有功功率2byte只读单位1W最高位符号位CTPT40013B相有功功率2byte只读单位1W最高位符号位CTPT40014C相有功功率2byte只读单位1W最高位符号位CTPT40015A相无功功率2byte只读单位1W最高位符号位CTPT40016B相无功功率2byte只读单位1W最高位符号位CTPT40017C相无功功率2byte只读单位1W最高位符号位CTPT40018A相功率因数2byte只读单位0.001最高位符号位40019B相功率因数2byte只读单位0.001最高位符号位40020C相功率因数2byte只读单位0.001最高位符号位40021频率2byte只读单位0.01Hz40022总有功电能低16位2byte只读单位0.1kwh40023总有功电能高16位2byte只读单位0.1kwh40024总无功电能低16位2byte只读单位0.1kwh40025总无功电能高16位2byte只读单位0.1kwh40026输入有功电能低16位2byte只读单位0.1kwh40027输入有功电能高16位2byte只读单位0.1kwh40028输出有功电能低16位2byte只读单位0.1kwh40029输出有功电能高16位2byte只读单位0.1kwh40030输入无功电能低16位2byte只读单位0.1kwh40031输入无功电能高16位2byte只读单位0.1kwh40032输出无功电能低16位2byte只读单位0.1kwh40033输出无功电能高16位2byte只读单位0.1kwh40034开关量状态2byte只读低字节:DI1高字节:DI2(断开:0合:1)40035继电器状态2byte只读低字节:DO1高字节:DO2(断开:0合:1)40036开关量状态2byte只读低字节:DI3(断开:0合:1)40037AB线电压2byte只读单位0.01VPT40038BC线电压2byte只读单位0.01VPT40039CA线电压2byte只读单位0.01V*PT40101A相电压校正比率2byte读/写40102B相电压校正比率2byte读/写40103C相电压校正比率2byte读/写40104A相电流校正比率2byte读/写40105B相电流校正比率2byte读/写40106C相电流校正比率2byte读/写40107A相有功功率校正比率2byte读/写40108B相有功功率校正比率2byte读/写40109C相有功功率校正比率2byte读/写40151A相电压校正偏移量2byte读/写40152B相电压校正偏移量2byte读/写40153C相电压校正偏移量2byte读/写40154A相电流校正偏移量2byte读/写40155B相电流校正偏移量2byte读/写40156C相电流校正偏移量2byte读/写40157A相有功功率校正偏移量2byte读/写40158B相有功功率校正偏移量2byte读/写40159C相有功功率校正偏移量2byte读/写40201地址2byte读/写1~25440202CT变比2byte读/写1~999940203接线模式2byte读/写0:三相四线1:三相三线40204PT变比2byte读/写1~999940205波特率2byte读/写0:1200,1:2400,2:4800,3:9600,4:1920040206电能清零2byte只写写0清除内部累计电能40208继电器1动作对象2byte读/写(暂时不用)40209继电器1动作模式2byte只写低字节:DO1高字节:DO2(断开:0合:1)40210继电器1动作上限2byte读/写(暂时不用)40211继电器1动作下限2byte读/写(暂时不用)40212继电器1动作时间2byte读/写(暂时不用)40213继电器2动作对象2byte读/写(暂时不用)40214继电器2动作模式2byte只写低字节:DO1高字节:DO2(断开:0合:1)40215继电器2动作上限2byte读/写(暂时不用)40216继电器2动作下限2byte读/写(暂时不用)40217继电器2动作时间2byte读/写(暂时不用)40218模拟通道1对象2byte读/写(暂时不用)40219模拟通道2对象2byte读/写(暂时不用)5、特殊命令:出厂默认地址为01;地址可设范围为01~fe;ff为广播地址,对所有设备都起作用,00为单机地址,在主机只连接一台设备时使用。批量设置波特率命令:ff109D0D00010104CRCLCRCH单机读取设备地址:00039D090001CRCLCRCH注意:批量设置命令设备是不回复的;单机命令设备不用判断地址都回复。6、命令举例:电压表的地址为1,读寄存器起始地址为40001寄存器个数为23的命令为:下发命令:01039C410023577A返回命令:01034654F7037A036300AD009F009900FC0000002500000025000400000000002500000000007000000000138900000000000000000000000000000000000000000000000000000000408E注:1\在V1.0的基础上将电能清零寄存器从40253改成40206;2\请在上位机上注明版本号与协议对应;3\增加了开关状态量(DI3)40036寄存器;同时下位机程序也做了更改,版本号为:V3.0;4\增加了AB线电压40037寄存器,BC线电压40038寄存器,CA线电压40039寄存器,同时下位机程序也做了更改,版本号为:V3.0;5\更改了波特率把1:1200,2:2400,3:4800,4:9600,5:19200改成了0:1200,1:2400,2:4800,3:9600,4:192006\增加了继电器1动作模式40209寄存器,继电器2动作模式40214寄存器;