荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解

上传人:我** 文档编号:114455708 上传时间:2019-11-11 格式:DOC 页数:22 大小:294.50KB
返回 下载 相关 举报
荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解_第1页
第1页 / 共22页
荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解_第2页
第2页 / 共22页
荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解_第3页
第3页 / 共22页
荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解_第4页
第4页 / 共22页
荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解》由会员分享,可在线阅读,更多相关《荣信链式SVG MODBUS通讯规约 (版本3.3) 20131210讲解(22页珍藏版)》请在金锄头文库上搜索。

1、荣信MODBUS通讯规约说明 MODBUS通讯规约版本:3.32013年11月28日荣信电力电子股份有限公司目录1.MODBUS通讯规约31.1.数据传送31.2.数据格式31.2.1.装置地址31.2.2.功能码41.2.3.装置对主站的正确和错误命令的回应51.2.4.数据区51.3.功能码详细说明61.3.1.功能码01:读开关 (遥信)61.3.2.功能码03:读寄存器 (遥测)81.3.3.功能码05:写单路开关 (遥控)91.3.4.功能码06:写单个寄存器 (遥调)111.3.5.功能码0F:写多路开关 (对多路开关同时进行遥控)121.3.6.功能码10:写多个寄存器 (对多个

2、寄存器同时进行遥调)141.4.CRC16计算方法161.4.1.算法说明161.4.2.MODBUS CRC校验码的C语言源程序162.MODBUS通讯点表 (链式SVG)172.1.遥信通讯点表172.2.遥测通讯点表192.3.遥控通讯点表212.4.遥调通讯点表211. MODBUS通讯规约1.1. 数据传送 主站和装置间以串行方式连接,主站端以问答方式与保护测控装置通讯。每帧报文的长度不超过255个字节。 如果装置收到的主站报文的装置地址、报文类型、数据和校验码都正确,则应在500ms内以正常报文响应主站。 如果装置收到的主站报文的装置地址或校验码不正确,则不回答。主站侧判超时后继续

3、后续的通讯。 如果装置收到的报文的装置地址和校验码正确,但报文类型或数据内容不正确,则应在500ms内以异常报文回应主站。 采用RS485,1位起始位8位数据位,无校验,1位停止位,波特率1200-38400 可设置。1.2. 数据格式装置地址功能码数据区CRC校验1个字节1个字节N个字节2个字节(16位循环冗余校验码)注:1个字节由8位二进制组成,即8 bits1.2.1. 装置地址装置地址是每次通讯信息帧的第一个字节,从0到255。这个字节表明由用户设置为该地址的装置将接收由主站发过来的此条信息,每个装置必须有一个唯一的地址,只有符合这个地址的装置才能响应主站回送信息。当从机回送信息时,回

4、送数据的第一个字节也是这个装置的地址。主站发送的数据当中的装置地址表明将要发送到哪个装置,装置返回的数据当中的装置地址表明此数据来自何处。1.2.2. 功能码功能码是每次通讯的数据的第二个字节,MODBUS通讯规约可以定义的功能码的范围为1到127,荣信监控系统仅采用了其中一部分功能码:功能码 (HEX)定义描述01读开关读取一路或多路开关的状态 (遥信)03读寄存器读取一个或多个寄存器 (模拟量) 数据 (遥测)05写单路开关控制一路开关的分或合 (遥控)06写单个寄存器写入一个寄存器/模拟量数据 (遥调)0F写多路开关控制多路开关的分或合 (对多路开关同时遥控)10写多个寄存器写入多个寄存

5、器/模拟量数据 (对多个寄存器同时遥调)主站向装置发送的命令包含以上的功能码,装置回应主站的数据时: 如果主站发送的命令正确,可以返回正常的数据,装置回应的数据的功能码与主站发送的功能码相同; 如果主站发送的命令错误,无法返回正常的数据,装置回应的数据的功能码等于主站发送的功能码与80H取或,即功能码字节的最高位置1,此时装置回应的数据区只有一个字节的数据,即错误编码。1.2.3. 装置对主站的正确和错误命令的回应装置对主站的正确命令的回应:装置地址功能码数据区CRC校验1个字节1个字节和主站下发命令的功能码相同N个字节2个字节(16位循环冗余校验码)装置对主站的错误命令的回应:装置地址功能码

6、数据区CRC校验1个字节1个字节,最高位置一即 = 功能码 | 0x801个字节错误编码2个字节(16位循环冗余校验码)错误编码:编码含义1无效的报文类型2无效的数据地址,包含数据长度越界3写入的数据值无效6装置忙报文示例:01 81 02 C1 91 收到的功能码为01的命令有错误(81),错误码为02:地址无效或长度越界01 83 02 C0 F1 收到的功能码为03的命令有错误(83),错误码为02:地址无效或长度越界01 85 03 02 91 收到的功能码为05的命令有错误(85),错误码为03:写入的数值无效1.2.4. 数据区数据区的内容以Big Endian形式储存,通讯时先发

7、高位字节,后发低位字节。数据区的内容根据不同的功能码有不同的规定,具体规定参见下面的功能码详细说明。1.3. 功能码详细说明1.3.1. 功能码01:读开关 (遥信)所有的开关都以二进制位进行编码,每个开关一位,一个字节可以容纳8个开关的状态,1为合状态,0为分状态。开关的地址为位编码的,可以理解为地址为0的开关在数据区第1个字节的D0位,地址为1的开关在数据区的第1个字节的D1位,地址为7的开关在数据区的第1个字节的D7位,地址为8的开关在数据区的第2个字节的D0位,地址为N的开关在数据区的第N/8+1个字节的第N%8位。主机发送的报文格式:装置地址1个字节装置地址功能码1个字节01: 读开

8、关状态起始地址2个字节从哪个地址的开关开始读取开关状态 (起始bit位)开关个数2个字节读取几个开关的状态 (bits数)CRC校验码2个字节装置地址、功能码、起始地址、开关个数的CRC校验码装置返回数据的报文格式:装置地址1个字节装置地址功能码1个字节01: 读开关状态数据字节数N1个字节接下来有多少个字节的数据,每个字节包含8开关的状态数据字节数N= (开关个数+7)8数据N个字节返回的第1个字节的D0位为第一个 (起始地址) 开关的状态;返回的第1个字节的D1位为第二个 (起始地址+1) 开关的状态;返回的第2个字节的D0位为第九个 (起始地址+8) 开关的状态CRC校验码2个字节装置地

9、址、功能码、数据字节数、数据的CRC校验码报文示例:假设装置的地址为2,开关状态如下:地址0123456789101112131415状态分合分分分合合分分分分合分合分合查询地址从4到8的5个开关的状态:主机发送的数据:02 01 00 04 00 05 BD FB021个字节装置地址: 02011个字节功能码01: 读开关状态00 042个字节起始地址: 0004,先发高位字节00,后发低位字节0400 052个字节读取0005个开关的状态,先发高位字节00,后发低位字节05BD FB2个字节02 01 00 04 00 05的CRC校验码装置返回的数据:02 01 01 06 D1 CE0

10、21个字节装置地址011个字节功能码01: 读开关状态011个字节接下来有1个字节的数据,最多可表示8开关的状态061个字节由于只查询5个开关的状态,D0-D4: 开关状态,D5-D7无意义数据06用二进制表示等于00000110位状态开关地址说明0-D7: 只查询5个开关的状态,D7无意义0-D6: 只查询5个开关的状态,D6无意义0-D5: 只查询5个开关的状态,D5无意义0分8D4=0: 地址为8的开关状态为分0分7D3=0: 地址为7的开关状态为分1合6D2=1: 地址为6的开关状态为合1合5D1=1: 地址为5的开关状态为合0分4D0=0: 地址为4的开关状态为分由于查询命令是从地址

11、为4的开关开始查询的,所以返回的数据是从地址为4的开关状态开始的,地址为4、5、6、7、8的开关状态分别为分、合、合、分、分D1 CE2个字节02 01 01 06的CRC校验码1.3.2. 功能码03:读寄存器 (遥测)每个寄存器都是两个字节 (16位二进制数据),高位字节在前,低位字节在后。每个寄存器表示的数据范围为-32768到32767,负数用补码 (twos complement) 表示。寄存器的地址编码,可以理解为地址为0的寄存器在数据区的第1个和第2个字节,地址为1的寄存器在数据区的第3个和第4个字节,地址为2的寄存器在数据区的第5个和第6个字节主机发送的报文格式:装置地址1个字

12、节装置地址功能码1个字节03: 读寄存器起始地址2个字节从哪个地址的寄存器开始读取数据寄存器个数2个字节读取几个寄存器的数据 (字节数=寄存器个数2)CRC校验码2个字节装置地址、功能码、起始地址、寄存器个数的CRC校验码装置返回数据的报文格式:装置地址1个字节装置地址功能码1个字节03: 读寄存器数据字节数N1个字节数据字节数N=寄存器个数2寄存器数据N个字节寄存器个数=数据字节数2返回的第一个字节和第二个字节是第一个 (起始地址) 的寄存器数据返回的第三个字节和第四个字节是第二个 (起始地址+1) 的寄存器数据CRC校验码2个字节装置地址、功能码、数据字节数、寄存器数据的CRC校验码报文示

13、例:假设装置的地址为2,寄存器的数据如下:地址012345678数据5001000-9002000-10800300-1000600查询地址从2到5的4个寄存器的数据:主机发送的数据:02 03 00 02 00 04 E5 FA021个字节装置地址: 02031个字节功能码03: 读寄存器00 022个字节起始地址: 0002,先发高位字节00,后发低位字节0200 042个字节读取0004个寄存器的数据,先发高位字节00,后发低位字节04E5 FA2个字节02 03 00 02 00 04的CRC校验码装置应答的数据:02 03 08 FC 7C 07 D0 FF F6 03 20 39 2E021个字节装置地址: 02031个字节功能码03: 读寄存器081个字节接下来有8个字节,即4个寄存器的数据FC 7C 07 D0FF F6 03 208个字节因为查询命令是从地址2的寄存器开始查询

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号