基于KIMI与Trae AI自动生成TIA博途PLC程序:从SCL代码到仿真验证的完整实例

发布时间:2026/9/29 8:35:01
基于KIMI与Trae AI自动生成TIA博途PLC程序:从SCL代码到仿真验证的完整实例 1. 从工艺需求到可运行PLCAI辅助编程的真实链路如果你是一名电气工程师最近大概率会被各种“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/apiAPI Key: 你刚才在TaoToken控制台复制的KeyModel: 选择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输出的需求表如下变量名类型说明StartBtnBOOL启动按钮Sensor1BOOL入口光电Cylinder1BOOL推料气缸ConveyorBOOL传送带电机CountINT分拣计数这张表后面直接作为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是否加1Cylinder1是否复位。实测下来只要代码生成时提示词里强调了“使用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”这样生成的代码变量命名和类型完全对齐导入博途后基本不需要手动改。我这次从需求到仿真跑通只改了定时器的时间参数其他一次通过。