发电机~hgm610通信协议

上传人:第*** 文档编号:30560596 上传时间:2018-01-30 格式:DOC 页数:8 大小:127KB
返回 下载 相关 举报
发电机~hgm610通信协议_第1页
第1页 / 共8页
发电机~hgm610通信协议_第2页
第2页 / 共8页
发电机~hgm610通信协议_第3页
第3页 / 共8页
发电机~hgm610通信协议_第4页
第4页 / 共8页
发电机~hgm610通信协议_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《发电机~hgm610通信协议》由会员分享,可在线阅读,更多相关《发电机~hgm610通信协议(8页珍藏版)》请在金锄头文库上搜索。

1、HGM610 模块内部通讯协议1引言本通讯协议详细描述了本机串行口通讯的读写命令格式及内部信息数据的定义,以便第三方开发使用。MODBUS 通讯规约允许本装置与施耐德、西门子、Modicon 等多个国际知名品牌的可编程顺序装置(PLC)、RTU、SCADA 系统、DCS 或第三方具有 MODBUS 兼容的监控系统之间进行信息和数据的有效传递。只要增加一套基于 PC(或工控机) 的中央通讯主控显示软件(如:组态王,Intouch、FIX 、 synall 等)就可建立一套监控系统。2ModBus 基本规则: 所有 RS232 通讯回路都应遵照主、从方式。依照这种方式,数据可以在一个主站(如:PC

2、)和 32 个子站之间传递。 主站将初始化的装置在 RS232 通讯回路上传递的所有信息。 任何一次通讯都不能从子站开始。 在 RS232 回路上的所有通讯都以“信息帧”方式传递。 如果主站或子站接收到含有未知命令的信息帧,则不予响应。3数据帧格式:通讯传输为异步方式,并以字节(数据帧) 为单位。在主站和子站之间传递的每一个数据帧都是以 11 位的串行数据流。数据帧格式:起始位 1 位数据位 8 位奇偶校验位 无停止位 2 位4通信规约:当通信命令发送至仪器时,符合相应的地址码的设备接收通信命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返送给发送者。返送的信息中包

3、括地址码、执行动作的功能码、执行动作后的数据以及错误校验码(CRC) 。如果出错就不发送任何信息。信息帧格式:初始结构 地址码 功能码 数据区 错误校验 结束结构延时(相当于 4个字节的时间)1 字节8 位1 字节8 位N 字节N*8 位2 字节16 位延时(相当于 4 个字节的时间)地址码(ADDRESS):地址码为每次通信传送的信息帧中的第一个数据帧(8 位),从 0 到 255。单个设备的地址范围是1-247,这个字节表明由用户设定的地址码的子机将接收由主机发送来的信息,并且每个子机都有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送来的地址码表明将发送到的子机地址,而子机发送的

4、地址码表明回送的子机地址。功能码 (FUNCTION CODE)功能码是每次通信传送的第二个数据。ModBus 通讯规约定义功能码为 1-255(01H-0FFH)。本机利用其中的一部分功能码。作为主机请求发送,通过功能码告诉子机执行什么动作。作为子机响应,子机发送的功能码与主机发送来的功能码一样,并表明子机已响应主机进行操作。如果子机发送的功能码的最高位是 1(功能码 127),则表明子机没有响应或出错。下表列出功能码具体的含义及操作。ModBus 部分功能码功能码 定义 操作01H 读开关量 读取单个或多个开关量03H 读寄存器 读取一个或多个寄存器数据05H 置单个开关量 置单个开关量1

5、. 01H 读开关量主机可以利用功能码为 01 的通讯命令,读取装置内的各种开关量(如开关合闸、分闸、故障,自动或手动状态等)。2. 03H 读寄存器主机利用功能码为 03H 的通讯命令,读取装置内的数值寄存器,数值寄存器内保存的是采集到的各种模拟量和参数的设定值)。功能码 03H 映射的数据区的输入寄存器值都是 16 位(2 字节)。这样从装置读取的寄存器值都是 2 字节。一次最多可读取的寄存器数是 125 个。子机响应的命令格式是子机地址、功能码、数据区及 CRC 码。数据区的数据都是每二个字节为一组的双字节数,且高字节在前。3. 05H 置单个开关量主机利用这条命令把单个开关量数据保存到

6、装置内的位存储器(如控制 ATS 转换的开关量) 。子机也用这个功能码向主机返送信息。数据区(DATA):数据区随功能码不同而不同。1、 与功能码 01H 对应的数据区格式:主机发送数据顺序 1 2数据含义 起始地址 读开关量个数字节数 2 2子机应答:数据顺序 1 2数据含义 回送字节数 N 个开关量数据字节数 1 12、 与功能码 03H 对应的数据区格式:主机发送数据顺序 1 2数据含义 起始地址 读寄存器个数字节数 2 2子机应答:数据顺序 1 2数据含义 回送字节数 N 个寄存器数据字节数 1 N3、 与功能码 05H 对应的数据区格式:主机发送数据顺序 1 2数据含义 开关量地址

7、强制单个开关量值字节数 2 2子机应答:数据顺序 1 2数据含义 开关量地址 单个开关量值字节数 2 2错误校验码(CRC):主机或子机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或子机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验码采用 CRC-16 校验方法。二字节的错误校验码,低字节在前,高字节在后。*注意:信息帧的格式都是相同的:地址码、功能 码、数据区及 错误 校验码。冗余循环码(CRC)包含 2 个字节,即 16 位二进制。CRC 码由发送端计算,放置于发送信息的尾部。接收端的设

8、备再重新计算接收信息的 CRC 码是否与接收到的相同,如果二者不同,则表明出错。CRC 码的计算方法是,先预置 16 位寄存器全为 1。再逐渐把每 8 位数据信息进行处理。在进行 CRC 码计算时只用 8 位数据位,起始位及停止位都不参与 CRC 码计算。在计算 CRC 码时, 8 位数据与寄存器的数据相异或,得到的结果向低位位移一位,用 0 填补最高位。再检查最低位,如果最低位为 1,把寄存器的内容与预置数异或,如果最低位为 0,不进行异或运算。这个过程一直重复次。第 8 次移位后,下一个 8 位再与现在的寄存器的内容相异或,这个过程与上次一样重复 8 次。当所有的数据信息处理完后,最后寄存

9、器的内容即为 CRC 码值。CRC-16 码的计算步骤为:1、 置 16 位 CRC 寄存器为十六进制 FFFF;2、 把一个 8 位数据与 CRC 寄存器的低 8 位相异或,把结果放于 CRC 寄存器;3、 把 CRC 寄存器的内容右移一位,用 0 填补最高位,检查移出位。4、 如果最低位为 0:重复第 3 步(再次移位) 。如果最低位为 1:CRC 寄存器与十六进制数 A001 进行异或。5、 重复步骤 3 和 4,直到右移 8 次,这样整个 8 位数据全部进行了处理。6、 重复步骤 2 到 5,进行下一个数据处理。7、 最后得到的 CRC 寄存器值即为 CRC 码,传送时将低 8 位先发

10、送,高 8 位最后发送。注:CRC 码的计 算从子机地址开始,除CRC 码的所有字 节。信息帧格式举例功能码 01H子机地址为 00,读取起始地址为 0000H 的 20H(十进制 32)个开关量主机发送 字节数 举例(十六进制)子机地址 1 01送至子机 01功能码 1 01读取开关量起始地址 2 00起始地址为 000000读取个数 2 00读取 28 个开关量1CCRC 码 2 3D由主机计算得到的 CRC 码C3子机响应 字节数 举例(十六进制)子机地址 1 01返回子机地址 01功能码 1 01读取开关量读取字节数 1 04返回开关量数量:28 个开关量(共 4 个字节)数据 1 1

11、 30地址为 0700 内的内容数据 2 1 00地址为 0F08 内的内容数据 3 1 93地址为 1710 内的内容数据 4 1 0A地址为 1C18 内的内容CRC 码 2 18由子机计算得到的 CRC 码26开关量0700的值用十六进制表示为30H ,用二进制表示为 00110000,开关量07是字节的高位,00 是低位,开关量0700的状态是:OFFOFF ONONOFFOFFOFFOFF。功能码 03H子机地址为 01,起始地址为 0026H 的 3 个点此例中点数据地址为:地址 数据(十六进制)0026 00140028 0014002A 0005主机发送 字节数 举例(十六进制

12、)子机地址 1 01送至子机 01功能码 1 03读取点寄存器起始地址 2 00起始地址为 002626读取个数 2 00读取 3 个点(共 6 个字节)03CRC 码 2 E4由主机计算得到的 CRC 码00子机响应 字节数 举例(十六进制)子机地址 1 01返回子机地址 01功能码 1 03读取点寄存器读取字节数 1 063 个点(共 6 个字节)点 1 数据 2 00地址为 0026 内的内容14点 2 数据 2 00地址为 0028 内的内容14点 3 数据 2 00地址为 002A 内的内容05CRC 码 2 91由子机计算得到的 CRC 码71功能码 05H子机地址为 01,起始地

13、址为 0002H 的 1 个开关量,置 0002 单元为 1此例中开关量数据地址为:地址 数据(十六进制)0000 00001 10002 0说明:十六进制值FF00强制开关量为1,0000H强制为0,其它值则为非法且不影响开关量的状态主机发送 字节数 举例(十六进制)子机地址 1 01送子机地址 01功能码 1 05强制开关量起始地址 2 00起始地址为 000000数据 2 FF开关量置 100CRC 码 2 CD由主机计算得到的 CRC 码FB子机响应 字节数 举例(十六进制)子机地址 1 01返回子机地址 01功能码 1 05强制开关量起始地址 2 00起始地址为 000000数据 2

14、 FF开关量置 100CRC 码 2 CD由主机计算得到的 CRC 码FB出错处理当装置检测到了 CRC 码出错以外的错误时,必须向主机返送信息,功能码的最高位置 1,即子机返送的功能码是在主机发送的功能码的基础上加 128。以下的这些代码表明有意外的错误发生。从主机接收到的信息如有 CRC 错误,则被装置忽略。子机返送的错误码的格式如下(CRC 除外):地址码 1 字节功能码 1 字节(最高位是 1)错误码 1 字节CRC 码 2 字节错误功能码:01 非法的功能码接收到的功能码不支持02 非法的数据地址指定的地址超出子机的范围03 非法的数据值接收到主机发送的数据值超出相应地址的数据范围。

15、附录:地址和数据表 1:功能码 01H 所映射的开关量区开关量序号 地址 项目(Item) 说明1 0000H 公共报警 为 1 有效2 0001H 水/缸温高报警停机 为 1 有效3 0002H 油压低报警停机 为 1 有效4 0003H 超速报警停机 为 1 有效5 0004H 外部报警停机 为 1 有效6 0005H 起动失败停机 为 1 有效7 0006H 停机失败 为 1 有效8 0007H 速度信号丢失停机 为 1 有效9 0008H 紧急停机 为 1 有效10 0009H 充电失败报警停机 为 1 有效11 000AH 遥控紧急停机 为 1 有效12 000BH 油机燃油油位低

16、为 1 有效13 000CH 禁止油机开机 为 1 有效14 000DH 发电电压异常停机 为 1 有效15 000EH 欠频报警停机 为 1 有效16 000FH 油机正在运行 为 1 有效17 0010H 遥控开机 为 1 有效18 0011H 进排风门状态 为 1 打开,为 0 关闭19 0012H 系统在自动位 为 1 有效20 0013H 自动开机 为 1 有效21 0014H 人工开机22 0015H 发电电压正常23 0016H 发电电压过高24 0017H 发电电压过低25 0018H 发电过频26 0019H 发电欠频27 001AH 发电缺相 为 1 缺相28 001BH 发电逆相序 为 1 逆相序29 001CH 电池电压过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

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