定时器是梯形逻辑编程的基本功能。在本文中,我们讨论开启和关闭延迟以及保持定时器,并定义正确使用它们所需的输入和输出。
定时器几乎被用于工业领域的所有 PLC 程序。我个人使用它们的几个示例应用程序是用于电机心轴的加油系统、消息系统时间表、去抖动,还有很多其他应用程序。定时器是任何程序员都必须了解的基本功能和关键组件。我们将从罗克韦尔自动化 Studio 5000和西门子博途角度介绍梯形逻辑定时器。最后,我还将简要描述对其他 PLC 平台的使用,不同平台可能看起来有些不同。
在我们继续之前,让我快速定义一些可能并非所有读者都知道的术语。
- 布尔值(也称为 BOOL)- 数据类型的名称,可以为真或假、1 或 0、关闭或打开。一个 BOOL 只有两种状态。
- 双整数(也称为 DINT 或双字)- 一种数据类型的名称,它使用 32 个单独的 BOOL 来创建人们可以轻松理解和使用的非常大的十进制数。DINT 让我们计数,对于定时器来说绝对是至关重要的。
- True - 这是表示逻辑电路完整的语句。它就像一个已关闭的开关,为设备供电。
- false - 这是表示逻辑电路不完整的语句。想象一下关掉一个电灯开关。你把它关掉,电路就“假”了。
在下面的文本中,“true”和“false”以及标签名称将用大写的拼写列出,方便大家清晰阅读。
定时器有几种类型
我们将使用 Rockwell 的 Studio 5000 Logix Designer 开始讨论定时器。Studio 5000 使用三种不同类型的定时器:延时延时定时器 (TON)、延时延时定时器 (TOF) 和延时延时定时器 (RTO)。所有这三个指令都使用在 Studio 5000 程序中简称为 TIMER 的通用数据类型结构。
如下图 1所示,TIMER 数据类型由五个单独的标签组成:
启用 BOOL (EN)
定时器计时 BOOL (TT)
完成 BOOL (DN)
预设 DINT (PRE)
累积 DINT (ACC)
图 1. “TIMER”数据类型中包含的标签。所有图片均由作者提供。
只要定时器指令处于活动状态,启用位就为真,无论经过了多长时间。当定时器主动执行定时操作时,定时器定时位为真。当定时器计数达到其预设值时,Done 位变为 TRUE。预设是一个输入,允许用户“设置定时器”在完成之前持续多长时间。最后,累积数字向用户显示其当前计数的高低。
另一个需要注意的重要功能是所谓的时基。时基是指作为定时器计数的单位。在 Studio 5000 中,我们总是以毫秒为单位。没有其他选择。其他程序可能允许您更改时基。在 Productivity Suite(通过 Automation Direct)中,您可以选择毫秒、秒、分钟或小时。在 RSLogix500 中,您可以选择 100ths、10ths 或 1 秒时基。
我们将讨论的每条指令都以不同的方式使用这些位中的每一个来创建可以在程序中使用的不同结果。
延时定时器 (TON)的功能
TON 指令可能是您看到最多的指令。它的功能非常简单。当为该定时器供电的梯级为 True 时,它开始以毫秒为间隔计数。
图 2. TON 指令示例
在图 2的逻辑中,可以看到 TON 指令。因为我在它前面使用了常闭(也称为检查是否打开或 XIO)指令,所以只要定时器未完成,定时器就会开始计数。当它一直计数到 5 秒时,定时器启用完成位。在程序的下一次扫描中,由于定时器在定时器未完成时被激活,PLC 将立即关闭定时器,将其复位,并触发 Arbor1Oiler 系统一个短暂的脉冲。在下一次扫描中,Done 位将被关闭,定时器开始再次计数到 5000。在其他逻辑中,定时器可以由温度传感器或按钮开启。触发和复位取决于您的程序需要如何运行。
TON 指令在梯级为真时开始计数,在达到预设时触发完成位,并在梯级变为假时将计数重置为零。
定时器关闭延迟 (TOF)的功能
Timer-Off-Delay 指令不像 On-Delay 那样常见,但适用于机器关闭后负载必须保持短时间运行的许多特殊情况。令人惊讶且经常令人困惑的是,一旦梯级变为 True,此定时器的 Done 位就会变为 True,并且它会保持 Done 位,直到定时器完成计数。定时器在其梯级变为 False 时开始计数。
当您需要在事件发生后保持某些东西运行一段时间时,这尤其有用。例如,如果电机关闭,但您需要在其关闭后保持其冷却系统开启 4 秒钟。
图 3. TOF 指令示例。
在图 3的逻辑中,可以看到 TOF 指令。当 MotorRunning 变为 True 时,Done 位启用并打开 CoolingSystem。当 MotorRunning 变为 False 时,Done 位保持 True,直到冷却系统运行再经过 4000 毫秒。这就是 Done 位丢失并且 CoolingSystem 关闭的时候。
回顾一下,当梯级为真时,TOF 指令将其 Done 位设置为 True,并在梯级为 False 时开始向上计数。只有在梯级在预设的持续时间内变为 False 后,它才会丢弃 Done 位。此定时器在达到预设值后自动重置。
保持定时器延迟 (RTO)的功能
Retentive Timer-On-Delay 与 Studio 5000 中其他两个定时器的风格不同。当梯级为 True 时 RTO 计数,但当梯级变为 False 时它不会重置。它保留它积累的任何计数。如果机器需要每运行 100 小时进行一次维修,则可以直观地看到可以在哪里使用它。您希望定时器在运行时累积值,在不运行时停止累积,但保留计数以便在达到服务间隔时显示通知。
图 4.保持定时器指令。
在图 4的逻辑中,RTO 的布局与前两个示例中的一样。当电机运行时,梯级为真,我们正在计数。当电机停止运行时,在等待下一次梯级变为 True 时保持计数。当计数达到预设值时,完成位变为真。
RTO 指令在其梯级变为 True 时开始计数。当梯级变为 False 时,它不会重置计数。当累计计数达到预设值时,它会触发 Done 位。
复位 (RES) 指令
我们对 RTO 样式定时器的讨论要求我们需要解决一条指令,该指令可在 Studio 5000 中的多个位置和容量中使用。Reset 指令可用于重置任何样式定时器的计数,无论它位于何处它的计数周期。当触发复位时,它会将相关定时器的计数复位为零。要将重置与您想要的定时器相关联,只需将定时器的标签名称放入指令的标签中即可。
在这行逻辑中,您可以看到我已经设置了一个重置,当用户点击一个按钮告诉 PLC 上面的 RTO 示例服务已完成时触发。
图 5.定时器复位指令。
复位指令将使用任何定时器并将其累积值设置回零。它也可用于将计数器的值重置为零,但最好留给不同的文章范围。
跨其他平台的定时器
尽管定时器很简单,但值得注意的是,与其他平台相比,Studio 5000 中定时器的外观可能存在很大差异。在下图中,您可以从 Siemens PLC 系统中看到 TIA Portal 中使用的定时器结构。我们有一个梯级进入指令(IN)的输入,就像启用位一样,一个预设时间(PT),一个等同于 ACC 的经过时间(ET),最后是一个代表输出的 Q。Q 可与 Studio 5000 的完成位相媲美。
在该指令中,Timer Timing (TT) 不存在,但可以由 IN 为真,Q 为假的简单系列构成。
图 6.来自西门子 STEP 7 TIA Portal 软件的 TON。
另一个例子是Automation Direct 的 Productivity Suite,其主定时器如下图所示。
Productivity 将许多功能结合到他们的单个 Timer 指令中。它本质上是一个与 RTO 类似的保持性定时器,但您可以选择自动重置以及在当前时间小于、等于或大于菜单中的预设时进行监控。它还有 3 个梯级输入,一个向上计数,另一个向下计数,另一个复位。Automation Direct 使用许多指令来执行此操作,将功能组合在一起,因此一条指令可以执行无数任务。
图 7. Automation Direct 生产力套件中的定时器。
Automation Direct 也有一个简单的定时器,其工作方式类似于 TON 或 TOF 指令。就像其他人一样,您必须设置预设。这两个定时器都是时基的示例,可以根据您的需要进行更改,请注意在上图中以“秒”为单位列出的时基(以秒为单位)。
概括
工业界有很多有趣的定时器版本和用途——从定时器继电器到 PLC 定时器,再到集成电路定时器。我希望这对跨各种软件平台和应用程序使用定时器有所启发。
2022年以来,中国工业自动化控制行业受到各级政府的高度重视和国家产业政策的重点支持。国家陆续出台了多项政策,鼓励工业自动化控制行业发展与创新,这必将加大对自动化人才的需求及对技术固化人员的淘汰但你真的能适应人才的需求吗;