2. Profinet协议栈与矿山设备数据流
Profinet并不是一个“单层”的现场总线协议,而是把标准以太网、实时以太网和工程模型组合在一起的一套通信体系。理解它的关键,是先看清协议栈在OSI模型中的映射关系,再区分实时通道(RT/IRT)与标准通道(基于UDP/IP的NRT)各自承载什么数据,最后落到矿山设备的IO数据与过程数据流上,判断哪些数据走哪条通道、周期多长、如何诊断。
一、Profinet在OSI模型中的映射
Profinet的物理层和数据链路层完全复用标准以太网(IEEE 802.3),速率为100 Mbit/s全双工(PROFINET V2.4及以后支持千兆),使用带优先级的VLAN标签(802.1Q,优先级PCP=6用于实时帧)。在数据链路层之上,Profinet分叉为两条路径:
- 实时通道(RT,Real-Time):跳过TCP/UDP/IP,直接在以太网帧类型0x8892上承载RT协议数据单元(RT PDU),帧头含FrameID用于区分循环数据、报警、时钟同步等。IRT(等时实时)进一步在硬件层面做时间片调度,抖动可控制在微秒级。
- 标准通道(NRT,Non-Real-Time):走UDP/IP(帧类型0x0800),用于设备发现与配置(DCP仍走0x8892但属非周期)、参数读写(Record Data Read/Write)、诊断记录、SNMP、HTTP等。
应用层对应的是Profinet的工程模型:IO控制器(PLC)、IO设备(远程IO、变频器、传感器)、IO监视器,以及基于GSDML文件的设备描述。理解这个映射,才能明白为什么“Ping得通但IO不通”和“IO通但参数读不出”是两类完全不同的问题。
二、实时通道与标准通道的分工
实时通道解决的是“确定性”问题。矿山设备中,提升机的安全制动、皮带机的跑偏停机、风机的联锁启停,都要求IO数据在确定的周期内到达,不能因为网络里同时有人在读参数而延迟。RT通道通过以太网优先级和专用帧类型绕开协议栈的排队,IRT更进一步用时间片保证周期。标准通道解决的是“灵活性”问题:读写变频器参数、上传诊断记录、通过SNMP监控交换机端口,这些数据量小、实时性要求低,走UDP/IP即可,且不会挤占实时带宽。
工程上要建立一个基本判断:循环IO数据(Process Data)走RT,参数与诊断记录(Record Data)走NRT。当现场出现“设备在线但数据不刷新”时,问题在RT侧;出现“能控制但读不出故障码”时,问题在NRT侧。这个二分法是后续诊断的起点。
三、矿山设备IO数据与过程数据流分析
以提升机变频器为例,PLC组态时为其分配输入/输出各若干字节的过程数据。典型映射(示例):输出第1~2字节为控制字(STW1),第3~4字节为转速给定;输入第1~2字节为状态字(ZSW1),第3~4字节为实际转速,第5~6字节为实际转矩,第7~8字节为故障码。这些数据每个总线周期(例如4 ms)整体刷新一次,PLC程序在每个扫描周期读取输入映像区即可。
分析数据流时要关注三个量:更新时间(设备GSDML中声明的最小周期)、看门狗时间(通常为更新时间的3倍,超时则设备报站丢失)、数据一致性(大于4字节的过程数据需用一致性读写,避免读到半新半旧的值)。例如某皮带机远程IO的16字节输入若被分成两次读取,可能出现启停状态与故障位不同步,诊断时应检查程序是否使用了正确的DPRD_DAT/SFB等一致性读取方式。
四、一个可复用的数据流检查表
| 检查项 | 观察点 | 正常判据(示例) |
|---|---|---|
| RT循环刷新 | PLC输入映像区数值变化 | 给定变化后1~2个周期内反馈跟随 |
| 看门狗 | 诊断缓冲区站故障条目 | 无“看门狗超时”记录 |
| 标准通道 | 记录读写的响应 | 参数读取在数百ms内返回 |
| 数据一致性 | 多字节状态字与故障码 | 同一次读取中位状态自洽 |
把协议栈映射、双通道分工和过程数据刷新机制串起来,就能在矿山现场把“通信通不通”细化为“哪条通道、哪类数据、哪个周期出了问题”,这也是后续使用PLC诊断功能与抓包工具的前提。