教程写的比较详细,按照新手使用摸索学习思路来写的,高手可以跳过懂的部分!
步骤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入门 ,通常几分钟就可以完成.
ZLAN5143串口服务器的配置(示例) #
打开 卓岚 虚拟串口&设备管理器 配置软件,连上网口或串口,只需要填写以下几个部分:
第一步:
- 工作模式:TCP 客户端
- 目的IP或域名:iot.modbus.cn
- 目的端口:50001
- 心跳包:设备号SN码 例:4QR8TZ9ThuL4G (以实际为准)
- 注册包:设备号SN码 例:4QR8TZ9ThuL4G (以实际为准)
- 修改配置(保存)
如下图:
第二步:
点击“固件与配置”
C盘新建一个”web”空文件夹,选择这个文件夹,然后点击“注册包”
注册包和心跳包”ASCII”格式都先打钩,然后填入云平台生成的设备号,心跳包间隔输入“60”秒,点击确定进行保存。
跳转页面后,点击“下载”即可。
Modbus 温湿度传感器接入 (示例) #
打开设备管理→设备配置→选择刚刚添加的设备,然后点击“ +添加数据 ”。
查看温湿度传感器说明书 #
寄存器说明
寄存器为 modbus 从机的寄存器偏移地址,日常我们浏览设备说明书时,一般会有 2 种形式:
寄存器地址
如 湿度寄存器地址为 0000H,湿度传感器属性寄存器地址为 1
PLC 或者组态地址
如果是PLC地址,大家在寄存器地址选择 16进制 ,然后左侧下拉选择4x,然后输入后面的完整数字即可。
如下图所示,结合厂家说明书,我们得到 温度的寄存器是0,湿度的寄存器是1
湿度
温度
温度和湿度添加完成后,如下图所示:
扩展资料: #
读写指令说明
名称 | 说明 |
数据类型 | ●数据属性 ●配置属性 |
数据节点类型 | ●数据属性 ●配置属性 ●数值类型 ●状态类型 ●开关类型 ●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进制地址)