驱动与全网口
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 帧,服务日志 1168 | NDIS 半死绑定:sc stop DarraRT_Pnet + sc start DarraRT_Pnet 复位(测试机已验证) |
| 网卡列表缺网卡 | GUI 下拉动态刷新;未插入的 USB 网卡不显示,插回自动出现 |
| 驱动装不上 | 走 netcfg 正规通道(安装包自动),不要手动 Copy sys |
相关
- 快速开始 — 5 步跑通
- RT Class 1 周期帧说明
- 常见问题