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通但参数读不出”是两类完全不同的问题。

Profinet协议栈映射与实时/标准双通道 应用层 / 工程模型 IO控制器·IO设备·GSDML 传输层 / 网络层 UDP / IP(仅标准通道) 数据链路层 以太网 802.3 + 802.1Q 物理层 100BASE-TX / 光纤 实时通道 RT / IRT 帧类型 0x8892,跳过 TCP/UDP/IP FrameID 区分循环数据/报警/同步 周期 1~10 ms,抖动 μs 级(IRT) 承载:IO循环数据、报警、时钟同步 标准通道 NRT UDP/IP,帧类型 0x0800 非周期,按需请求/响应 承载:参数读写、诊断记录、SNMP DCP发现配置(0x8892,非周期) 矿山现场设备(IO设备) 提升机变频器:状态字/控制字 转矩、电流、故障码 皮带机远程IO:启停、跑偏、 拉绳、速度开关 水泵/风机:模拟量4~20mA、 温度、压力、运行反馈 每台设备由 GSDML 描述其 IO 模块与参数 循环IO 参数/诊断 一次典型循环的数据流(示例:提升机变频器,更新时间 4 ms) PLC输出过程数据 控制字+给定转速 RT帧发送 FrameID=0x8000 设备应用 执行+采集反馈 RT帧回送 状态字+实际值 PLC 刷新 诊断路径:若循环数据不刷新 → 查RT通道(FrameID、看门狗、链路);若参数读不出 → 查标准通道(UDP/IP、DCP、GSDML一致性)。 过程数据(Process Data)随IO循环刷新;参数与诊断记录(Record Data)走非周期标准通道,二者互不阻塞。 注:图中周期、FrameID 为教学示例值,实际以设备 GSDML 与工程组态为准。

二、实时通道与标准通道的分工

实时通道解决的是“确定性”问题。矿山设备中,提升机的安全制动、皮带机的跑偏停机、风机的联锁启停,都要求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等一致性读取方式。

现场排查顺序建议:先用DCP扫描确认设备名称与IP,再看PLC诊断缓冲区中的“站故障/看门狗超时”条目判断RT侧;若RT正常,再用记录读写测试读取设备诊断记录,判断NRT侧与GSDML一致性。

四、一个可复用的数据流检查表

检查项观察点正常判据(示例)
RT循环刷新PLC输入映像区数值变化给定变化后1~2个周期内反馈跟随
看门狗诊断缓冲区站故障条目无“看门狗超时”记录
标准通道记录读写的响应参数读取在数百ms内返回
数据一致性多字节状态字与故障码同一次读取中位状态自洽

把协议栈映射、双通道分工和过程数据刷新机制串起来,就能在矿山现场把“通信通不通”细化为“哪条通道、哪类数据、哪个周期出了问题”,这也是后续使用PLC诊断功能与抓包工具的前提。