2. 工业以太网基础
PROFINET 并不是脱离以太网另起炉灶的“私有总线”,而是建立在标准 IEEE 802.3 以太网之上的工业通信体系。理解以太网协议、交换技术、VLAN、QoS 与实时通信需求,是掌握 PROFINET IO 设备组态与诊断的前提。本节从协议栈、交换转发、网络隔离、优先级调度到实时性指标,逐层说明它们与 PROFINET 的对应关系。
一、以太网协议:PROFINET 的承载底座
标准以太网帧由前导码、目的 MAC、源 MAC、类型/长度、数据载荷和 FCS 校验组成。PROFINET 在以太网之上定义了 EtherType 0x8892 用于实时通道,0x0800 用于基于 IP 的非实时通信(如 DCP、SNMP、HTTP 诊断)。也就是说,同一根网线上可以同时跑实时 IO 数据、设备发现与诊断网页。
PROFINET 的通信分为三类:
- 非实时(NRT):基于 UDP/IP,用于参数化、诊断、SNMP、Web 访问,周期约 100 ms 级。
- 实时(RT):绕过 TCP/IP,直接封装在以太网帧中,周期 1~10 ms,用于大多数 IO 设备。
- 等时实时(IRT):基于专用硬件与时间片调度,周期可低至 31.25 µs,用于运动控制。
二、交换技术:决定实时性的关键环节
以太网交换机工作在数据链路层,依据 MAC 地址表转发帧。对 PROFINET 而言,交换机必须支持存储转发或直通转发,并具备优先级队列。普通办公交换机虽然能通,但缺少 QoS 与组播管理,容易造成 RT 帧排队延迟。
PROFINET 要求交换机支持:
- IEEE 802.1Q VLAN 标签识别;
- IEEE 802.1p 优先级调度(PCP 0~7);
- 组播过滤(避免广播风暴);
- 快速生成树或环网冗余(MRP)。
下面这张图展示了 PROFINET 实时帧从 IO 设备到控制器的信号链,以及交换机内部按优先级转发的路径。
三、VLAN 与 QoS:隔离与优先级
VLAN 用于把一个物理网络划分为多个逻辑广播域。在 PROFINET 中,常见做法是把实时 IO 流量放在一个 VLAN(如 VLAN 100),把办公、视频、IT 流量放在另一个 VLAN。这样广播风暴和大量非实时流量不会干扰 RT 帧。
QoS 则通过 802.1p 的 PCP 字段标记优先级。PROFINET 通常将 RT 帧标记为 PCP 6,网络管理帧为 PCP 5,普通数据为 PCP 0~3。交换机按优先级队列调度,保证高优先级帧先出。
| 流量类型 | VLAN 建议 | PCP 优先级 | 典型周期 |
|---|---|---|---|
| PROFINET RT IO | VLAN 100 | 6 | 1~10 ms |
| PROFINET IRT | VLAN 100 | 6~7 | 31.25~250 µs |
| DCP / SNMP 诊断 | VLAN 100 | 5 | 非周期 |
| 办公 / 视频 | VLAN 200 | 0~3 | 非周期 |
四、实时通信需求与 PROFINET 的对应关系
工业实时通信关注三个指标:周期确定性、抖动和端到端延迟。PROFINET 通过以下机制满足:
- RT 帧绕过 TCP/IP,减少协议栈处理时间;
- 交换机优先级队列,保证高优先级帧不被低优先级阻塞;
- VLAN 隔离,避免广播与突发流量;
- IRT 使用时间片与同步时钟,实现确定性传输。
五、案例与常见误区
案例:某产线 PROFINET IO 设备频繁掉站,诊断缓冲区显示“站返回”。检查发现控制器与设备之间串联了一台办公交换机,该交换机不支持 802.1Q,RT 帧与视频流混跑。更换为支持 QoS 的工业交换机并划分 VLAN 后,掉站消失。
常见误区:
- 认为“能 ping 通就能跑 PROFINET”——ping 走 IP,RT 不走 IP,两者路径不同。
- 忽略交换机优先级队列——普通交换机在拥塞时可能丢弃 RT 帧。
- VLAN 划分后忘记在控制器和交换机上同步配置——导致 DCP 发现不到设备。
- 把 IRT 与 RT 混用在同一普通交换机上——IRT 需要专用硬件支持。
pn_rt 可观察 RT 帧的周期与抖动。# Wireshark 过滤 PROFINET RT 帧示例
pn_rt
# 查看交换机端口统计(以 Cisco 为例)
show interfaces GigabitEthernet0/1
show mls qos interface GigabitEthernet0/1 statistics
总结来说,以太网协议提供承载,交换技术决定转发效率,VLAN 与 QoS 提供隔离与优先级,而 PROFINET 则在这些基础之上定义了 RT/IRT 机制。只有把这几层关系理清,才能在组态与诊断中快速判断问题出在协议、交换还是实时调度层面。