2. 工业通信基础

工业网关的核心任务是“把一种协议的数据,准确搬到另一种协议里”。但无论上层协议如何变化,数据最终都要经过物理介质传输,并在数据链路层完成帧的封装、寻址与差错校验。理解 RS-232、RS-485、CAN 和以太网在物理层与数据链路层的差异,是判断网关接口选型、布线方式和故障边界的基础。

一、物理层:电气特性决定“能传多远、多快、多稳”

物理层不关心数据含义,只负责把 0/1 变成可传输的电信号或光信号。工业现场最常见的四类接口,其物理层差异非常明显:

  • RS-232:单端信号,逻辑 1 为负电压、逻辑 0 为正电压,典型电平 ±3~±15V。采用点对点连接,传输距离通常不超过 15 米,速率 20kbps 以内较稳定。它适合网关的本地配置口、调试串口,不适合长距离现场总线。
  • RS-485:差分信号,用 A/B 两线电压差表示逻辑,抗共模干扰能力强。支持多点总线,典型距离 1200 米,速率与距离成反比。半双工两线制最常见,网关作为主站轮询多个从站时大量使用。
  • CAN:差分总线,CAN_H/CAN_L 显性位与隐性位形成差分电平。采用非破坏性仲裁,多主结构,速率 125kbps~1Mbps,距离随速率下降而增加。汽车与工控设备内部总线常用。
  • 以太网:使用双绞线或光纤,差分信号加隔离变压器。10/100/1000Mbps 自适应,双绞线单段 100 米。工业以太网还强调屏蔽、接地与冗余环网。
关键结论:物理层决定“电气兼容性”。网关选型时,先确认对端是 RS-232 还是 RS-485、是 CAN 还是以太网,再谈协议映射,否则会出现“协议对但电平不对”的典型故障。

二、数据链路层:帧结构、寻址与差错控制

数据链路层把物理层的比特流组织成帧,并负责寻址、仲裁、校验和重传。四类接口的链路层机制差异如下:

接口 典型帧/报文结构 寻址方式 差错控制 典型拓扑
RS-232 起始位+数据位+校验位+停止位 无地址,点对点 奇偶校验可选 点对点
RS-485 由上层协议定义,如 Modbus RTU 帧 从站地址 1~247 CRC16 总线型多点
CAN 仲裁场+控制场+数据场+CRC 场 11 位/29 位标识符 CRC15+应答位 总线型多主
以太网 前导码+目的 MAC+源 MAC+类型+数据+FCS MAC 地址 CRC32 星型/环网

以 RS-485 上的 Modbus RTU 为例,网关发送一帧请求时,链路层需要处理:从站地址、功能码、寄存器起始地址、寄存器数量、CRC 校验。从站只有在地址匹配时才应答,否则静默。CAN 则不同,它用标识符同时表达“谁发送”和“优先级”,低数值标识符优先级更高,仲裁失败的一方自动退让并重发。

三、工业现场网络拓扑:从总线到环网

现场网络拓扑决定了网关的接入位置、数据流向和故障影响范围。常见拓扑包括:

  • 点对点:RS-232 典型形态,网关与单台设备直连,简单但扩展性差。
  • 总线型:RS-485 和 CAN 的主流形态。所有节点挂在同一对差分线上,两端加终端电阻。优点是布线省,缺点是单点故障可能影响整条总线。
  • 星型:以太网交换机为中心,网关、PLC、HMI 分别接入。故障隔离好,但依赖交换机。
  • 环网:工业以太网常用冗余拓扑,如 RSTP 或专用环网协议。单点断线时可在毫秒级恢复,适合对连续性要求高的产线。
工业通信接口:物理层 / 链路层 / 拓扑对照 RS-232 单端 · 点对点 ±3~±15V ≤15m · ≤20kbps 起始/停止位 + 奇偶校验 用途:配置口 / 调试口 RS-485 差分 · 总线多点 A/B 差分 · 抗共模 ≤1200m · 半双工 从站地址 + CRC16 用途:Modbus RTU 主站 从站1 从站2 从站3 CAN 差分 · 多主总线 CAN_H / CAN_L 125k~1Mbps 标识符仲裁 + CRC15 用途:设备内部总线 节点A 节点B 节点C 以太网 差分 · 星型/环网 10/100/1000Mbps 双绞线 ≤100m MAC 地址 + CRC32 用途:网关上行/环网 SW 工业网关 协议映射 · 数据转发 · 边缘计算 RS-232 / RS-485 / CAN / Ethernet 物理层决定电气兼容与距离;链路层决定寻址、仲裁与校验;拓扑决定网关接入点与故障边界。 网关选型顺序:先看物理接口 → 再看链路帧格式 → 最后做协议数据映射。

四、案例:网关接入 RS-485 与以太网双网段

某车间有 8 台温控仪表,走 RS-485 Modbus RTU,地址 1~8,波特率 9600,8 位数据位、无校验、1 位停止位。网关同时通过以太网上联到 MES 系统。网关的配置要点如下:

# 网关串口配置示例
serial0:
  mode: RS485
  baudrate: 9600
  databits: 8
  parity: none
  stopbits: 1
  timeout_ms: 300
  retry: 2

# Modbus RTU 轮询映射
poll:
  - slave: 1
    function: 03
    start: 0
    count: 2
    interval_ms: 500
  - slave: 2
    function: 03
    start: 0
    count: 2
    interval_ms: 500

# 上行 MQTT 映射
mqtt:
  broker: 192.168.1.10
  topic: factory/line1/temp
  qos: 1

调试时先确认 RS-485 的 A/B 线没有接反,终端电阻是否只在总线两端接入。若轮询超时,优先检查从站地址、波特率和校验位是否一致,再检查网关串口是否被其他进程占用。以太网上行则要确认 IP、子网掩码、网关和 MQTT 端口可达。

五、常见误区与复盘

误区一:把 RS-232 和 RS-485 当成“只是接线不同”。 两者电气特性完全不同,RS-232 不能直接挂到 RS-485 总线上,必须使用转换器,且转换器要支持半双工方向控制。

误区二:RS-485 总线两端都加终端电阻。 正确做法是仅在物理两端各加 120Ω,中间节点不加。多加会导致总线负载过重、信号幅度下降。

误区三:CAN 和 RS-485 可以混接。 两者电平、帧格式、仲裁机制都不同,不能共用同一对差分线,必须通过网关或转换设备隔离。

误区四:以太网能通,就认为现场总线没问题。 网关上行正常不代表下行轮询正常,排查时要分段验证:先看物理层电平,再看链路层帧,最后看应用层数据。

建议在网关调试阶段保留一份“接口清单”:每个端口的物理类型、波特率、数据格式、从站地址范围、终端电阻状态、上联 IP 与端口。这份清单能显著缩短现场排障时间,也是后续协议映射工程的基础台账。

掌握物理层与数据链路层的差异后,再看工业网关的协议映射,就能清楚地区分“电气不通”“帧不对”“地址不对”“数据解析不对”四类问题。下一层的工作,才是把不同协议的数据对象一一对应起来。