用 AI 将梯形图转换为 SCL
将 Siemens 梯形图逻辑转换为 SCL 过去是手动重写。使用 SimaticML 作为桥梁,Claude 作为翻译器,您可以在一分钟的往返中将梯形图逻辑转换为 SCL,最终得到一个编译块。
AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
梯形图逻辑在屏幕上阅读起来很棒,但在其他任何地方使用都很痛苦。当您想要在 Git 中进行差异比较、在拉取请求中进行审查或将其交给 AI 助手时,您会遇到障碍:Siemens TIA Portal 不会将梯形图块导出为文本。本研讨会展示了如何使用 SimaticML XML 作为桥梁,Claude 作为翻译器,可靠地将梯形图逻辑转换为 SCL。我们采用一个用梯形图 (LAD) 编写的真实功能块,将其转换为结构化控制语言 (SCL),并将结果作为编译块重新导入 TIA Portal。
1、问题:梯形图无法导出为 SCL
TIA Portal 的自动化 API TIA Openness 具有内置的源代码生成器。GenerateSource() 可以轻松地从块中编写一个干净的 .scl 文件,让您编辑它并重新导入。问题在于它只接受基于文本的块。要求它提供 SCL 或 STL 块的源代码是可以的。但如果指向 LAD 或 FBD 块,它会拒绝,因为 Openness 内部没有内置的图形到文本转换器。

原因是结构性的。梯形图是触点、线圈和连线的图形,而不是语句序列。没有一种明显的方法可以将该图形扁平化为文本,因此 Siemens 根本不会为您这样做。如果您阅读过我们关于 TIA Portal MCP 服务器 的指南,这从另一个角度来看是同一堵墙:除非先将图形语言桥接到文本,否则它们将保持锁定状态。
2、桥梁:SimaticML XML
有一种格式无论语言如何都可以导出每个块:SimaticML XML。LAD 块、FBD 块、SCL 块、STL 块,所有这些都序列化为 SimaticML。对于梯形图,该导出是梯级的完整图形:每个 Part(每个触点、线圈、边沿检测器、MOVE、比较器和函数块调用)、每个 Wire(部件如何连接,从源引脚到目标引脚)和每个 Access(符号、局部变量、全局变量和字面量,完全限定)。
它很详细但无损。人类无法轻松阅读它,但这并不重要,因为重点是将其交给可以阅读的 AI。
3、如何将梯形图逻辑转换为 SCL:四步工作流
端到端过程有四个步骤,一次往返大约需要一分钟。
- 使用 TIA Openness 将 LAD 块导出为 SimaticML。
- Claude 读取 XML,逐个网络遍历 Parts 和 Wires,重建布尔逻辑、边沿检测器、定时器和计数器调用以及函数块调用。
- Claude 编写等效的 SCL,使用 IF 和 CASE、类型化赋值和相同的实例调用。接口、静态变量和原始网络标题作为注释保留。
- 将 SCL 重新导入 TIA Portal,作为普通块进行编译。
因为每个步骤都是通过 TIA Openness 脚本化的,所以一旦管道设置好,您就可以在大约一分钟内将梯形图逻辑转换为 SCL。
4、真实示例:FB_Robot
为了具体说明,演示使用了 FB_Robot,这是一个最初用梯形图编写的气动单元控制器。从 TIA Portal 导出后,该块变成了超过 1,754 行 SimaticML,分布在十个 LAD 网络中。没有 PLC 程序员想要手动阅读这些内容。
另一方面,Claude 可以轻松阅读它。在演示中,它识别了四个输入、两个输出和七个静态变量、定时器和计数器实例以及原始网络标题,然后编写匹配的 SCL。
5、演示演练
这是在 TIA Portal 版本 20 中打开的源块:FB1,FB_Robot 功能块,其逻辑在转换为梯形图逻辑之前布局在梯形图网络中。
要获取 XML,研讨会使用了 TIA Portal 的导出和导入加载项。通过它,任何块都可以写为 SimaticML 文本文件。

结果是 SimaticML 文件本身:一个 XML 结构,保存了我们在项目中看到的每个梯形图元素。对我们来说很难解码,但对 Claude 来说很容易。

6、让 Claude 处理 LAD 到 SCL 的转换
随着 Claude Code 与 TIA Portal 一起运行,第一个指令只是将 FB_Robot 块导出为 XML。Claude 运行导出并将 SimaticML 文件放入正确的文件夹。
下一个指令是转换本身:将梯形图逻辑转换为 SCL。在这里,您可以给 Claude 自由发挥空间,或指定样式、命名选择和注释。在研讨会中,命令是一次一个给出的,但相同的步骤可以包装成一个管道,这样您只需指向梯形图块,Claude 就会自动导出、转换和重新导入。这与我们在 TIA Portal 和 Claude Code 分步指南 中探讨的想法相同。
Claude 翻译 XML 并将结果保存为项目文件夹中的 FB_Robot.scl。

转换后的代码是干净的 SCL,组织为网络。每个原始梯形图网络显示为一个带注释的部分,因此您可以将每个 SCL 块追溯到其来源的梯级。
7、重新导入、重命名和编译
最后一步关闭了循环。Claude 将 SCL 重新导入到打开的 TIA Portal 项目中。因为原始块仍然存在,我们要求它重命名功能块,以便两者不会冲突。重命名意味着更改文件名和代码中的块名称,Claude 处理这两者,将其作为 FB_Robot_SCL 导入。
然后是真正的测试:点击编译。转换后的块编译零错误。

8、为什么梯形图到 SCL 的转换很重要
一旦您的逻辑以 SCL 文本而不是梯形图形式存在,下游的一切都会变得更容易。您可以在 Git 中对其进行版本控制并查看真正的差异。您可以在拉取请求中对其进行审查。并且您可以将其交给任何 AI 聊天代理进行重构、文档编写或扩展,因为基于代码的文本是这些工具最擅长的。直接使用梯形图很笨拙,这恰恰是因为其底层的 XML 结构,但一旦进入 SCL,摩擦就会消失。
转换也不是一个黑匣子。因为 Claude 保留了接口、静态变量和网络标题作为注释,所以 SCL 保持可读和可审查。目标是在不丢失语义的情况下将梯形图逻辑转换为 SCL,这样您就可以在将其投入实时控制器之前确认每个决策,而编译器是最终检查。
9、结束语
将 Siemens 梯形图逻辑转换为 SCL 过去是手动重写。使用 SimaticML 作为桥梁,Claude 作为翻译器,您可以在一分钟的往返中将梯形图逻辑转换为 SCL,最终得到一个编译块。将 LAD 导出为 XML,让 AI 将逻辑重建为 SCL,重新导入并编译。从图形块到可维护的文本,而不丢失语义。
原文链接:Convert TIA Portal Ladder Logic to SCL with AI
汇智网翻译整理,转载请标明出处