MODBUS 通讯协议及编程 #1 Modbus 通讯协议分为RTU 协议和ASCII 协议,我公司的多种仪表都采用ModBus RTU 通讯协议,如:CH2000 智能电力监测仪、CH2000M 电力参数采集模块、巡检表、数显表、光柱数显表等。下面就 ModBus RTU 协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与Modbus RTU 通讯规约相兼容: 编 码 8 位二进制 起始位 1 位 数据位 8 位 奇偶校验位 1 位(偶校验位) 停止位 1 位 错误校检 CRC(冗余循环码) 初始结构 = ≥4 字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节 错误校检 = 16 位 CRC 码 结束结构 = ≥4 字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。Modbus 通讯规约定义功能号为1 到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大 与此 同 时 127),则 表明从机没 有响应操作或 发送出 错。 数据区:数据区是 根 据不 同 的功能码而不 同 。数据区可 以是 实 际 数值 、设置 点 、主机发送给 从机或 从机发送给 主机的地址。 CRC 码:二字节的错误检测码。 (二)、通讯规约: 当 通讯命 令 发送至 仪器 时,符 合 相应地址码的设备 接通讯命 令 ,并除 去 地址码,读 取信息,如果没 有出 错,则 执行相应的任 务 ; 然 后 把 执行结果返 送给 发送者 。返 送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码 功能码 数据区 错误校验码 8 位 8 位 N × 8 位 16 位 地址码:地址码是信息帧的第一字节(8 位),从 0 到 255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的...