最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

modbus说明(1)

IT圈 admin 48浏览 0评论

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修改仪表工作和配方参数时请确认仪表处于停止状态,以免出现错误。

深圳市杰曼科技有限公司

发布评论

评论列表 (0)

  1. 暂无评论