跳到主要内容

TIA Portal 导入指南

把 Darra PnSlave 的 GSDML 装进西门子 TIA,组态成 IO Device。

规范层依据见仓库 docs\GSDML_TIA_导入合规报告.md。最终是否过关以真机 TIA 导入为准。

0. 版本​

项值
当前导出PNIO_Version="V2.32"
TIAV15.1 及以上
XSD file not foundTIA 内置 XSD 低于文件版本 → 升级 TIA

1. GUI 导出​

  1. GUI 配完:设备(站名 / IP)→ 槽位 → 过程数据 → 报警。
  2. 导出两个文件:
文件用途
device.gsdmlTIA 导入
device.xml服务加载
  1. 导出前跑一遍 GUI 自检,重点看「配置一致性」和「GSDML 可导出性」。

2. 文件名(TIA 硬校验)​

规范:GSDML-Vx.y-<厂商>-<设备族>-<yyyymmdd>[hhmmss].xml

日期段之后不能再加版本号等附加段。违反会报 Checker couldn't check Gsd file。

3. 安装 GSD​

  1. 「选项」→「管理 GSD 文件」→ 添加 device.gsdml。
  2. 或放入 %ProgramData%\Siemens\Automation\GlobalData\GSD 后重启 TIA。
  3. 前提:ASCII 短路径、关掉硬件网络编辑器、有写权限。

4. 组态​

  1. 设备视图 → 硬件目录找到 Darra PnSlave → 拖入网络。
  2. 分配 IO 控制器。
  3. 模块只能放 GSDML 声明过的槽(AllowedInSlots)。
  4. 每方向过程数据硬顶 1440 字节(保守 1434)。超限就拆 DataItem / 子模块。

本产品过程区固定 16 字节 I + 16 字节 Q,一般碰不到帧长上限。

5. 站名与 IP​

规则值
字符仅 a-z 0-9 - .(下划线非法)
长度总长 ≤240,段长 1–63,段不以 - 起止
首字符不能是数字
禁用port-xyz 前缀;写成 IP 形态
分配名必须与 GUI 站名一致

TIA 会把非法键入改写成别的名字,但 GSDML 里的 DNS_CompatibleName 不会跟着改。对不上则 DCP Set 被拒。

6. 接上之后怎么测​

  1. 主站侧可用 PRONETA 或 Wireshark(EtherType 0x8892)看 DCP / 周期帧。
  2. 应用侧走 SDK 主路径(见 快速开始):
var pnet = DarraPnet.Connect();
pnet.Start();
pnet.Write(new byte[] { 0x11, 0x22, 0x33, 0x44 }); // 改从站输出 I
pnet.Read(out byte[] q); // 只读 Q
pnet.Stop();
  1. 判据:
#过关
1DCP Identify 有响应
2线上有周期 0x8892 帧
3写 I 后控制器过程映像变化;读 Q 能看到主站下发
4前 4 字节由主站同步,不要把 Q 抄回 I

主站已在连时不要 POST /api/stop。

7. 常见问题​

现象处理
VendorID 0x0001 提示0x0001 是已注册测试号。TIA 不拒装,但可能和 Acromag 冲突。发布前向 PI 申请正式号
Checker couldn't check Gsd file文件名违规,见 §2
XSD file not foundTIA 低于 V15.1,见 §0
相同设备标识已安装先卸旧 GSDML 再装
GSD 无法读取0 模块 / 0 子模块不要导出
站名分配失败下划线、首数字等非法字符,见 §5
过程数据超过最大帧长度每方向超 1440,见 §4
写了 I,Q 前 4 字节被改主站同步,预期行为

8. 合规(如实)​

当前导出物格式层(XSD)合规,大概率可导入。仓库内无 TIA 环境时,正式发布前仍需在 TIA V15.1+ 做一次真导入:安装 → 目录出现 → 拖入 → 编译 → 下载站名。

相关​