博乐棋牌

技术文章您当前的位置:博乐棋牌 > 技术文章
电子秤MODBUS功能码、数据类型与不正常相应
点击次数:18 发布时间:2019-10-30 返回

电子秤MODBUS功能码、数据类型与不正常相应(来源:上海本熙测控设备科技有限公司)

附录A:MODBUS全部功能码

ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表3--1是ModBus的功能码定义。

 

 

 

 

博乐棋牌表3--1 ModBus功能码

功能码

名称

作用

01

读取线圈状态

取得一组逻辑线圈的当前状态(ON/OFF)

02

读取输入状态

取得一组开关输入的当前状态(ON/OFF)

03

读取保持寄存器

在一个或多个保持寄存器中取得当前的二进制值

04

读取输入寄存器

在一个或多个输入寄存器中取得当前的二进制值

05

强置单线圈

强置一个逻辑线圈的通断状态

06

预置单寄存器

博乐棋牌把具体二进值装入一个保持寄存器

07

读取异常状态

取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态

08

回送诊断校验

把诊断校验报文送从机,以对通信处理进行评鉴

09

编程(只用于484)

使主机模拟编程器作用,修改PC从机逻辑

10

控询(只用于484)

可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送

11

读取事件计数

可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时

12

读取通信事件记录

可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误

13

编程(184/384 484 584)

可使主机模拟编程器功能修改PC从机逻辑

14

探询(184/384 484 584)

可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送

15

强置多线圈

强置一串连续逻辑线圈的通断

16

预置多寄存器

把具体的二进制值装入一串连续的保持寄存器

17

报告从机标识

可使主机判断编址从机的类型及该从机运行指示灯的状态

18

(884和MICRO 84)

可使主机模拟编程功能,修改PC状态逻辑

19

重置通信链路

发生非可修改错误后,是从机复位于已知状态,可重置顺序字节

20

读取通用参数(584L)

显示扩展存储器文件中的数据信息

21

写入通用参数(584L)

把通用参数写入扩展存储文件,或修改之

22~64

保留作扩展功能备用

 

65~72

保留以备用户功能所用

博乐棋牌留作用户功能的扩展编码

73~119

违规功能

 

120~127

保留

留作内部作用

128~255

保留

用于异常应答

 

博乐棋牌ModBus网络只是一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。表3--2是ModBus各功能码对应的数据类型。

表3--2 ModBus功能码与数据类型对应表

代码

功能

数据类型

01

02

03

整型、字符型、状态字、浮点型

04

整型、状态字、浮点型

05

06

整型、字符型、状态字、浮点型

08

N/A

重复“回路反馈”信息

15

16

整型、字符型、状态字、浮点型

17

字符型

附录B:不正常响应

 

不正常响应:

除广播外,主机向从机设备发送查询并希望有一个正常响应,主机查询中有可能产生4种事件:

¨  从机接收查询,通讯错误正常处理信息,则返回一个正常响应事件。

¨  由于通讯出错,从机不能接收查询数据,因而不返回响应。此时,主机依靠处理程序给出查询超时事件。

¨  若从机接收查询,发现有 (LRC或CRC) 通讯错误,并返回响应,此时,依靠主机处理程序给出查询超时事件。

¨  从机接收查询,无通讯错误,但无法处理(如读不存在的线圈和寄存器)时,向主机报告错误的性质。

 

不正常响应信息有2个与正常响应不相同的区域:

功能代码区:正常响应时,从机的响应功能代码区,带原查询的功能代码。所有功能代码的MSB为0(其值低于80H)。不正常响应时,从机把功能代码的MSB置为1,使功能代码值大于80H,高于正常响应的值。这样,主机应用程序能识别不正常响应事件,能检查不正常代码的数据区。

数据区:正常响应中,数据区含有(按查询要求给出的) 数据或统计值,在不正常响应中,数据区为一个不正常代码,它说明从机产生不正常响应的条件和原因。

例:主机发出查询,从机不正常响应。(为十六进制数据)。

查询:

Addr

Fun

DO start reg hi

博乐棋牌DO start reg lo

DO #of regs hi

博乐棋牌DO #of regs lo

CRC16

Hi

CRC16

Lo

0AH

01H

04H

A1H

00H

01H

XXH

XXH

响应(不正常或例外):

Addr

Fun

博乐棋牌Exception Code

CRC16

Hi

CRC16

Lo

0AH

81H

02H

XXH

XXH

图 3 – 1 . 不正常信息帧格式

 

上例中,从机设备地址10(0AH),读线圈状态的功能代码(01),主机请求线圈状态的地址为1245(04A1H)。注意:只读一个指定线圈,地址为(0001).

若从机中不存在此线圈地址时,即以不正常代码(02),向主机返回一个不正常响应。说明为不合法地址。

表3--3 ModBus的不正常代码:

代码

名称

含义

01

不合规

功能代码

从机接收的是一种不能执行功能代码。发出查询命令后,该代码指示无程序功能。

02

不合法数据地址

接收的数据地址,是从机不允许的地址。

03

不合法数据

查询数据区的值是从机不允许的值。

04

从机设备故障

从机执行主机请求的动作时出现不可恢复的错误。

05

确认

从机已接收请求处理数据,但需要较长的处理时间,为避免主机出现超时错误而发送该确认响应。主机以此再发送一个“查询程序完成”未决定从机是否已完成处理。

06

从机设备忙碌

从机正忙于处理一个长时程序命令,请求主机在从机空闲时发送信息。

07

否定

从机不能执行查询要求的程序功能时,该代码使用十进制13或14代码,向主机返回一个“不成功的编程请求”信息。主机应请求诊断从机的错误信息。

08

内存奇偶校验错误

从机读扩展内存中的数据时,发现有奇偶校验错误,主机按从机的要求重新发送数据请求。

///////////////////////////////////////////////////////////////

功能码

描述

是否支持广播

起始地址

备注

01

读线圈状态DO

不支持

0000H

读离散量输出口(0X类型)状态

02

读输入位状态DI

不支持

0000H

读离散量输入信号(0X类型)状态

03

读保持寄存器

不支持

0000H

读保持寄存器数据

04

读输入寄存器

不支持

0000H

读输入寄存器(3X类型)数据

05

强制单个线圈DO

支持

0000H

强制单个线圈(0X类型)状态

06

预置单个保持寄存器

支持

0000H

置保持寄存器(4X类型)中

07

读不正常状态

不支持

 

 

08

诊断(见第3章)

不支持

0000H

 

09

程序 484

0000H

没查到

10

查询 484

0000H

没查到

11

通讯事件控制

不支持

 

 

12

通讯事件记录

不支持

 

 

13

程序控制器

0000H

没查到

14

查询控制器

0000H

没查到

15

强制多个线圈DO

支持

0000H

强制各线圈 (0X 类型)状态

16

预置多个保持寄存器

支持

0000H

置保持寄存器(4X类型)中

17

报告从机 ID

不支持

 

 

18

程序 884/M84

0000H

没查到

19

通讯链路复位

0000H

没查到

20

读通用参考值

不支持

0000H

扩展寄存器(6X类型)

21

写通用参考值

不支持

0000H

扩展寄存器(6X类型)

22

掩码写入4X类型寄存器

不支持

0000H

保持寄存器(4X类型)

23

读/写4X类型寄存器

不支持

0000H

保持寄存器(4X类型)

24

读FIFO查询数据

不支持

0000H

保持寄存器(4X类型)

 

 

推荐收藏该企业网站
众鑫棋牌 博乐棋牌 六合宝典 凤凰棋牌游戏 六合宝典 凤凰棋牌 凤凰棋牌 众鑫棋牌 博乐棋牌 众鑫棋牌