MODBUS

发布时间 : 星期一 文章MODBUS更新完毕开始阅读

763 764-768 R10工况状态 用户预定义

查询

例请求读从机设备17中的不正常状态

QUERY Field Name Slave Address Function Error Check (LRC or CRC) Example (Hex) 11 07 — 图22:读不正常状态-查询 响应

正常响应包含 8 个不正常的线圈状态,为一个数据字节,每个线圈一位。LSB对应为最低线圈类型的状态。 例:按查询要求返回响应:

QUERY Field Name Slave Address Function Error Check (LRC or CRC) Example (Hex) 11 0B —

图23:读不正常状态—响应

该例子中,线圈数据为 6DH (二进制0110 ,1101),从左到右 (最高位至最低位) 的线圈状态分别为: OFF – ON – ON – OFF – ON – ON – OFF – ON。若控制器型号为 984,这些位表示线圈 8 至 1 的状态;若控制器型号为 484 则表示线圈 264 至 257 的状态。

11 (0B Hex) 取通讯事件计数器

说明

由从机通讯事件计数器返回一个状态字和事件数,依据一串信息前后读取的当前数值,由主机决定其信息是否已被从机正常处理,该功能代码不支持广播。

信息成功完成 1 次,使控制器的事件计数器加 1, 不正常响应,查询命令或取事件计数器命令等,对计数值不起作用。

通过诊断功能代码 (08),(若重起动通讯选择子功能代码 0001) 或计数器和诊断寄存清零器代码 (000A) 等可对事件计数器复位。 查询

例:请求读取从机设备 17 的通讯事件计数器

QUERY Field Name Slave Address Function Error Check (LRC or CRC) Example (Hex) 11 0B — 图 24:读取通讯事件计数器—查询

响应

正常响应含一个带 2 个字节的状态字和一个双字节的事件数,若从机还未处理完以前发出的程序值状态字中的各位。均为 1 (FFFFH),处理完时,各位值均为 0(0000H)。

PI-MBUS-300

Modbus Protocol 17

例:按查询要求返回响应

QUERY Field Name Slave Address Function Status Hi Status Lo Event Count Hi Event Count Lo Error Check (LRC or CRC) Example (Hex) 11 0B FF FF 01 08 — 图 25:读取通讯事件计数器—响应

该列子中,状态字是 FFFFH,说明从机还在处理程序,控制器计算的事件数为 264 (0108H)

12 (0C Hex) 读取通讯事件记录

说明

由从机返回一个状态字,事件数,信息数和一个事件的数据区。不支持广播

状态字和事件数与读取通讯事件计数器功能代码(11,OBH)返回值相同。信息计数器包含从机处理,(最后一次再起动,计数器清零操作,或通电)的信息量,该值与由诊断功能代码 (08),总线信息数子功能代码 (11,0BH) 返回的值相同。事件数据区包含 0-64 个字节。每个字节对应Modbus 送出的一个状态,或子机接收操作的一个状态。由子机把事件送到顺序排列的区域。字节 0 为最新的事件,最大新的确字节刷新该区域的最老的字节。 查询

例:请求从机设备 17 读取通讯事件记录

QUERY Field Name Slave Address Function Error Check (LRC or CRC) Example (Hex) 11 0C — 图 26:读取通讯事件记录—查询

响应

正常响应含一个 2 个字节的状态字区,一个 2 个字节的事件数区和一个 2 个字节的信息数区,以及有 0-64 个字节的事件区,一个字节数区定义上述 4 个区的数据的总长度。 例:按查询要求返回响应

RESPONSE Field Name Slave Address Function Byte Count Status HI Status Lo Event Count Hi Event Count Lo Message Count Hi Message Count Lo Event 0 Event 1 Error Check (LRC or CRC) Example (Hex) 11 0C 08 00 00 01 08 01 21 20 00 — 图 27:读取通讯事件记录—响应

在这例子中状态字为 0000H,说明从机已完成程序处理从机计算的事件数为 264 (0108H),已处理的信息数为 289 (0121H)。 最近的通讯事件在 Event 0 字节中。数值 20H 表示该从机已最后进入了只听状态 (Listen Only Mode)。

18 Modbus Protocol

PI-MBUS-300

以前的事件在 Event 1 字节中,数值 00H 表示该从机接收了一个通讯再起动事件(Communications Restart),响应事件的字节会在后面叙述。

12 (0C Hex) 读取通讯事件记录 事件字节内容

读取通讯事件记录功能代码返回的一个事件字节可为 4 种类型之一,每一个字节中的高 7 位定义该字节的类型,高 6 位可进一步说明该字节,见下面说明。 从机 Modbus 接收事件

从机接收查询信息时,储存事件字节的类型,并在处理前。储存该事件字节的类型。把高 7 位置 1 定义这事件,如果相应条件“真”(true),则其他位也置 1,字节中各位的含义如下。

Bit

0 1 2 3 4 5 6 7

Contents 未用 通讯错误 未用 未用 字符超限 只听模式 接收广播 1

从机 Modbus 发送事件

从机完成查询信息处理后返回正常(或不正常)响应,或无响应后,储存事件字节的类型。通过高 7 位置“0”,高 6 位置“1”定义事件,若相应的条件“真”(TRUE),则其他位置 “1”。 字节中各位含义如下:

Bit Contents 0 读不正常发送 (不正常功能码 1-3) 1 从机放弃不正常发送 (不正常功能码 4) 2 从机放弃不正常发送 (不正常功能码 从5-6) 3 从机程序NAK不正常发送 (不正常功能码 从7) 4 从机程序NAK不正常发送,出现写入超时错误 5 从机程序NAK不正常发送,当前只听方式 6 1 7 0

从机进入只听模式

当从机进入只听模式时储存这类事件字节,事件由 04H 数据定义,如下: Bit Contents 0 0 1 0 2 1 3 0 4 0 5 0 6 0 7 0

从机初始化通讯再起动

通讯口再起动时由从机储存事件字节的类型,诊断功能代码 (08)再带起动通讯选择子功能代码 (0001) 使从机通讯再起动。该功能可把从机配置成错误时继读方式 (Continue on Error) 或错误时停止方式 (Stop on Error)。若从机配置成“错误时

PI-MBUS-300

Modbus Protocol 19

继读方式”时,则事件字节加到已存在的事件记录中,若配置成“错误时停止”方式时,则把该字节加到记录中,并把其余的记录清零。

Bit Contents 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0

15 (0F H) 强制多个线圈 说明

按线圈的顺序把各线圈 (0X 类型) 强制成 ON 或 OFF。广播时,该功能代码可对各从机中相同类型的线圈起强制作用。

? 注意:该功能代码可越过内存保护和线圈的禁止状态线圈。保持强制状态有效,并只能由控制器的下一个逻辑来处理。若无线圈控制逻辑程序时,线圈将保持强制状态。

附录 B 中列出了各种型号控制器所支持的最大参数量。 查询

查询信息规定了被强制线圈的类型,线圈起始地址为 0,线圈 1 寻址地址为 0。 查询数据区规定了被请求线圈的 ON/OFF 状态,如数据区的某位值为“1”表示请求的相应线圈状态为ON,位值为“0”,则为OFF状态。

下述例子为请求从机设备 17 中一组 10 个线圈为强制状态,起始线圈为 20 (则寻址地址为 19 或 13H),查询的数据为 2 个字节,CD01H (二进制 11001101 0000 0001) 相应线圈的二进制位排列如下:

Bit: Coll:

1 27

1 26

0 25

0 24

1 23

1 22

0 21

1 20

-

0 -

0 -

0 -

0 -

0 -

0 -

0 29

1 28

传送的第一个字节 CDH 对应线圈为 27-20, LSB 对应线圈 20,传送的第二个字节为 01H,对应的线圈为 29-28, LSB 为继圈 28,其余未使用的位均填“0”。 QUERY Field Name Slave Address Function Coil Address Hi Coil Address Lo Quantity of Coils Hi Quantity of Coils Lo Byte Count Force Data Hi (Coils 27-20) Force Data Lo (Coils 29-28) Error Check (LRC or CRC) Example (Hex) 11 0F 00 13 00 0A 02 CD 01 —

图 28:强制多个线圈 - 查询

响应

正常响应返回从机地址,功能代码,起始地址以及强制线圈数 例:对上述查询返回的响应

20 Modbus Protocol

PI-MBUS-300

联系合同范文客服:xxxxx#qq.com(#替换为@)