View Categories

Modbus RTU协议

教程写的比较详细,按照新手使用摸索学习思路来写的,高手可以跳过懂的部分!

步骤1:购买硬件设备 #

首先,你需要购买一个联网设备,如4G DTU(数据终端设备)或串口服务器。4G DTU和串口服务器是将你的设备(如传感器)的数据连接到互联网的设备。选择哪种设备,主要取决于你的网络接入方式。如果你的设备需要通过移动网络(2G/4G/5G)接入,那么就选择4G DTU。如果你的设备通过有线网络(插网线)接入,那么你应该选择串口服务器。

步骤2:设备接线 #

购买设备后,你需要进行设备接线。对于大多数设备,你可能会看到A、B、 V(12V+) 和 G (12V-) 这样的标签:

A(通常指RS485的A线)连接到设备的A线
B(通常指RS485的B线)连接到设备的B线
V(直流电源正极)连接到设备的电源正极
G(直流电源负极)连接到设备的电源负极

请确保所有的线路连接正确并且牢固,以避免接触不良或者短路。

步骤3:设备配置 #

在设备接线完成后,你需要对 DTU / 串口服务器 设备进行配置。

名称说明
工作模式TCP 客户端 / TCP Client / 网络透传模式…
服务器地址服务器端地址 / 远程服务器地址 /目的IP或域名…
iot.modbus.cn
端口号远程端口号 / 服务器端口号 / 目的端口 /端口号…
50001
注册包一般默认关闭,需要打开后使用,然后选择 自定义注册包 / 注册包内容
填写设备创建后生成的 设备号SN 例如: 4QR8TZ9ThuL4G
心跳包一般默认关闭,需要打开后使用,然后选择 自定义心跳包 / 心跳包内容
填写设备创建后生成的 设备号SN 例如: 4QR8TZ9ThuL4G
心跳包时间心跳包时间 / 心跳包间隔
一般设置为20~60秒
波特率参照 传感器或者485设备说明书定义为准。下面仅为尝试参考 (通常设置为9600)
数据位参照 传感器或者485设备说明书定义为准。下面仅为尝试参考 (通常设置为8)
校验位参照 传感器或者485设备说明书定义为准。下面仅为尝试参考 (通常设置为None)
停止位参照 传感器或者485设备说明书定义为准。下面仅为尝试参考 (通常设置为1)

设备配置示例: #

塔石公司
TAS-LAN-461

  • 工作模式:TCP Client
  • 远程服务器地址:iot.modbus.cn
  • 远程端口:50001

注册包

注册包类型:自定义注册包
注册包模式:连接发送
注册包内容:例子:4QR8TZ9ThuL4G ,其中 4QR8TZ9ThuL4G 为设备 SN 号,需要替换为自己的设备号SN;(请选择ASCII

心跳包

心跳包使能:网络心跳包
心跳包内容:例子:4QR8TZ9ThuL4G ,其中 4QR8TZ9ThuL4G 为设备 SN 号,需要替换为自己的设备号SN;(请选择ASCII
心跳包时间:30~60s为宜

步骤4:接入物联网平台 #

MODBUS 物联网平台 上的准备工作

在实践中,我们通常将 串口服务器 作为透传网关,用于在 Modbus 子设备和云平台之间起到消息转发作用。这里我们使用 串口服务器 的 TCP客户端 模式,准备工作只需要以下几步:

  • 创建项目(项目管理→新增项目)。
  • 创建设备(设备管理→设备配置→新增设备)
  • 填写设备名称,随机生成或者手动填写设备号,在设备协议中选择ModBus RTU,定位设备所在经纬度,保存即可。(设备号复制保存备用)
Modbus RTU协议插图

具体的步骤请浏览:Modbus入门 ,通常几分钟就可以完成.

ZLAN5143串口服务器的配置(示例) #

打开 卓岚 虚拟串口&设备管理器 配置软件,连上网口或串口,只需要填写以下几个部分:
第一步:

  • 工作模式:TCP 客户端
  • 目的IP或域名:iot.modbus.cn
  • 目的端口:50001
  • 心跳包:设备号SN码 例:4QR8TZ9ThuL4G (以实际为准)
  • 注册包:设备号SN码 例:4QR8TZ9ThuL4G (以实际为准)
  • 修改配置(保存)

如下图:

Modbus RTU协议插图1

第二步:
点击“固件与配置”

Modbus RTU协议插图2

C盘新建一个”web”空文件夹,选择这个文件夹,然后点击“注册包”

Modbus RTU协议插图3

注册包和心跳包”ASCII”格式都先打钩,然后填入云平台生成的设备号,心跳包间隔输入“60”秒,点击确定进行保存。

Modbus RTU协议插图4

跳转页面后,点击“下载”即可。

Modbus RTU协议插图5

Modbus 温湿度传感器接入 (示例) #

打开设备管理设备配置→选择刚刚添加的设备,然后点击“ +添加数据 ”。

Modbus RTU协议插图6

查看温湿度传感器说明书 #

Modbus RTU协议插图7

寄存器说明

寄存器为 modbus 从机的寄存器偏移地址,日常我们浏览设备说明书时,一般会有 2 种形式:

寄存器地址

如 湿度寄存器地址为 0000H,湿度传感器属性寄存器地址为 1

PLC 或者组态地址

如果是PLC地址,大家在寄存器地址选择 16进制 ,然后左侧下拉选择4x,然后输入后面的完整数字即可。
如下图所示,结合厂家说明书,我们得到 温度的寄存器是0,湿度的寄存器是1

湿度

Modbus RTU协议插图8

温度

Modbus RTU协议插图9

温度和湿度添加完成后,如下图所示:

Modbus RTU协议插图10

扩展资料: #

读写指令说明

名称说明
数据类型●数据属性
●配置属性
数据节点类型●数据属性
●配置属性
●数值类型
●状态类型
●开关类型
●GPS类型
●显示型
●点动型
从设备地址地址号为 modbus 从机设备的地址,它的范围为 1~255
寄存器寄存器为 modbus 从机的寄存器偏移地址,日常我们浏览设备说明书时,一般会有 2 种形式:
PLC地址/组态地址(16进制)
线圈状态(0x0001~0x9999)
离散输入(1×0001~1×9999)
保持寄存器(4×0001~4×9999)
输入寄存器(3×0001~3×9999)
如果为PLC地址一般则为去掉最高位,在减去 1 则可,如 40001,去掉最高位变为 0001,减去 1,则为 0 , 40001 -> 0,40002 -> 1 ,这里大家一定不能混淆。
如果地址为0000H , 0001H,这样的就不用减了,直接填写0000即可!
注意:是否减地址,自己可以2种都加上测试,部分厂商不用减!!!


10进制:部分厂商寄存器为10进制,根据使用选择即可!
储存策略●变化储存 (数值发生变动时进行储存)
●实时储存(数据立即储存,以保留数据的实时性)
●30S
●1min
●5min
●30min
●1h
●1day
数据精度数据精度为数据的有效位数,比如传递的数 10.234,如果数据精度选择 2,则小数点第
三位会被四舍五入变为 10.23,其他类似。
公式处理(平台->设备)公式处理(设备->平台)为采集过来的数据,经过公式计算后储存和展示使用,比如采
集到数值是 100,我们要除以 10 使用,则可以填写 x/10 即可。
公式处理(设备->平台)平台->设备的公式是写数据的时候使用。
功能码●01/05 — 对开关量(bit位)进行读写,写入默认使用05功能码
●02 — 对开关量(bit位)进行读,是只读的,不允许写入
●03/06 — 对整形/浮点型数据进行读写,写入默认使用06功能码
●04 — 对整形/浮点型数据进行读,只读不写
读写方式●只读
●读写
数据格式●16位有符号数(UINT16):占用1个偏置,2个字节,表示正负整数,数据范围-32768~32767。
●16位无符号数(INT16):占用1个偏置,2个字节,表示正整数,数据范围0~65535。
●32位有符号数(UINT32):占用2个偏置,4个字节,表示正负整数,数据范围- 2147483648~ 2147483647。
●32位无符号数(INT32):占用2个偏置,4个字节,表示正整数,数据范文0~ 4294967295。
●32位浮点型数(FLOAT32):占用2个偏置,4个字节,可表示正数、负数、正数、小数。
数据顺序●A B
●B A
●A B C D
●C D B A
●D C B A
●B A D C

不同类型设备快捷参数示例 #

继电器 / 执行器 / 开关类 设置
数据类型 – 数据属性
设备节点类型 – 开关类型
存储策略 – 1min
单位 – 打开/关闭
属性名称 – Modbus
Modbus功能码 – 01/05
读写方式 – 读写
数据格式 – 16位无符号
数据顺序 – A B
IO输入 / 设备状态 / 指示灯状态 设置
数据类型 – 数据属性
设备节点类型 – 状态类型
存储策略 – 30S
单位 – 打开/关闭 或者 有人/无人
属性名称 – Modbus
Modbus功能码 – 02 (也可能是01,具体参照说明书,一般用02读)
读写方式 – 只读
数据格式 – 16位无符号
数据顺序 – A B
传感器 / 数值类 设置(只读)
数据类型 – 数据属性
设备节点类型 – 数值类型
存储策略 – 1min
单位 – 根据实际单位选择 (打开/关闭除外的)
属性名称 – Modbus
Modbus功能码 – 03/06
读写方式 – 只读
数据格式 – (根据说明书说明选择)
数据顺序 – (根据说明书说明选择)
传感器 / 数值类 设置(读写)
数据类型 – 配置属性 (不同点在这里)
存储策略 – 1min
属性默认值 – 默认数值,根据实际情况填写
单位 – 根据实际单位手动填写
参数配置 –
属性名称 – Modbus
Modbus功能码 – 03/06
读写方式 – 只读
数据格式 – (根据说明书说明选择)
数据顺序 – (根据说明书说明选择)

从设备地址10进制与16进制转换对照表:
(Modbus物联网平台Modbus RTu协议下需使用10进制地址)

Modbus RTU协议插图11

Powered by BetterDocs

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注