您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > PS690U_ModBus通讯规约201
PS690UMODBUSRTU通讯协议Ver2.01-第1页共10页-MODBUS_RTU通讯规约(本协议采用主从问答方式)PS690U系列测控保护装置:ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所通信设备决定。采样这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。PS690U系列测控保护装置提供了标准的RS-485通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外电力行业及工控行业作为系统集成的标准。通讯数据的类型及格式:信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是11位的字格式:字格式(串行数据)11位二进制起始位1位数据位8位奇偶校验位1位:有奇偶校验位/无:无奇偶校验位停止位1位:有奇偶校验位/2位:无奇偶校验位●通讯数据(信息帧)格式数据格式:地址码功能码数据区错误校检数据长度:1字节1字节N字节16位CRC码(冗余循环码)★注:1、1个字节由8位二进制数组成(既8bit)。2、ModBus是Modicon公司的注册商标。3、“从机”在本文件中既为PS690U。一、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。如果CRC校验出错就不返回任何信息。1.1地址码:地址码是每次通讯信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。相应的地址码表明该信息来自于何处。主机广播地址码为0。1.2功能码:是每次通讯信息帧传送的第二个字节。ModBus通讯规约可定义的功能码为1到127。PS690U系列测控保护装置仅用到其中的一部分功能码。作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。PS690UMODBUSRTU通讯协议Ver2.01-第2页共10页-表1.1PS690U支持的MODBUS部分功能码功能码名称作用0x01读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)0x02读取输入状态取得一组开关输入的当前状态(ON/OFF)0x03读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值0x04读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值0x05强置单线圈强置一个逻辑线圈的通断状态0x06预置单寄存器把具体二进制值装入一个保持寄存器0x10预置多寄存器把具体二进制值装入一串连续的保持寄存器表1.2MODBUS功能码与数据类型对应表功能码功能数据类型0x01读位0x02读位0x03读整型、字符型、状态字、浮点型0x04读整型、状态字、浮点型0x05写位0x06写整型、字符型、状态字、浮点型0x10写整型、字符型、状态字、浮点型表1.3MODBUS部分功能码与PS690U数据抽象表功能码名称PS690U抽象体0x01读取线圈状态对应装置复归及遥控开关状态0x02读取输入状态对应装置的遥信、告警遥信、保护动作元件0x03读取保持寄存器对应装置的时间、区号、定值、压板0x04读取输入寄存器对应装置的遥测量、电度量0x05强置单线圈对应装置的复归及遥控开关0x06预置单寄存器对应装置的时间、区号、定值、压板0x10预置多寄存器对应装置的时间、区号、定值、压板1.3数据区:数据区包括需要由从机返送何种信息或执行什么动作。这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如,主机通过功能码04告诉从机返回输入寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),从机返回的数据包括寄存器的数据长度及数据内容。对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。690U系列测控保护装置采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03或04),可以任意读取其数据寄存器(其数据信息表详见附带的Excel文件)。PS690U系列测控保护装置的数据寄存器存储的量多达上百个(如:电流、电压、功率、定值、软压板、时间等),并且都是16位(2字节)的二进制数据,并且高位在前。PS690U响应的命令格式是从机地址、功能码、数据区及CRC码。数据区的数据都是两个字节,并且高位在前。PS690UMODBUSRTU通讯协议Ver2.01-第3页共10页-二、MODBUS功能码简介2.1功能码“02”:读1路或多路开关量状态输入例如:主机要读取地址为01,起始地址为0x0000,开关量DI0~DI29的输入状态。主机发送的报文格式:主机发送字节数发送的信息备注从机地址101发送至地址为01的从机功能码101读开关量输出状态起始BIT位20000起始BIT位地址为0000读数据长度2001E读取30路开关量输入状态位CRC码2BC02由主机计算得到CRC码从机(PS690U)响应返回的报文格式:从机响应字节数返回的信息备注从机地址101来自从机01功能码101读开关量输入状态数据长度1044个字节(32个BIT位)数据11CDDI7-DI0数据216BDI15-DI8数据31B2DI23-DI16数据410EDI29-DI24(空缺高位补零)CRC码241C5由从机计算得到CRC码2.2功能码“01”:读1路或多路开关量输出状态例如:主机要读取地址为01,起始地址为0x0000,开关量DO0~DO29的输出状态。主机发送的报文格式:主机发送字节数发送的信息备注从机地址101发送至地址为01的从机功能码101读开关量输出状态起始BIT位20000起始BIT位地址为0000读数据长度2001E读取30路继电器输出状态位CRC码2BC02由主机计算得到CRC码从机(PS690U)响应返回的报文格式:从机响应字节数返回的信息备注从机地址101来自从机01功能码101读开关量输出状态数据长度1044个字节(32个BIT位)数据11CDDO7-DO0数据216BDO15-DO8数据31B2DO23-DO16数据410EDO29-DO24(空缺高位补零)CRC码241C5由从机计算得到CRC码PS690UMODBUSRTU通讯协议Ver2.01-第4页共10页-2.3功能码“03”或“04”:读保持寄存器或输入寄存器数据例如:主机要读取地址为01,起始地址为0000的3个从机输入寄存器数据。从机(PS690U)数据寄存器的地址和数据为:寄存器地址寄存器数据(16进制)对应PS690U电量00001784线电压Uab00011780线电压Ubc0002178A线电压Uca主机发送的报文格式:主机发送字节数发送的信息备注从机地址101发送至地址为01的从机功能码104读取输入寄存器起始地址20000起始地址为0116读数据长度20003读取3个寄存器(共6个字节)CRC码2B00B由主机计算得到CRC码从机(PS690U)响应返回的报文格式:从机响应字节数返回的信息备注从机地址101来自从机01功能码104读取输入寄存器读取字1063个寄存器共6个字节寄存器数据121784地址为0116内存的内容寄存器数据221780地址为0117内存的内容寄存器数据32178A地址为0118内存的内容CRC码219A1由从机计算得到CRC码2.4功能码“05”:写1路开关量输出(“遥控”)例1:开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。控制命令为:“FF00”为控制继电器“合”;“0000”为控制继电器“分”;主机发送的报文格式:主机发送字节数发送的信息备注从机地址101发送至地址为01的从机功能码105写开关量输出状态输出BIT位20000对应输出继电器BIT位(DO1)控制命令2FF00控制该路继电器输出为“合”状态位CRC码28C3A由主机计算得到CRC码从机(PS690U)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。PS690UMODBUSRTU通讯协议Ver2.01-第5页共10页-例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。主机发送的报文格式:主机发送字节数发送的信息备注从机地址101发送至地址为01的从机功能码105写开关量输出状态输出BIT位20001对应输出继电器BIT位(DO2)控制命令20000控制该路继电器输出为“合”状态位CRC码29C0A由主机计算得到CRC码从机(PS690U)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。2.5功能码“06”:写单路保持寄存器例如:主机要把数据07D0,保存到地址为0005的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为0005的PS690U表原存储信息为:地址原来存储数据(16进制)000504B0主机发送的报文格式:主机发送字节数发送的信息举例从机地址101发送至地址为01的从机功能码106写单路寄存器起始地址20005要写入的寄存器地址写入数据207D0对应的新数据CRC码29A67由主机计算得到的CRC码从机(PS690U)响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。2.6功能码“10”:写多路保持寄存器主机利用这个功能码把多个数据保存到PS690U表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PS690U的存储器都是二个字节。由于PS690U的保持寄存器(含时间、区号、定值、压板等)由多种类型的数据组成,因此一次只允许预置同种类型的多路数据寄存器。例如:主机要把044C,09C4保存到地址为0005,0006的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为0005/0006的PS690U表内存储信息为:地址原来存储数据(16进制)000504B000061388PS690UMODBUSRTU通讯协议Ver2.01-第6页共10页-主机发送的报文格式:主机发送字节数发送信息举例从机地址101发送至从机01功能码110写多路保持寄存器起始地址20005要写入的寄存器的起始地址保存数据字长度20002保存数据的字长度(共2字)保存数据字节长104保存数据的字节长度(共4字节)保存数据12044C数据地址0005保存数据2209C4数据地址0006CRC码2F4B4由主机计算得到的CRC码从机(PS690U)响应返回的报文格式:从机响应字节数字节数举例从机地址101来自从机01功能码110写多路寄存器起始地址20005起始地址为0005保存数据字长度20002保存2个字长度的数据CRC码251C9由从机计算得到的CRC码三、错误校验码(CRC校验):主机或从机可用校验码进行判别接收信息是否正确。由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收),这样增加了系统的安全和效率。MODBUS通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。CRC码由发送设备(主机)计算,放置于发送信息帧的尾部。接收信息的设备(从机)再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错。在进行CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。四、通讯错误信息及数据的处理:当PS690U检测到除了CRC码出错以外的错误时,必须向主机回送信息,功
本文标题:PS690U_ModBus通讯规约201
链接地址:https://www.777doc.com/doc-2853006 .html