2. PROFINET协议栈与通信模型
PROFINET并不是单一协议,而是一套运行在标准以太网之上的协议体系。理解它的关键,是先分清“哪些通信走标准TCP/IP、哪些通信绕过TCP/IP直接跑在以太网帧上”,以及“不同实时等级对时间抖动的要求差异”。这决定了产线选型时该用RT还是IRT,以及诊断、组态、拓扑发现分别依赖哪些协议。
一、协议栈分层:三条并行的通信路径
从下往上看,PROFINET的物理层与数据链路层就是标准以太网(100 Mbit/s全双工,百兆是当前主流;千兆用于高带宽场景)。在以太网之上,PROFINET分出了三条路径:
- 非实时通道(NRT):基于TCP/IP或UDP/IP,承载组态下载、参数读写、SNMP网络管理、Web诊断等。TCP提供可靠连接,UDP用于对时延不敏感但要求轻量的场景。
- 实时通道(RT):跳过TCP/IP,直接在以太网帧上使用 EtherType 0x8892 封装,配合VLAN优先级(PCP=6)实现优先级转发。周期通常为1 ms~10 ms,抖动在百微秒级。
- 等时实时通道(IRT):在RT基础上增加时间同步与调度机制,周期可低至31.25 µs,抖动小于1 µs,用于运动控制。
此外还有几个“辅助协议”贯穿其中:DCP(发现与基本配置)用于给设备分配设备名和IP地址,是设备上线第一步;LLDP用于邻居发现,支撑拓扑识别与替换设备自动恢复;SNMP用于读取交换机端口状态、流量等管理信息。它们都跑在非实时通道上,但作用不可替代。
二、RT与IRT的本质区别
RT的核心思想是“绕过协议栈的软件处理开销”。标准TCP/IP通信中,数据要经过socket层、TCP层、IP层逐层封装,再进入网卡驱动,这个过程在通用操作系统上耗时不确定,抖动可达毫秒级。RT则把周期数据直接交给网卡硬件发送,接收端也由硬件按帧类型过滤后直接写入IO缓冲区,CPU只在周期边界处理一次。因此RT的抖动可以控制在百微秒以内,足以满足绝大多数工厂自动化场景。
IRT进一步引入了两个机制:一是时间同步,所有IRT设备通过同步帧对齐到同一个时钟基准(精度可达纳秒级);二是时间片调度,把通信周期划分为“红色阶段”(IRT实时数据,独占带宽)和“绿色阶段”(RT和TCP/IP数据)。红色阶段内交换机按预设时间表转发,不排队、不冲突,因此抖动小于1 µs。代价是IRT要求整条链路(包括交换机)都支持IRT,且组态时必须精确规划时间片。
三、DCP、LLDP、SNMP的实际作用
DCP是设备上线的第一步。新设备出厂时没有设备名,只有MAC地址。工程师在组态软件中通过DCP扫描网络,看到MAC地址列表后,把规划好的设备名(如 “line1-io-01”)和IP地址写入设备。设备名是PROFINET寻址的核心——控制器通过设备名找到设备,而不是靠IP。更换故障设备时,只要新设备被赋予相同设备名,控制器就能自动恢复通信。
LLDP让每个设备周期性向邻居发送自己的身份信息(机箱、端口、设备名)。控制器收集这些信息后生成网络拓扑图。当某台设备故障时,控制器能根据拓扑判断故障位置;当设备被替换到不同端口时,LLDP也能帮助系统识别变化。LLDP是“拓扑诊断”和“设备替换”功能的基础。
SNMP主要用于管理交换机。通过SNMP可以读取交换机每个端口的连接状态、速率、错误计数、流量统计。在产线排障时,如果某个PROFINET设备频繁掉线,用SNMP查看对应交换机端口的CRC错误计数,往往能快速定位是网线问题还是端口问题。
四、产线选型依据
选型时先问三个问题:
- 通信周期要求是多少? 如果周期≥1 ms,RT足够;如果要求≤500 µs或需要多轴同步,必须IRT。
- 网络里有没有非PROFINET流量? 如果有视频、大文件传输等,IRT的时间片机制能保证实时数据不受干扰;纯RT网络则需要用VLAN和QoS做优先级隔离。
- 是否需要拓扑诊断和快速替换? 如果需要,所有设备必须支持LLDP,交换机需支持SNMP。
一个典型的产线示例:某包装线有12台变频器、8个远程IO站、2台伺服轴。变频器和IO站用RT,周期4 ms;伺服轴用IRT,周期500 µs。交换机选用支持IRT和SNMP的管理型交换机。设备名规划为 “pk-line1-vfd01” 到 “pk-line1-vfd12”、“pk-line1-io01” 到 “pk-line1-io08”、“pk-line1-servo01/02”。组态时先用DCP批量分配设备名,再下载硬件组态。调试阶段用SNMP监控交换机端口错误计数,用LLDP确认拓扑与规划一致。
五、协议层次速查
| 协议 | 所在层次 | 主要用途 | 实时性 |
|---|---|---|---|
| TCP/IP | 传输/网络层 | 组态下载、参数读写、Web诊断 | 非实时 |
| UDP/IP | 传输/网络层 | SNMP、SNTP对时、部分诊断 | 非实时 |
| DCP | 数据链路层 | 设备发现、设备名/IP分配 | 非实时 |
| LLDP | 数据链路层 | 邻居发现、拓扑识别 | 非实时 |
| SNMP | 应用层(UDP) | 交换机端口管理、流量统计 | 非实时 |
| RT | 数据链路层(0x8892) | 周期IO数据交换 | 1~10 ms,抖动百µs |
| IRT | 数据链路层 + 时间同步 | 运动控制、同步轴 | 31.25 µs~1 ms,抖动<1 µs |
理解这张表的关键在于:DCP、LLDP、SNMP虽然不直接传输IO数据,但它们是PROFINET网络可运维、可诊断、可替换的基础。一个只有RT通信、没有LLDP和SNMP的网络,一旦出故障,排查难度会大幅上升。因此在实际工程中,建议至少选用支持LLDP和SNMP的管理型交换机,即使当前只用RT。