首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Modbus TCP 工业以太网温湿度传感器调试指南:Poll 验证、PLC 与上位机集成

Modbus TCP 工业以太网温湿度传感器调试指南:Poll 验证、PLC 与上位机集成

原创
作者头像
盛世宏博小可
发布于 2026-10-22 10:54:03
发布于 2026-10-22 10:54:03
250
举报

Modbus TCP 工业以太网温湿度传感器调试指南:Poll 验证、PLC 与上位机集成

物联网 · 盛世宏博 · Modbus TCP、工业以太网温湿度传感器、Modbus Poll、PLC 集成、上位机组态、寄存器映射


一、调试前先确认:手里的到底是"真以太网"还是"假以太网"

第一步不是 ping,是先看说明书确认设备类型:

判定项

真以太网 Modbus TCP

伪以太网(RS485 换壳)

物理接口

RJ45,走交换机,支持 PoE

RJ45 外形,但内部是 485 电平

寻址

IP + Port 502 + Unit ID

从站地址 1~247

是否需要终端电阻

不需要

必须手拉手 + 末端 120Ω

供电

PoE 或独立 24V

通常 24V,无 PoE

抓包特征

TCP 三次握手 + MBAP 头

串口波形,无 TCP 会话

把"485 换壳"当真以太网接交换机,会出现"link 灯亮但怎么都读不到数据"——因为它根本不吃 TCP。


二、物理层与网络层打通(四步)

第 1 步:默认 IP 处理

出厂常见默认 192.168.1.100 或 192.168.0.100。

代码语言:javascript
复制
1. 电脑设同网段静态 IP(如 192.168.1.50/24)
2. 直连设备,ping 192.168.1.100
3. 通了 → 进 Web 管理页改目标 IP
4. 不通 → 查网线/供电/VLAN,别急着怀疑设备

第 2 步:VLAN 与路由

  • 传感器划入独立动环 VLAN,与办公网、业务网隔离
  • 跨 VLAN 需网关路由可达,ACL 放行 502
  • 静态 IP + MAC 绑定,禁用 DHCP

第 3 步:PoE 确认

代码语言:javascript
复制
show power inline
→ 每口实际 1.2~2.8W,总余量 >20%

第 4 步:端口连通性

代码语言:javascript
复制
telnet 192.168.1.100 502
# 或
nc -zv 192.168.1.100 502

502 不通就别进 Poll 了——先查设备 Modbus TCP 功能是否开启、防火墙/ACL 是否放行、端口是否被改成 1502/5020 等非标端口。


三、Modbus Poll 验证(调试核心)

1. 建立连接

代码语言:javascript
复制
Connection → Connect
  - Connection: Modbus TCP/IP
  - IP Address: 192.168.1.100
  - Port: 502
  - Slave ID: 1(Unit ID,多设备网关场景需映射)

2. 读寄存器

代码语言:javascript
复制
Read/Write Definition:
  - Slave ID: 1
  - Function: 03 Read Holding Registers(或 04 Read Input Registers)
  - Address: 0        ← 注意是 0-based
  - Quantity: 6       ← 一次读 6 个寄存器

手册常见写法 40001,代码和 Poll 里填 0:

代码语言:javascript
复制
40001 → offset 0
40002 → offset 1
40003 → offset 2

3. 缩放与显示

代码语言:javascript
复制
Display:
  - Show Data As: Decimal / Float
  - Swap Word/Byte Order: 按手册选
  - PLC Addresses: 勾选可显示 40001 便于对照

缩放设置:

代码语言:javascript
复制
Scale:
  - Multiply: 0.1    ← 250 → 25.0
  - Divide: 1

4. Poll 常见报错对照

报错

含义

排查

Timeout

无响应

IP/端口/Slave ID/防火墙/网线

Illegal Function (0x01)

功能码不支持

换 03/04 试

Illegal Data Address (0x02)

地址不存在

查手册起始地址、0基1基

Illegal Data Value (0x03)

数量超限

Quantity 调小

Slave Device Failure (0x04)

设备内部错

重启/固件问题

Acknowledge (0x05)

设备忙

稍后重试

Slave Device Busy (0x06)

设备忙

降低轮询频率


四、寄存器解析四件套

1. 地址偏移(第一大坑)

Modbus 数据模型:

代码语言:javascript
复制
00001~09999  线圈(读/写)
10001~19999  离散输入(只读)
30001~39999  输入寄存器(只读)
40001~49999  保持寄存器(读/写)

协议帧里是 0 基偏移:

代码语言:javascript
复制
手册 40001 → 填 0
手册 40002 → 填 1
手册 40003 → 填 2

2. 缩放因子(第二大坑)

代码语言:javascript
复制
寄存器原始值 250 → 实际 25.0℃
需设置 Multiply = 0.1 或 Divide = 10

常见映射:

代码语言:javascript
复制
40001 INT16 ×0.1   → 温度 ℃
40002 INT16 ×0.1   → 湿度 %RH
40003 INT16 ×0.1   → 露点 ℃
40004 UINT16 ×1    → PM2.5 μg/m³
40005 UINT16       → 状态字(位域)
40006~40007 FLOAT  → 温度/露点(占 2 寄存器,32 位)

3. 字节序(第三大坑,浮点专属)

16 位整数一般 Big Endian(AB CD),32 位浮点要管两层:

  • 字节序:ABCD / DCBA / BADC / CDAB
  • 字序:高字在前 or 低字在前

Poll 里 Swap Word/Byte Order 轮换试,配合设备手册给的测试值(如强制写 25.5)确认。

4. 功能码矩阵

功能码

用途

温湿度传感器常见支持

01

读线圈

部分

02

读离散输入

部分

03

读保持寄存器

普遍​

04

读输入寄存器

普遍​

06

写单寄存器

部分(写设定值)

10(0x10)

写多寄存器

部分

16(0x10 十进制)

写多寄存器

同上

有些设备只支持 03+10,用 06 写单寄存器会回 Illegal Function。Poll 里测试写操作前务必先确认手册。


五、PLC 集成(工业现场主流)

1. 西门子 S7-1200/1500(TIA Portal)

代码语言:javascript
复制
硬件配置:
  - 添加 CPU
  - 添加 CM/CP 通信模块(PROFINET/以太网)
  - 或直接使用 CPU 内置 PN 口

编程:
  - 调用 MB_CLIENT(S7-1200/1500 用 MB_CLIENT,非 MB_MASTER)
  - 参数:
      REQ: 触发条件(如 1Hz 时钟)
      DISCONNECT: FALSE
      CONNECT_ID: 1(唯一标识)
      IP_OCTET_1~4: 192.168.1.100
      REM_PORT: 502
      MB_UNIT_ID: 1
      MB_FUNCTION: 3(读保持寄存器)
      DATA_ADDR: 40001(TIA 里填 40001,软件自动转 0 基)
      DATA_LEN: 6
      DATA_PTR: &DB1.TempData[0](目标数据块)

  - 输出处理:
      DB1.TempData[0] × 0.1 → 实际温度
      DB1.TempData[1] × 0.1 → 实际湿度

注意点:

  • S7-200 用 MBUS_MSG,S7-1200/1500 用 MB_CLIENT,别混
  • MB_CLIENT 的 DATA_ADDR 在 TIA 里填 40001 形式(1-based),老软件版本才要求 0-based
  • 多设备轮询用 CONNECT_ID 区分,不要同时触发多个 MB_CLIENT

2. 三菱 FX5U / Q 系列

代码语言:javascript
复制
GX Works3:
  - 参数 → 模块信息 → 以太网端口
  - 添加 Modbus TCP 主站设置
  - 配置读取对象:
      从站 IP: 192.168.1.100
      Unit ID: 1
      功能码: 03H
      起始地址: 0(对应 40001)
      点数: 6
      目标软元件: D100(存温度)

3. 欧姆龙 NJ/NX 系列

代码语言:javascript
复制
Sysmac Studio:
  - 添加 Ethernet/IP 或 Modbus TCP 主站单元
  - 建立 Modbus TCP 通道
  - 用 _MBTCP_ReadHoldingRegisters 功能块
  - 地址填 40001(1-based)

4. 通用注意事项

  • PLC 作为 Modbus TCP 主站,传感器作为从站
  • 轮询周期建议 2~5s,别 100ms 狂轮(廉价传感器 TCP 栈会撑不住)
  • 多传感器用 轮询队列,不要并行同时触发
  • 断线后要有重连逻辑,别卡死在单次失败

六、上位机组态集成(SCADA/HMI)

1. 通用组态步骤

代码语言:javascript
复制
1. 新建设备 → 选 Modbus TCP 驱动
2. 配置连接:
   - IP: 192.168.1.100
   - Port: 502
   - Unit ID: 1
   - 超时: 2000~3000ms
   - 重试: 2~3 次
   - 周期: ≥2000ms
3. 建数据点:
   - 地址 40001 → 名称 Temp → 类型 INT16 → 线性转换 ×0.1 → ℃
   - 地址 40002 → 名称 Hum  → 类型 INT16 → 线性转换 ×0.1 → %RH
4. 浮点变量:显式选 FLOAT32 + 字序
5. 画面绑定 + 告警 + 曲线

2. 常见组态软件对照

软件

设备驱动选择

地址格式

备注

力控

Modbus TCP

40001

1-based

亚控 KingView

Modbus TCP

40001

1-based

MCGS

Modbus TCP

40001

1-based

WinCC

Modbus TCP(需 Channel/Device)

40001

注意字序

Ignition

Modbus TCP Driver

40001

支持自动发现

3. 组态常见翻车点

  • 读到 250℃ 而不是 25℃ → 没设 ×0.1 缩放
  • 读到 0 或乱码 → 地址 0-based/1-based 错
  • 温度显示 -1000℃ → 浮点字节序错
  • 一台能读、加第二台就挂 → IP 冲突 / 设备连接数上限
  • 网络通但无数据 → 防火墙拦 502 / VLAN 隔离 / Unit ID 错
  • 画面卡顿 → 轮询周期太短、点位太多并发

七、调试完整流程(SOP)

代码语言:javascript
复制
1. 查说明书 → 确认真以太网 or 485 换壳
2. 电脑设同网段静态 IP → ping 通设备
3. telnet/nc 验证 502 端口可达
4. Modbus Poll 连 502,Slave ID=1
5. 读 40001,确认地址偏移、缩放、字节序
6. 读连续多个寄存器,验证合并读是否正常
7. 测试写操作(06/10),确认功能码支持
8. 多设备轮询测试(2~5s 周期,队列方式)
9. PLC 侧 MB_CLIENT 配置,验证数据写入 DB
10. 上位机组态建点,验证画面绑定
11. 异常值过滤(0xFFFF/超范围/冻结)
12. 72h 长稳测试,无断流、无假死

八、异常值处理(上线必做)

异常值

处理

0xFFFF / 0x7FFF

传感器故障/离线,标 INVALID,不进库

温度 <5 或 >55℃(室内)

探头脱落/异常,标 INVALID

湿度 <0 或 >100%RH

数据异常,标 INVALID

连续 10 周期值不变

设备冻结,标 STALE

单次跳变 >3℃ 或 >8%RH

中值滤波,不触发告警

超过 2 个周期无更新

标 STALE,平台弹"数据不新鲜"


九、一句话收口

Modbus TCP 温湿度传感器调试,记住三个"差一位就错": 40001 在 Poll 里填 0、原始值 250 要乘 0.1、浮点先校字节序。 PLC 侧别混 MBUS_MSG 和 MB_CLIENT,上位机组态别忘线性转换——这三件事做对,剩下的就是网络连通性问题,按 ping → 502 → Poll → PLC/SCADA 的顺序一层层剥。


关键词:Modbus TCP、工业以太网温湿度传感器、Modbus Poll、PLC 集成、上位机组态、寄存器偏移、缩放因子、字节序、MB_CLIENT、异常值过滤

标签:#ModbusTCP #工业以太网 #温湿度传感器 #ModbusPoll #PLC集成 #上位机组态 #寄存器映射 #字节序 #MB_CLIENT #工业调试 #动环监控

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • Modbus TCP 工业以太网温湿度传感器调试指南:Poll 验证、PLC 与上位机集成
    • 一、调试前先确认:手里的到底是"真以太网"还是"假以太网"
    • 二、物理层与网络层打通(四步)
      • 第 1 步:默认 IP 处理
      • 第 2 步:VLAN 与路由
      • 第 3 步:PoE 确认
      • 第 4 步:端口连通性
    • 三、Modbus Poll 验证(调试核心)
      • 1. 建立连接
      • 2. 读寄存器
      • 3. 缩放与显示
      • 4. Poll 常见报错对照
    • 四、寄存器解析四件套
      • 1. 地址偏移(第一大坑)
      • 2. 缩放因子(第二大坑)
      • 3. 字节序(第三大坑,浮点专属)
      • 4. 功能码矩阵
    • 五、PLC 集成(工业现场主流)
      • 1. 西门子 S7-1200/1500(TIA Portal)
      • 2. 三菱 FX5U / Q 系列
      • 3. 欧姆龙 NJ/NX 系列
      • 4. 通用注意事项
    • 六、上位机组态集成(SCADA/HMI)
      • 1. 通用组态步骤
      • 2. 常见组态软件对照
      • 3. 组态常见翻车点
    • 七、调试完整流程(SOP)
    • 八、异常值处理(上线必做)
    • 九、一句话收口
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档