首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何用Gemini 3.0开发自动编写PLC程序的App!

如何用Gemini 3.0开发自动编写PLC程序的App!

作者头像
Hello工控
发布2026-02-28 15:22:01
发布2026-02-28 15:22:01
750
举报
文章被收录于专栏:Hello工控Hello工控

目前,不论是大火的各种AI大模型,还是各类Agents,不知道大家对它们的看法如何?

AI到底是让你的开发效率提高了呢?还是让你更焦虑,反而效率变低了呢?

实际上,最近也在思考这个问题?既然AI躲不开,那么我们到底如何用AI?用好AI?真正地为我们所用?

我想简单的调查下,大家觉得AI真正要帮助你的是哪些具体事项?下面投票选项不一定完整,请在留言区补充哦!

我们这期重点分享下Gemini 3来开发PLC编程助手的相关实践经验,欢迎留言分享交流。

01、现状

不知道大家发现没有,AI的发展的变化实在是太快了,如果不是这个行业的,每天的新名词层出不穷,从ChatGpt、LLM、MCP、Skills、Agents、subagent等等:

包括这段时间的OpenClaw:

我看咱们有些朋友已经部署这款AI神器了,但是,重点还是它究竟解决了啥问题?这个值得我们共同去探索。

毕竟,工控行业里追求的是安全、稳定可靠。所以,这些新的AI概念和产品,必须要在安全的前提下去链接我们的行业资源。而不是一股脑的去使用!

02、自定义AI助手

我想了下,可以试试用目前的AI能力建构自己的AI助手。可能每个自动化行业的工程师都需要构建自己的AI助手。每个企业都有局部安全的AI事业部。

毕竟通用的AI并不一定能获取行业的专业知识,或者积累几十年的设备开发和工艺加工等行业经验数据。

所以,最合适的就是自己本地建立一个非常独立且在安全的情况下具备联网的功能。

这期我测试了Google Gemini来开发简单的PLC代码自动生成助手,目前看看效果如何。

开发过程极其简单,只需要对话框输入你要做的事情就可以,例如:本例就是开发一个AI自动编写PLC程序的App。它会按照这个需求自行思考和编辑:

我们等待一会,就会出现初始的版本:

我们可以看到,根据它自行分析的数据把常用的编程软件做出了罗列:

默认也是按照市场占有率和影响给出了简单排序,同时,语言也支持:

默认的是结构体,而且把SCL和ST结合在一起,虽然也支持梯形图,但是我们仔细看下小括号里的内容是ASCII码的形式:

所以,梯形图这种方式不是非常理想,毕竟无法直接复制粘贴,还是需要自己再画一遍,AI时代还是建议大家学学ST语言编程吧。

这里把ST代码也贴在这里,供大家评判:

代码语言:javascript
复制
FUNCTION_BLOCK "FB_Conveyor_Control"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      I_StartBtn : Bool;   // Start Button (Normally Open - Active High)
      I_StopBtn : Bool;   // Stop Button (Normally Closed - Active Low/Wire Break Safe)
      I_EStop : Bool;   // Emergency Stop Status (True = Healthy/Reset, False = Activated)
      I_ProductSensor : Bool;   // Photo eye/Sensor input (True when product detected)
      I_FaultReset : Bool;   // Optional: Reset button for timeout fault
   END_VAR

   VAR_OUTPUT 
      Q_ConveyorMotor : Bool;   // Motor Contactor Output
      Q_TimeoutFault : Bool;   // Fault indicator if sensor not triggered in time
   END_VAR

   VAR 
      Stat_IsRunning : Bool;   // Internal latch for motor running state
      Stat_TimeoutError : Bool;   // Internal latch for error state
      Inst_WatchdogTimer {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;   // IEC Timer Instance
   END_VAR

   VAR CONSTANT 
      C_TIMEOUT_DURATION : Time := T#10s;   // Constant for timeout limit
   END_VAR


BEGIN
// =============================================================
// REGION: Safety & Interlocks
// Logic to ensure machine is safe to operate. 
// E-Stop must be True (Healthy) and no active faults present.
// =============================================================

// Immediate shutdown if E-Stop is pressed (Input goes Low)
	IF NOT #I_EStop THEN
	    #Stat_IsRunning := FALSE;
	    #Q_ConveyorMotor := FALSE;
	    // Note: In a real SIL/PL rated system, E-Stop cuts power via hardware relay.
	    // This software logic is for status feedback and state cleanup.
	    RETURN; 
	END_IF;

// Fault Reset Logic
	IF #I_FaultReset AND #Stat_TimeoutError THEN
	    #Stat_TimeoutError := FALSE;
	END_IF;

// =============================================================
// REGION: Run Logic (Start/Stop Circuit)
// Standard 3-Wire Control Logic (Latch)
// =============================================================

// Start Conditions: Start Button Pressed, Stop Button NOT active (High), No Faults
	IF #I_StartBtn AND #I_StopBtn AND NOT #Stat_TimeoutError THEN
	    #Stat_IsRunning := TRUE;
	END_IF;

// Stop Conditions: Stop Button Pressed (Low) OR Fault occurred
	IF NOT #I_StopBtn OR #Stat_TimeoutError THEN
	    #Stat_IsRunning := FALSE;
	END_IF;

// =============================================================
// REGION: Watchdog Timer Logic
// Logic: If motor is running AND sensor is NOT seeing product, count up.
// If sensor sees product, the timer input goes false and resets current time.
// =============================================================

#Inst_WatchdogTimer(IN := #Stat_IsRunning AND NOT #I_ProductSensor,
	                    PT := #C_TIMEOUT_DURATION);

// If Timer finishes (Q goes high), trigger fault
	IF #Inst_WatchdogTimer.Q THEN
	    #Stat_TimeoutError := TRUE;
	    #Stat_IsRunning := FALSE; // Stop the motor immediately
	END_IF;

// =============================================================
// REGION: Output Assignment
// =============================================================

#Q_ConveyorMotor := #Stat_IsRunning;
#Q_TimeoutFault := #Stat_TimeoutError;

END_FUNCTION_BLOCK

03、可能形

AI员工,可能会嵌入在各种企业的自建服务器上,锁定在安全、可以掌控的环境里面,访问外网需要严格遵循某些准则。通用的AI助手,可能并不涉及核心的机密数据,反而可以吸取公网上的有效的数据。

当然,另外一种就是绑定自己的产品把一部分不涉及核心数据的设备的工艺、程序等等放出去,供其他AI所用。

但无论形式如何,怎样把AI融入到自己的工作或者整个企业流程中去,是未来必须要考虑且执行下去的事项。

参考链接:

【1】https://openclaw.ai/

【2】https://ai.google.dev/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hello工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档