2024年9月1日发(作者:双晗日)
对XK3190-C602的Modbus RTU协议使用详解
摘要:本文介绍的XK3190-C602仪表的主要功能之一Modbus RTU协议,介绍了C602仪
表如何与上位机软件通讯以及如何正确地设置参数使系统达到最佳的性能。
关键词:Modbus RTU、串行链路、参数设置、远控、
1 前言
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,
是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus
在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权
移交给IDA(Interface for Distributed Automation,分布式自动化接口)
组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在
我国,Modbus已经成为国家标准GB/T19582-2008。
Modbus具有以下几个特点:
(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要
交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400
家,支持Modbus的产品超过600种。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以
在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开
发简单。
上海耀华称重系统在最近推出的控制仪表XK3190-C602和XK3190-CS6(以下简称
C602和CS6)都已内建了标准的Modbus RTU传输格式的标准协议,经测试可与众多厂家
的组态软件适配,如亚控科技的组态王软件,北京三维力控的Forcecontrol,维纶通科技的
EB8000组态系列,昆仑通泰的MCGSE组态软件,都有成功的应用范例。本文主要是详解
C602和CS6内建Modbus RTU的功能特点和使用注意事项。
2 C602和CS6内建Modbus RTU的功能和特点
由于C602和CS6内建Modbus RTU的功能和特点基本相同,因此本文以C602为主进
行详细介绍。撰写本文时默认阅读者已对C602仪表的功能和应用有基本了解,因此对下文
所涉及仪表的具体应用和功能不再做详细叙述,有兴趣的读者可以从我司网站下载C602仪
表使用说明书查阅:
修改C602仪表为Modbus RTU协议的相关参数介绍如下:
仪表通讯地址(1~26)
[ ***] 当多台仪表通过RS422/485总采用Modbus协议时地
[Addr ] 线同上位机通讯时,可用通讯址范围为1~247
地址区别各台仪表。
通讯波特率
采用Modbus协议时占
[
AB
]
A
-通讯口(1),
B
-通讯口(2)
用的是通讯口(2),
[bAud ]
A,B
0 1 2 3
因此上位机波特率应
4
5
bps
600 1200 2400 4800
当与通讯口(2)的波
A,B
4 5 6 —
特率一致。
bps
9600 19.2k 57.6k
—
若该参数通讯口(2)
设置为3 ,且仪表主
0 1 2
连续发 连续发 用作打印
板上的JP4跳至
AD码 重量 口
RS485一端,则C602
的Modbus协议支持4
B
-通讯口(2)
线制RS422模式,若
0
1 2
[
ABC
] JP4在RS232一端,则
指令应答连续发送RS485模
[t Mode ] 支持RS232模式。
方式
方式
式
若该参数通讯口(2)
设置为4,且仪表主板
3 4 —
上的JP4跳至RS485
4线制2线制
一端,则C602的
—
Modbus Modbus
Modbus协议支持2线
C-通讯口(2)模式
制RS485模式
(0:C602模式,1:C601模式)
上位机的通讯参数设置:地址位对应,波特率对应,串口号对应,8位数据位,默认偶校验,
1位停止位。
通讯方式
A
-通讯口(1)
6
物理层的连线示意图:
C602仪表的通讯接口介绍:
连接线拓扑示意图:
物理层连线步骤:
C 2.3 通讯口(2)Modbus总线方式
2.1设置
通讯口(2)选择模式3(【SET 1】参数6B =3)为4线制RS485或RS232模式Modbus,
选择模式4为2线制RS485模式Modbus。
2.2 数据格式
a) 传输模式为RTU。
b) Modbus方式地址范围为1-247。
注意:在设定设备地址的过程中,保证不存在有相同地址的两个设备非常重要。如果发生
重复,整个串行总线工作将不正常, 而主节点将无法与总线上所有存在的节点通信。
c) 接收报文最大长度:47字节(包括地址和CRC)
d) 发送报文最大长度:253字节(不包括地址和CRC)
e) C602面板的通讯指示灯可指示2个通讯口的工作状态。为了观察Modbus的工作状态,
可关闭通讯口1,该指示灯将指示Modbus接口的工作状态。
2.3 Modbus功能
C602实现的Modbus功能见下表,其中有阴影的部分未实现:
表2-1 C602实现的Modbus功能
数
据
访
问
读离散量输入
读线圈
写单个线圈
写多个线圈
读输入存储器
读保持寄存器
码
02
01
05
15
04
03
功能码
子码
6
6
00-18,20
14
13,14
13
十六
进制
02
01
05
0F
04
03
06
10
17
16
18
14
15
07
08
0B
0C
11
2B
2B
2B
章节
注1
7.2
7.1
7.5
7.11
7.4
7.3
7.6
7.12
7.17
7.16
7.18
7.14
7.15
7.7
7.8
7.9
7.10
7.13
7.21
7.19
7.20
比物理离散
特量输入
访
内部比特
问
或
物理线圈
16输入存储
比器
特
内部存储
访
器或
问
物理输出
存储器
写单个寄存器 06
注2
写多个寄存器 16
注2、注3
读/写多个寄存
器
屏蔽写寄存器
读FIFO队列
23
22
24
20
21
07
08
注6
文件记录访问 读文件记录
写文件记录
注4
诊断 读异常状态
诊断
获得事件计数
器
获得事件记录
报告从站ID
读设备标识码
11
12
17
43
43
43
封装接口 封装接口传输
CANopen通用
引用
注1:指在GB/T 19582.1-2008中的章节号。
注2:运行及远控状态不允许写寄存器。
注3:写多个寄存器时,如果在命令指定长度内有无效寄存器地址,则只写在此之前的寄存器,忽略以后
的数据,返回的写入长度为有效数据的长度。如果写入数据超过该数据的上下限,则忽略该数据。这样规
定,是为了提高系统容错性能。
注4:写文件功能,仅能写文件2:设备标识中的设备说明字串。
注6:仅实现00,01,02,10,11,12子功能,01子功能,参数为0xff00将使仪表复位(通过看门狗动作)。
2.4 C602的Modbus地址分配
表 2-2 离散量输入(只读,R)
地址
0
1
2
3
4
5
6
7
8~15
16~23
24~31
32~39
40~47
表2-3 线圈(读写,R/W)
地址
8~15
16~23
24~31
32~39
40~47
200
201
202
203
204
205
206
207
208
209
210
仪表O0~O7
第1扩展模块O0~O7
第2扩展模块O0~O7
第3扩展模块O0~O7
第4扩展模块O0~O7
启动
注2、注3、注6
置零
注2、注4、注6
除皮
注2、注4
远控
注2、注4
变量
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
启动设备工作程序
置零
1:除皮;0:显示毛重,不保留原
皮重
1:进入远控;0:退出远控
说明
运行
停止
通讯
称重
稳定
零位
净重
远控
仪表I0~I7
第1扩展模块I0~I7
第2扩展模块I0~I7
第3扩展模块I0~I7
第4扩展模块I0~I7
变量 说明
00:暂停状态;01:运行状态;10:
停止状态;11:预停状态
1:通讯口工作中
1:显示的是当前称重值
1:稳定状态
1:处于零位
1:净重状态
1:处于远控状态
1:输入有效
1:输入有效
1:输入有效
1:输入有效
1:输入有效
停止
注2、注3、注6,注7
停止设备工作程序或返回称重状态
加料
注2、注3、注4、注6
定量秤从加料程序步开始运行,到
等待允放信号程序步停止
放料
注2、注3、注4、注6
定量秤从放料程序步开始运行,到
放料完成停止
暂停
注2、注3
累计
注2、注4、注6
打印
注2、注4、注6
打印累计量
注2、注4、
注6
1:暂停设备运行程序;0:恢复运
行
记录当前重量
打印当前重量
打印累计次数,累计重量等数据
211
212
213
214
打印工作参数
注2、注4、
注6
打印标定参数
注2、注4、
注6
保存工作参数
注2、注4,
将当前组工作参数及仪表设置参数
注5、注6
写入EEPROM
保存标定参数
注2、注4,
将标定参数写入EEPROM
注5、注6
注1:仅远控状态有效
注2:只能用写单个线圈指令操作
注3:远控状态不执行
注4:运行状态不执行
注5:响应时间可能延长到数百毫秒
注6:写1、写0效果相同
注7:停止命令与仪表【停止】键的功能不完全一致。停止命令将立即停止设备工作程序,进入停止状态。
表2-4 输入寄存器(只读,R)
地址
0
2
4
6
8
10
12
20
22
24
26
28
29
30
31
32
33
变量
净重(32位有符号整
数)
注2
毛重(32位有符号整
数)
注2
皮重(32位有符号整
数)
注2
净重(浮点数)
注2
毛重(浮点数)
注2
皮重(浮点数)
注2
当前零点(浮点数)
标率(浮点数)
最大秤量(浮点数)
非线性修正值(浮点
数)
分度值(16位整数)
小数位(16位整数)
初始置零范围(16位
整数)
零点跟踪速度(16位
整数)(暂未用)
零点跟踪范围(16位
整数)
说明
零点AD码(浮点数)
置零范围(16位整数)
34
35
36
37
38
39
滤波算法(16位整数)
AD转换速度(16位整
数)
稳定判断限值(16位
整数)
重量单位(16位整数)
标定参数逻辑量(16
位整数)
滤波强度(16位整数)
Bit0:零点<-20e报警,
0-禁止,1-允许
Bit1:开机置零,0-禁止,1-允许
Bit2:密码功能,0-禁止,1-允许
注1:32位整数或32位的浮点数,传输的格式为最高、次高、次低、最低。
注2:32位整数不包括小数点,小数位均作为整数处理,已圆整到仪表的显示分度值。浮点数为内部表示。
浮点数未圆整到仪表的显示分度值。
表2-5 保持寄存器(读写,R/W)
地址
0
2
4
6
8
10
12
14
16
20
22
24
26
28
29
30
31
变量
净重(32位有符号整
数)
注2
毛重(32位有符号整
数)
注2
皮重(32位有符号整
数)
注2
净重(浮点数)
注2
毛重(浮点数)
注2
皮重(浮点数)
注2
当前零点(浮点数)
注2
累计重量(浮点数)
注2
R
R
R/W
R
R
R/W
R
R
说明
累计次数(16位整数)
注2
零点AD码(浮点数)
标率(浮点数)
最大秤量(浮点数)
非线性修正值(浮点
数)
分度值(16位整数)
小数位(16位整数)
初始置零范围(16位
整数)
置零范围(16位整数)
注1
注1
注1
注1
注1
注1
注1
注1
32
33
34
35
36
37
38
39
100
102
103
104
105
零点跟踪速度(16位
整数)(暂未用)
零点跟踪范围(16位
整数)
滤波算法(16位整数)
AD转换速度(16位整
数)
滤波强度(16位整数)
稳定判断限值(16位
整数)
重量单位(16位整数)
标定参数逻辑量(16
位整数)
模拟输出满量程对应
的重量(浮点数)
模拟量零点AD码(16
位整数)
模拟量满度AD码(16
位整数)
串口1波特率(16位
整数)
串口2波特率(16位
整数)
注3
串口1工作模式(16
位整数)
串口2工作模式(16
位整数)
注3
仪表通讯地址(16位
整数)
打印机类型(16位整
数)
辅助显示内容(16位
整数)
注1
注1
注1
注1
注1
注1
注1
Bit1:1:允许开机置零
注1
106
107
(0-连续发送重量AD码,1-连续发
送重量,2-打印机)
(0-应答方式,1-连续方式,2-RS485
方式,3-全双工的Modbus方式,4-
半双工的Modbus方式)
(1-247)
(0-累计次数,1-累计重量,2-日期,
3-时间,4-程序步/时间,5-定量值,
6-锁定重量值)
Bit0 允许打印
Bit1 允许通讯1
Bit2 允许通讯2
Bit3 打印前导零
Bit4 模拟量允许
Bit5 模拟量定义(0-净重,1-毛重)
108
109
110
111
112
显示亮度(16位整数)
工作参数设置(16位
整数)
注3
Bit6 自动打印
Bit7 打印语言(0-英文,1-中文)
Bit8 1=微打反向打印
113 工作参数设置(16位
整数)
Bit0 微打反向打印
Bit1 按C601格式通讯
Bit2 外接键盘
114
115
116
200
202
204
206
208
210
212
214
216
300
301
302
303
304
305
306
307
308
400
数据存储(16位整数) 0-不存储,1-存重量,2-存重量和时
间
大屏幕设置(16位整
数)
O0端子定义
当前组工作参数
P0, (浮点数)
P1, (浮点数)
P2, (浮点数)
P3, (浮点数)
P4, (浮点数)
P5, (浮点数)
P6, (浮点数)
P7, (浮点数)
P8, (浮点数)
T0, (16位整数)
T1, (16位整数)
T2, (16位整数)
T3, (16位整数)
T4, (16位整数)
T5, (16位整数)
T6, (16位整数)
T7, (16位整数)
选项(16位整数)
0-大屏幕关,1-当前显示重量,2-辅
助显示器显示重量
0-零位指示,1-无斗秤夹袋,
2-有斗秤夹袋
定量秤
零区
料1定量
分选秤
零区
通道1上限
料1快加提前量 通道2上限
料1慢加提前量 通道3上限
料1允差 通道4上限
料2定量/上料 ——
重量
料2快加提前量 ——
/最小剩余重量
料2慢加提前量 修正系数
料2允差 ——
参考表6-1和表7-1
低位对应字节1,高位对应字节2
Bit0:自动除皮,0-禁止,1-允许
Bit1:提前量修正,0-不修正,1-修
正
Bit2:超差处理
Bit3:欠料点补
Bit4:分选秤模式,0-非峰值保持,
循环次数(16位整数)
1-峰值保持
401 工作模式(16位整数) (0-定量加法秤,1-定量减法秤,2-
自控分选秤,3-外控分选秤,4-连续分
选模式)
配方号(16位整数) 参数范围:0~4 402
注1:标定开关打开才能写入
注2:32位整数或32位的浮点数,传输的格式为最高、次高、次低、最低。整数型已圆整到仪表的显示分
度值,浮点数未圆整到仪表的显示分度值。
注3:修改此寄存器可能会终止Modbus通讯。
2.5 异常码定义
Bit0:0:主时钟为内部RC振荡器;1:为外部石英晶体振荡器
Bit1:0:AD工作正常; 1:AD工作异常
Bit2:0:EEPROM正常;1:EEPROM异常
2.6 ID内容
仪表型号(“XK3190-C602 ”,20个字符)和设备说明字串,后者由用户写入,
长度32字节。
2.7设备标识符
只响应“读设备ID码 02”
一致性等级:02
厂商名称:“Shanghai Yaohua Weighing System .,”,
产品代码:“XK3190-C602”,
主次版本号:“ ”,
厂商网址:“”
产品名称:“Weighing Indicator”
型号名称:“XK3190-C602”,
用户应用名称:由用户写入,32字节,同ID内容设备说明字串。
2.8 文件定义及记录编号
文件1为存储的称重记录,记录号为要读取称重记录的起始序号。记录长度表示要读取
的称重记录数量。每次读取只能有1个子请求,故请求命令的数据长度只能等于7。自动存
储类型为1时可读出的最大记录数量为8064,每个记录的长度为3,共6字节,前2字节为
16位二进制整数的称重记录序号,后4字节为32位浮点数表示的重量。自动存储类型为2
时可读出的最大记录数量为4032,每个记录的长度为5,共10字节,前2字节为16位整数
的称重记录序号,后4字节为32位二进制整数表示的自2000年1月1日0时0分0秒起的
秒数,最后4字节为32位浮点数表示的重量。每次读取的长度最多为240字节。读记录号
0返回的是本次开机的最后一次称重记录。其记录号也是称重记录的最后1个记录的记录号。
如果返回的重量为0,表示本次开机后尚未有新的称重记录。
文件2为设备说明字串,长度6~32字节,不足32字节部分建议用空格填充,否则仍保
留原来的内容。文件2只有记录1。
常用测试代码举例:
以下测试用代码范例都是默认仪表编址为1,标定为3位小数位,分度值1,称重传感
器加载1KG砝码,所有命令采用16进制数据格式显示。
例如:读净重 01 03 00 00 00 02 C4 0B ,依次解释如下:“01”是仪表编址,“03”是
Modbus 读保持寄存器命令字,“00 00”是C602仪表的净重(32位有符号整数)寄存器地址,
“00 02”是读保持寄存器个数,由于所读内容是32位有符号整数,所以是2个寄存器。“C4
0B”是CRC校验位。
假设仪表上位机发出:01 03 00 00 00 02 C4 0B指令,则仪表应答:01 03 04 00 00 03 E8
FA 8D,依次解释如下:“01”是仪表编址,“03”是Modbus 读保持寄存器命令字,“04”是
返回的字节个数,“00 00 03 E8”是返回的净重示值,转换为十进制就是1000,需要注意的
是,这里我们读取的是有符号整数,所以C602返回的是整数值,若需要小数位,可读取浮
点数对应的寄存器地址。“FA 8D” 是CRC校验位。
写浮点数举例:假设我们要向C602保持寄存器的工作参数P0写浮点数123.456,则命
令为:01 10 00 C8 00 02 04 42 F6 E9 79 84 61, 依次解释如下:“01”是仪表编址,“10”是
Modbus 写多个保持寄存器命令字,“00 C8”是C602仪表的工作参数P0 (32位浮点数)寄存
器地址,“00 02”是写保持寄存器个数,“04”是写入的字节数,“42 F6 E9 79”是浮点数123.456
的十六进制格式, “84 61”是CRC校验位。
2024年9月1日发(作者:双晗日)
对XK3190-C602的Modbus RTU协议使用详解
摘要:本文介绍的XK3190-C602仪表的主要功能之一Modbus RTU协议,介绍了C602仪
表如何与上位机软件通讯以及如何正确地设置参数使系统达到最佳的性能。
关键词:Modbus RTU、串行链路、参数设置、远控、
1 前言
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,
是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus
在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权
移交给IDA(Interface for Distributed Automation,分布式自动化接口)
组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在
我国,Modbus已经成为国家标准GB/T19582-2008。
Modbus具有以下几个特点:
(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要
交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400
家,支持Modbus的产品超过600种。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以
在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开
发简单。
上海耀华称重系统在最近推出的控制仪表XK3190-C602和XK3190-CS6(以下简称
C602和CS6)都已内建了标准的Modbus RTU传输格式的标准协议,经测试可与众多厂家
的组态软件适配,如亚控科技的组态王软件,北京三维力控的Forcecontrol,维纶通科技的
EB8000组态系列,昆仑通泰的MCGSE组态软件,都有成功的应用范例。本文主要是详解
C602和CS6内建Modbus RTU的功能特点和使用注意事项。
2 C602和CS6内建Modbus RTU的功能和特点
由于C602和CS6内建Modbus RTU的功能和特点基本相同,因此本文以C602为主进
行详细介绍。撰写本文时默认阅读者已对C602仪表的功能和应用有基本了解,因此对下文
所涉及仪表的具体应用和功能不再做详细叙述,有兴趣的读者可以从我司网站下载C602仪
表使用说明书查阅:
修改C602仪表为Modbus RTU协议的相关参数介绍如下:
仪表通讯地址(1~26)
[ ***] 当多台仪表通过RS422/485总采用Modbus协议时地
[Addr ] 线同上位机通讯时,可用通讯址范围为1~247
地址区别各台仪表。
通讯波特率
采用Modbus协议时占
[
AB
]
A
-通讯口(1),
B
-通讯口(2)
用的是通讯口(2),
[bAud ]
A,B
0 1 2 3
因此上位机波特率应
4
5
bps
600 1200 2400 4800
当与通讯口(2)的波
A,B
4 5 6 —
特率一致。
bps
9600 19.2k 57.6k
—
若该参数通讯口(2)
设置为3 ,且仪表主
0 1 2
连续发 连续发 用作打印
板上的JP4跳至
AD码 重量 口
RS485一端,则C602
的Modbus协议支持4
B
-通讯口(2)
线制RS422模式,若
0
1 2
[
ABC
] JP4在RS232一端,则
指令应答连续发送RS485模
[t Mode ] 支持RS232模式。
方式
方式
式
若该参数通讯口(2)
设置为4,且仪表主板
3 4 —
上的JP4跳至RS485
4线制2线制
一端,则C602的
—
Modbus Modbus
Modbus协议支持2线
C-通讯口(2)模式
制RS485模式
(0:C602模式,1:C601模式)
上位机的通讯参数设置:地址位对应,波特率对应,串口号对应,8位数据位,默认偶校验,
1位停止位。
通讯方式
A
-通讯口(1)
6
物理层的连线示意图:
C602仪表的通讯接口介绍:
连接线拓扑示意图:
物理层连线步骤:
C 2.3 通讯口(2)Modbus总线方式
2.1设置
通讯口(2)选择模式3(【SET 1】参数6B =3)为4线制RS485或RS232模式Modbus,
选择模式4为2线制RS485模式Modbus。
2.2 数据格式
a) 传输模式为RTU。
b) Modbus方式地址范围为1-247。
注意:在设定设备地址的过程中,保证不存在有相同地址的两个设备非常重要。如果发生
重复,整个串行总线工作将不正常, 而主节点将无法与总线上所有存在的节点通信。
c) 接收报文最大长度:47字节(包括地址和CRC)
d) 发送报文最大长度:253字节(不包括地址和CRC)
e) C602面板的通讯指示灯可指示2个通讯口的工作状态。为了观察Modbus的工作状态,
可关闭通讯口1,该指示灯将指示Modbus接口的工作状态。
2.3 Modbus功能
C602实现的Modbus功能见下表,其中有阴影的部分未实现:
表2-1 C602实现的Modbus功能
数
据
访
问
读离散量输入
读线圈
写单个线圈
写多个线圈
读输入存储器
读保持寄存器
码
02
01
05
15
04
03
功能码
子码
6
6
00-18,20
14
13,14
13
十六
进制
02
01
05
0F
04
03
06
10
17
16
18
14
15
07
08
0B
0C
11
2B
2B
2B
章节
注1
7.2
7.1
7.5
7.11
7.4
7.3
7.6
7.12
7.17
7.16
7.18
7.14
7.15
7.7
7.8
7.9
7.10
7.13
7.21
7.19
7.20
比物理离散
特量输入
访
内部比特
问
或
物理线圈
16输入存储
比器
特
内部存储
访
器或
问
物理输出
存储器
写单个寄存器 06
注2
写多个寄存器 16
注2、注3
读/写多个寄存
器
屏蔽写寄存器
读FIFO队列
23
22
24
20
21
07
08
注6
文件记录访问 读文件记录
写文件记录
注4
诊断 读异常状态
诊断
获得事件计数
器
获得事件记录
报告从站ID
读设备标识码
11
12
17
43
43
43
封装接口 封装接口传输
CANopen通用
引用
注1:指在GB/T 19582.1-2008中的章节号。
注2:运行及远控状态不允许写寄存器。
注3:写多个寄存器时,如果在命令指定长度内有无效寄存器地址,则只写在此之前的寄存器,忽略以后
的数据,返回的写入长度为有效数据的长度。如果写入数据超过该数据的上下限,则忽略该数据。这样规
定,是为了提高系统容错性能。
注4:写文件功能,仅能写文件2:设备标识中的设备说明字串。
注6:仅实现00,01,02,10,11,12子功能,01子功能,参数为0xff00将使仪表复位(通过看门狗动作)。
2.4 C602的Modbus地址分配
表 2-2 离散量输入(只读,R)
地址
0
1
2
3
4
5
6
7
8~15
16~23
24~31
32~39
40~47
表2-3 线圈(读写,R/W)
地址
8~15
16~23
24~31
32~39
40~47
200
201
202
203
204
205
206
207
208
209
210
仪表O0~O7
第1扩展模块O0~O7
第2扩展模块O0~O7
第3扩展模块O0~O7
第4扩展模块O0~O7
启动
注2、注3、注6
置零
注2、注4、注6
除皮
注2、注4
远控
注2、注4
变量
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
1:输出有效
注1
启动设备工作程序
置零
1:除皮;0:显示毛重,不保留原
皮重
1:进入远控;0:退出远控
说明
运行
停止
通讯
称重
稳定
零位
净重
远控
仪表I0~I7
第1扩展模块I0~I7
第2扩展模块I0~I7
第3扩展模块I0~I7
第4扩展模块I0~I7
变量 说明
00:暂停状态;01:运行状态;10:
停止状态;11:预停状态
1:通讯口工作中
1:显示的是当前称重值
1:稳定状态
1:处于零位
1:净重状态
1:处于远控状态
1:输入有效
1:输入有效
1:输入有效
1:输入有效
1:输入有效
停止
注2、注3、注6,注7
停止设备工作程序或返回称重状态
加料
注2、注3、注4、注6
定量秤从加料程序步开始运行,到
等待允放信号程序步停止
放料
注2、注3、注4、注6
定量秤从放料程序步开始运行,到
放料完成停止
暂停
注2、注3
累计
注2、注4、注6
打印
注2、注4、注6
打印累计量
注2、注4、
注6
1:暂停设备运行程序;0:恢复运
行
记录当前重量
打印当前重量
打印累计次数,累计重量等数据
211
212
213
214
打印工作参数
注2、注4、
注6
打印标定参数
注2、注4、
注6
保存工作参数
注2、注4,
将当前组工作参数及仪表设置参数
注5、注6
写入EEPROM
保存标定参数
注2、注4,
将标定参数写入EEPROM
注5、注6
注1:仅远控状态有效
注2:只能用写单个线圈指令操作
注3:远控状态不执行
注4:运行状态不执行
注5:响应时间可能延长到数百毫秒
注6:写1、写0效果相同
注7:停止命令与仪表【停止】键的功能不完全一致。停止命令将立即停止设备工作程序,进入停止状态。
表2-4 输入寄存器(只读,R)
地址
0
2
4
6
8
10
12
20
22
24
26
28
29
30
31
32
33
变量
净重(32位有符号整
数)
注2
毛重(32位有符号整
数)
注2
皮重(32位有符号整
数)
注2
净重(浮点数)
注2
毛重(浮点数)
注2
皮重(浮点数)
注2
当前零点(浮点数)
标率(浮点数)
最大秤量(浮点数)
非线性修正值(浮点
数)
分度值(16位整数)
小数位(16位整数)
初始置零范围(16位
整数)
零点跟踪速度(16位
整数)(暂未用)
零点跟踪范围(16位
整数)
说明
零点AD码(浮点数)
置零范围(16位整数)
34
35
36
37
38
39
滤波算法(16位整数)
AD转换速度(16位整
数)
稳定判断限值(16位
整数)
重量单位(16位整数)
标定参数逻辑量(16
位整数)
滤波强度(16位整数)
Bit0:零点<-20e报警,
0-禁止,1-允许
Bit1:开机置零,0-禁止,1-允许
Bit2:密码功能,0-禁止,1-允许
注1:32位整数或32位的浮点数,传输的格式为最高、次高、次低、最低。
注2:32位整数不包括小数点,小数位均作为整数处理,已圆整到仪表的显示分度值。浮点数为内部表示。
浮点数未圆整到仪表的显示分度值。
表2-5 保持寄存器(读写,R/W)
地址
0
2
4
6
8
10
12
14
16
20
22
24
26
28
29
30
31
变量
净重(32位有符号整
数)
注2
毛重(32位有符号整
数)
注2
皮重(32位有符号整
数)
注2
净重(浮点数)
注2
毛重(浮点数)
注2
皮重(浮点数)
注2
当前零点(浮点数)
注2
累计重量(浮点数)
注2
R
R
R/W
R
R
R/W
R
R
说明
累计次数(16位整数)
注2
零点AD码(浮点数)
标率(浮点数)
最大秤量(浮点数)
非线性修正值(浮点
数)
分度值(16位整数)
小数位(16位整数)
初始置零范围(16位
整数)
置零范围(16位整数)
注1
注1
注1
注1
注1
注1
注1
注1
32
33
34
35
36
37
38
39
100
102
103
104
105
零点跟踪速度(16位
整数)(暂未用)
零点跟踪范围(16位
整数)
滤波算法(16位整数)
AD转换速度(16位整
数)
滤波强度(16位整数)
稳定判断限值(16位
整数)
重量单位(16位整数)
标定参数逻辑量(16
位整数)
模拟输出满量程对应
的重量(浮点数)
模拟量零点AD码(16
位整数)
模拟量满度AD码(16
位整数)
串口1波特率(16位
整数)
串口2波特率(16位
整数)
注3
串口1工作模式(16
位整数)
串口2工作模式(16
位整数)
注3
仪表通讯地址(16位
整数)
打印机类型(16位整
数)
辅助显示内容(16位
整数)
注1
注1
注1
注1
注1
注1
注1
Bit1:1:允许开机置零
注1
106
107
(0-连续发送重量AD码,1-连续发
送重量,2-打印机)
(0-应答方式,1-连续方式,2-RS485
方式,3-全双工的Modbus方式,4-
半双工的Modbus方式)
(1-247)
(0-累计次数,1-累计重量,2-日期,
3-时间,4-程序步/时间,5-定量值,
6-锁定重量值)
Bit0 允许打印
Bit1 允许通讯1
Bit2 允许通讯2
Bit3 打印前导零
Bit4 模拟量允许
Bit5 模拟量定义(0-净重,1-毛重)
108
109
110
111
112
显示亮度(16位整数)
工作参数设置(16位
整数)
注3
Bit6 自动打印
Bit7 打印语言(0-英文,1-中文)
Bit8 1=微打反向打印
113 工作参数设置(16位
整数)
Bit0 微打反向打印
Bit1 按C601格式通讯
Bit2 外接键盘
114
115
116
200
202
204
206
208
210
212
214
216
300
301
302
303
304
305
306
307
308
400
数据存储(16位整数) 0-不存储,1-存重量,2-存重量和时
间
大屏幕设置(16位整
数)
O0端子定义
当前组工作参数
P0, (浮点数)
P1, (浮点数)
P2, (浮点数)
P3, (浮点数)
P4, (浮点数)
P5, (浮点数)
P6, (浮点数)
P7, (浮点数)
P8, (浮点数)
T0, (16位整数)
T1, (16位整数)
T2, (16位整数)
T3, (16位整数)
T4, (16位整数)
T5, (16位整数)
T6, (16位整数)
T7, (16位整数)
选项(16位整数)
0-大屏幕关,1-当前显示重量,2-辅
助显示器显示重量
0-零位指示,1-无斗秤夹袋,
2-有斗秤夹袋
定量秤
零区
料1定量
分选秤
零区
通道1上限
料1快加提前量 通道2上限
料1慢加提前量 通道3上限
料1允差 通道4上限
料2定量/上料 ——
重量
料2快加提前量 ——
/最小剩余重量
料2慢加提前量 修正系数
料2允差 ——
参考表6-1和表7-1
低位对应字节1,高位对应字节2
Bit0:自动除皮,0-禁止,1-允许
Bit1:提前量修正,0-不修正,1-修
正
Bit2:超差处理
Bit3:欠料点补
Bit4:分选秤模式,0-非峰值保持,
循环次数(16位整数)
1-峰值保持
401 工作模式(16位整数) (0-定量加法秤,1-定量减法秤,2-
自控分选秤,3-外控分选秤,4-连续分
选模式)
配方号(16位整数) 参数范围:0~4 402
注1:标定开关打开才能写入
注2:32位整数或32位的浮点数,传输的格式为最高、次高、次低、最低。整数型已圆整到仪表的显示分
度值,浮点数未圆整到仪表的显示分度值。
注3:修改此寄存器可能会终止Modbus通讯。
2.5 异常码定义
Bit0:0:主时钟为内部RC振荡器;1:为外部石英晶体振荡器
Bit1:0:AD工作正常; 1:AD工作异常
Bit2:0:EEPROM正常;1:EEPROM异常
2.6 ID内容
仪表型号(“XK3190-C602 ”,20个字符)和设备说明字串,后者由用户写入,
长度32字节。
2.7设备标识符
只响应“读设备ID码 02”
一致性等级:02
厂商名称:“Shanghai Yaohua Weighing System .,”,
产品代码:“XK3190-C602”,
主次版本号:“ ”,
厂商网址:“”
产品名称:“Weighing Indicator”
型号名称:“XK3190-C602”,
用户应用名称:由用户写入,32字节,同ID内容设备说明字串。
2.8 文件定义及记录编号
文件1为存储的称重记录,记录号为要读取称重记录的起始序号。记录长度表示要读取
的称重记录数量。每次读取只能有1个子请求,故请求命令的数据长度只能等于7。自动存
储类型为1时可读出的最大记录数量为8064,每个记录的长度为3,共6字节,前2字节为
16位二进制整数的称重记录序号,后4字节为32位浮点数表示的重量。自动存储类型为2
时可读出的最大记录数量为4032,每个记录的长度为5,共10字节,前2字节为16位整数
的称重记录序号,后4字节为32位二进制整数表示的自2000年1月1日0时0分0秒起的
秒数,最后4字节为32位浮点数表示的重量。每次读取的长度最多为240字节。读记录号
0返回的是本次开机的最后一次称重记录。其记录号也是称重记录的最后1个记录的记录号。
如果返回的重量为0,表示本次开机后尚未有新的称重记录。
文件2为设备说明字串,长度6~32字节,不足32字节部分建议用空格填充,否则仍保
留原来的内容。文件2只有记录1。
常用测试代码举例:
以下测试用代码范例都是默认仪表编址为1,标定为3位小数位,分度值1,称重传感
器加载1KG砝码,所有命令采用16进制数据格式显示。
例如:读净重 01 03 00 00 00 02 C4 0B ,依次解释如下:“01”是仪表编址,“03”是
Modbus 读保持寄存器命令字,“00 00”是C602仪表的净重(32位有符号整数)寄存器地址,
“00 02”是读保持寄存器个数,由于所读内容是32位有符号整数,所以是2个寄存器。“C4
0B”是CRC校验位。
假设仪表上位机发出:01 03 00 00 00 02 C4 0B指令,则仪表应答:01 03 04 00 00 03 E8
FA 8D,依次解释如下:“01”是仪表编址,“03”是Modbus 读保持寄存器命令字,“04”是
返回的字节个数,“00 00 03 E8”是返回的净重示值,转换为十进制就是1000,需要注意的
是,这里我们读取的是有符号整数,所以C602返回的是整数值,若需要小数位,可读取浮
点数对应的寄存器地址。“FA 8D” 是CRC校验位。
写浮点数举例:假设我们要向C602保持寄存器的工作参数P0写浮点数123.456,则命
令为:01 10 00 C8 00 02 04 42 F6 E9 79 84 61, 依次解释如下:“01”是仪表编址,“10”是
Modbus 写多个保持寄存器命令字,“00 C8”是C602仪表的工作参数P0 (32位浮点数)寄存
器地址,“00 02”是写保持寄存器个数,“04”是写入的字节数,“42 F6 E9 79”是浮点数123.456
的十六进制格式, “84 61”是CRC校验位。