2. 工业设备通信基础
在工业现场,上位机与设备之间的通信能否稳定建立,往往不取决于上层软件写得多复杂,而取决于最初选型时是否把物理层和链路层匹配清楚。物理层决定“电信号怎么传、线怎么接、能传多远、抗不抗干扰”,链路层决定“数据帧怎么组织、谁先发、出错怎么重发、多台设备如何共享一条通道”。串口、以太网、现场总线这三类接口的差异,本质上就集中在这两层。
一、三类接口的物理层差异
串口(RS-232/RS-485)是典型的点对点或总线型低速物理层。RS-232 使用单端信号,逻辑电平约 ±3~±15V,传输距离通常不超过 15m,速率在 9600~115200bps 之间;RS-485 使用差分信号(A/B 两线),共模抑制能力强,在 100kbps 以下可延伸至 1200m,节点数可达 32 个(加中继可扩展)。RS-485 必须注意终端电阻:在总线两端各接 120Ω,中间节点不接,否则反射会造成误码。
以太网(10/100/1000BASE-T)使用差分对和变压器隔离,标准双绞线单段 100m,通过交换机可级联扩展。它的物理层自带链路协商、自协商速率和双工模式,抗干扰依靠差分与隔离变压器,但工业现场更强调屏蔽、接地和 EMC。以太网的物理层不定义“谁先发”,这交给链路层的 CSMA/CD 或全双工交换。
现场总线(如 PROFIBUS DP、CAN、Modbus RTU over RS-485、DeviceNet)的物理层多基于 RS-485 或 CAN 差分,但增加了总线供电、隔离、终端匹配和拓扑约束。例如 PROFIBUS DP 规定 9.6kbps~12Mbps,12Mbps 时单段仅 100m,1.5Mbps 时约 200m,节点 32 个/段,两端必须接终端电阻。CAN 总线则采用“显性/隐性”位电平,支持多主仲裁,速率 125k~1Mbps,距离与速率成反比。
二、链路层差异决定“怎么发、怎么抢、怎么重发”
串口的链路层最简单:一帧由起始位、数据位、校验位、停止位组成,没有地址仲裁,多机场景靠主站轮询。Modbus RTU 就是典型:主站发请求,从站按地址应答,帧间需 3.5 个字符时间静默。它实现成本低,但实时性差,节点多时轮询周期长。
以太网的链路层用 MAC 帧,配合交换机可实现全双工无冲突。工业以太网(如 EtherCAT、PROFINET、EtherNet/IP)在标准以太网之上做了实时扩展:EtherCAT 用“飞读飞写”从站处理,周期可到 100μs 级;PROFINET IRT 用时间片调度。普通 TCP/IP 则受协议栈和交换机排队影响,周期抖动通常在毫秒级。
现场总线的链路层为工业实时性做了专门设计。PROFIBUS DP 采用令牌传递加主从轮询,保证每个主站在确定时间内拿到令牌;CAN 用非破坏性逐位仲裁,ID 越小优先级越高,高优先级报文不会被低优先级阻塞。这些机制让现场总线在 1~10ms 周期内稳定运行,适合运动控制和快速 I/O。
三、上位机选型时如何匹配设备接口
选型不是“哪个先进选哪个”,而是按设备接口、距离、节点数、实时性和成本逐项匹配。下面给出一份可直接对照的选型决策表(示例参数,实际以设备手册为准):
| 判断项 | 串口 RS-485 | 工业以太网 | 现场总线 |
|---|---|---|---|
| 典型距离 | ≤1200m(低速) | 100m/段,可交换级联 | 100~1200m(随速率) |
| 节点数 | 32/段 | 交换机端口决定 | 32/段(PROFIBUS) |
| 实时周期 | 10~100ms | 1~10ms(工业以太网) | 1~10ms |
| 上位机接口 | USB转485/PCIe串口卡 | 板载网口/工业网卡 | 专用主站卡/网关 |
| 协议栈成本 | 低,自行组帧 | 中,TCP/UDP + 应用层 | 高,需主站协议栈 |
| 适用场景 | 仪表、变频器、低速采集 | 视觉、PLC、MES 互联 | 运动控制、快速 I/O |
实际匹配时按以下顺序判断:第一,看设备自带什么接口。若设备只有 RS-485,上位机就配 USB 转 485 或串口卡,不要强行加网关,除非需要接入以太网骨干。第二,看距离和节点数。超过 1200m 或节点超过 32 个,优先考虑以太网或加中继。第三,看实时性。若控制周期要求小于 10ms,串口轮询通常不够,应选现场总线或工业以太网。第四,看协议栈和开发成本。现场总线需要主站卡和组态软件,以太网可用 Socket 自行开发,串口最简单但功能有限。
总结来说,串口、以太网、现场总线的差异集中在物理层的电气规范、距离、拓扑和链路层的仲裁、校验、重发机制。上位机选型时,先确认设备接口类型,再按距离、节点数、实时性和开发成本四项逐一匹配,最后用终端电阻、屏蔽接地、地址分配等现场细节保证链路稳定。只有物理层和链路层都匹配正确,上层的命令交互和控制框架才有可靠的基础。