3. 通信基础

在HMI与PLC集成的工程实践中,通信是所有数据交互的“地基”。无论是触摸屏读取PLC寄存器,还是上位机采集多台设备的数据,最终都要落到具体的物理接口、数据帧格式和协议栈上。理解串行通信、以太网通信、OSI参考模型,以及现场总线与工业以太网的区别,能够帮助我们在选型、接线、配置和排障时快速定位问题,而不是停留在“插上网线就能通”的模糊认知。

一、串行通信:按位传输的经典方式

串行通信是指数据一位一位地按顺序在一条数据线上传输。它分为同步串行和异步串行两大类。工业现场最常见的是异步串行,典型代表是RS-232、RS-485和RS-422。异步串行通信依靠起始位、数据位、校验位和停止位组成一帧,收发双方必须约定相同的波特率、数据位、校验方式和停止位,否则会出现乱码或通信失败。

RS-232是点对点通信,传输距离短,通常不超过15米,抗干扰能力弱,多用于PLC编程口或老式HMI连接。RS-485采用差分信号,支持多点总线,传输距离可达1200米,抗干扰能力强,是Modbus RTU、Profibus DP等现场总线的物理层基础。RS-422则是全双工差分通信,常用于需要同时收发且距离较远的场景。

工程提示:RS-485总线两端必须接终端电阻(通常120Ω),否则在长距离或高波特率下容易出现信号反射,表现为通信时断时续。

二、以太网通信:从办公到工业的延伸

以太网通信基于IEEE 802.3标准,采用CSMA/CD(早期共享式)或交换式全双工通信。它使用MAC地址寻址,数据以帧为单位传输,典型帧结构包括前导码、目的MAC、源MAC、类型/长度、数据和FCS校验。以太网的优势是带宽高、组网灵活、支持星型拓扑,配合交换机可实现全双工无冲突通信。

在HMI与PLC集成中,以太网通信通常承载TCP/IP协议栈。PLC作为服务器或客户端,HMI通过Modbus TCP、EtherNet/IP、Profinet、OPC UA等协议访问PLC数据。与串行通信相比,以太网通信速率从10Mbps到千兆不等,传输距离受限于网线(双绞线100米),但可通过光纤和交换机扩展。

三、OSI模型:理解协议分层的钥匙

OSI(开放系统互连)参考模型将通信过程分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。工业通信协议通常只涉及其中部分层次。例如,Modbus RTU主要涉及物理层、数据链路层和应用层;Modbus TCP则涉及物理层、数据链路层、网络层、传输层和应用层。

理解OSI模型的价值在于排障时能逐层定位:物理层看接线、电平和终端电阻;数据链路层看MAC、帧格式和冲突;网络层看IP、子网和路由;传输层看端口和连接状态;应用层看功能码、寄存器地址和数据格式。很多“通信不上”的问题,其实在物理层或数据链路层就已经埋下隐患。

串行通信与以太网通信的协议层次对照 OSI 参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 串行通信(Modbus RTU) Modbus 应用层 串行链路层 RS-485 / RS-232 半双工总线 · 主从轮询 以太网通信(Modbus TCP) Modbus 应用层 TCP 传输层(端口502) IP 网络层 以太网 / 交换机 全双工 · 星型拓扑

四、现场总线与工业以太网的区别

现场总线是20世纪80年代发展起来的工业控制网络,典型代表有Profibus、Modbus、CANopen、DeviceNet等。它们大多基于串行通信,采用主从或令牌机制,强调实时性、确定性和本安防爆能力。现场总线的优点是布线简单、抗干扰强、成本低,缺点是带宽有限、协议封闭、互操作性差。

工业以太网是在标准以太网基础上增加实时性和工业可靠性机制的通信网络,典型代表有Profinet、EtherNet/IP、EtherCAT、Modbus TCP等。它保留了以太网的高带宽和开放性,同时通过时间同步、优先级调度、环形冗余等技术满足工业实时控制需求。工业以太网正在逐步取代传统现场总线,成为HMI与PLC集成的主流通信方式。

对比维度 现场总线 工业以太网
物理层 RS-485、CAN、双绞线 双绞线、光纤、RJ45
通信速率 9.6kbps~12Mbps 100Mbps~1Gbps
拓扑结构 总线型、菊花链 星型、环型、树型
实时性 确定性好,周期短 依赖协议,EtherCAT等可达微秒级
互操作性 协议封闭,网关转换多 开放性好,支持OPC UA等
典型协议 Profibus DP、Modbus RTU、CANopen Profinet、EtherNet/IP、EtherCAT、Modbus TCP

五、案例与排障:从现象反推层次

某项目中HMI通过RS-485读取三台PLC的Modbus RTU数据,运行一段时间后出现随机丢包。排查发现总线两端未接终端电阻,且屏蔽层单端接地不规范。加上120Ω终端电阻并重新接地后,通信恢复稳定。这个案例说明,串行通信的物理层细节直接决定通信质量。

另一个案例是HMI通过Modbus TCP连接PLC,IP能ping通但读不到数据。检查发现PLC的Modbus TCP服务未使能,且防火墙拦截了502端口。放行端口并启用服务后正常。这说明以太网通信虽然物理连通,但应用层配置同样关键。

# Modbus TCP 连接测试示例(Python)
from pymodbus.client import ModbusTcpClient

client = ModbusTcpClient('192.168.1.10', port=502)
client.connect()
result = client.read_holding_registers(address=0, count=10, slave=1)
print(result.registers)
client.close()
常见误区:认为“网线插上就能通信”。实际上,IP地址、子网掩码、端口号、协议类型、寄存器地址、数据格式(如大小端)任何一项不匹配,都会导致通信失败。排障时应按OSI模型从下往上逐层确认。

总结来看,串行通信适合低速、远距离、低成本场景;以太网通信适合高速、大数据量、组网灵活场景;OSI模型是理解协议分层和排障的通用框架;现场总线与工业以太网各有适用边界,选型时需综合考虑实时性、成本、兼容性和未来扩展。掌握这些基础,才能在HMI与PLC集成中做出合理的技术决策。