跳到主要内容

Darra PnSlave

PROFINET IO Device(从站)· RT Class 1 · 6 语言 SDK

Darra PnSlave 是 PROFINET IO Device(从站)SDK。设备侧接入西门子等 PROFINET IO 控制器,用 C# / Java / Python / C / C++ / Rust 读写过程数据。实时主路径映射驱动过程映像,不经 HTTP。RT Class 1,不支持 IRT。内测免费。

PnSlave 官网:https://profinet.darra.xyz

内测免费

当前内测阶段,免费使用。 暂不对外售卖;商业发布另行通知。

  • 获取方式见 下载
  • 反馈:技术交流群 / 仓库 Issue。

规格

规格
产品Darra PnSlave
角色PROFINET IO Device(从站)
实时等级RT Class 1(常规周期报文)。不支持 IRT。不承诺硬实时
协议栈基于 p-net(第三方栈,不是产品名)
实时主路径Connect() 无 host,映射 \Device\DarraRT_Pnet_GlobalIO不打开 \\.\DarraRT_Pnet
WebAPI 备用Connect("127.0.0.1"),端口 18840 固定。WebAPI 是 SDK 一部分,不是主力
周期无用户周期Start = 连接实例 + 启动 IO + 允许输出。Stop = 释放实例;无连接时驱动/服务停 IO
I / QI(设备→控制器)只写;Q(控制器→设备)只读。测法:写 I,看 Q。前 4 字节回写是主站行为。写 Q = NotSupported
在连约束在连禁止 POST /api/stop
平台Windows 10/11 x64(NDIS 协议驱动 + 服务 + GUI)
配置GUI 导出 GSDML + 运行配置 XML;SDK 不做配置
不是不是硬实时产品,不是 MES

六语言 + WebAPI 入口

入口文档
C#api/csharp
Capi/c
C++api/cpp
Javaapi/java
Pythonapi/python
Rustapi/rust
WebAPI(备用)api/webapi
C#:     using DarraPnet.Pnet;  var pnet = DarraPnet.Connect();
Java: 见 Java SDK
Python: 见 Python SDK
C: #include "pnet.h"
C++: #include "pnet.hpp"
Rust: 见 Rust SDK
WebAPI: DarraPnet.Connect("127.0.0.1") // 端口 18840

实时主路径

using DarraPnet.Pnet;

var pnet = DarraPnet.Connect(); // 无 host,不走 WebAPI
pnet.Start(); // 映射 GlobalIO;连接实例 + 启动 IO + 允许输出

pnet.Write(new byte[] { 0x11, 0x22, 0x33, 0x44 }); // 写 I(设备→控制器)
pnet.Read(out byte[] fromPlc); // 读 Q(控制器→设备)
// 测法:写 I,看 Q。前 4 字节回写是主站行为,不是从站把 Q 抄回 I。
// pnet.Write*("QB0", ...) → NotSupported(Q 只读)

pnet.Stop(); // 释放实例。在连不 POST /api/stop

WebAPI 备用(GUI / 诊断 / 报警 / I&M,不是实时主力):

var pnet = DarraPnet.Connect("127.0.0.1"); // 端口 18840 固定

交付物

#交付物说明文档
驱动NDIS 协议驱动;过程映像 \Device\DarraRT_Pnet_GlobalIO快速开始
服务Windows Service 控制面;WebAPI 18840 备用快速开始
GUI设备 / 槽位配置,输出 GSDML + 运行配置 XML快速开始
SDK6 语言。实时主路径 Connect();WebAPI 备用C# API
测试驱动 / SDK / 配置回读 / GUI 冒烟概念说明
安装包安装向导 + netcfg 装驱动 + 服务快速开始

环境

  • Windows 10/11 x64;驱动安装需管理员
  • .NET 8(服务 / C# SDK / GUI)
  • 西门子 TIA Portal V15+(导入 GSDML)

后续阅读