跳到主要内容

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

AI 提示词

复制下面这段交给 AI(ChatGPT / Claude / Copilot / Codex)。把括号里的内容换成你自己的。

先读取 https://profinet.darra.xyz/ai-prompts.txt

用 C# SDK(可改 Java / Python / C / C++ / Rust)写 PROFINET IO Device 程序。
功能:(例如 Start 后看 Connected,写 QW2,读 IW0)

SDK 快速开始

Darra Profinet Slave SDK 六语言 API 一致:地址化读写 I / Q,先诊断再过程数据。详细参考见 SDK 文档。

快速开始​

using Darra.PnS;

using (var device = new DarraPnS()) // 站名 / 网卡在配置工具里设好,构造不传
{
if (device.Start() != PnSErrorCode.Success) return;
if (!device.Connected) return; // 等 IO 控制器连上

device.WriteInt16("QW2", 123); // 写 Q:设备 → 控制器
short cmd = 0;
device.ReadInt16("IW0", out cmd); // 读 I:控制器 → 设备

device.Stop();
}

核心 API​

类别调用说明
建会话new DarraPnS()无参构造,不传主机。DarraPnS.Connect() 是静态旧别名
启停Start() / Stop()连接门在 Start 时占;Stop 后要重新建会话
读 IReadInt16("IW0", out v)控制器 → 设备,只读
写 QWriteInt16("QW2", v)设备 → 控制器。写 I 返回 NotSupported
状态Connected / State / ErrorCode / ErrorMessageStart 成功 ≠ 主站已连,看 Connected
过程数据质量IoStatusIOPS/IOCS:0x80 = GOOD,0x00 = BAD

地址:I0.0 / IB0 / IW2 / ID4,以及 Q0.0 / QB0 / QW2 / QD4。字 / 双字大端。无 M、无 DB。

六语言对照​

操作C#JavaPythonC++RustC
建会话new DarraPnS()new PnSService()PnSService()PnSService device;PnSService::new()PnSServiceConnectRealtime()
启动Start()start()start()Start()start()PnSServiceStart()
读字ReadInt16("IW2", out v)readInt16("IW2")read_int16("IW2")ReadInt16("IW2")read_int16("IW2")PnSServiceReadInt16()
写字WriteInt16("QW2", v)writeInt16("QW2", v)write_int16("QW2", v)WriteInt16("QW2", v)write_int16("QW2", v)PnSServiceWriteInt16()

详见 SDK 各语言文档。