(精选文档)MODBUS协议蓄电池组在线监测_第1页
(精选文档)MODBUS协议蓄电池组在线监测_第2页
(精选文档)MODBUS协议蓄电池组在线监测_第3页
(精选文档)MODBUS协议蓄电池组在线监测_第4页
(精选文档)MODBUS协议蓄电池组在线监测_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蓄电池组在线监测装置 MODBUS通信协议 1 MODBUS通信协议原理2 物理层接口蓄电池组在线监测装置,采用RS485 线路进行通信。 3 Modbus 串行数据链路层协议3.1 Modbus主站/从站协议原理Modbus 串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247 ) 连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个Modbus 事务处理。主节点以两种模式对子节点发出Modbus 请求: 在单播模式,主节点以特定地

2、址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个 应答)。在这种模式, 一个 Modbus 事务处理包含2 个报文: 一个来自主节点的请求, 一个来自子节点的应答。每个子节点必须有唯一的地址(1 到247),这样才能区别于其它节点被独立的寻址。 在广播模式,主节点向所有的子节点发送请求。对于主节点广播的请求没有应答返回。广播请求一般用于写命令。所有设备必须接受广播模式的写功能。地址0 是专门用于表示广播数据的。单播和广播模式的区别在一个多点的结构下(如RS485)更加易于理解。3.2 Modbus地址规则Modbus 寻址空间有256 个不同地址。 01475524

3、8广播地址子节点单独地址保留Modbus 主节点没有地址, 只有子节点必须有一个地址。该地址必须在Modbus 串行总线上唯一。图解如下:3.3 串行链路数据帧格式3.3.1 Modbus帧描述MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS 协议映射能够在应用数据单元(ADU)上引入一些附加域。表3-2 数据帧格式表字段字节数描述设备地址1BYTE 型数据,对象的地址。范围1247。每组蓄电池分配一个访问地址,默认情况下组1 地址为1,组2 地址为组1地址加1,以此类推。监测多少组蓄电池,就占用连续的多少个地址。组1 地址可以前台修改,

4、相应组2 地址也会在组1 地址上增1。功能码1BYTE 型数据。见“命令解析”。正常情况下发送和应答的功能码一致,异常情况下参见“异常应答机制”。数据区N见“命令解析”。校验2CRC16 校验,校验生成函数参考附录七。 帧格式图解 在Modbus 串行链路,地址域只含有子节点地址。如前文所述,合法的子节点地址为十进制0 247。每个子设备被赋予1 247 范围中的地址。主节点通过将子节点的地址放到报文的地址域对子节点寻址。当子节点返回应答时, 它将自己的地址放到应答报文的地址域以让主节点知道哪个子节点在回答。 功能码指明服务器要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。 错误

5、检验域是对报文内容执行冗余校验 的计算结果。根据不同的传输模式(RTU or ASCII)使用两种不同的计算方法。4.串行传输模式RTU 它定义了报文域的位内容在线路上串行的传送。它确定了信息如何打包为报文和解码。Modbus 串行链路上所有设备的传输模式 (和串行口参数) 必须相同。4.1 RTU传输模式串行链路上第一个MODBUS执行的长度约束限制了MODBUS PDU大小(最大RS485ADU=256字节)。因此,对串行链路通信来说,MODBUS PDU=256-服务器地址(1字节)-CRC(2 字节)253字节。帧描述 : Modbus RTU 帧最大为256 字节。4.2 Modbu

6、s 报文RTU帧由发送设备将Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。在 RTU 模式,报文帧由时长至少为3.5 个字符时间的空闲间隔区分。在后续的部分,这个时间区间被称作t3.5。整个报文帧必须以连续的字符流发送。如果两个字符之间的空闲间隔大于1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。串通讯的数据帧格式图解4.3.1/*串口传输设置*蓄电池组在线监测装置,采用RS485 线路进行通信。串口通信输出格式为:1 位起始位,8 位数据位,1 位停止位,奇校验

7、。默认波特率为2400bps,可调节为1200bps, 2400bps,4800bps, 9600bps。编码系统: 8位二进制报文中每个8 位字节含有两个4 位十六进制字符(09, AF)Bits per Byte: 1 起始位8 数据位, 首先发送最低有效位1 位作为奇偶校验1 停止位偶校验是要求的, 其它模式( 奇校验, 无校验) 也可以使用。为了保证与其它产品的最大兼容性,同时支持无校验模式是建议的。默认校验模式模式必须为偶校验。注 : 使用无校验要求2 个停止位。字符是如何串行传送的:每个字符或字节均由此顺序发送(从左到右):最低有效位(LSB) . . . 最高有效位(MSB)4.

8、3.2/*RTU数据格式*一。下行数据结构(主机发送到从机数据协议) 起始码 地址码 功能码 数据区 CRC校验 停止码| |- - - - - -1、 数据格式:【起始码:0xEB 0x90 0xEB 0x90】起始码:+ 从机地址码(1)+【命令码】(1)【起始地址(2)寄存器数(2)】CRC16校验(2) +停止码(2)(括号内为字节数) CRC16高字节在前低字节在后2、从机地址码为表示广播方式,所有从机都能收到并处理,否则地址码与从机地址相同时从机才响应;因此从机地址范围:1247三上行数据结构(从机发送到主机数据协议) 起始码 地址码 功能码 数据区 CRC校验 停止码| |- -

9、 - - - -2、 数据格式:【起始码:0xEB 0x90 0xEB 0x90】起始码:+ 从机地址码(1)+【命令码】(1)【寄存器数(2)+N个数据】CRC16校验(2) +停止码(2)(括号内为字节数)CRC16高字节在前低字节在后4.4 帧检验域: 循环冗余校验(CRC)在RTU 模式包含一个对全部报文内容执行的,基于循环冗余校验 (CRC - Cyclical RedundancyChecking) 算法的错误检验域。CRC 域检验整个报文的内容。不管报文有无奇偶校验,均执行此检验。CRC 包含由两个8 位字节组成的一个16 位值。CRC 域作为报文的最后的域附加在报文之后。计算后

10、,首先附加低字节,然后是高字节。CRC高字节为报文发送的最后一个子节。附加在报文后面的CRC 的值由发送设备计算。接收设备在接收报文时重新计算CRC 的值,并将计算结果于实际接收到的CRC 值相比较。如果两个值不相等,则为错误。CRC 的计算, 开始对一个16 位寄存器预装全1。然后将报文中的连续的8 位子节对其进行后续的计算。只有字符中的8个数据位参与生成CRC 的运算,起始位,停止位和校验位不参与CRC计算。CRC 的生成过程中, 每个 8位字符与寄存器中的值异或。然后结果向最低有效位(LSB)方向移动(Shift) 1位,而最高有效位(MSB)位置充零。然后提取并检查LSB:如果LSB

11、为1, 则寄存器中的值与一个固定的预置值异或;如果LSB 为 0, 则不进行异或操作。这个过程将重复直到执行完8 次移位。完成最后一次(第8 次)移位及相关操作后,下一个8位字节与寄存器的当前值异或,然后又同上面描述过的一样重复8 次。当所有报文中子节都运算之后得到的寄存器忠的最终值,就是CRC。5 数据存储和传输顺序5.1 16bit数据类型字节存储及传输顺序MODBUS 使用一个big-Endian,对于16bit 数据类型, 先传输高字节,再传输低字节。例如3A56H,先传送3AH,再传送56H。输入寄存器和保持寄存器都是16bit 寻址的寄存器。可以认为单个寄存器的位存储顺序也是高字节

12、在前,低子字节在后。5.2 32bit数据类型字存储及传输顺序MODBUS 使用一个big-Endian,对于32bit 浮点型、32bit 整型等32bit 数据类型,先传输高16bit 字,再传输低16bit字。比如8DF377A2H 数据,先传输8DF3H,再传输77A2H。在输入寄存器和保持寄存器中,32bit 数据占用连续的两个寄存器地址。相应低地址存储高16 位,高地址存放低16 位。8DF377A2H 数值如果用地址12、13 连个寄存器来存放,则地址12 寄存器存放8DF3H,地址13 寄存器存放77A2H。5.3 字符串数据类型存储及传输顺序字符串数据传输时先传输较靠前的字符

13、。字符串数据类型在输入寄存器和保持寄存器存储时,顺序上较靠前的字符存储在较低地址的寄存器中。在一个寄存器中,较靠前的8bit 字符存储在高字节上,较靠后的8bit 字符存储在低字节上。5.4. 布尔型数据类型存储及传输顺序布尔型数据主要分布在离散输入寄存器中。离散输入寄存器实际以字节为单位存储和传输。较低地址的寄存器存储在一个字节的较低位上。传输时,先传输较低地址的寄存器值。存储较低地址的8 个寄存器的字节先于存储较高地址的8 个寄存器的字节传输。例如:连续的16 个离散输入寄存器的值从低地址到高地址依次为:1,1,0,1,1,1,0,0,1,1,0,1,1,1,0,1。传输时分两个字节传输,

14、先传输二进制1,1,0,1,1,1,0,0 八个位,实际存储的值为二进制00111011(注意低位先传),即3BH。再传送1,1,0,1,1,1,0,1 八个位,实际存储的值为10111011B,即BBH。6.MODBUS应用层协议:命令解析和“数据区”定义命令解析本章中所罗列的发送接收数据内容仅指“命令结构”一节中所提到的“数据区”。6.1. 标准MODBUS命令6.1.1. 读离散输入寄存器02H在一个远程设备中,使用该功能码读取离散量输入的1 至2000 连续状态。请求PDU 详细说明了起始地址,即指定的第一个输入地址和输入编号。从零开始寻址输入。因此寻址输入1-16 为0-15。根据数

15、据域的每个比特将响应报文中的离散量输入分成为一个输入。指示状态为1= ON 和0=OFF。第一个数据字节的LSB(最低有效位)包括在询问中寻址的输入。其它输入依次类推,一直到这个字节的高位端为止,并在后续字节中从低位到高位的顺序。如果返回的输入数量不是八的倍数,将用零填充最后数据字节中的剩余比特(一直到字节的高位端)。字节数量域说明了数据的完整字节数。 响应 PDU 功能码1 个字节0x02字节数字节数 1 个字节N*输入状态 N*1个字节 *N输出数量/8,如果余数不等于0,那么 N = N+1将离散量输入状态204-197表示为十六进制字节值AC,或二进制1010 1100。输入204是这

16、个字节的MSB,输入197 是这个字节的LSB。将离散量输入状态218-213表示为十六进制字节值35,或二进制0011 0101。输入218位于左侧第3 比特,输入213 是LSB。注:用零填充2 个剩余比特(一直到高位端)。 6.1.2 读输入寄存器04H在一个远程设备中,使用该功能码读取1 至大约125 的连续输入寄存器。请求PDU 说明了起始地址和寄存器数量。从零开始寻址寄存器。因此,寻址输入寄存器1-16 为0-15。将响应报文中的寄存器数据分成每个寄存器为两字节,在每个字节中直接地调整二进制内容。对于每个寄存器,第一个字节包括高位比特,并且第二个字节包括低位比特。 将输入寄存器9

17、的内容表示为两个十六进制字节值00 0A,或十进制10。6.1.3 读保持寄存器03H 在一个远程设备中,使用该功能码读取保持寄存器连续块的内容。请求PDU说明了起始寄存器地址和寄存器数量。从零开始寻址寄存器。因此,寻址寄存器1-16 为0-15。将响应报文中的寄存器数据分成每个寄存器有两字节,在每个字节中直接地调整二进制内容。对于每个寄存器,第一个字节包括高位比特,并且第二个字节包括低位比特。将寄存器108的内容表示为两个十六进制字节值02 2B,或十进制555。将寄存器109-110的内容分别表示为十六进制00 00 和00 64,或十进制0 和100。6.1.4. 报告从站ID 11H表

18、6-1-4-1 报告从站ID 命令发送数据区说明:为了及时监视到设备重启,要求每次轮训数据时都必须进行一次“报告从站ID”。6.1.5 MODBUS 异常响应当客户机设备向服务器设备发送请求时,客户机希望一个正常响应。从主站询问中出现下列四种可能事件之一:l 如果服务器设备接收到无通信错误的请求,并且可以正常地处理询问,那么服务器设备将返回一个正常响应。l 如果由于通信错误,服务器没有接收到请求,那么不能返回响应。客户机程序将最终处理请求的超时状态。l 如果服务器接收到请求,但是检测到一个通信错误(奇偶校验、LRC、CRC、.),那么不能返回响应。客户机程序将最终处理请求的超时状态。l 如果服

19、务器接收到无通信错误的请求,但不能处理这个请求(例如,如果请求读个不存在的输出或寄存器),服务器将返回一个异常响应,通知用户错误的本质特性。异常响应报文有两个与正常响应不同的域:功能码域:在正常响应中,服务器利用响应功能码域来应答最初请求的功能码。所有功能码的最高有效位(MSB)都为0(它们的值都低于十六进制80)。在异常响应中,服务器设置功能码的MSB 为1。这使得异常响应中的功能码值比正常响应中的功能码值高十六进制80。通过设置功能码的MSB,客户机的应用程序能够识别异常响应,并且能够检测异常码的数据域。数据域:在正常响应中,服务器可以返回数据域中数据或统计表(请求中要求的任何报文)。在异

20、常响应中,服务器返回数据域中的异常码。这就定义了产生异常的服务器状态。客户机请求和服务器异常响应的实例:在这个实例中,客户机对服务器设备寻址请求。功能码(01)用于读输出状态操作。它将请求地址1245(十六进制04A1)的输出状态。值得注意的是,象输出域(0001)号码说明的那样,只读出一个输出。如果在服务器设备中不存在输出地址,那么服务器将返回异常码(02)的异常响应。这就说明从站的非法数据地址。从下页开始异常码的列表。异常判断流程参考图7 MODBUS 对寄存器表访问模式基本表格对象类型访问类型内容离散量输入寄存器表单个比特只读 /O 系统提供这种类型数据输入寄存器表16-比特字只读I/O

21、 系统提供这种类型数据保持寄存器表16-比特字读写通过应用程序改变这种类型数据8 程序设计结构当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应。对于异常响应,服务器返回一个与原始功能码等同的码,设置该原始功能码的最高有效位为逻辑1。MODBUS 协议定义了三种PDU。它们是:l MODBUS请求PDU,mb_req_pdul MODBUS响应PDU,mb_rsp_pdul MODBUS异常响应PDU,mb_excep_rsp_pdu定义mb_req_pdu 为:mb_req_pdu = functio

22、n_code, request_data,其中function_code - 1个字节 MODBUS 功能码request_data - n个字节,这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、子功能码等信息。定义mb_rsp_pdu 为:mb_rsp_pdu = function_code, response_ data,其中function_code - 1个字节 MODBUS 功能码response_data - n个字节,这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、子功能码等信息。定义mb_excep_rsp_pdu 为:mb_excep_rsp_

23、pdu = function_code, request_data,其中function_code - 1个字节 MODBUS 功能码+ 0x80exception_code - 1个字节,在下表中定义了MODBUS 异常码。9. 数据类型说明:BYTE unsigned charINT unsigned shortFLOAT floatULONG unsigned long9.1附录一离散输入寄存器表 功能码:0x02字段起始地址十进制起始地址十六进制说明( 读写设置告警时标)年 000001BYTE00009999月100011BYTE112日200021BYTE131时300031BYT

24、E023分400041BYTE059秒500051BYTE0591号板电压过高 60006BYTE0-无告警,1-告警1号板电压过低 70007BYTE0-无告警,1-告警1号板大板没放出电流80008BYTE0-无告警,1-告警1号板内阻电压异常90009BYTE0-无告警,1-告警1号板均充结束10000ABYTE0-无提示;1-核容放电结束提示。在核容放电结束后1号板核容放电结束提示 11000BBYTE0-无提示;1-核容放电结束提示。在核容放电结束后,该提示信号维持1分钟,然后自动取消。1号温度过高12000CBYTE0-无告警,1-告警1号板通讯故障13000DBYTE0-无告警,

25、1-告警2号板电压过高 14000EBYTE0-无告警,1-告警2号板电压过低 15000FBYTE0-无告警,1-告警21号板大板没放出电流160010BYTE0-无告警,1-告警2号板内阻电压异常170011BYTE0-无告警,1-告警2号板均充结束180012BYTE0-无提示;1-放电结束提示。2 号板核容放电结束提示 190013BYTE0-无提示;1-核容放电结束提示。2号板通讯故障200014BYTE0-无告警,1-告警2号温度过高210015BYTE0-无告警,1-告警开关量1220016BYTE0断,1通开关量2230017BYTE0断,1通开关量3240018BYTE0断,

26、1通开关量4250019BYTE0断,1通保留附录二保持寄存器表(读写)功能码:0x03字段起始地址十进制起始地址十六进制字节数(Byte)数据类型范围单位说明( 读写设置巡检时标)本次测量设备ID000002INT电池类型: 容量参数100022INT电池类型 : 电压参数200041BYTE设备最大板数300051BYTE051号板测量电池数400061BYTE2号板测量电池数500071BYTE电池组上限电压600984float0999V电池组下限电压7009C4float0999V ( 读写设置巡检间隔时间)秒2000144UNLLONG(读写快速巡检设置时间 )秒2400184UN

27、LONG (读写设置内阻定检时标 )时28001C2INT(读写设置连接内阻定检时标 )时30001E2INT保留电池报警设置单节电池上限电压5000324float0999V单节电池下限电压5400364float0999V电池组上限电压58003A4float0999V电池组下限电压62003E4float0999V保留附录三 输入寄存器表(只读)功能码:0x04字段起始地址十进制起始地址十六进制字节数(Byte )数据类型范围单位说明( 巡检最新时间1 )年 000001BYTE00009999月100011BYTE112日200021BYTE131时300031BYTE023分4000

28、41BYTE059秒500051BYTE059-(巡检获取测量值1)- 1号板总电压7000E4FLOAT-3000030000 A 当数值为-32768 时表示测点无效1号板总电流900124FLOAT060000 Ah当数值为65535 时表示测点无效点01环境温度 1100164FLOAT -30000300 00 当数值为-32768 时表示测点无效2号板总电压8001A4FLOAT060000 V当数值为65535 时表示测点无效2号板总电流10001E4FLOAT -30000300 00 当数值为-32768 时表示测点无效点02环境温度 700224FLOAT-30000300

29、00 A 当数值为-32768 时表示测点无效电池组总电压 800264FLOAT060000 V当数值为65535 时表示测点无效保留 (获取测量电压值的时标2)年 2000281BYTE00009999月2100291BYTE112日22002A1BYTE131时23002B1BYTE023分24002C1BYTE059秒25002D1BYTE059(获取每节电池电压测量值2)电池001电压 26002E4FLOAT015V 电池002电压 2700314FLOAT015V 4FLOAT015V 电池112电电压 13604754FLOAT015V 保留0( 内阻测试最新时间)年 1500

30、8BC1BYTE00009999月15108BD1BYTE112日15208BE1BYTE131时15308BF1BYTE023分15408C01BYTE059秒15508C11BYTE059获取每节电池可视内阻R测量值电池001内阻R 15608C2 4FLOAT02.5 / 02500m/当数值为65535时表示测点无效电池002内阻R 15508C64FLOAT02.5 / 02500m/当数值为65535时表示测点无效.4FLOAT02.5 / 02500m/当数值为65535时表示测点无效电池112内阻 R2670D064FLOAT02.5 / 02500m/当数值为65535时表示

31、测点无效保留 获取每节电池局部内阻R2测量值电池001内阻 R1 15611504FLOAT02.5 / 02500m/当数值为65535时表示测点无效电池002内阻 R1 15611544FLOAT02.5 / 02500m/当数值为65535时表示测点无效.4FLOAT02.5 / 02500m/当数值为65535时表示测点无效电池112内阻 R12671594 4FLOAT02.5 / 02500m/当数值为65535时表示测点无效保留m/当数值为65535时表示测点无效获取每节电池局部内阻中容量C2测量值电池001号 C215619D84FLOAT02.5 / 02500uF当数值为6

32、5535时表示测点无效电池002号 C215619DC 4FLOAT02.5 / 02500uF当数值为65535时表示测点无效.4FLOAT02.5 / 02500uF当数值为65535时表示测点无效电池112号 C22671E1C 4FLOAT02.5 / 02500uF当数值为65535时表示测点无效保留保留2260 2264 26A4(获取测量连接内阻的时标3)年 202AE81BYTE00009999月212AE91BYTE112日222AF01BYTE131时232AF11BYTE023分242AF21BYTE059秒252AF31BYTE059(获取测量连接内阻的测量值)电池00

33、1号连接条电阻62AF4 4FLOAT02.5 / 02500m/当数值为65535时表示测点无效电池002号连接条电阻62AF8 4FLOAT02.5 / 02500m/.4FLOAT02.5 / 02500m/112号连接条电阻62F384FLOAT02.5 / 02500m/保留示例:附:CRC16函数/* * File Name:CRC16.C * Function Describe:用查表法计算16位的CRC校验码 * Relate Module:*/const unsigned BYTE Con_Crc_Hi= 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

34、 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

35、 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

36、 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

37、 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

38、 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40;

39、const unsigned BYTE Con_Crc_Lo= 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD

40、, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论