BACKPLANE RUN TIA V20+V21 CODESYS 67 SMART 25
Industrial Agent Workbench · 三个 PLC 平台,一块背板

把博途、CODESYS、
200SMART 接进同一个工位

AutoAgent Studio 把三个 PLC 平台挂在同一条工具母线上:TIA Portal V20 / V21 走 TIA Openness,CODESYS 走持久化 IDE 会话,S7-200 SMART 走离线解析引擎。268 条 MCP 工具全部来自引擎实测清单,界面上每一次点击都对应一次真实工具调用 —— 没有占位数据。

MCP 服务器 · 4 个 工具映射 · 268 条 宿主桥 · callTool(server, tool, args)
mcp — 真实工具调用链

          

          

        
BACKPLANE · 三工位 宿主桥 remote.tia
SLOT 0 TIA Portal 助手tia-portal-v20 · tia-portal-v21 86 / 90 MOUNTED
SLOT 1 CODESYS 助手codesys · 持久化 IDE 会话 67 MOUNTED
SLOT 2 S7-200 SMART 助手smart200 · 离线解析 + 引擎注入 25 MOUNTED
TOOLS MAPPED
268
MODULES
26
CYCLE TIME
4.2 ms
TOKEN LOAD
31 %
LADDER · 工具调用回路(节选)
用户任务 MCP 桥 OUT Q0.0 工具回执 CTX Q0.1
DIAGNOSTIC BUFFER · 最近事件
✔ 09:41:22 mcp mount · tia-portal-v21 · 90 tools
✔ 09:41:20 session resume · #48 · 12 turns
● 09:41:18 approval gate · 写入类工具 → 待批准
%DB1 · OB1

三步上机

和组态一个新机架一样:先插模块,再打开工位,最后切到 RUN。

00

装配 MCP 桥

profile patch 里 insert 一行 dsh-mcp-client,serverName 即工具命名空间
$ ~/.dsh/profiles/desktop/cordis.patch.yml
- insert:
    - id: tia-v21
      name: '@deepseek-ai/dsh-mcp-client'
      config: { serverName: tia-portal-v21, transport: stdio }
01

打开工位

侧栏应用弹层选助手;面板按需拉起连接,空闲 30 分钟回收
> 侧栏 → 应用 → TIA Portal 助手 · V21
> Bootstrap → Connect → GetState
02

跑真实工具链

回执落进诊断缓冲;修改类工具走审批门控
> GetDevices → GetIoAddresses → GetPlcTagTables
> CompileAndDiagnosePlc · 0 error / 2 warn
%HW CONFIG

硬件组态 · 工位清单

每个工位 = 一个 MCP 服务器 + 一条模块导轨。导轨项数取自源码常量,工具数取自引擎 tools/list 实测。

TIA Portal 助手

tia-portal-v20 / v21 SLOT 0 · 9 模块

走官方 TIA Openness API,跨版本稳定:一个 MCP 通吃 V20/V21 双入口。工程后缀 .ap20 / .ap21。

总览 / 连接项目管理设备管理IO 变量管理工艺对象管理MODBUS 配置程序块保护网络拓扑编译与下载
> GetState → OpenProject → GetDevices → GetIoAddresses → CompileAndDiagnosePlc
86 工具(V20)· 90 工具(V21,实测)

CODESYS 助手

SLOT 1 · 9 模块

持久化 IDE 会话:launch 一次,POU / 凸轮 / Trace / SoftMotion 全在会话内完成。

总览 / 会话项目 / 模板POU 与代码设备与 IO在线 / 变量库与符号SoftMotionTrace 示波编译与下载
67 工具(snake_case)

S7-200 SMART 助手

smart200 SLOT 2 · 8 模块

MicroWIN 无公开 API,靠引擎注入 + 离线解析补齐。写入前跑五关验证,每一关都能单独失败并回滚。

总览 / 环境工程分析符号表程序块交叉引用验证与部署在线通讯MicroWIN 界面
> 静态 → 导入编译 → 引擎真值 → 往返 → 落盘指纹
25 工具 · 双引擎 auto / v3 / v28

插件与预设

PLUGINS

三个对话智能体各挂自己的 MCP 作用域、技能目录与任务记忆,互不串台。

plc-tiaplc-codesysplc-smart200
mcp-scope · 按 server / prefix 隔离

远程协助

WEB ONLY

宿主包只在 web 子进程里提供 /api/screen/*,桌面端点击直接拉起浏览器。隧道对端永远无法自行开启——刻意的安全模型。

loopback / dsh-app: 管道

宿主桥 · 一条线挂所有平台

remote.tia HOST

callTool(server, tool, args) 的 server 是参数 —— 新增一个 MCP 平台不需要改任何宿主代码,只要在 profile 里装配一行 dsh-mcp-client。连接按 serverName 单例复用,面板与对话共用同一份进程。

> mcpConnections.ensure('smart200') → callTool('smart_doctor') → ok:true
%CMP

三平台对照 · 实测清单

工具数来自引擎 tools/list,不是文档估计值;模块数来自源码导轨常量。

工位 MCP serverName 工具 模块 工程载体 接口性质
TIA Portal V20 tia-portal-v20 86 9 .ap20 官方 Openness API
TIA Portal V21 tia-portal-v21 90 9 .ap21 官方 Openness API
CODESYS codesys 67 9 .project 脚本化 IDE 会话
S7-200 SMART smart200 25 8 .smart / .smartV3 无公开 API · 引擎注入
工具总数 268 = TIA 176(V20 86 + V21 90,双版本同时挂载)+ CODESYS 67 + SMART 25。 TIA 侧 schema 是当前最大 token 来源,三个预设已开启 PTC(run_code)折叠 —— 实测同任务 run_code 次数 4 → 1、模型往返 4 → 1。
FC90 · AGENT_LOOP

一个扫描周期:Agent Loop 即梯形图

输入映像 → 逻辑求解 → 输出映像。每一轮对话跑成一次确定性的扫描循环。

%I 用户任务 MCP 桥已挂载 审批门控 Q Q0.0 工具执行 %I 工具回执 Q0.1 更新上下文 %I 上下文 Token 预算 OK Q0.2 LLM 请求 LAD · cyclic interrupt · OB35
常开触点 = MCP 服务器挂载每个 server 由 profile patch 装配,连接按 serverName 单例复用,空闲 30 分钟回收。
串联联锁 = 审批与护栏写入 / 下载类工具串在回路里:未连接禁改、未编译禁下载,任一触点断开本周期不动作。
输出线圈 = 回执与事件Q0.x 全部落进诊断缓冲与任务记忆,可回放、可投影、可压缩。
%FAULT

已知边界 · 不粉饰

下面每一条都是实测得到的平台约束,它们直接写进界面,而不是藏在文档里。

引擎只认 MicroWIN V3smart200

本机两套并存:MWSmart.exe = V02.08.02.01,MWSmartV3.exe = V03.02.00.00。钩子按 V3 导出签名注入;对 V2 工程写入会把它转成 V3 容器,写前探测格式并告警。

snap7 在线层未经真机验证smart_plc_*

实测失败多为目标 IP 上没有 CPU,不是代码缺陷。但协议层未接真机验证过;写 PLC 不可逆,必须二次确认。

离线解析有版本门槛smart_analyze

V2 工程可离线解析,V3 加密工程读不了 —— 走引擎路径(smart_overview)不受此限。

预检不是权威判据smart_check_stl

启发式静态预检,权威结论在「验证与部署」的五关:静态 → 导入编译 → 引擎真值 → 往返 → 落盘指纹。

符号表只能改已有行名smart_set_symbols

引擎没有「新增变量表 / 删行」命令(新增行实测返回 6019)。新建带符号表的工程走 smart_deploy(project_path 留空, symbols=…)。

界面自动化会动你正在用的窗口smart_ui_*

MicroWIN 界面通道:项目树已实测;编译未实测。执行时会操作你当前打开的那个界面 —— 重要工程请先保存。

>_ 组态完成,请求切换 RUN。
三个工位 · 268 条真实工具 · 一条宿主桥
SPEC

设计规格

沿用参考稿的主控台令牌体系,新增背板 / 工位 / 告警三类组件,全部复用同一套变量。

--amber 主控色TIA 工位 · CTA · 通电母线
--cyan 数据色CODESYS 工位 · 工具计数
--green RUN/OKSMART 工位 · 成功回执
--red FAULT硬边界 · 不可逆操作
--bg 深色底非纯黑 · 浅色主题镜像
--surface卡片 · 终端窗 · 工位槽
--line 描边背板缝隙用 1px 网格
--text正文 · 15px / 1.65
字体:标题与终端用 ui-monospace / Cascadia Code / Consolas;正文中文用系统无衬线。圆角 8 / 12px;动效仅 transform / opacity / stroke-dashoffset,全部遵循 prefers-reduced-motion。浅色主题下主控色改用 #b8732e,其余令牌镜像提亮。 深链接:#benches · #bench-tia · #bench-codesys · #bench-smart。