电子秤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类型)
国家智能制造标准化应用试点推动模具标准化工作
防爆电动硬密封对夹蝶阀D973H之主要特性
质量可靠的混凝土含气量仪
【故障电弧探测器ef-acs】
空气浮游菌采样器指标
电子秤MODBUS功能码、数据类型与不正常相应
磨削裂纹发生的原因
真空衰减法检漏仪简介
高压鼓风机在纺织设备上的应用
铝合金聚氨酯低压填充发泡机数据
HCT-15/5FU 人结直肠癌氟尿嘧啶耐药株
不锈钢反应釜反应釜系统研制
放大器的作用和分类
铣削组合机床的操作注意事项有哪些?
SLKG-120-2撕裂开关工作原理
燃料热值仪 生物质量热仪
托利多称重传感器和国产称重传感器相比有哪些优势
使用前要确定橡塑保温管材料的保质期
HPLC乙腈具有哪些特点?
酸碱废气处理塔居然有如此强大的功能