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
相关推荐: