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 网络隔离,并记录您的寄存器映射。