跳到主要内容

PROFINET 从站概念

Darra PnSlave 是 PROFINET IO Device(从站)。读完本页就能按正确方向用 SDK:写 I、读 Q、不要自己跑周期。

1. 角色

角色说明本产品
IO ControllerPLC,发起组态和周期通信对方(TIA / 西门子 PLC)
IO Device现场设备,执行组态、交换过程数据Darra PnSlave
IO Supervisor工程 / 诊断站可选

一台设备只开一个 PROFINET 口。网卡和站名由 GUI → 服务配置,SDK 不选网卡。

2. I 只写,Q 只读

方向按 IO 控制器视角(西门子 I/Q):

方向SDK测通
I从站 → 控制器Write*改从站输出 I
Q控制器 → 从站Read*观察只读输入 Q
  • 写 Q 不支持(返回 NotSupported)。
  • 读 I 只是本地影子,不是主站回显。
  • 不要把 Q 抄回 I。

循环 IO 前 4 字节由主站同步。从站测通只改自己的输出 I,看 Q / 控制器过程映像有没有跟上;前 4 字节被主站改回去是预期行为。

固定过程区:16 字节 I + 16 字节 Q(槽 1 / 子槽 1)。用户不能增删模块。

3. 没有用户周期

周期帧是驱动按 RT Class 1 收发的(EtherType 0x8892)。应用只改 I、读 Q。

Connect() 无参
→ Start() 映射 GlobalIO
→ 写 I / 读 Q
→ Stop() 只卸映射
  • 不要自己开 1 ms 线程去“推周期”。
  • 不要为了测通把 Q 整区回写到 I。
  • Stop() 卸的是本进程映射。主站已在连时不要 POST /api/stop

过程映像现网名字:命名 Section \Device\DarraRT_Pnet_GlobalIO(产品名是 PnSlave,内部驱动名尚未改)。SDK 不打开设备句柄 \\.\DarraRT_Pnet(服务独占)。

4. 两条入口

路径怎么连用途
实时主路径DarraPnet.Connect() 无参过程数据。Start 映射 GlobalIO
WebAPI 备用Connect("127.0.0.1"),端口 18840GUI / 报警 / I&M / 状态。不是实时 IO

native 直连(new DarraPnet(ip) / LoadConfigStart)当前不可用,不要当主路径。

5. 槽位(给 TIA 看)

PROFINET 设备模型是「设备 → 槽 → 子模块」:

IO Device
├── Slot 0 DAP(设备访问点,不可删)
└── Slot 1 固定模块 / 子模块(16+16 过程数据)

GSDML 里的 ModuleIdentNumber / SubmoduleIdentNumber 给 TIA 识别。组态必须和导出的 GSDML 一致。

6. IOPS / IOCS

周期帧里每个数据块带生产者 / 消费者状态:

标志含义
IOPS生产者:Good / Bad
IOCS消费者:Good / Bad

从站发 I 时带 IOPS;收 Q 时看 IOCS。应用不用自己组帧。

7. 通信流程

DCP 发现 / 设 IP、站名
→ PNIO-CM 建 AR、协商 IOCR
→ PPM / CPM 周期交换(驱动,RT Class 1)
→ 控制器释放 AR,从站回到待连接
PPM从站 → 控制器(I + IOPS)
CPM控制器 → 从站(Q + IOCS)
实时等级RT Class 1(1 ms 起,软实时)
IRT / RTC3不支持

Connected 表示已与控制器进入周期交换。以共享内存头为准,不假绿。

相关