2024年2月24日发(作者:买冬莲)
八. Modbus
8.1 功能码与异常码
仪表支持的功能码:
功能码
03
06
16
01
05
名称
读寄存器
写单个寄存器
写多个寄存器
读线圈
写线圈
单次最多读取50个寄存器
本仪表本命令只支持写双寄存器,写入时必须对齐地址,不允许只写入双寄存器的一部分,读出时允许只读一部分。
注意本长度是以位为单位的
说明
注意:本仪表只支持以上MODBUS功能码,向仪表进行其他功能码时仪表将不响应。
MODBUS异常码相应
代码 名称 含义
对于本仪表来说,该错误码代表所收到的数据地址是不允许的地址
1. 起始地址和传输长度的组合无效.例如: 可读寄存器地址编号为0到10,使用03命令,起始寄存器地址为9,传输长度为2个字,9+2>10,则仪表返回异常代码02.
2. 本仪表的强制规定.有 :
(1) 03功能码命令最多一次读取50个字.
(2) 对于双字寄存器必须作为一个整体写入,一次写入两个字,但是读出的时候无限制.
写入的数据不符合允许的范围
当仪表正在试图执行请求的操作室,产生不可恢复的差错
02
非法数据地址
03
04
07
非法数据值
从机故障
对于仪表来说,所接收到的命令在当前条件下无法执行.
不成功的编程请求 例如:仪表当前目标值为零或者仪表显示OFL时不能启动,在这些情况下,向运行线圈写ON,将返回异常代码07.
8.2 MODBUS协议的有关说明
a.串口2通讯设置的相关说明
工作参数1 “秤号”,作为从机地址,不可通过总线修改,只可通过仪表手动设置。
工作参数4 “串行口2通讯方式”,不可通过总线修改,只可通过仪表手动设置。
工作参数3 “串行口2波特率”,不可通过总线修改,只可通过仪表手动设置。
工作参数15 “串行口2校验方式” ,不可通过总线修改,只可通过仪表手动设置。
工作参数16 “双字寄存器存储顺序” ,不可通过总线修改,只可通过仪表手动设置。
其中和标准说明书不同的列表如下:
4
CONT/ READ/
BUS_r
BUS_r
串行口2通讯方式
CONT:连续方式(C)
READ:命令方式(R)
BUS_r:MODBUS通讯RTU传输模式(B_r)
串行口2校验方式选择(起始位|数据位|校验位|停止位,E:偶校验;O:奇校验;N:无校验。BUS_r方式只可以选前四项。)
18N2:(R / C / B_r可选)
18E1:(R / C / B_r可选)
18O1:(R / C / B_r可选)
18N1:(R / C / B_r可选)
17N2:(R / C 可选)
17E1:(R / C 可选)
17O1:(R / C 可选)
MODBUS双字寄存器存储顺序选择,如果参数4中没有选择MODBUS通讯方式则仪表自动跳过此项设置
Hi Lo:高字在前低字在后
Lo Hi:低字在前高字在后
15
18N2
18E1
18O1
18N1
17N2
17E1
17O1
18E1
16
Hi Lo
Lo Hi
b.传输模式
Hi Lo
该MODBUS传输模式为RTU模式。
一、
协议地址
MODBUS通讯地址分配
PLC地址 含义 说明
位
.0
.1
0000 40001
仪表当前状态1
.2
.3
.4
.5
.6
加料前
大投
中投
小投
定值
超欠差
说明
0: 停止;1: 运行。
以下内容为只读
.7
.8
.9
.10
.11
.12
.13
.14
.15
.0
0001 40002
仪表当前状态2
.1
.2
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
40003
40004
40005
40006
40007
40008
40009
40010
40011
40012
当前重量(仪表显示数值)
累计次数
累计重量
报警
夹袋
拍袋
卸料
零区
供料
批次完成
缺料
0: 毛重;1: 净重。
0: 不稳;1: 稳定。
0: 正常;1: 溢出。
当前显示重量的符号+/-
0: 正号;1: 负号。
注:当重量溢出,即仪表显示有OFL时,重量值固定返回0xFFFFFFFF。
预留地址区域
……
……
……
注:预留地址区域读取数据为零
……
……
……
0000H:t
0001H:g
0002H:kg
0000H:0位; 0001H:1位;
0002H:2位; 0003H:3位;
0004H:4位。
0001H:1; 0002H:2;
0005H:5; 000AH:10;
00014:20; 0032H:50。
0001H:1mV/V
0002H:2mV/V
0003H:3mV/V
最大量程≤最小分度值×30000
写入0001H时将当前重量当做零点,秤台重量稳定时才允许写入;
读时返回当前零点毫伏数。(注1)
写入当前实际重量,仪表按当前毫伏数和写入重量标定增益;
以下内容为可读可写
0012 40013
单位
0013 40014
小数点位置
0014 40015
最小分度值
0015
0016
0017
0018
0019
0020
40016
40017
40018
40019
40020
40021
传感器灵敏度
最大量程
有砝码标定有砝码零点标定
有砝码增益标定
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
40022
40023
40024
40025
40026
40027
40028
40029
40030
40031
40032
40033
40034
40035
40036
40037
40038
40039
40040
40041
40042
40043
40044
40045
40046
40047
40048
40049
40050
40051
40052
40053
40054
读时返回当前重量的毫伏数,如果当前增益重量毫伏数为负数,则增益重量毫伏数读出为零,此时不可以标定增益。
无砝码零点标定
写入将标定为零点的毫伏数值;
读时返回当前零点毫伏数。
写入增益重量对应的毫伏数,仪表先暂存;
读时返回当前重量对应的毫伏数,如果当前增益重量毫伏数为负数,则增益重量毫伏数读出为零。
写入和增益毫伏数对应的重量值,写入本值前必须先写入增益毫伏数,写本寄存器时利用二者进行增益标定;
读时返回0000H。
配方F1.1
配方F1.2
配方F1.3
配方F1.4
配方F1.5
配方F1.6
配方F2.1
配方F2.2
配方F3.1 0000H~0063H (0.0~9.9s)
配方F3.2 0000H~0063H (0.0~9.9s)
配方F3.3 0000H~0063H (0.0~9.9s)
配方F3.4 0000H~0063H (0.0~9.9s)
配方F3.5 0000H~0063H (0.0~9.9s)
配方F3.6 0000H~0063H (0.0~9.9s)
配方F3.7 0000H~0063H (0.0~9.9s)
配方F4.1 0000H~0063H (00~99)
配方F4.2 0000H~0063H (0.0%~9.9%)
配方F4.3 0001H:100%修正;
0002H:50%修正
0003H:25%修正
配方F5 0:PoFF; 1:PF-;
2:P-d ; 3:PFd
无砝码标定无砝码增益标定
(增益毫伏数值)
无砝码增益标定
(增益重量值)
目标值
大投提前量
中投提前量
落差值
零区值
拍袋起始重量
超量值
欠量值
T1
T2
T3
T4
T5
T6
T7
落差修正次数
落差修正范围
落差修正幅度
注:写入值大小应该小于等于最大量程。
0054 40055
拍袋模式
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
40056
40057
40058
40059
40060
40061
40062
40063
40064
40065
40066
40067
40068
40069
40070
40071
40072
40073
40074
40075
40076
40077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
拍袋次数1
拍袋次数2
拍袋延时
拍袋有效电平时间
拍袋无效电平时间
小投点动有效电平时间
小投点动无效电平时间
连续放料次数
自动清零间隔
AD数字滤波参数
判稳范围
清零范围
零点跟踪范围
配方号
批次数
配方F5.1 0000H~0063H (00~99)
配方F5.2 0000H~0063H (00~99)
配方F5.3 0000H~0063H (0.0~9.9s)
配方F5.4 0000H~0063H (0.0~9.9s)
配方F5.5 0000H~0063H (0.0~9.9s)
配方F6.1 0000H~0063H (0.0~9.9s)
配方F6.2 0000H~0063H (0.0~9.9s)
配方F7 0000H~0009H (0~9)
0000H~0063H (00~99)
0000H~0009H (0~9)
0001H~0009H (1d~9d)
0001H~0063H (量程的01%~99%)
工作参数5:0000H~0009H (0d~9d)
0001H~0014H (1~20)
0000H~270FH (0~9999)
预留地址区域
……
……
……
……
……
……
以下内容为可读可写线圈
上电自动清零开关
包装秤工作模式开关
自动打印开关
超欠差报警开关
超欠差暂停开关
落差修正开关
小投点动开关
无斗秤毛净重模式选择开关
投料方式选择开关
拍袋高电平结束即松袋开关
写:FF00H = NEt 0000H = gross
读:0001H =NEt 0000H = gross
写:FF00H = SL 0000H = Co
读:0001H =SL 0000H = Co
写:FF00H = ON 0000H = OFF
读:0001H = ON 0000H = OFF
写:FF00H = ON
0000H = OFF
运行时不可以修改开关
读:0001H = ON
0000H = OFF
注:预留地址区域读取数据均为零,写操作返回07异常码。
预留地址区域
……
……
……
……
……
注:预留地址区域读取数据均为零,写操作返回07异常码。
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
开关量输出初始化
开关量输出OUT1
开关量输出OUT2
开关量输出OUT3
开关量输出OUT4
开关量输出OUT5
开关量输出OUT6
开关量输出OUT7
开关量输出OUT8
开关量输出OUT9
开关量输出OUT10
开关量输出OUT11
开关量输出OUT12
运行
停止
清零
清报警
选配方
夹松袋
手动卸料
手动小投
打印
串口锁键盘(注3)
清除累计
毛净重模式切换
读:已初始化 = 1
未初始化 = 0
读:开关量输出有效 = 1
开关量输出无效 = 0
写:自定义开关量输出/关闭的优先级高于仪表内部产生的输出和关闭。写操作后如果想恢复原输出口功能可以通过写00094(PLC地址)命令初始化开关量输出
读:运行 = 1;非运行 = 0
读:停止 = 1;非停止 = 0
读:清零 = 1;未清零 = 0
读:已请 = 1;未清 = 0
读:恒定读出OFF(0000H)
读:夹袋 = 1;松袋 = 0
读:卸料有效 = 1;
卸料无效 = 0
读:小投有效 = 1;
小投无效 = 0。
读:恒定读出OFF(0000H)
读:已锁 = 1;未锁 = 0
读:已清 = 1;未清 = 0
读:净重 = 1;毛重 = 0
写:FF00H = ON
注:此地址区只能写FF00H
注1:毫伏数值小数点固定位三位,如读取的某毫伏数为2400,则表示该值为2.400mV。
注2:串口手动卸料与IN7开关量手动卸料共同控制手动卸料功能。即只有当串口手动卸料和开关量手动卸料都无效时,卸料才关闭。串口手动卸料和开关量手动卸料任意一个有效时,卸料则有效。
注3:此处串口键盘锁与IN8开关量键盘锁共同控制键盘的锁定与开启。即只有当串口键盘锁和开关量键盘锁都无效时,键盘才开启。串口键盘锁和开关量键盘锁任意一个有效时,键盘则关闭。
注意:用modbus修改仪表工作和配方参数时请确认仪表处于停止状态,以免出现错误。
深圳市杰曼科技有限公司
2024年2月24日发(作者:买冬莲)
八. Modbus
8.1 功能码与异常码
仪表支持的功能码:
功能码
03
06
16
01
05
名称
读寄存器
写单个寄存器
写多个寄存器
读线圈
写线圈
单次最多读取50个寄存器
本仪表本命令只支持写双寄存器,写入时必须对齐地址,不允许只写入双寄存器的一部分,读出时允许只读一部分。
注意本长度是以位为单位的
说明
注意:本仪表只支持以上MODBUS功能码,向仪表进行其他功能码时仪表将不响应。
MODBUS异常码相应
代码 名称 含义
对于本仪表来说,该错误码代表所收到的数据地址是不允许的地址
1. 起始地址和传输长度的组合无效.例如: 可读寄存器地址编号为0到10,使用03命令,起始寄存器地址为9,传输长度为2个字,9+2>10,则仪表返回异常代码02.
2. 本仪表的强制规定.有 :
(1) 03功能码命令最多一次读取50个字.
(2) 对于双字寄存器必须作为一个整体写入,一次写入两个字,但是读出的时候无限制.
写入的数据不符合允许的范围
当仪表正在试图执行请求的操作室,产生不可恢复的差错
02
非法数据地址
03
04
07
非法数据值
从机故障
对于仪表来说,所接收到的命令在当前条件下无法执行.
不成功的编程请求 例如:仪表当前目标值为零或者仪表显示OFL时不能启动,在这些情况下,向运行线圈写ON,将返回异常代码07.
8.2 MODBUS协议的有关说明
a.串口2通讯设置的相关说明
工作参数1 “秤号”,作为从机地址,不可通过总线修改,只可通过仪表手动设置。
工作参数4 “串行口2通讯方式”,不可通过总线修改,只可通过仪表手动设置。
工作参数3 “串行口2波特率”,不可通过总线修改,只可通过仪表手动设置。
工作参数15 “串行口2校验方式” ,不可通过总线修改,只可通过仪表手动设置。
工作参数16 “双字寄存器存储顺序” ,不可通过总线修改,只可通过仪表手动设置。
其中和标准说明书不同的列表如下:
4
CONT/ READ/
BUS_r
BUS_r
串行口2通讯方式
CONT:连续方式(C)
READ:命令方式(R)
BUS_r:MODBUS通讯RTU传输模式(B_r)
串行口2校验方式选择(起始位|数据位|校验位|停止位,E:偶校验;O:奇校验;N:无校验。BUS_r方式只可以选前四项。)
18N2:(R / C / B_r可选)
18E1:(R / C / B_r可选)
18O1:(R / C / B_r可选)
18N1:(R / C / B_r可选)
17N2:(R / C 可选)
17E1:(R / C 可选)
17O1:(R / C 可选)
MODBUS双字寄存器存储顺序选择,如果参数4中没有选择MODBUS通讯方式则仪表自动跳过此项设置
Hi Lo:高字在前低字在后
Lo Hi:低字在前高字在后
15
18N2
18E1
18O1
18N1
17N2
17E1
17O1
18E1
16
Hi Lo
Lo Hi
b.传输模式
Hi Lo
该MODBUS传输模式为RTU模式。
一、
协议地址
MODBUS通讯地址分配
PLC地址 含义 说明
位
.0
.1
0000 40001
仪表当前状态1
.2
.3
.4
.5
.6
加料前
大投
中投
小投
定值
超欠差
说明
0: 停止;1: 运行。
以下内容为只读
.7
.8
.9
.10
.11
.12
.13
.14
.15
.0
0001 40002
仪表当前状态2
.1
.2
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
40003
40004
40005
40006
40007
40008
40009
40010
40011
40012
当前重量(仪表显示数值)
累计次数
累计重量
报警
夹袋
拍袋
卸料
零区
供料
批次完成
缺料
0: 毛重;1: 净重。
0: 不稳;1: 稳定。
0: 正常;1: 溢出。
当前显示重量的符号+/-
0: 正号;1: 负号。
注:当重量溢出,即仪表显示有OFL时,重量值固定返回0xFFFFFFFF。
预留地址区域
……
……
……
注:预留地址区域读取数据为零
……
……
……
0000H:t
0001H:g
0002H:kg
0000H:0位; 0001H:1位;
0002H:2位; 0003H:3位;
0004H:4位。
0001H:1; 0002H:2;
0005H:5; 000AH:10;
00014:20; 0032H:50。
0001H:1mV/V
0002H:2mV/V
0003H:3mV/V
最大量程≤最小分度值×30000
写入0001H时将当前重量当做零点,秤台重量稳定时才允许写入;
读时返回当前零点毫伏数。(注1)
写入当前实际重量,仪表按当前毫伏数和写入重量标定增益;
以下内容为可读可写
0012 40013
单位
0013 40014
小数点位置
0014 40015
最小分度值
0015
0016
0017
0018
0019
0020
40016
40017
40018
40019
40020
40021
传感器灵敏度
最大量程
有砝码标定有砝码零点标定
有砝码增益标定
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
40022
40023
40024
40025
40026
40027
40028
40029
40030
40031
40032
40033
40034
40035
40036
40037
40038
40039
40040
40041
40042
40043
40044
40045
40046
40047
40048
40049
40050
40051
40052
40053
40054
读时返回当前重量的毫伏数,如果当前增益重量毫伏数为负数,则增益重量毫伏数读出为零,此时不可以标定增益。
无砝码零点标定
写入将标定为零点的毫伏数值;
读时返回当前零点毫伏数。
写入增益重量对应的毫伏数,仪表先暂存;
读时返回当前重量对应的毫伏数,如果当前增益重量毫伏数为负数,则增益重量毫伏数读出为零。
写入和增益毫伏数对应的重量值,写入本值前必须先写入增益毫伏数,写本寄存器时利用二者进行增益标定;
读时返回0000H。
配方F1.1
配方F1.2
配方F1.3
配方F1.4
配方F1.5
配方F1.6
配方F2.1
配方F2.2
配方F3.1 0000H~0063H (0.0~9.9s)
配方F3.2 0000H~0063H (0.0~9.9s)
配方F3.3 0000H~0063H (0.0~9.9s)
配方F3.4 0000H~0063H (0.0~9.9s)
配方F3.5 0000H~0063H (0.0~9.9s)
配方F3.6 0000H~0063H (0.0~9.9s)
配方F3.7 0000H~0063H (0.0~9.9s)
配方F4.1 0000H~0063H (00~99)
配方F4.2 0000H~0063H (0.0%~9.9%)
配方F4.3 0001H:100%修正;
0002H:50%修正
0003H:25%修正
配方F5 0:PoFF; 1:PF-;
2:P-d ; 3:PFd
无砝码标定无砝码增益标定
(增益毫伏数值)
无砝码增益标定
(增益重量值)
目标值
大投提前量
中投提前量
落差值
零区值
拍袋起始重量
超量值
欠量值
T1
T2
T3
T4
T5
T6
T7
落差修正次数
落差修正范围
落差修正幅度
注:写入值大小应该小于等于最大量程。
0054 40055
拍袋模式
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
40056
40057
40058
40059
40060
40061
40062
40063
40064
40065
40066
40067
40068
40069
40070
40071
40072
40073
40074
40075
40076
40077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
拍袋次数1
拍袋次数2
拍袋延时
拍袋有效电平时间
拍袋无效电平时间
小投点动有效电平时间
小投点动无效电平时间
连续放料次数
自动清零间隔
AD数字滤波参数
判稳范围
清零范围
零点跟踪范围
配方号
批次数
配方F5.1 0000H~0063H (00~99)
配方F5.2 0000H~0063H (00~99)
配方F5.3 0000H~0063H (0.0~9.9s)
配方F5.4 0000H~0063H (0.0~9.9s)
配方F5.5 0000H~0063H (0.0~9.9s)
配方F6.1 0000H~0063H (0.0~9.9s)
配方F6.2 0000H~0063H (0.0~9.9s)
配方F7 0000H~0009H (0~9)
0000H~0063H (00~99)
0000H~0009H (0~9)
0001H~0009H (1d~9d)
0001H~0063H (量程的01%~99%)
工作参数5:0000H~0009H (0d~9d)
0001H~0014H (1~20)
0000H~270FH (0~9999)
预留地址区域
……
……
……
……
……
……
以下内容为可读可写线圈
上电自动清零开关
包装秤工作模式开关
自动打印开关
超欠差报警开关
超欠差暂停开关
落差修正开关
小投点动开关
无斗秤毛净重模式选择开关
投料方式选择开关
拍袋高电平结束即松袋开关
写:FF00H = NEt 0000H = gross
读:0001H =NEt 0000H = gross
写:FF00H = SL 0000H = Co
读:0001H =SL 0000H = Co
写:FF00H = ON 0000H = OFF
读:0001H = ON 0000H = OFF
写:FF00H = ON
0000H = OFF
运行时不可以修改开关
读:0001H = ON
0000H = OFF
注:预留地址区域读取数据均为零,写操作返回07异常码。
预留地址区域
……
……
……
……
……
注:预留地址区域读取数据均为零,写操作返回07异常码。
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
开关量输出初始化
开关量输出OUT1
开关量输出OUT2
开关量输出OUT3
开关量输出OUT4
开关量输出OUT5
开关量输出OUT6
开关量输出OUT7
开关量输出OUT8
开关量输出OUT9
开关量输出OUT10
开关量输出OUT11
开关量输出OUT12
运行
停止
清零
清报警
选配方
夹松袋
手动卸料
手动小投
打印
串口锁键盘(注3)
清除累计
毛净重模式切换
读:已初始化 = 1
未初始化 = 0
读:开关量输出有效 = 1
开关量输出无效 = 0
写:自定义开关量输出/关闭的优先级高于仪表内部产生的输出和关闭。写操作后如果想恢复原输出口功能可以通过写00094(PLC地址)命令初始化开关量输出
读:运行 = 1;非运行 = 0
读:停止 = 1;非停止 = 0
读:清零 = 1;未清零 = 0
读:已请 = 1;未清 = 0
读:恒定读出OFF(0000H)
读:夹袋 = 1;松袋 = 0
读:卸料有效 = 1;
卸料无效 = 0
读:小投有效 = 1;
小投无效 = 0。
读:恒定读出OFF(0000H)
读:已锁 = 1;未锁 = 0
读:已清 = 1;未清 = 0
读:净重 = 1;毛重 = 0
写:FF00H = ON
注:此地址区只能写FF00H
注1:毫伏数值小数点固定位三位,如读取的某毫伏数为2400,则表示该值为2.400mV。
注2:串口手动卸料与IN7开关量手动卸料共同控制手动卸料功能。即只有当串口手动卸料和开关量手动卸料都无效时,卸料才关闭。串口手动卸料和开关量手动卸料任意一个有效时,卸料则有效。
注3:此处串口键盘锁与IN8开关量键盘锁共同控制键盘的锁定与开启。即只有当串口键盘锁和开关量键盘锁都无效时,键盘才开启。串口键盘锁和开关量键盘锁任意一个有效时,键盘则关闭。
注意:用modbus修改仪表工作和配方参数时请确认仪表处于停止状态,以免出现错误。
深圳市杰曼科技有限公司