单按钮启停控制:包含Modicon PLC梯形图演示

返回工业控制与自动化索引

单次瞬时按钮启停控制是一种便捷的机器启停方式,尤其当采用带灯按钮实现时。这种方式能实现简洁的控制面板,并配有清晰的启停指示灯。这种带灯按钮的最大优势在于机器完全由软件控制。若发生故障,机器将停止运行,相关指示灯随之熄灭。

我们将使用施耐德电气Modicon TM221CE24T PLC的梯形图逻辑实现该控制模式。本演示偏重学术性,所提方案未必是最简实现方式。相反,它试图基于您已掌握的知识,重点介绍PLC特有的编程功能。例如,我们将使用状态变量和跳转指令。这两者并非绝对必要,但都是高级PLC编程必须掌握的核心知识。

技术提示 :机器的"软件控制"是重要的安全考量。为更好理解其意义,请考虑替代方案。假设您的机器通过拨动开关或选择开关控制。正常运行时,开关置于开启位置时机器持续运转。这在机器遇到故障停机前都没有问题。此时机器前面板的显示状态与实际内部状态就会出现偏差。采用带灯的瞬时按钮更为理想,机器运行状态可通过指示灯亮起直观显示。故障发生时指示灯熄灭。因此机器前面板总能真实反映其运行状态。

安全警示 :切勿完全依赖电子控制系统。应进行风险评估,并将安全关键操作置于独立控制系统中。例如急停按钮、光栅、储罐溢流或机器超限等关键控制必须独立于PLC系统。我们应向PLC发送这些关键传感器的信号副本,但绝不能依赖PLC来处理紧急情况。

1 :PLC培训装置上的Modicon TM221 PLC及按钮实物图。

单按钮控制的梯形图逻辑实现

图2展示了单按钮控制的梯形图逻辑。让我们先识别其中的编程特性:

  • 符号的使用:Modicon PLC具有固定的内存地址。例如,输出地址以%Q开头,输入以%I开头,位内存地址以%M开头。我们使用描述性符号替代这些难记的名称。目的是让代码具备自注释性。

  • 上升沿触点:第1和第2梯级包含上升沿触点。其图形为带"P"字母的常开触点。在此代码中,L_PB1_Switch(带灯按钮#1的开关元件)将在按钮按下上升沿对应的一个程序周期内评估为真。

  • 第0梯级包含跳转至标签指令。体现为带有%L0标签的双箭头符号。若第0梯级评估为真,则跳过第1梯级。该功能需极其谨慎使用,因其易引发编程错误。迄今为止,我尚未找到为此名称创建别名的方法。我们只能使用%L标识符。我认为这可能导致极难排查的故障。或许最好避免使用该功能,本文后续将探讨替代方案。

  • 输入输出映射表的使用:本项目包含三个程序组织单元(POU),包括prgInMap、prgCtrl及未显示的prgOutMap。采用输入输出映射表可避免在主控制POU中直接调用端子排I/O(%I和%Q)。虽非绝对必要,但此编程风格更便于故障排查。同时确保每个I/O点在项目中仅出现一次。这使得未来变更物理I/O时,能确保不会遗漏任何%I或%Q。

技术提示触点弹跳可能成为PLC程序员的难题,特别是图2所示的触发系统。值得庆幸的是,大多数PLC都配有滤波器,无需考虑这种烦人的问题。Modicon数字输入预设了3毫秒的滤波时间。这应能消除大多数输入信号的触点抖动。在Modicon TM221中,我们可以关闭滤波器或将其延长至12毫秒。

2 :单按钮启停控制的梯形图逻辑。

该梯形图程序的基本原理是检测按钮按下的上升沿。检测到上升沿时,状态变量将翻转。

  • 用通俗语言描述,第0梯级的核心逻辑是:"若状态变量已置位且检测到按钮上升沿,则清除状态变量。

  • 第1梯级逻辑为:"若状态变量已清除且检测到按钮按下,则置位状态变量。

  • 第2梯级与当前讨论关联不大。它只是众多可能对状态变量进行操作的梯级之一。例如,当状态变量置位时,我们可以同时启动电机并点亮按钮指示灯。

这两条语句看似足以处理该场景,但存在一个问题。

若不采取额外措施,第 1 梯级总会抵消第 0 梯级的作用。

考虑按钮按下时的程序扫描过程。按钮按下事件在第0和第1梯级中都会判定为真。假设状态变量已置位,第0梯级将通过复位线圈将0写入状态变量存储单元。

问题就出在这里。

在按钮上升沿对应的程序扫描周期中,第1梯级会认为状态变量已清除,随后通过置位线圈将1写入状态存储单元。这使得第0梯级的操作被完全抵消。两个梯级共同作用的结果是状态变量永远保持置位状态。

解决方案之一是引入跳转指令。若第0梯级评估为真,则跳过第1梯级。这样第1梯级就永远没有机会抵消第0梯级。如前所述,跳转标签指令虽有效,但若错误使用标签可能导致难以排查的代码问题。

在本文开头,我提到了软件控制机器的概念。这一重要考量已包含在第0级阶梯中。注意GLOBAL_FAULT变量用于强制状态变量进入复位状态。由于跳过第1级阶梯的结果,操作员在故障存在时将无法重启机器。在任何情况下,只要存在故障,状态变量都不会被重新置位。这能防止即使启动按钮被物理卡住时的意外启动。

技术提示 :使用按钮上升沿检测可作为安全功能。在此示例代码中,它防止急躁的操作员和技术员物理卡住启动开关。要启动机器,按钮必须完成从关到开的完整循环。这比电平敏感的用户界面更可取,后者容易引发旁路操作,比如用牙签卡住启动按钮。

本示例中最后且可能是最重要的触点SB_FIRSTRUN。该系统变量仅在第一次(且仅第一次)程序扫描时为真。此操作强制状态变量进入清零状态。因此,每当PLC重启或断电后激活时,系统都将以复位(关闭)状态启动。这防止了设备意外启动,从而保护机器操作员、维护技术人员及机器本身。

请记住安全提示:不要依赖此机制。务必添加冗余独立系统来防止设备意外启动。

视频1演示了系统运行情况。注意绿色面板指示灯会通过按键激活然后关闭。同时观察到红色按钮将停止系统。在此示例中,它模拟了GLOBAL_FAULT条件。背景中可听到大型三相电机启动器和中间继电器的声音。

视频 1 :带绿色发光按钮的单按钮控制演示。

修改代码以实现无跳转指令运行

我们可以修改代码以消除对第1级阶梯的跳转。一种方案是添加图3所示的L_PB1_LOCKOUT变量。该变量通过每当梯级0为真时禁用梯级1,实现与跳转相同的功能。两种方案中,图3的代码清单可能更安全,因为它消除了跳转指令。代码可读性也略有提升。用英语表述为:“若梯级未锁定,且状态变量为清零状态,且 lighted pushbutton 出现上升沿,则将状态切换为激活。”

3 :使用lighted-pushbutton-1-lockout变量防止梯级1激活的代码清单。

结语

此时应考虑将本段代码封装为用户自定义功能块(UDFB)。这似乎是我们代码库中有价值的补充。

您怎么看?这是处理单按钮启停控制的理想方案吗?我们是否遗漏了什么?请在下方空白处留下您的意见和建议。

附注:本装置基于先前文章所述的PLC训练器搭建。点击链接查看零件清单。

返回工业控制与自动化索引