🚀 专为自动化工程师打造的原生AI社区
✦AI赋能:用AI技术解决工程师的工作痛点
✦专业分享: 让技术应用更简单、更高效
✦技术伙伴:每位工程师身边的专属伙伴
本周一位博途之友的群友发表了一篇文章:AI自动生成基于C#的PLC通信测试软件---只需一句提示词!这个案例让我们感受到AI的强大,也需要深入思考一个问题:AI生成PLC代码的原理是怎样的?整理分享给大家。
已经发布的文章:
AI自动生成基于C#的PLC通信测试软件---只需一句提示词!

AI 生成代码和生成自然语言(比如写文章)的底层逻辑一致,核心是将代码拆解成一个个 “语言单元”(如关键字、变量名、符号),然后学习这些单元的排列规律,最终按照规律生成新的、符合语法和逻辑的代码序列。
一、核心步骤

步骤 1:数据准备 —— 喂给 AI 海量代码数据
数据源:公开代码库(GitHub、GitLab)、编程语言官方文档、开源项目、代码教程等;
数据处理:
清洗:剔除错误代码、无意义代码、重复代码;
格式化:统一代码风格(如缩进、命名),将代码和对应的自然语言描述配对(比如 “计算阶乘”+ 对应的 Python 代码);
分词:把代码拆成最小单元(Token),比如def、=、for、i、:都是独立 Token。
步骤 2:预训练 —— 让 AI “记住” 代码的语法和逻辑
AI 基于Transformer 架构(核心是注意力机制)进行预训练:
核心目标:学习 “给定前半部分 Token,预测下一个 Token 的概率”;
举例:当 AI 看到def factorial(n):,它会学习到接下来大概率出现if n == 1:,而不是for i in range(10):;
关键能力:
语法合规:掌握 Python/Java/JS 等语言的语法规则(比如 Python 缩进、Java 分号);
逻辑关联:理解 “变量定义→使用”“函数调用→参数匹配”“循环 / 条件的执行逻辑”;
场景映射:比如 “读取 CSV 文件” 对应pandas.read_csv(),“排序” 对应sorted()或sort()。
步骤 3:微调 —— 让 AI 更 “懂” 编程场景
预训练后的 AI 只是 “认识代码”,还需要微调来适配编程需求:
微调数据:人工标注的 “问题描述 + 最优代码”“代码错误 + 修正方案”“代码注释 + 重构”;
目标:让 AI 生成的代码不仅语法正确,还能解决实际问题、符合编程规范(比如命名规范、性能优化)。
步骤 4:推理生成 —— 根据你的指令造代码
当你输入 “用 Python 写一个计算斐波那契数列的函数”,AI 的生成过程:
解析你的自然语言指令,转换成 AI 能理解的 Token 序列;
基于预训练学到的规律,从第一个 Token 开始(比如def),逐个预测下一个最可能的 Token;
生成候选序列:AI 会生成多个可能的 Token(比如fib/fibonacci作为函数名),选择概率最高、逻辑最连贯的;
输出完整代码:把 Token 拼接成完整的代码片段。
步骤 5:优化 —— 修正生成的代码(可选但关键)
很多 AI 代码工具(如 Trae、GitHub Copilot)会额外做优化:
语法检查:用编译器 / 解释器校验代码,修正语法错误(比如少写的冒号、括号);
逻辑验证:运行简单测试用例(比如输入 n=5,检查斐波那契结果是否正确);
风格优化:统一缩进、命名,符合 PEP8(Python)/ 阿里巴巴 Java 规范等。
二、总结:
1、工作方式:从写代码到搭架构;
2、工作能力:一精多能。精让你深刻理解技术的架构;技术应用的复合性需要多能。

夜雨聆风