当前位置:文档之家› MODBUS_RTU通信规约

MODBUS_RTU通信规约

MODBUS_RTU通讯规约(本协议采用主从问答方式)PDM系列仪表/变送器:PDM系列仪表/变送器采用全新的设计,革命性地改变了传统电表的概念;具有多功能、高精度、数字式、可编程、结构紧凑、多画面显示的特点,它可以满足电力工业未来对电表的需求。

MODBUS通讯协议:ModBus通讯规约允许PDM系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus 兼容的监控系统之间进行信息交换和数据传送。

PDM系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、FIX、synall等)就可以构成一套电力监控系统。

广泛的系统集成:PDM系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。

通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。

在主站和从站之间传递的通讯信息是11位的字格式:字格式(串行数据) 11位二进制起始位1位数据位8位奇偶校验位1位:有奇偶校验位/无:无奇偶校验位停止位1位:有奇偶校验位/2位:无奇偶校验位●通讯数据(信息帧)格式数据格式:地址码功能码数据区错误校检数据长度:1字节1字节N字节 16位CRC码(冗余循环码)★ 注:1、1个字节由8位二进制数组成(既8 bit)。

2、ModBus是Modicon公司的注册商标。

一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。

返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。

如果CRC校验出错就不返回任何信息。

1.1 地址码:地址码是每次通讯信息帧的第一字节(8位),从0到255。

这个字节表明由用户设置地址的从机将接收由主机发送来的信息。

每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。

当从机回送信息时,回送数据均以各自的地址码开始。

主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。

相应的地址码表明该信息来自于何处。

1.2 功能码:是每次通讯信息帧传送的第二个字节。

ModBus通讯规约可定义的功能码为1到127。

PDM系列仪表/变送器仅用到其中的一部分功能码。

作为主机请求发送,通过功能码告诉从机应执行什么动作。

作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。

表8.1 MODBUS部分功能码功能码定义操作(二进制)02 读开关量输入读取一路或多路开关量状态输入数据01 读开关量输出读取一路或多路开关量输出状态数据03 读寄存器数据读取一个或多个寄存器的数据05 写开关量输出控制一路继电器“合/分”输出06 写单路寄存器把一组二进制数据写入单个寄存器10 写多路寄存器把多组二进制数据写入多个寄存器1.3 数据区:数据区包括需要由从机返送何种信息或执行什么动作。

这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。

例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。

对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。

PDM系列仪表/变送器采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器(其数据信息表详见附录)。

PDM 系列仪表/变送器的数据寄存器存储的电量多达几百个(如:电流、电压、功率、0~31次谐波分量等),并且都是16位(2字节)的二进制数据,并且高位在前;一次最多可读取寄存器数(既各种电量的数量)是50个。

PDM响应的命令格式是从机地址、功能码、数据区及CRC码。

数据区的数据都是两个字节,并且高位在前(电能量除外)。

注:1、PDM-820AC/ACM/ACR、PDM-800AC/ACM具有“03”、“06”、“10”功能码;2、如果PDM采用MODBUS ASCII通讯协议,其通讯数据格式为;7个数据位,1个停止位,偶校验。

二、MODBUS功能码简介2.1 功能码“02”:读1路或多路开关量状态输入例如:主机要读取地址为01,开关量DI1—DI4的输入状态。

从机(PDM)数据寄存器的地址和数据为:起始位地址 DI寄存器数据(16进制)备注0000 0BDI1/DI2/DI4状态为“1”,DI3状态为“0”主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 02 读开关量输入状态起始BIT位 2 0000 起始BIT位地址为0000读数据长度 2 0004 读取4路开关量输入状态位由主机计算得到CRC码CRC码 2 79C9从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 02 读开关量输入状态数据长度 1 01 1个字节(8个BIT位)DI状态数据 1 0B DI寄存器内容由从机计算得到CRC码CRC码 2 E04F2.2 功能码“01”:读1路或多路开关量输出状态例如:主机要读取地址为01,开关量DO1,DO2的输出状态。

从机(PDM)数据寄存器的地址和数据为:起始位地址 DO寄存器数据(16进制)备注0000 02DO2输出状态为“1”,DO1输出状态为“0”主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 01 读开关量输出状态起始BIT位 2 0000 起始BIT位地址为0000读数据长度 2 0002 读取2路继电器输出状态位由主机计算得到CRC码CRC码 2 BDCB从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 01 读开关量输出状态数据长度 1 01 1个字节(8个BIT位)DO状态数据 1 02 DO寄存器内容2.3 功能码“03”:读多路寄存器输入例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。

从机(PDM)数据寄存器的地址和数据为:寄存器地址寄存器数据(16进制)对应PDM电量0116 1784 UA0117 1780 UB0118 178A UC 主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 03 读取寄存器起始地址 2 0116 起始地址为0116数据长度 3 0003 读取3个寄存器(共6个字节)由主机计算得到CRC码CRC码 2 E5F3从机(PDM)响应返回的报文格式:从机响应字节数返回的信息备注从机地址 1 01 来自从机01功能码 1 03 读取寄存器读取字 1 06 3个寄存器共6个字节地址为0116内存的内容寄存器数据1 2 1784寄存器数据2 2 1780地址为0117内存的内容寄存器数据3 2 178A 地址为0118内存的内容CRC码 2 5847 由从机计算得到CRC码2.4 功能码“05”:写1路开关量输出(“遥控”)例1:开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。

控制命令为:“FF00”为控制继电器“合”;“0000”为控制继电器“分”;主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 05 写开关量输出状态输出BIT位 2 0000 对应输出继电器BIT位(DO1)控制该路继电器输出为“合”状态位控制命令 2 FF00CRC码 2 8C3A由主机计算得到CRC码从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。

例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。

主机发送的报文格式:主机发送字节数发送的信息备注从机地址 1 01 发送至地址为01的从机功能码 1 05 写开关量输出状态输出BIT位 2 0001 对应输出继电器BIT位(DO2)控制命令 2 0000 控制该路继电器输出为“合”状态位由主机计算得到CRC码CRC码 2 9C0A从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。

2.5 功能码“06”:写单路寄存器例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为002C的PDM表原存储信息为:地址原来存储数据(16进制)002C 04B0主机发送的报文格式:主机发送字节数发送的信息举例从机地址 1 01 发送至地址为01的从机功能码 1 06 写单路寄存器起始地址 2 002C 要写入的寄存器地址写入数据 2 07D0 对应的新数据由主机计算得到的CRC码CRC码 24BAF从机(PDM)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。

2.6功能码“10”:写多路寄存器主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。

Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。

这样PDM的存储器都是二个字节。

由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。

例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:地址原来存储数据(16进制)002C 04B0002D 1388主机发送的报文格式:主机发送字节数发送信息举例发送至从机01从机地址 1 01写多路寄存器功能码 1 10要写入的寄存器的起始地址起始地址 2 002C保存数据的字长度(共2字)保存数据字长度 2 0002保存数据的字节长度(共4字节)保存数据字节长 1 04数据地址002C保存数据1 2 04B0数据地址002D保存数据2 2 1388由主机计算得到的CRC码CRC码 2 FC63从机(PDM)响应返回的报文格式:从机响应字节数字节数举例来自从机01从机地址 1 01写多路寄存器功能码 1 10起始地址为002C起始地址 2 002C保存2个字长度的数据保存数据字长度 2 0002由从机计算得到的CRC码CRC码 2 8001三、错误校验码(CRC校验):主机或从机可用校验码进行判别接收信息是否正确。

相关主题