跳到主要内容

驱动与全网口

Prof. Net 的周期数据面由 NDIS 协议驱动 DarraRT_Pnet.sys 承载。本页说明驱动的职责、安装方式与"全网口"架构,故障排查见 常见问题

1. 驱动职责

职责说明
周期帧编解码EtherType 0x8892(PROFINET RT)帧的收发:PPM(从站 → 控制器)/ CPM(控制器 → 从站),按已建立的 IOCR 匹配 FrameID 与方向
IOCR 管理维护已建立的周期连接(PPM/CPM)收发状态;未建立 IOCR 时周期帧不处理
过程映像共享内存与服务 PnetProcessImage 唯一数据源共享过程数据(OutputDirty 防撕裂写入)
看门狗维护周期看门狗:控制器连续丢帧/超时后记录丢帧计数 + 诊断条目,不主动断链
  • 热路径不分配内存:TX NBL / MDL / 帧缓冲初始化时预分配,周期路径零分配。
  • 运行时零注册表写:驱动本体无任何注册表回调 / 运行时键创建(PNET × ETH 注册表共存契约审计结论,0 碰撞)。
  • 帧格式详见 RT Class 1 周期帧说明

2. 全网口架构

  • 驱动是 NDIS 协议驱动(非过滤驱动),任意标准网卡均可承载 0x8892 周期帧,无独占绑卡限制(区别于 ETH 主站线的独占 NIC 架构)。
  • GUI 网卡配置语义:网卡名为空 /「全网口」= 驱动绑全部网口;非空值仅作主口偏好(MAC 解析 / 信息展示)。
  • 虚拟网卡(VMnet / TAP / Wintun / 蓝牙 PAN)与设备口没有二层通路,不能用作从站口

3. 安装(netcfg 正规通道)

netcfg -l <inf> -c p -i DarraRT_Pnet
  • 安装包自动执行(Payload 解压 + netcfg 装驱动 + 服务安装),协议名 = DarraRT_Pnet,服务名 = DarraPnetService
  • 驱动服务 RUNNING ≠ NDIS 协议已绑定:绑定状态以 netcfg 结果为准(历史教训见 常见问题「驱动装上了,但从站不发帧」)。

4. 与 ETH 主站共存

  • 驱动协议名 DarraRT_Pnet 与 ETH 线 DarraRT_Eth 各自独立注册,不冲突。
  • 注册表键路径 0 碰撞(PNET 全部键不含 DarraRT_Eth 子串),同一台机器可同时部署 PNET 从站与 ETH 主站(详见仓库 docs\PNET_ETH_共存契约.md 审计报告)。

5. 故障速查

现象处理
抓包 0 个 0x8892 帧,服务日志 1168NDIS 半死绑定:sc stop DarraRT_Pnet + sc start DarraRT_Pnet 复位(测试机已验证)
网卡列表缺网卡GUI 下拉动态刷新;未插入的 USB 网卡不显示,插回自动出现
驱动装不上走 netcfg 正规通道(安装包自动),不要手动 Copy sys

相关