Modbus TCP 是一种用于工业自动化的通信协议。它允许 PLC(可编程逻辑控制器)、传感器、HMI(人机界面)和 SCADA 系统通过标准以太网相互通信。

想想工厂车间设备、楼宇自动化和工业物联网设备。

工作原理

Modbus TCP 将传统的 Modbus 协议封装在 TCP/IP 数据包中。默认使用端口 502。

客户端-服务器模型:

  • 客户端(master)请求数据
  • 服务器(从机)响应传感器读数、控制状态等。

一个客户端可以与同一网络上的多个服务器通信。

Modbus TCP 读/写什么

工业设备将数据公开为寄存器:

线圈 (0x): 单比特读/写(数字输出、继电器) 离散输入 (1x): 一位只读(传感器、开关) 输入寄存器 (3x): 16位只读(模拟传感器、仪表) 保存寄存器 (4x): 16 位读/写(设定值、参数)

示例:温度传感器可能会将其读数公开为输入寄存器 30001,返回类似 2350 (23.5°C) 的值。

常见用途

工厂自动化: PLC 控制传送带、机械臂、装配线

大厦管理: HVAC 系统、照明控制、电能表

水/废水: 泵控制、流量计、液位传感器

石油和天然气: 管道监控、压力传感器、阀门控制

能量: 太阳能逆变器、电池系统、电网监控

Modbus TCP 与 Modbus RTU

Modbus RTU: 串行通讯 (RS-485)。标准较旧,速度较慢,在以太网不可用时使用。

Modbus TCP: 基于以太网。更快、更容易与现代网络集成,距离更远。

大多数新安装都使用 Modbus TCP。传统系统通常使用 RTU。

设置 Modbus TCP 设备

网络配置:

  • 为每个设备分配静态IP
  • 对工业网络使用单独的 VLAN(安全最佳实践)
  • 端口 502 必须在防火墙上打开

常见问题:

  • IP 冲突(始终使用静态 IP)
  • 错误的寄存器寻址(检查设备文档)
  • 防火墙拦截502端口
  • 网络交换机无法正确处理工业流量

安全问题

Modbus TCP 没有内置安全性。没有身份验证,没有加密。

最佳实践:

  • 将工业网络与IT网络隔离
  • 使用 VLAN 和防火墙规则
  • 用于远程访问的 VPN
  • 切勿将 Modbus 设备直接暴露到互联网
  • 考虑 Modbus TCP 安全性(添加 TLS 加密)

工业网络成为目标。细分至关重要。

软件工具

测试/故障排除:

  • ModScan(Windows Modbus 扫描仪)
  • Modbus Poll/Slave(模拟和测试)
  • pyModbus(Python 库)
  • Node-RED(带有 Modbus 节点的视觉自动化)

SCADA 平台:

  • 点火
  • 工厂谈话
  • WinCC
  • Wonderware

底线

Modbus TCP 是工业以太网通信的标准协议。简单,得到广泛支持,但需要适当的网络分段以确保安全。

如果您通过以太网连接 PLC、传感器或工业设备,您可能会在端口 502 上使用 Modbus TCP。

始终使用静态 IP,与 IT 网络隔离,并记录您的寄存器映射。