程序聚合 软件案例 AI西门子PLC代码生成器

AI西门子PLC代码生成器

2026-07-13 05:29:57
行业:工业互联网、人工智能
载体:网站、算法模型
技术:Node.js、TypeScript、Tailwind CSS

业务和功能介绍

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型号。点生成等几秒,大模型出初稿。工具自动修一遍语法错误,拷走拿去编译。想再改可以手动编辑或者对话精修。从需求到能编译的代码,快的就几分钟。

项目实现

1. 整体架构和设计思路
整个系统分三层。最底层是大模型调度层,用TypeScript写了一个统一的dispatcher,同时接了DeepSeek、Gemini、Qwen三个模型,哪个出活稳定用哪个,支持流式输出给前端实时展示。中间层是核心纠错管线——也是纯TypeScript实现,不依赖任何AI推理。L1用栈结构做关键字配对校验,19种结构关键字的状态转移表驱动;L2用规则引擎做词法级修复,11类错误按一对一映射去匹配替换。两层都是纯函数,同样的输入永远出同样的结果。最上面是React前端,Vite构建,Tailwind CSS做界面,Framer Motion做动效,浏览器里直接写需求看代码。后端Express扛API请求,natapp隧道公网暴露,前端SSE长连接接收生成进度。
2. 我负责的模块和结果
我主要做了核心纠错管线——L1栈式校验和L2规则引擎,还有整个后端的API层和SSE流式管道。L1这边,定义了19种结构关键字的栈匹配规则表,支持IF/CASE/FOR/WHILE/REPEAT五类控制流嵌套,以及FUNCTION_BLOCK、VAR区段等程序单元的配对校验。在47个工业场景样本上跑下来,结构错误全检出,缺失关键字自动补全位置准确。L2规则引擎覆盖了11类高频错误,其中8类自动修复准确率100%——因为都是确定性映射,不存在误判。3类告警(变量活性、定时器校验、安全模式)在47个样本中触发了[待实测]次。赋值修复的三重约束设计保证了不改变任何布尔表达式真值,零副作用。后端API层撑住了并发生成、流式输出、会话管理这些需求,单次生成延迟控制在LLM响应时间+后处理50ms以内。
3. 遇到的难点和解决方案
最大的坑是等于号的替换。SCL里等于号有三个身份:赋值应该用:=(motor = TRUE → motor := TRUE),比较应该用=(IF x == 1 → IF x = 1),连续赋值a:=b:=c里已经是:=。一刀切替换必定引入逻辑错误。最后的方案是三重约束:先判断当前行是不是条件行(IF/ELSIF/WHILE/UNTIL开头),非条件行才把=改:=,条件行只把==改=,已经是:=的不管。这样保证所有布尔表达式的真值不变。第二个坑是管线顺序——L1补全缺失关键字会改变行号偏移,如果L2先跑了再补L1,分号插到错行。结论是强制L1优先,且两层之间不做任何缓存行号的跨层引用。第三个是SSE超时,LLM调用有时候很慢,浏览器端超时断开。加了TCP Keep-Alive和10秒心跳,隧道不断,连接不断。

示例图片视频


Cambridge
30天前活跃
方向: 爬虫/脚本-爬虫/脚本、后端-Python、
交付率:100.00%
相似推荐
Web 项目源码精简部署与域名切换
一、背景与目标 客户需要进行域名更换及服务器替换,要求对现有网站源码进行清理和重新部署。核心目标是剔除冗余文件以减小体积,并确保登录、注册等基础核心接口在新环境下响应正常,按时(7月31日前)完成上线。 二、功能模块 1.代码清洗: 扫描并删除项目中的 .git 历史文件夹、临时日志文件、无用图片及备份文件,精简代码体积。 2.环境重构: 在新服务器上配置 Web 服务器(Nginx/Apache)及运行语言环境。 3.功能验证: 重点验证用户鉴权模块(登录/注册)及数据库连接是否正常。
南方电网调度平台
立项背景和目标:在电网调度运行中,电话调度是调度中心与各电厂、变电站及现场作业人员联络的核心通道,承载故障报修、调度指令下达、操作通知等关键业务。传统电话调度依赖人工接听、纸质记录,存在记录效率低、录音难追溯、指令缺乏闭环等问题。为此立项研发本调度平台,目标是实现调度业务的在线化、流程化和可追溯,保障电网安全稳定运行。 软件功能、核心功能模块:平台涵盖电话调度、调度工单管理、运行监视、通讯录管理、统计分析等核心模块。其中电话调度模块提供:与调度软交换(CTI)对接、来电实时弹屏并展示来电单位与历史工单;通话中一键创建工单、录音与工单自动关联;指令"下达—复诵确认—执行反馈—确认归档"全流程管理;通话录音存储、检索与回放;未接来电提醒与交接班日志;通话量、指令执行情况等多维统计分析。 业务流程、功能路径:来电接入→系统识别号码并弹屏显示单位归属及历史联系记录→调度员接听并登记关键信息;若为故障报修,则一键生成故障工单,流转至现场处理并反馈;若为指令下达,则生成调度指令票,受令人复诵确认,执行完毕后回令汇报,调度员确认归档。全过程录音自动挂接,形成"电话—工单—录音"闭环,实现调度业务全链路可追溯。
企业级CRM数据清洗与迁移工具-DataBridge(个人演示项目)
本案例为个人演示项目,面向中小企业更换CRM或整合多来源客户资料时的数据整理需求。用户可导入Excel或CSV文件,配置字段映射规则,完成手机号、邮箱和公司名称标准化,并按组合条件识别重复记录;系统随后展示异常数据、冲突字段和处理建议,用户确认后可导出目标CRM可直接导入的数据文件及清洗报告。整个流程覆盖导入、预览、映射、去重、校验、修复和导出,重点降低人工反复核对带来的遗漏与时间成本。
高性能C++ HTTP服务器-Aether
对标Nginx核心能力自研的C++ HTTP服务器,可用于静态资源服务、API网关与高并发Web后端。核心功能:①主从Reactor事件驱动架构,支持Keep-Alive与HTTP Pipelining;②并发连接管理,空闲连接超时自动回收;③令牌桶限流抵御恶意流量;④异步双缓冲日志系统,自动滚动不阻塞业务线程。附完整压测数据与148条断言测试套件。
水务系统
1、水务大屏各数据指标展示,数据指标后台管理,项目管理流程处理; 2、经营数据大屏、生产信息大屏、人力资源大屏、资产管理大屏、技术科创大屏; 3、基础数据管理、项目管理、合同管理、工作台(我的项目、我的任务、我的日程、公告/消息)、定制化报表、文档管理;
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服