当前位置: 首页 > news >正文

用自然语言驱动博途:TIA Portal MCP 完整交付包导读(V21)——附源码与演示视频

摘要:在 Windows + TIA Portal V21 环境下,通过 MCP 把大模型/自动化客户端接到西门子博途 Openness API,实现建项目、配硬件、生成 PLC(SCL/LAD/声明式 JSON)、组态 WinCC Unified HMI、编译保存。本文基于交付包TIA_MCP_260514整理,面向想「少点鼠标、多点对话」的工控工程师与自动化开发者。

建议标签西门子TIA Portal博途MCPOpennessWinCC UnifiedPLCAI编程工控自动化


📦 资源获取

GitHub 源码仓库

  • 仓库地址:https://github.com/bulaofen0036-coder/TIA_Portal_Openness_MCP
  • 内容:完整的交付包源码、文档、模板和工具
  • 使用方式:克隆或下载后,按照本文第五节的「5 分钟接入 MCP」步骤配置使用

演示视频

  • 视频标题:屏幕录制 2026-05-23 142323.mp4
  • 网盘链接:https://pan.baidu.com/s/11RpRw0dYQpk12nRu9bDAhw
  • 提取码:y15i
  • 视频内容:展示了从配置 MCP 客户端到生成完整 PLC+HMI 项目的全过程演示

一、为什么需要这套东西?

传统博途工程流里,大量时间花在重复动作上:建 CPU/HMI、拖 PROFINET、写接口 DB、导入块、编译、再一页页画 HMI、绑变量、配按钮事件。这些步骤规则性强、路径固定,却难以用普通脚本一次性描述——因为最终都要落到TIA Openness的对象模型上。

MCP(Model Context Protocol)的作用,是把「博途能做什么」封装成一组结构化工具,让 Cursor、VS Code、Claude Desktop 等支持 MCP 的客户端,用自然语言或编排逻辑去调用,而不是让人工逐条查 API 文档。

本交付包的核心价值可以概括为三句话:

  1. 开箱即用:内含已编译的TiaMcpServer.exe,无需再克隆源码仓库。
  2. 可验证的模板链:PLC/HMI 使用 JSON 蓝图 +PlcBuildAndImport/ UnifieddesignJson,先dryRun再实际导入。
  3. 文档与工具对齐:184 个 MCP 工具、能力矩阵、运行手册、自然语言意图索引,降低「AI 随意猜测路径」的概率。

二、整体架构(一张图看懂)

西门子环境

交付包内桥接层

MCP 客户端

MCP JSON-RPC

Openness

Cursor / VS Code / Claude Desktop / 自研 HTTP 客户端

TiaMcpServer.exe
stdio 或 HTTP

Skill + 手册 + 模板 JSON

TIA Portal V21
Openness Public API

工程:PLC + WinCC Unified

要点

  • MCP 与具体 IDE无关;某个客户端「工具列表不全」通常是客户端缓存/描述符问题,不是交付包裁掉了能力(见包内docs/mcp-ide-and-tool-visibility.md)。
  • 运行时工具列表以连接服务器后的tools/list为准;包内manifest/tools-list.json是静态快照(当前为184个工具:L0×6、L1×29、L2×149)。

三、交付包里有什么?

类别路径(包内相对路径)作用
运行时tools/tiaportal-mcp/src/TiaMcpServer/bin/Release/net48/TiaMcpServer.exeMCP 服务端
接入示例cursor-mcp.example.json复制到客户端 MCP 配置,把REPLACE_ME换成包根目录
主规范tools/tiaportal-mcp/skill/SKILL.md工具分层、参数陷阱、HMI schema
工具清单manifest/tools-list.jsondocs/tool-capability-matrix.md静态索引
完整蓝图templates/project-blueprints/full_plc_hmi_project.json从零生成 PLC+Unified 的「剧本」
运行手册docs/full-project-generation-runbook.md分步 MCP 调用顺序
PLC 模板templates/plc/plcbuild-json/*.json、LAD 配方、SCL 示例声明式建块
HMI 模板templates/hmi/unified_*.jsonWinCC Unified 画面 designJson
校验脚本scripts/Validate-Bundle.ps1不启动博途即可检查包完整性
手册手册/quickstart.md手册/openness-limitations.md手册/TIA_NL_INTENT_RECIPES.md速启、边界、NL→工具序列

不包含:TIA 安装介质、现场专有工艺逻辑、西门子未公开的「伪能力」。业务程序仍需在模板之上扩展。


四、环境准备(上线前 checklist)

  1. 操作系统:Windows
  2. 运行时:.NET Framework4.8
  3. 博途TIA Portal V21(包目标主版本;其它版本需自行验证 PublicAPI)
  4. 权限:当前 Windows 用户加入Siemens TIA Openness组,注销后重新登录
  5. 环境变量TiaPortalLocation指向 Portal 安装根,例如:
    C:\Program Files\Siemens\Automation\Portal V21
  6. 首次连接:在 TIA 弹窗中允许 Openness 访问

可用 PowerShell 粗查 Openness 组:

whoami/groups|findstr Openness

五、5 分钟接入 MCP(stdio,推荐)

1. 脱机校验交付包

包根目录(包含README.md的文件夹)执行:

powershell-NoProfile-ExecutionPolicy Bypass-File.\scripts\Validate-Bundle.ps1

通过后再连接博途;需要更严格比对时可加-Strict

2. 配置客户端

cursor-mcp.example.json中的片段合并到你的 MCP 配置,例如 Cursor 的mcp.json

{"mcpServers":{"tia-portal":{"command":"C:\\你的包根目录\\tools\\tiaportal-mcp\\src\\TiaMcpServer\\bin\\Release\\net48\\TiaMcpServer.exe","args":[],"env":{}}}}

若系统未设置TiaPortalLocation,在env中补上同名变量。

3. 首次调用顺序(不要跳步)

Bootstrap → Connect → OpenProject 或 CreateProject → GetProjectTree
  • Bootstrap:只读定向,返回 TIA 版本、Openness 组状态、推荐下一步;不会自动连接博途。
  • GetProjectTree:打开工程后必调,所有PLC_1HMI_RT_xxx路径都应来自真实树,禁止硬编码猜测路径。

可选冒烟:RunCapabilitySelfTest

4. HTTP 传输(进阶)

TiaMcpServer.exe--transport http--http-prefix http://127.0.0.1:8765/--http-api-key <secret>

注意:POST /mcp是完整 MCP 会话,不是裸tools/call;自研脚本需实现 initialize 等协议步骤(详见SKILL.md)。


六、两条典型工作路径

路径 A:从零生成「PLC + WinCC Unified」全套

templates/project-blueprints/full_plc_hmi_project.json+docs/full-project-generation-runbook.md

标准闭环(缩写)

Bootstrap → Connect → CreateProject → AddDeviceWithFallback → AddHardwareCatalogDeviceWithProbe → ConnectDeviceNodesToProfinetSubnet → GetProjectTree → ValidateAutomationContext → PlcBuildAndImport(每项先 dryRun=true,再按顺序 dryRun=false) → CompileAndDiagnosePlc → EnsureUnifiedHmiConnection → EnsureUnifiedHmiTagTable → EnsureUnifiedHmiTag → EnsureUnifiedHmiScreen → ApplyUnifiedHmiScreenDesignJson → BindUnifiedHmiTagDynamization → EnsureUnifiedHmiButtonAction → SaveProject → Disconnect

PLC 导入顺序(蓝图约定):tagtable → udt → globaldb → fc → fb → ladRecipe → externalSclExample → compile

HMI 绑定策略(重要)

  • 接口 DBDB_HMI_Interface使用**非优化(Standard)**访问,字节布局见templates/plc/plcbuild-json/db_hmi_interface.jsonabsoluteLayout
  • 调用EnsureUnifiedHmiTag同时传plcTagaddress(如plcTag="DB_HMI_Interface.CmdEnable"address="%DB200.DBX0.0")。
  • 顺序:PLC 编译通过→ HMI 连接 → 变量表 → 画面 → 动态化 → 按钮 Down/Up 动作。

路径 B:只验证 MCP / 导入链路

templates/mcp-full-e2e-verify/README.md
在已有工程中按说明导入块与标签,再CompileAndDiagnosePlc


七、工具分层:AI 应该先调谁?

层级数量(快照)典型工具设计意图
L06BootstrapRunCapabilitySelfTestGetState环境定向、只读自检
L129ConnectCreateProjectGetProjectTreePlcBuildAndImportCompileAndDiagnosePlcAddDeviceWithFallback高频、参数已收敛的「首选」
L2149AddDeviceEnsureSubnet、各类 HMI/反射探测细粒度、需明确路径或高级场景

对自然语言用户,包内手册/TIA_NL_INTENT_RECIPES.md提供「意图 → 工具序列」索引,减少模型自由发挥。

PLC 建块首选PlcBuildAndImport(JSON 描述一块,先dryRun=true校验,再导入编译)。

硬件插入首选AddDeviceWithFallback(按系列探测目录);第三方 GSD 用AddGsdDeviceWithProbe


八、能力边界:Openness 做不到的事

交付包诚实标注了 Public API 限制(详见手册/openness-limitations.md),例如:

需求Openness / 本 MCP建议替代
读 CPURUN/STOP 运行模式不支持面板指示灯、HMI、OPC UA
诊断缓冲区、部分强制写入的「即时生效」不支持或受限OPC UA
在线改 PLC 实际值(随意写 IO)不暴露为随意写工具OPC UA / 专用通信库

已支持(工程态):在线/离线连接状态、GoOnline/GoOffline、下载前检查、DownloadToPlc会改变现场 PLC 行为,务必安全确认)、离线/在线软件比较、结构化编译诊断等。


九、模板与指令库:不是黑盒生成器

交付包里的 PLC/HMI 内容是通用示范,便于二次改参:

  • SCLdocs/scl-instruction-library.md+templates/plc/scl-examples/
  • LADdocs/lad-instruction-library.md+templates/plc/lad-recipes/
  • HMI 画面规范docs/HMI_Unified_画面生成规范与模板.md
  • 通讯驱动匹配docs/hmi-connection-driver-matrix.md(按 CPU 系列选CommunicationDriver

把模板当「可编译的脚手架」,工艺与安全联锁仍须工程负责人审核。


十、常见问题(排障速查)

现象处理
TIA Portal not running先手动打开博途
工程树为空OpenProject/CreateProject/AttachToOpenProject
Openness 拒绝访问检查 Windows 组 + TIA 授权弹窗 +TiaPortalLocation
HMI 变量地址红字对照docs/hmi-plc-tag-binding-and-addressing.md,确认%DB200...与 DB 布局一致
客户端工具比文档少以运行时tools/list为准;重启客户端清缓存
MCP HTTP 卡住勿用裸 POST;改用 stdio 或完整 MCP 客户端

更完整的错误形态见手册/error-model.md


十一、和「只会写 SCL 的 Copilot」差在哪?

维度只生成 SCL 文本TIA Portal MCP 交付包
输出源码片段真实 .ap21 工程变更(设备、块、HMI、编译结果)
路径人手工导入Openness 自动导入 +GetProjectTree约束路径
HMI常缺失Unified 连接、变量、designJson、按钮事件、动态化
验证人眼编译CompileAndDiagnosePlc结构化错误列表
可重复蓝图 JSON +Validate-Bundle.ps1+ dryRun

适合:教学演示、标准机台骨架、重复性组态、与 AI 结对调试接口 DB/HMI 绑定;
不适合:替代安全认证、替代工艺设计、无 TIA 许可的「云编博途」。


十二、使用建议与注意事项

  1. 标题优化:可根据实际应用场景调整标题,突出「MCP + 博途 V21 + WinCC Unified 一键生成」的核心价值。
  2. 配图建议:建议补充三张关键截图——MCP 客户端配置界面、GetProjectTree返回的工程树结构、编译成功后的HMI画面预览。
  3. 安全提示:涉及DownloadToPlc等在线操作时,务必在安全环境下进行,避免影响生产设备。
  4. 分发说明:若分享此交付包,请确保包含完整的README.md和校验脚本,不要只提供可执行文件。

十三、延伸阅读(包内路径)

  • 总览:README.md
  • 英语速启:手册/quickstart.md
  • 清单元数据:manifest/package-manifest.json
  • 完整生成:docs/full-project-generation-runbook.md

本文根据交付包TIA_MCP_260514(manifest 标注生成时间 2026-05-12)整理,工具数以包内manifest/tools-list.json为准。若你使用的构建版本不同,请以连上 MCP 后的tools/list为最终依据。最后,开发不易,朋友们如果觉得不错帮忙点点github⭐标

http://www.jsqmd.com/news/951382/

相关文章:

  • Matlab课堂人脸考勤工具包:带可运行GUI、6人样本库与全流程文档
  • 基于树莓派与虹吸原理的高精度雨量计DIY指南
  • 普宁户外工作者配眼镜推荐哪家|变色镜和偏光镜有什么区别 - 品牌观察
  • 靠谱农机维修培训推荐 实战教学口碑享誉业内 - 湖南阳光技术
  • 8分钟突破:AI视觉转代码工具如何让设计稿秒变可运行网页
  • 2026年隧道炉制造企业实力之选:上海迅美工业设备有限公司 - 品牌企业推荐师(官方)
  • 【AI报税革命指南】:2024年税务师都在用的7个智能工具整合方案,错过再等一年
  • 基于CD4093与MCP602的简易特雷门琴制作全攻略
  • MATLAB零依赖SIFT特征提取与图像匹配全套代码包
  • NTRIP协议开发实战:3步构建高效RTK差分数据传输系统
  • 普宁学生配眼镜找哪家性价比高|学生党两三百预算能配到品牌镜片吗 - 品牌观察
  • 2026年6月操作台厂家推荐榜单:监控操作台/控制台/机房操作台/监控室操作台/监控中心操作台精选! - 企业推荐官【官方】
  • 2026年选屋面瓦厂家必问的8个问题:北京金宸伯全部满分回答 - 企业深度横评dyy6420
  • 亲测AI搜索:官网流量如何守住?
  • 工业级Skill迭代优化方案:微软 SkillOpt;谷歌 SkillOS
  • KingSCADA公共弹窗用法
  • 滴哦小精灵 v1.5.1:全能型 Windows 桌面工具箱,集美化与高效办公于一体
  • 3步揭秘:如何用Blender 3MF插件打通3D打印全流程
  • 小红书舆情采集的完整步骤是什么?2026企业级AI Agent自动化实操指南
  • Claude Code 和 Codex 怎么选?我的分项推荐
  • 别再乱设了!详解以太网强制模式与自协商混用的那些‘坑’
  • 普宁夜间开车的人配眼镜找哪家靠谱|开车专用镜片和日常眼镜有什么区别 - 品牌观察
  • LayerDivider终极指南:3分钟实现复杂插画智能分层
  • 2026甄选:北京大广发运输有限公司——朝阳食品冷藏领域的专业服务品牌 - 品牌企业推荐师(官方)
  • 5分钟快速上手:使用DankDroneDownloader实现大疆无人机固件自由
  • 别再手动去极值了!用Python的SciPy库winsorize函数,3行代码搞定数据清洗
  • DQN 算法直觉
  • C++多线程detach()用不好,程序崩溃怎么查?聊聊传参的那些隐藏陷阱
  • 终极指南:如何用NewGAN-Manager快速解决Football Manager头像配置难题
  • 如何推动高校院所与企业开展高价值的产学研合作?