单位 6 / 9

工业自动化和PLC编程

收益:

  • 能够使用 AI 生成梯形图逻辑和结构化文本 (ST) 结构作为草稿
  • 能够借助人工智能配置安全电路、联锁装置和状态机
  • 能够根据 I/O 映射和安全要求验证 AI 生成的 PLC 逻辑

工厂领域的可靠性名称是PLC(可编程逻辑控制器)。输送机、机器人单元、灌装线、压力机;全部由PLC控制。 PLC编程与桌面软件截然不同:梯形逻辑(LD)是一种模仿继电器逻辑的可视化语言,而结构化文本(ST)是一种类似Pascal的文本语言;两者均在 IEC 61131-3 标准中定义。在这种环境下,最重要的不是功能而是安全;因为逻辑错误可能会在错误的时间关闭印刷机,从而危及操作员。人工智能有助于生成梯形图和 ST 草稿、构建状态机和记录逻辑。然而,安全电路、联锁和最终验证是工程师的责任,不能委托给人工智能。在本单元中,我们将介绍如何使用 AI 构建和验证 PLC 逻辑。

PLC的工作逻辑:扫描周期

PLC 不仅仅运行代码一次就完成了;它执行连续的扫描周期。在每个循环中:(1) 读取所有输入,(2) 从上到下执行逻辑,(3) 更新所有输出。这个循环持续几毫秒并无限重复。在编写 PLC 逻辑时,此行为会产生严重后果:

  • 输出在循环结束时更新;如果您在循环内的多个位置为输出分配一个值,则最后一个分配优先。
  • 每个周期逻辑都从头开始工作;因此锁存器或状态变量用于“记住”状态。
  • 如果延长扫描时间,可能会错过快速事件;关键事件由硬件中断或高速计数器捕获。
提示:将 PLC 逻辑写入 AI 时,请说“考虑扫描循环行为,对同一输出的分配没有冲突,使用锁存器/状态机进行状态”。人工智能有时会像桌面逻辑一样思考并跳过扫描行为。

梯形图逻辑和结构化文本

相同的逻辑可以用两种语言编写。一个简单的例子:按下启动按钮时电机启动,按下停止按钮时电机停止并自锁。

LADDER(文本显示):启动停止引擎---| |------|/|-------------( )--- | 发动机|---| |------+ (电机触点保持自身 -> 密封)说明:按下启动键时,发动机通电;电机通过其自身的触点(密封)维持电流。当按下停止 (NC) 时,链条被切断。

(* 与结构化文本相同的逻辑 *)IF Start AND NOT Stop THEN Engine := TRUE;END_IF;IF Stop THEN Engine := FALSE; (* Stop 始终优先 *)END_IF;(* 注意:Stop 按钮物理连接到 NC(常闭);因此,如果电缆断裂,Stop=FALSE 并且系统切换到安全侧。*)

这里的安全细节至关重要:停止按钮物理连接为常闭 (NC)。因此,如果发生电缆断裂或接触故障,信号将被切断,系统将进入“停止”方向(故障安全)。如果连接 NO(常开),则当电缆断裂时,停止器将不会运行——这是一种危险的无声故障。即使AI代码在逻辑上看起来是正确的,但这种物理连接的决定取决于工程师。

安全:急停、锁定和故障安全

工业自动化的安全不是一个可以“用软件处理”的问题;它是硬件和软件的分层协作。基本原则:

原则

含义

应用

故障安全

失败应该通向安全的一面

常闭触点,故障=停止

冗余

关键功能双通道

两个联系人,交叉监控

联锁

预防危险情况

门打开时机器不运行

急停

独立急停

在硬件层面,独立于PLC

关键点:急停不仅仅取决于软件。与安全相关的紧急停止通常也会通过安全继电器或安全 PLC 在硬件级别中断;标准 PLC 软件是在此之上的附加层。 ISO 13849(机器安全)和 IEC 62061 为这些设计提供了框架。

注意:不要假设 AI 生成的急停或锁定逻辑“软件就足够了”。安全功能根据相关标准(ISO 13849 PL、IEC 62061 SIL)进行设计,包括硬件层并通过风险评估进行验证。该评估是工程师和组织的责任;人工智能只能生成大纲和清单。

状态机

复杂的自动化逻辑是用状态机而不是混乱的 if-else 来组织的:系统找到某些状态(空闲、启动、运行、停止、错误)并继续执行定义的转换。该结构既可读又可验证。

(* 简单加油站状态机 *)CASE Case OF 0: (* BOSTA *) IF StartButton AND CoverClosed THEN Case := 10; END_IF; 10: (* FILL *) 阀门 := TRUE; IF LevelFull THEN 阀门 := FALSE;状态:= 20; END_IF; 如果盖子未关闭,则阀门 := FALSE;状态:= 90; END_IF; (* 安全 *) 20: (* 排水 *) 净化 := TRUE; IF LevelEmpty THEN 空 := FALSE;状态:= 0; END_IF; 90: (* 错误 *) 阀门 := FALSE;空:=假; (* 所有执行器都是安全的 *) IF ResetButton THEN Status := 0; END_IF;END_CASE;

在这种结构中,每种情况都明确包含安全转换(如果盖子打开则进入错误状态,关闭所有执行器)。 AI快速生成状态机骨架;但什么样的情况会出现什么样的安全事故,就要看你的风险分析了。

弱提示/强提示

弱:“为传送带编写 PLC 代码。”(无 I/O,无安全性,语言不清楚。无法现场起草。)强:“使用 IEC 61131-3 结构化文本编写传送带控制。输入:启动 (NO)、停止 (NC)、光电池产品变量 (NO)、CoverOpen(NC 安全)。输出:传送电机、警告灯。使用状态机(空闲、运行、错误)停止始终优先,转到“盖子打开时出错”并关闭发动机。假设此代码的安全评估。

迷你包

自动化工程师 Tolga 向 AI 请求包装线的 ST 代码。 AI 生成的代码似乎可以工作,但是当 Tolga 根据 I/O 映射对其进行验证时,他发现了两个问题。第一:AI将停​​止按钮处理为NO(常开)逻辑; Tolga 将其转变为 NC 故障安全逻辑,因为如果电缆断裂,生产线必须停止。第二:锁定,即防护罩打开时机器必须停止,仅在启动时检查,而不是在运行过程中检查; Tolga 对其进行纠正,以便在每个扫描周期中对其进行检查。它还证实了实际的急停不是由软件完成的,而是由安全继电器在硬件中中断的。 AI很快给出了逻辑骨架;但工程师的验证确保了三项安全决策:故障安全连接、永久锁定和硬件急停。

常见错误

  • 将停止/紧急停止按钮连接至“否”,并在电缆断裂时失去故障安全行为。
  • 仅在启动时检查联锁(盖子、光幕),并在运行时跳过它。
  • 将安全功能完全留给软件而忽略硬件层。
  • 忘记扫描循环行为并对同一输出进行冲突的分配。
  • 通过使用混乱的 if-else 而不是状态机来编写复杂的逻辑,使其无法验证。
  • 未经官方文本验证就接受AI对安全标准的解读。

综上所述

  • PLC以连续扫描周期运行;输出在循环结束时更新。
  • 梯形图和结构化文本以两种不同的 IEC 61131-3 语言表达相同的逻辑。
  • 停止/紧急停止按钮 NC 和故障安全已连接;失败应该导致安全。
  • 每个扫描周期都会检查锁定;包括安全硬件层。
  • 状态机使复杂逻辑可读且可验证。
  • 安全评估(ISO 13849/IEC 62061)是工程师的责任; AI生成草稿。

应用任务

选择一个简单的自动化场景(例如启动/停止自锁电机、两位执行器或小型加油站)。写下您的 I/O 列表和安全要求(哪个按钮是 NC,即互锁)。让 AI 使用此上下文生成结构化文本状态机。然后验证输出的安全性:(1) Stop 是否提供从每个状态的安全退出,(2) 在每个扫描周期中是否进行联锁检查,(3) 如果出现错误,所有执行器是否都会进入安全状态?记下您发现的任何安全缺陷和纠正措施。