1. 从工艺需求到可运行PLC:AI辅助编程的真实链路
如果你是一名电气工程师,最近大概率会被各种“AI写PLC程序”的演示刷屏。但真正落到TIA博途里,能一次编译通过、仿真跑通、变量命名规范的案例并不多。我这次完整走了一遍从KIMI梳理控制需求,到Trae AI生成SCL代码,再导入TIA博途做仿真验证的全流程,中间踩了几个坑,也总结出一套可复制的配置骨架。核心检索词先交代清楚:KIMI负责把模糊的工艺描述转成结构化控制需求,Trae AI负责在VS Code里生成符合IEC 61131-3的SCL代码,TIA博途负责导入、编译和仿真。适合谁?适合手头有博途V16以上、会基本梯形图、但想快速搭建程序原型的电气工程师。整套流程下来,一个中等复杂度的功能块从需求到仿真验证,大约40分钟。下面我把每一步的命令、配置、参数和排错都摊开讲。
2. TaoToken前置:统一Key与API通道的配置
在开始之前,先解决一个实际问题:KIMI和Trae AI各自需要配置API Key,如果你还打算在VS Code里用其他AI插件,Key的管理会很乱。我习惯用TaoToken做统一入口,它把模型对话、Coding Plan、API Keys和接入文档都放在一个控制台里,省得来回切换。
2.1 获取API Key与模型对话入口
打开TaoToken官网,注册后进入控制台。左侧菜单里找到“API Keys”,新建一个Key,复制保存。这个Key后面会同时用于KIMI的API调用和Trae AI的模型配置。如果你只是想先验证模型能不能理解SCL语法,可以直接用“模型对话”页面,把一段SCL代码贴进去问它“这段代码在TIA博途里编译会报什么错”,实测下来它对SCL的关键字冲突和数据类型匹配判断得挺准。
2.2 Coding Plan与接入文档
如果你打算长期用AI辅助编码,建议看一下Coding Plan,它按调用量计费,比单次买Token划算。接入文档里有完整的API endpoint和参数说明,地址是https://taotoken.net/api,注意这个地址不加UTM参数,直接用于代码里的base_url。文档里还给了ClaudeCodeAnthropic的接入示例,如果你用Claude Code做代码审查,可以直接参考。
注意:TaoToken的API通道只负责模型调用,不涉及任何网络代理配置。所有请求都是标准的HTTPS,你在代码里填好base_url和Key即可。
3. 可复制配置:VS Code + Trae AI + Siemens SCL环境搭建
这一章是实操核心。你需要装三个东西:VS Code、Trae AI插件、Siemens SCL插件。博途本身不参与代码生成,只负责导入和编译。
3.1 VS Code与插件安装
VS Code官网下载安装,这一步跳过。安装完成后,打开扩展面板,搜索“Trae AI”并安装。接着搜索“Siemens SCL”,这个插件提供SCL语法高亮和基本的语法检查。两个插件都装好后,重启VS Code。
3.2 Trae AI的模型配置
Trae AI默认可能用内置模型,但为了统一走TaoToken通道,你需要在设置里找到“Model Provider”或“API Configuration”。填入:
- Base URL:
https://taotoken.net/api - API Key: 你刚才在TaoToken控制台复制的Key
- Model: 选择KIMI对应的模型标识(具体名称看TaoToken文档里的模型列表)
配置完成后,在VS Code里新建一个.scl文件,输入一段简单的SCL代码,比如:
FUNCTION_BLOCK FB_Test VAR_INPUT Start : BOOL; END_VAR VAR_OUTPUT Run : BOOL; END_VAR BEGIN Run := Start; END_FUNCTION_BLOCK然后右键选择“Trae AI: Explain Code”,如果它能正确解释这段代码的功能,说明通道通了。
3.3 KIMI侧的需求梳理配置
KIMI我用的是网页版,没有走API,因为需求梳理阶段需要反复对话,网页版更顺手。但如果你想把KIMI也接入统一通道,可以在TaoToken的模型对话里选KIMI模型,效果一样。关键操作是:把工艺流程图或者时序描述整理成文字,发给KIMI,让它输出一张“输入-输出-中间变量”的对照表。比如我这次做的是一个自动分拣系统,KIMI输出的需求表如下:
| 变量名 | 类型 | 说明 |
|---|---|---|
| StartBtn | BOOL | 启动按钮 |
| Sensor1 | BOOL | 入口光电 |
| Cylinder1 | BOOL | 推料气缸 |
| Conveyor | BOOL | 传送带电机 |
| Count | INT | 分拣计数 |
这张表后面直接作为Trae AI生成SCL代码的输入。
4. SCL代码生成与TIA博途导入:完整实例
4.1 用Trae AI生成FB块
在VS Code里打开Trae AI的对话面板,输入以下提示词(我试过,这个模板生成的成功率最高):
你清楚SCL编程吗?请用SCL语言生成一个FB块,功能是自动分拣控制。 输入:StartBtn(BOOL), Sensor1(BOOL), Sensor2(BOOL) 输出:Cylinder1(BOOL), Conveyor(BOOL), Count(INT) 要求: 1. 使用IEC 61131-3标准语法 2. 变量命名用英文,不要用T1/T2这种定时器符号 3. 包含一个TON定时器,延时2秒 4. 输出完整的FUNCTION_BLOCK结构Trae AI生成的代码大致如下(我截取了核心部分):
FUNCTION_BLOCK FB_Sorting VAR_INPUT StartBtn : BOOL; Sensor1 : BOOL; Sensor2 : BOOL; END_VAR VAR_OUTPUT Cylinder1 : BOOL; Conveyor : BOOL; Count : INT; END_VAR VAR Timer1 : TON; Step : INT := 0; END_VAR BEGIN IF StartBtn THEN Conveyor := TRUE; END_IF; CASE Step OF 0: IF Sensor1 THEN Timer1(IN := TRUE, PT := T#2S); IF Timer1.Q THEN Cylinder1 := TRUE; Step := 1; END_IF; END_IF; 1: IF Sensor2 THEN Count := Count + 1; Cylinder1 := FALSE; Step := 0; END_IF; END_CASE; END_FUNCTION_BLOCK生成后,把文件保存为FB_Sorting.scl,编码格式必须选UTF-8 with BOM。这个坑我踩过:如果存成UTF-8无BOM,导入博途后中文注释会变乱码,变量名也可能识别异常。
4.2 导入TIA博途
打开TIA博途,新建项目,添加一个S7-1200或S7-1500的CPU。在“程序块”上右键,选择“从外部源生成块”,选中刚才的.scl文件。博途会自动解析并生成一个FB块。如果代码里有语法错误,这一步会弹窗提示,你需要回到VS Code里让Trae AI修正。
导入成功后,在OB1里调用这个FB块,分配背景数据块。外部变量连接:把StartBtn、Sensor1、Sensor2映射到PLC的输入地址,Cylinder1、Conveyor映射到输出地址。
4.3 仿真验证步骤
博途自带PLCSIM,不需要额外硬件。操作顺序:
- 编译整个项目,确保无错误。
- 启动仿真,下载程序到PLCSIM。
- 在监控表里添加输入输出变量。
- 手动置位StartBtn为TRUE,观察Conveyor是否变为TRUE。
- 置位Sensor1为TRUE,等待2秒,观察Cylinder1是否变为TRUE。
- 置位Sensor2为TRUE,观察Count是否加1,Cylinder1是否复位。
实测下来,只要代码生成时提示词里强调了“使用IEC标准定时器”,仿真就能一次跑通。如果出现定时器不动作,检查TON的背景数据块是否在FB内部声明。
5. 本篇常见错排查
5.1 导入博途后变量名变成乱码
原因:SCL文件编码不是UTF-8 with BOM。解决:在VS Code右下角点击编码,选择“通过编码保存”,选“UTF-8 with BOM”,重新导入。
5.2 生成代码里出现T1、T2等三菱风格定时器
原因:Trae AI没有明确SCL编程上下文,默认套用了其他PLC品牌的模板。解决:在对话开头加一句“你清楚SCL编程吗?请使用西门子TIA博途的IEC定时器TON”,然后再描述需求。
5.3 编译报错“未定义的变量”
原因:FB块内部使用了未在VAR区声明的变量。解决:让Trae AI重新生成,提示词里加“所有中间变量必须在VAR区声明”。
5.4 API调用返回401
原因:TaoToken的Key填错,或者base_url少了/api。解决:检查https://taotoken.net/api是否完整,Key是否复制了空格。
5.5 仿真时输出不动作
原因:OB1里没有调用FB块,或者背景数据块未分配。解决:在OB1里拖入FB块,系统会自动生成背景DB,确认调用后编译下载。
6. 语义一致CTA:按场景选择入口
如果你在排障或接入阶段卡住了,优先看API Keys和接入文档,那里有完整的Key管理和endpoint说明。如果你只是想验证KIMI或Trae AI对SCL语法的理解能力,直接进模型对话,贴一段代码问它编译问题。如果你打算长期用AI辅助编码,甚至跑Agent自动生成多个FB块,Coding Plan更合适,按量计费不浪费。三个入口都在TaoToken控制台左侧菜单,按需点进去就行。
最后说一个实用技巧:每次让Trae AI生成代码前,先把KIMI整理的需求表贴进去,再补一句“请按这个变量表生成SCL”,这样生成的代码变量命名和类型完全对齐,导入博途后基本不需要手动改。我这次从需求到仿真跑通,只改了定时器的时间参数,其他一次通过。