快速开始
5 步跑通 Darra Profinet Slave(PROFINET IO Device):安装 → 启服务 → GUI 导出 GSDML → TIA 导入 → 启动会话并查看诊断。
周期在 GUI / 控制器侧自由配置,最低 1 ms。
环境
| 项 | 要求 |
|---|---|
| 系统 | Windows 10/11 x64,管理员权限 |
| 运行时 | .NET 8 |
| 网卡 | 标准以太网卡(不要用 VMnet / TAP 当从站口) |
| 工程软件 | 西门子 TIA Portal V15.1 及以上 |
第 1 步:安装
以管理员运行安装包:
安装包/安装包.exe
装完后目录默认是 C:\DARRA\Profinet_Slave。
| 装了什么 | 名字 |
|---|---|
| Windows 服务 | DarraPnSService |
| GUI / 6 语言 SDK / 文档 | 安装目录 |
按安装向导完成即可。
第 2 步:启动服务
sc.exe start DarraPnSService
服务管站名 / 网卡 / GSD 对应的运行配置。SDK 不下发配置。
主站已在连时 不要停止从站。
第 3 步:GUI 导出 GSDML
打开 GUI,配完设备 / 槽位 / 过程数据 / 报警后点「导出」:
| 文件 | 给谁 |
|---|---|
device.gsdml | TIA Portal 导入 |
device.xml | 服务加载 |
站名必须和后面 TIA 里分配的设备名一致(规则见 TIA 导入)。
周期在 GUI / TIA 中配置,最低 1 ms。
第 4 步:TIA 导入
- TIA →「选项」→「管理 GSD 文件」→ 添加
device.gsdml - 硬件目录找到 Darra Profinet Slave,拖进网络
- 分配设备名、IP、IO 控制器
- 编译并下载到 PLC
细节见 TIA 导入指南。
第 5 步:启动会话并查看诊断
真正用法是西门子式诊断:先看运行态,再按需读写过程数据。结构体映射只是可选写法,不是主路径。
using DarraPnS.PnSlave;
var device = DarraPnS.Connect();
if (device.Start() != PnSErrorCode.Success)
{
Console.WriteLine(device.LastServiceError);
return;
}
// 运行态:是否已与 IO 控制器建立周期交换
bool online = device.Connected;
PnSState state = device.State;
var err = device.ErrorCode;
string msg = device.ErrorMessage;
// 过程数据(西门子 I / Q 地址)
device.WriteInt16("IW2", 123);
device.ReadInt16("QW0", out short cmd);
device.Stop();
Connected == true 才表示周期数据在换。Start 成功只说明本会话已启动,不等于控制器已连。
| 属性 | 含义 |
|---|---|
Connected | 是否已与 IO 控制器建立周期数据交换 |
State | 运行态枚举 |
ErrorCode / ErrorMessage | 最近一次运行错误 |
过程数据按控制器视角:I 是设备发给控制器的输入,Q 是控制器发给设备的输出。各语言 API 见 C# API,本机观测见 Web API。
验证
| 项 | 判据 |
|---|---|
| 服务 | DarraPnSService 正在运行 |
| TIA | 硬件目录出现 Darra Profinet Slave,能分配站名 / IP |
| 诊断 | Connected 为 true,State 正常,ErrorCode 无错误 |
| 过程数据 | 控制器侧能看到设备输入;设备侧能读到控制器输出 |
常见问题
| 现象 | 处理 |
|---|---|
| 服务起不来 | 用 GUI 重导出 device.xml,确认服务加载的是这份 |
| TIA 找不到设备 | 见 TIA 导入 |
| 已组态但未进入数据交换 | 站名 / IP 是否与 TIA 一致;看 State / ErrorMessage |
| 周期不稳 | 周期最低 1 ms |