2171 字
11 分钟
TIA新编程方式

前言#

本人目前就读大二,普通本科,所学知识仍停留在纸面阶段。以下内容均为个人实践中的考量与总结,如有不妥之处,请自行辨别取舍。


一、编程范式演进#

早期 TIA 编程仍以手工编码为主,可归为传统人工编程模式。此后西门子推出了官方 Agent 工具,能够直接驱动 TIA 完成程序编写乃至设备组态工作。受商业成本与技术迭代的双重驱动,衍生出本文所介绍的 VS Code + Agent + TIA Portal 新型编程方案。

该方案的整体架构由四部分组成:

组成部分对应实体在本方案中的作用
IDE(集成开发环境)VS Code程序浏览、编辑与插件扩展的主工作区
开发平台TIA Portal工程组态、编译与下载到设备
API(应用程序接口)TIA Openness打通 VS Code 与 TIA Portal 的导入 / 导出通道
LLM(大语言模型)Claude / Codex 等 Agent理解需求并直接改写程序

其核心价值,是在传统人工编程范式的基础上引入 AI 辅助开发。根据个人项目实测统计,采用该方案开发单个项目的成本仅十几元,相比西门子原生方案大幅降低;同时,该编程范式也进一步向 IT(信息技术)化方向演进。


二、方案优势#

以下优势来自 2026 年 9 月 27 日与芮庆忠(芮老师)的交流总结。

2.1 AI 辅助编程#

方案的自动化模式支持手动接管:AI 自动改写程序的同时,开发者可随时介入调整。可覆盖的对象包括变量表、DB 块、FB 块与 FC 块,极大程度地简化了编程时间与编程思路。

使用方式也很直接:在右侧面板中与 Codex 或 Claude 交流想法,即可让 AI 直接通过 IDE 修改程序。

与其他 Agent 方案不同的是:

  • 其他 Agent:需要先与 TIA 建立 MCP 连接,才能读取数据与程序。这种连接方式的效率受限于 Agent 自身的能力,速度往往不够理想。
  • 本方案:由 VS Code 直接与 TIA 程序对接,把程序打包到另一个文件夹中存储,可以像 Java、Python 那样进行文本化编辑。也就是说,能够完全脱离 TIA 进行编程,待程序编写完成后再统一打包回 TIA。

如此一来,AI 的编程能力得以更充分地发挥。

演示#

LAD 语言

图 1 LAD 程序(TIA Portal 原生视图)

图 2 在 VS Code 中浏览与编辑 TIA 程序

SCL 语言

图 3 SCL 程序:CASE 状态机(TIA Portal 原生视图)

图 4 导出为纯文本的 SCL 源文件

图 5 VS Code 中的 SCL 图形化视图

DB 块

图 6 DB 块(IOmap_DB)的接口一览

以上涵盖了本项目编程中涉及的大部分程序(示例程序仅供参考),其中绝大部分由 AI 完成。

2.2 程序可读性与分享#

作为学生,笔者并不经常随身携带电脑;而在大学比赛中,团队修改程序需要反复对比队友的程序。以往每到吃饭时,队友都会发来一堆截图请求帮忙修改和指点,经常导致思路混乱——根本分不清对方发的是哪一段程序。

新方案直接解决了这个问题:可以把整个 LAD、SCL、DB 块打包成 HTML 文件,直接通过网页浏览所有程序。

图 7 浏览器中查看 LAD 程序(Main)

图 8 浏览器中查看 SCL 程序(Pasion)

图 9 浏览器中查看 DB 块(SystemDB)

图 10 导出目录:每个程序块都配有 *.preview.html

这样可以极大程度地方便程序的传输与阅读。需要说明的是,其本质是本地传播,并不会泄露程序。

笔者正是用这种方式在上课时编写程序,回到宿舍再上传到 PLC,从而节省时间。

2.3 相较直接用 Codex / Claude 的优势#

Codex 和 Claude 在修改与编写程序时,并不像 VS Code 那样灵活。举例来说:当需要修改程序时,把提示词交给 Agent,即便 Agent 再强大,目前也还无法把程序写到可以直接上传到设备的状态,仍然需要人为修改;而如果再次把提示词交给 Agent,不仅浪费 Token,还会额外增加时间。可见,始终需要一个 IDE 来修改程序。

既然如此,为什么不直接用 VS Code 搭配插件?而且这种左右对话的形式,也颇有一股「大厂程序员」的味道。

图 11 LAD 同样以文本形式存储于 *.s7dcl,可直接编辑

2.4 丰富的插件生态#

VS Code 作为一种老牌 IDE,本质上是个文本编辑器,其强大之处就在于多元化、全生态的插件:代码补全插件、文本标准化插件、程序优化插件、上下文关联插件等一应俱全。

TIA 编程本身就是一种高级语言编程,利用这些插件,能够进一步提高效率与编程水准。

图 12 VS Code 已安装扩展一览

2.5 远程操作#

几个月前的 Codex,以及一年前的 Openclaw,已经可以直接让手机远程操控 Agent,从而操控本地环境。既然如此,也可以让 Codex 和 Openclaw 远程操控电脑与 PLC,进行编程和组态设置,同样能够提高灵活性与效率。

此外,还可以玩出很多「花活」。

以上为阶段性总结的优点,后续还会继续补充。


三、环境准备#

3.1 软硬件条件#

项目要求说明
一台电脑需能同时运行 TIA Portal 与 VS Code
VS Code本方案的主工作区
AI AgentClaude 或 Codex,亦可其他同类提供 AI 编程能力
TIA PortalV16 及以上需支持 TIA Openness

3.2 VS Code 扩展#

扩展发布者作用是否必需
Chinese (Simplified) Language PackMicrosoft简体中文界面可选
Claude Code for VS CodeAnthropic在 IDE 内直接对话改程序可选
CodeSnapadpyke代码截图可选
Material Icon ThemePhilipp Kief文件图标主题可选
Siemens SCLGunders89SCL 语法支持必需
TIA Portal Importmariusz-czynnek通过 TIA Openness API 导入 / 导出 PLC 程序必需
TIA Viewermariusz-czynnekLAD / FBD / SCL / GRAPH 图形化视图与 HTML 预览必需

图 13 TIA 相关的三个扩展为必需项(列表后三项)


四、实施步骤#

4.1 安装环境与扩展#

按照第三章的清单,先在电脑上安装 TIA Portal、VS Code 与 AI Agent,再在 VS Code 中安装扩展。其中 TIA 相关的三个扩展(Siemens SCL、TIA Portal Import、TIA Viewer)为必需项。

4.2 将当前用户加入 TIA Openness 用户组#

TIA Portal Import 通过 TIA Openness API 与 TIA 通信,因此需要先把当前登录用户加入 Siemens TIA Openness 用户组,否则连接会失败。

第一步:获取当前用户名

按 Win + R,输入 cmd 回车,打开命令提示符,执行:

Terminal window
echo %username%

echo %username% 会直接输出纯用户名,这就是后面要加入 Siemens TIA Openness 组的名字。

第二步:以管理员身份打开终端

右键开始菜单 → Windows 终端(管理员)/ PowerShell(管理员)。

第三步:把当前登录用户加入 Openness 组

在管理员终端中执行:

Terminal window
net localgroup "Siemens TIA Openness" %USERNAME% /add

第四步:验证是否添加成功

在管理员终端中执行:

Terminal window
net localgroup "Siemens TIA Openness"

输出中能够看到自己的用户名,即表示添加成功。

4.3 连接 TIA Portal 并导出项目#

  1. 先打开 TIA Portal,完成程序与组态。
  2. 新建一个文件夹,用于存放导出的 VS Code 程序。
  3. 用 VS Code 打开这个新建的文件夹。
  4. 在左侧 TIA Portal Import 面板中点击 Connect to TIA Portal。
  5. 选择你对应的 TIA Portal 版本。
  6. 连接成功后,面板会读取并显示项目树。
  7. 点击右上角的小云朵图标,把项目树下载到工作区。

图 14 TIA Portal Import 面板:连接状态与操作入口

图 15 Project Structure:Connect to TIA Portal 与 Prepare Workspace

至此即可脱离 TIA Portal,在 VS Code 中直接浏览和编辑程序。


五、VS Code 配置参考#

以下是笔者使用的 VS Code 配置,供参考:

{
"tiaImport.lmTools.allowPlcDownload": true,
"editor.accessibilitySupport": "off",
"files.readonlyInclude": {
"": true,
"glob": true
},
"files.readonlyExclude": {
" glob": true
},
"workbench.editorAssociations": {
"*.copilotmd": "vscode.markdown.preview.editor",
"*.s7dcl": "default"
},
"workbench.editor.enablePreview": false,
"tiaImport.tagTableFormat": "xml",
"explorer.confirmDelete": false,
"claudeCode.preferredLocation": "panel",
"chat.titleBar.openInAgentsWindow.enabled": false,
"workbench.browser.showInTitleBar": false,
"workbench.startupEditor": "none",
"security.workspace.trust.untrustedFiles": "open",
"files.autoSave": "afterDelay",
"files.autoGuessEncoding": true,
"workbench.list.smoothScrolling": true,
"editor.cursorSmoothCaretAnimation": "on",
"editor.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.mouseWheelZoom": true,
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"editor.guides.bracketPairs": true,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.acceptSuggestionOnEnter": "smart",
"editor.suggestSelection": "recentlyUsed",
"window.dialogStyle": "custom",
"debug.showBreakpointsInOverviewRuler": true,
"workbench.iconTheme": "material-icon-theme"
}
TIA新编程方式
/posts/tia-portal-vscode-agent-2026/
作者
Lucas
发布于
2026-09-28
许可协议
CC BY-NC-SA 4.0
评论