AI西门子PLC代码生成器
1. 为什么要做这个)
PLC工程师写SCL代码有个很烦的事——语法规矩特别多。等于号在C语言里是==,在SCL里是=。赋值在别处用=,SCL非得用:=。IF后面忘了END_IF,CASE漏了ELSE,编译器只告诉你错了,不告诉你哪错,更不会帮你改。一个工程师来回编译、报错、猜、改能折腾很长时间。后来发现大模型也能写SCL,但写出来的更离谱——&&、!=这些C语言习惯全带进来,true/false小写不认,IF/CASE各种缺胳膊少腿。思路很简单:既然LLM犯的错就那么几类,每类长什么样我们也知道,写一套固定规则帮它改就行了。不用重新训练模型,写死规则,来一个修一个,结果永远确定。
2. 能干什么
拆成四块:第一,让大模型写代码。用大白话描述控制需求,背后接了好几个大模型可以换着用。第二,帮它补骨架。LLM经常忘了关IF、关CASE,用一个叫下推自动机的方法跟踪成对关键字,哪缺了自动在正确位置补上。本质是聪明的括号匹配,但能处理嵌套——IF里套CASE,正则搞不定,必须用栈。第三,帮它改小毛病。&&改AND,!=改<>,true改TRUE,一共11种常见错误,8种自动改,3种标记提醒。改等于号最危险——在IF条件里它是合法比较符不能瞎改,设了三层保护确保不破坏逻辑。第四,浏览器打开就能用,代码直接复制到TIA Portal编译。
3. 怎么用
三步:网页上用大白话写控制逻辑,选PLC型号。点生成等几秒,大模型出初稿。工具自动修一遍语法错误,拷走拿去编译。想再改可以手动编辑或者对话精修。从需求到能编译的代码,快的就几分钟。
工业互联网
人工智能