找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2528

积分

0

好友

351

主题
发表于 3 小时前 | 查看: 2| 回复: 0

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

WebDev Arena 排行榜对比

而在中文语境下,一款名为 OpenCode 的免费开源 AI 编程工具被很多技术自媒体推荐。本着能免费绝不放过的原则,我也亲自上手尝试了一番。我们这次主要聚焦于它在工业控制领域的应用,看看用它来编写 PLC 程序到底效果如何。

OpenCode Zen 终端界面

下面,我们就通过一个简单的例子来具体测试它的 PLC 编程能力!

OpenCode 简介

OpenCode 是一款开源的 AI 编程助手(AI Coding Agent),旨在将大语言模型的智能带到你的开发工作流中。它的核心特点是 “模型无关”“本地优先”

它的核心特点如下表所示:

OpenCode 核心特性说明

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

OpenCode 官网首页

ST 编程实战体验

我们还是以经典的 PID 控制器为例,一步步介绍如何使用 OpenCode 来生成完整的项目。整个过程全部由 AI 驱动完成。

项目生成的文件列表

首先,根据官网指引安装 OpenCode。安装完成后,在命令行(cmd)中直接输入 opencode 命令,或者在项目文件夹中打开命令行窗口执行:

Windows 命令提示符输入 opencode

输入命令后稍等片刻,即可进入 OpenCode 的交互式首页:

OpenCode 交互式终端主界面

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

AI 开始分析任务并思考

等待几分钟后,AI 就会完成整个项目的创建,并给出详细的项目报告:

AI 生成的项目结构与总结报告

已完成。让我总结一下我创建的完整 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 工具来实现与 AI 的深度集成(相关介绍可参考:是真的!现在不需要任何PLC编程基础,即可利用CODESYS MCP即可通过与AI对话的方式编写PLC程序了!)。

最后,我们打开 AI 生成的这个实际工程文件:

在 CODESYS 中打开生成的 PID 控制器项目

可以看到,项目打开后仍存在一些编译错误。这说明,即便有强大的 AI 代码生成能力作为辅助,开发者仍需要具备最基本的 ST 语言和 PLC 编程知识,才能有效调试和使用生成的代码。

功能拓展:多代理协作与代码评审

OpenCode 这类 AI 工具的另一个优势是支持多终端同时运行。我们可以开启多个会话,让不同的 AI 代理(Agent)使用不同的模型,发挥各自的特长来协作完成任务。

多终端同时运行 OpenCode

例如,我们可以让一个新的 AI 代理对上一位代理自动编写的 PLC 代码进行评审和打分。它的目标是评价上一个 Agent 生成的 PID 控制器项目。

AI 生成的 PID 控制器项目评审报告

最终,这个评审代理给出的综合得分是 78 分(满分 100)。这个分数不算特别高,因为它考虑的维度比我们通常想象的更加全面,涵盖了功能、安全、可维护性等多个方面。

项目评审的多维度对比表格

同时,AI 也给出了具体的、分阶段的改进建议:

分阶段的系统改进建议列表

从这种方式来看,如果把一个大型的 PLC 项目拆分成许多细小的模块或任务,让几十个具备不同专长的 AI Agent 同时开工,各自负责一部分,最后再由一个“总管”Agent 来做统筹和集成,理论上能极大地提升开发效率。

总结与思考

OpenCode 作为一款免费开源的 AI 编程代理,在辅助 PLC 编程,特别是 ST 语言开发方面,展现出了不错的潜力。它能够根据自然语言描述生成结构清晰、注释完整的项目代码,并且支持多代理协作来完成更复杂的任务,如代码评审。

然而,目前的实践也表明,它生成的代码并非“开箱即用”,仍需要具备相关领域知识的工程师进行审查、调试和集成。AI 更像是一位强大的初级助手,可以大幅提升“从零到一”的搭建速度,但项目的最终可靠性、安全性和性能优化,依然离不开人类的专业判断。

你对这种 AI 辅助 PLC 编程的方式怎么看?欢迎在 云栈社区 交流你的看法和实践经验。




上一篇:英伟达如何重仓AI推理市场?垂直整合与全栈协同战略解析
下一篇:SQL注入绕过与Tamper脚本编写实战:利用MySQL内联注释
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 18:52 , Processed in 0.257730 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表