跳到主要内容

驱动与绑卡

Darra PnSlave 的周期数据面由 NDIS 协议驱动承载。产品名是 Darra PnSlave内部协议驱动名尚未改,安装 / 绑卡必须用下面现网名字。

现网名字
二进制DarraRT_Pnet.sys
设备路径\\.\DarraRT_Pnet
过程映像 Section\Device\DarraRT_Pnet_GlobalIO
netcfg 协议名DarraRT_Pnet
服务名DarraPnetService

SDK 实时路径只映射 Section,不打开 \\.\DarraRT_Pnet(句柄由服务独占)。

1. 驱动做什么

职责说明
周期帧EtherType 0x8892:PPM(I,从站 → 控制器)/ CPM(Q,控制器 → 从站)
IOCR已建立的周期连接才收发;没建 IOCR 不处理周期帧
过程映像命名 Section \Device\DarraRT_Pnet_GlobalIO,应用 Start() 后直接读写
看门狗控制器连续丢帧记诊断,不主动拆用户映射
  • 热路径不分配内存。
  • 运行时不写注册表。
  • RT Class 1,无 IRT。周期由驱动跑,应用没有用户周期。

2. 网口

  • NDIS 协议驱动,不是过滤驱动。
  • 一台设备只选一个 PROFINET 口(GUI / 服务配置)。不要和 DarraRT_Eth / DarraRT_Sync 绑同一块卡(双注册会蓝屏)。
  • VMnet / TAP / Wintun / 蓝牙 PAN 没有到设备的二层通路,不能当从站口。

不要开混杂模式,不要为“扫不到站”去开关网卡。

3. 安装

走安装包(管理员)。安装包内部等价于:

netcfg -l <inf> -c p -i DarraRT_Pnet
  • 服务 RUNNING 不等于协议已绑定。以 netcfg -q DarraRT_Pnet 为准。
  • 不要手拷 .sysSystem32\drivers
  • 不要 pnputil /remove-device 正在绑定的网卡。
  • 不要反复 disable / enable 网卡。一次复位没好就查根因,停手。
  • 不要用内核调试器(kd / WinDbg)看这套驱动。

4. 和应用的边界

应用  DarraPnet.Connect() → Start()
│ 映射 \Device\DarraRT_Pnet_GlobalIO
│ 写 I / 读 Q
│ Stop() 只卸映射
服务 打开 \\.\DarraRT_Pnet,管站名 / AR / 报警
驱动 周期帧 + Section

主站已在连时不要 POST /api/stop(18840 备用控制面)。Stop() 只卸本进程映射。

测通:改 I,看 Q。前 4 字节是主站同步。

5. 与 ETH 主站共存

协议名字
PnSlave 数据面DarraRT_Pnet
EtherCAT 主站DarraRT_Eth

协议名独立,注册表键不撞。同一台机器可同时装,但 不要绑同一块物理网卡

6. 故障速查

现象处理
netcfg -q DarraRT_Pnet 没有用安装包重装,不要手拷 sys
服务 RUNNING 但无 0x8892绑定没建好:再走安装包 / netcfg,不要开关网卡
SDK Start 映射失败服务是否已起、Section 名是否仍是 \Device\DarraRT_Pnet_GlobalIO
写 I 前 4 字节被改主站同步,预期
需要看崩溃只读事件查看器 / 驱动自带日志。不要 kd

相关