DeepSeek DSH 接博途:插件装完,四句对话配好并验通

DeepSeek DSH 装完插件不用敲命令:把网关地址说给它,它自己配、自己连、自己回报。

分享
DeepSeek DSH 接博途:插件装完,四句对话配好并验通

在 DeepSeek 桌面版(DeepSeek Harness,下文简称 DSH)里接 TiaLink,全程不需要碰配置文件和终端:插件装完,剩下的都是对话——你把网关地址说给它,它写进自己的配置,自己去连,再把结果报回来。

真正需要你守住的只有一条:确认它真的动了工具,而不是凭记忆给你一段操作建议。 判断方法很简单,看它有没有报出你屏幕上的工程名和设备型号。

一、先确认前置

  • 一台装了博途 V19 或 V20 的 Windows,当前用户在 Openness 用户组里;
  • TiaLink 装在同一台(网关必须与博途同机,客户端可以在别的机器上);
  • DSH:桌面端,或 dsh web 打开的网页界面。

二、装插件:界面三步

  1. 点 DSH 左上角【插件】;
  2. 弹出框里输入 dsh-tiaforge;
  3. 点安装。

装完模型侧就能看到 4 个已接入的服务,全程不用开终端。(要写进脚本或配置的人再走命令行:dsh plugin --profile web add dsh-tiaforge,桌面端把 web 换成 desktop 并用它自带的 CLI。)

三、第一句:把网关交给它

在对话框里说:

TiaLink 网关在 http://192.168.1.110:8080/mcp。把它配好,然后连一下我现在打开的工程,告诉我连的是哪个工程、有几台设备。

它会做三件事:把地址写进配置 → 让你重启一次 DSH(连接是在启动时建立的,值改了要重连)→ 重启后自己去连,把结果报回来。

你要核对的只有三样:

它说的 应该是 对不上时
是否连上博途 已连上 网关没挂到博途上,去 TiaLink 控制台看它打开的是哪个工程
工程名 与你博途里打开的一致 工程开错了
设备数 与屏幕上设备视图的数量一致 网关连的是另一个实例

这一句过了,链路就通了。 背后改的其实就是网关地址这一个值,你不用手写;但知道它叫什么,出问题时能一句话问清楚:"现在用的网关地址是哪个?"

如果它回 401,说明这台网关开了令牌校验:去 TiaLink 控制台复制一个令牌直接贴给它,让它重写配置、再重启一次。贴进对话的代价是令牌进了聊天记录——用完在控制台换一个即可,换完旧的立即失效,把新的再贴一次。

四、后三句:验通

① 能力进来了吗

你现在能调用 TiaLink 的哪些能力?把清单列出来,一共多少项。

应当是 34 项。数量对不上,或者它说"没有查到相关服务",先别往下走。

② 它看到的是不是你的工程

把这个工程里的设备列出来:名称、型号、插在哪个槽位。

拿这张表和博途的设备视图逐行对。对上了,说明它读的是同一个工程;对不上,上一节那三样里一定有一个是错的。

③ 读路径通不通

只读:把 Main 这个块的内容读出来,不要改任何东西。

它应当去读这个块,把内容回给你(SimaticML 片段或块内代码)。这一步只读,读错了也不会破坏什么。

三句都过,才算验通。

五、真任务:三句话

下面每句都对应真机上的实际调用与耗时(博途 V19、空工程、CPU 1516-3 PN/DP),可以当基线用。

说给它的话 它会做的事 实测耗时
"先看工程状态,再把设备、块、变量表都列出来,只读,不要改任何东西" 看状态 → 列设备 → 列块 每步 <1 s
"新建设备 PLC_1,型号 6ES7 516-3AN00-0AB0/V1.1,PLC 类型" 查这个订货号 → 建 CPU 建 CPU 34.1 s
"把这段 SCL 导入成 FB,设备 PLC_1,然后只编译这个块" 导入 SCL → 编译该块 → 导出读回 导入 11.8 s(FB)/ 0.6 s(OB、DB),编译 1.4 s,导出 0.1 s

做完第三句,你要的东西是编译结果 0 错 0 警,以及导出的那份块文件——这是"改完了"的凭据,比它自己的描述可信。

耗时这一列还有一个用途:让你判断"慢"是不是正常。加 CPU 三十几秒、导入十几秒是常态,别在这时候打断它;同一台机器上重复跑应该稳定在同一个量级,突然慢十倍,通常是博途自己在忙。

六、它卡住的时候怎么问

先让它贴原话。 模型爱把报错总结成"编译失败,可能是配置问题",那样你就没法查。直接说:

把工具返回的原文贴出来,不要总结,也不要改写。

拿到原文再追问,七类问题几乎覆盖全部:

它说的话 真实原因 你回它什么
"都返回 401" 令牌没配、拼错,或换过之后没更新 贴新令牌,让它重写配置,重启
"连不上 / 拒绝连接" 网关没起,或地址写成了本机 确认工控机上 TiaLink 在跑,地址换成那台的 IP
"调用超时" 一次让它做的事太多 同一句里只放一个动作,先只建 CPU,别连着导入
Inputs or outputs are used that do not exist in the configured hardware 地址写到了机架上不存在的 I/O 点(裸 CPU 上写 %Q0.0 必踩) 让它改成 %M 区再编译;这是配置不匹配,不是逻辑错
区域 VAR 不可用于 OB 类型的块 OB 里写了静态变量 让它先建全局单实例 DB,再在 OB1 里调用
设定值"VERSION"无效 实例 DB 里写了 VERSION FB/OB 可以带版本号,实例 DB 不行
Block 'Main' is inconsistent (not compiled) 上一次编译失败,块处于不一致状态 先编译这个块或整 PLC,再导出

后四条不是环境问题,是 SCL 在博途里的规则——模型不知道,它写的程序会踩,工具会原话告诉它,但它得愿意再读一遍。 所以"贴原文"这个习惯比任何提示词模板都有用。

七、三条安全习惯

  1. 先拿 scratch 工程跑通。 空工程或复制一份,把第三到第五节走一遍,确认每个判据都对得上,再回真实项目。
  2. 一次一个块。 "改一个 FB 并编译"是可验收的;"把这个项目重构一下"没有对照物,出错也无从定位。
  3. 改动前先让它导出一份。 导出的块文件就是回滚点;写入工程前再让它确认一次有没有未落盘的改动,能区分"还在内存里"和"已经写进工程"。

八、边界

许可未到位时网关只读:能读工程、看块、导文件,写操作会被拒。这本身是一种用法——先只读地把老工程摸清楚,再决定动不动手。

DSH 侧是 developer preview,版本会破坏性变更,插件靠版本声明卡范围,客户端升级后装不上是正常现象;报 ERESOLVE 时先看这一点,别先怀疑网络。

手边还没有装博途的机器,也可以先确认"插件 + 令牌 + 模型会调工具"这条链:把文档检索那个服务配上,问"LAD 和 FBD 的 TON 参数有什么不同"。合格的回答会先去查文档再来答,而不是直接背——那条链我们验过,两个 TON 的引脚定义它查得出来。


相关阅读:Claude Code 接博途:从空工程到跑通仿真的全链路(同一批能力的完整会话记录)| AI 驱动的 PLC 程序开发:WorkBuddy × TiaLink | MCP 是什么 | AI × 工业 / PLC 完全指南

想自己跑一遍:

来源与版本:TiaLink 1.3.0.0(能力清单、耗时、报错原文均由其返回);博途 V19 / Openness 19.0;dsh-tiaforge 0.1.2;DSH npm latest 0.2.1-rc.5。调用记录来自 2026-10-27 的实机运行。

本文由汇智网原创整理,转载请注明出处。AI 生成的 PLC 程序必须经人工复核后才能用于生产。