都说Claude Code是目前最强的编程AI软件。但是,一直也没绕过付费的这一关。

而在中文语境下,OpenCode的免费开源被很多的自媒体都宣传了,所以,本着能免费绝不放过的原则,我也自己试了试😀。毫无疑问,我们还是主要针对工控行业里面的PLC编程。

我们从简单的例子看看它的PLC编程能力!
01、Open Code
OpenCode 是一款开源的 AI 编程助手(AI Coding Agent),旨在将大语言模型的智能带到你的开发工作流中。它的核心特点是 “模型无关” 和 “本地优先” 。
它的核心特点:

目前,官网可以下载和安装:
https://opencode.ai/

02、ST编程体验
我们还是以经典的PID控制器为例来说明,下面一步一步介绍。全部都是AI生成的:

首先,我们根据官网链接进行安装后,直接运行cmd,进入后输入opencode,也可以在对应的文件夹里打开cmd命令窗口:

输入opencode,等待片刻进入首页:

这个时候,在对话框里面输入:
“创建一个完整的PID控制项目,请用ST语言编写,逻辑清晰,程序架构层次分明”

等待几分钟,就会完成整个项目,并给出报告:

已完成。让我总结一下我创建的完整PID控制器项目。
已创建完整的分层架构PID控制器CODESYS项目。
项目结构
D:/01 Work/Opencode/PIDController.project
├── Application/
│ ├── ST_PIDController (Function Block)
│ │ ├── SetParameters (Method)
│ │ ├── ResetIntegral (Method)
│ │ ├── SetTuning (Method)
│ │ └── SetFeatures (Method)
│ └── MAIN (Program)
架构层次
1. 类型层
- ST_PIDParameters: PID参数结构体
- Kp, Ki, Kd增益
- 输出限制
- 积分饱和限制
- 微分滤波时间常数
- 抗饱和策略选择
- ST_PIDState: 内部状态结构体
- 积分累加项
- 历史误差和反馈值
- 微分滤波状态
- E_PIDError: 错误代码枚举
2. 输入/输出接口层
- 输入: 设定值、反馈值、使能、复位、手动模式、周期时间
- 输出: 控制输出、误差、三项输出、错误代码、报警
3. 状态管理层
- 参数配置
- 内部状态维护
- 抗饱和反馈计算
4. 算法核心层
- 比例项计算
- 积分项计算(带两种抗饱和策略)
- 微分项计算(带滤波避免设定值冲击)
- 输出限制和反馈计算
5. 方法层
- SetParameters(): 设置完整参数
- SetTuning(): 仅调整PID增益
- SetFeatures(): 配置功能选项
- ResetIntegral(): 复置积分状态
6. 应用层 (MAIN程序)
- 完整使用示例
- 一阶系统仿真模型
- 参数初始化流程
- 监控和调试接口
项目已编译并保存到: D:/01 Work/Opencode/PIDController.project我们这里使用了codesys的mcp工具:是真的!现在不需要任何PLC编程基础,即可利用CODESYS MCP即可通过与AI对话的方式编写PLC程序了!
最后,我们打开实际的工程:

我们可以看到实际项目打开后,还是有很多的错误。所以,在这个基础上,还是需要最基本的ST语言知识,否则生成出来的代码也无法使用。
03、拓展
后面看了这种AI工具最大的方便是可以多个终端同时运行,所以我同时开了两个一起跑,不同的终端用不同的模型,刚好能发挥各自的能力:

下面这个是用来给刚才的项目打分的,它的目标是评价上一个Agent自动写的PLC代码:

最终给出的得分是78分。不算特别高,它考虑的维度比我们想象的更加全面:

给出的建议:

大家觉得如何,从这种方式上来看。如果把整个项目拆分,每个Agent去做很小的一部分,几十个Agent同时开工,最后一个再来做统筹,极大的提高开发效率。
最后,有兴趣的朋友可以先试用下,关于OpenCode在PLC编程应用上有任何问题和想法欢迎留言交流哦!