TIA Portal 导入指南
把 Darra Profinet Slave 的 GSDML 装进西门子 TIA,组态成 IO Device。最终是否过关以真机 TIA 导入为准。
0. 版本
| 项 | 值 |
|---|---|
| 当前导出 | PNIO_Version="V2.32" |
| TIA | V15.1 及以上 |
XSD file not found | TIA 内置 XSD 低于文件版本 → 升级 TIA |
1. GUI 导出
- GUI 配完:设备(站名 / IP)→ 槽位 → 过程数据 → 报警。
- 导出两个文件:
| 文件 | 用途 |
|---|---|
device.gsdml | TIA 导入 |
device.xml | 服务加载 |
- 导出前跑一遍 GUI 自检,重点看「配置一致性」和「GSDML 可导出性」。
周期在 GUI / TIA 中配置,最低 1 ms。
2. 文件名(TIA 硬校验)
规范:GSDML-Vx.y-<厂商>-<设备族>-<yyyymmdd>[hhmmss].xml
日期段之后不能再加版本号等附加段。违反会报 Checker couldn't check Gsd file。
3. 安装 GSD
- 「选项」→「管理 GSD 文件」→ 添加
device.gsdml。 - 或放入
%ProgramData%\Siemens\Automation\GlobalData\GSD后重启 TIA。 - 前提:ASCII 短路径、关掉硬件网络编辑器、有写权限。
4. 组态
- 设备视图 → 硬件目录找到 Darra Profinet Slave → 拖入网络。
- 分配 IO 控制器。
- 模块只能放 GSDML 声明过的槽(
AllowedInSlots)。 - 每方向过程数据硬顶 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. 接上之后怎么确认
- 主站侧可用 PRONETA 看设备是否被发现、是否进入周期通信。
- 应用侧走 SDK 诊断(见 快速开始):
var device = DarraPnS.Connect();
if (device.Start() != PnSErrorCode.Success)
return;
bool online = device.Connected;
PnSState state = device.State;
device.Stop();
- 判据:
| # | 过关 |
|---|---|
| 1 | 设备能被发现并分配站名 / IP |
| 2 | TIA 显示已进入周期通信 |
| 3 | SDK Connected 为 true,State 正常 |
主站已在连时不要停止从站。
7. 常见问题
| 现象 | 处理 |
|---|---|
VendorID 0x0001 提示 | 0x0001 是已注册测试号。TIA 不拒装,但可能和 Acromag 冲突。发布前向 PI 申请正式号 |
Checker couldn't check Gsd file | 文件名违规,见 §2 |
XSD file not found | TIA 低于 V15.1,见 §0 |
| 相同设备标识已安装 | 先卸旧 GSDML 再装 |
| GSD 无法读取 | 0 模块 / 0 子模块不要导出 |
| 站名分配失败 | 下划线、首数字等非法字符,见 §5 |
| 过程数据超过最大帧长度 | 每方向超 1440,见 §4 |
| 已组态但未进入周期通信 | 站名 / IP 是否与 GUI 一致;看 SDK State / ErrorMessage |
8. 合规
当前导出物格式层(XSD)合规,大概率可导入。仓库内无 TIA 环境时,正式发布前仍需在 TIA V15.1+ 做一次真导入:安装 → 目录出现 → 拖入 → 编译 → 下载站名。