天梯逻辑105:PLC扫描

理解可编程逻辑控制器(PLC)中的扫描工作原理是用户需要解决的问题,而不管所使用的程序是什么。

通过Frank Lamb,自动化入门 2016年3月4日

世界上几乎所有的可编程逻辑控制器(plc)都以同样的方式处理扫描。首先,CPU将物理输入读入内存表,通常称为“输入表”。然后在评估程序时使用这个表。在不同的平台上使用不同类型的寄存器;这些寄存器随着逻辑在每个例程中从左到右和从上到下的处理而更新。这包括更新输出表,该输出表稍后将用于驱动连接到PLC的物理设备。

程序可能会出于不同的目的调用不同的子例程,而例程调用的顺序可能很重要。根据内存寄存器和输出表更新的位置,物理输出最多可能延迟两次扫描。

在任何一种情况下,程序都会在调用不同的例程时蜿蜒穿过,然后返回到调用它们的地方,最终结束在原始循环例程的末尾。大多数程序使用初始循环例程,用于调用所有其他例程。应该注意的是,有些程序是定期运行的,而不是连续运行的。不过,这种情况并不常见。大多数程序使用尽可能快地运行的连续程序配置。在执行所有代码、计算逻辑并更新所有表(除了在扫描开始时写入的输入表)之后,将结果输出表或寄存器内容写入物理输出。图1说明了这一点,其中显示了结果。

这需要多长时间?这取决于平台(处理器的速度),程序中有多少代码,以及使用的指令类型。有时程序员会在程序中使用循环,或者重复调用相同的例程。所有这些都会影响总的扫描时间。通常会有文档说明不同指令的执行时间,但没有必要试图将所有代码相加来估算长度。仅供参考。

扫描时间最长可达80毫秒。如果扫描时间超过50毫秒(对于机器控制项目),那么用户应该寻找更强大的处理器或使代码更有效的方法。超过50毫秒,对机器控制项目的输出反应的影响开始明显;对于过程控制项目,这可能无关紧要。

在图1中,扫描时间显示为56毫秒,但这是一个相当大的程序。虽然扫描的工作方式适用于每个平台,但这是一个例外,如A、B和c所示。该平台工作在生产者-消费者模型上,其中输入卡为CPU产生信息,CPU为输出卡产生信息。然后可以说CPU“消费”信息,输出卡消费来自CPU的信息。通过设置所谓的请求包间隔(RPI),信息的生产和消费在每个输入/输出(I/O)卡中进行调度。

在图1中,RPI被设置为20毫秒(A)。这意味着程序将从每次扫描的物理输入中获得两次更新,并且每次扫描也将更新两次物理输出。这是典型的数字I/O;模拟输入通常设置为100毫秒或更多,并且通常比数字输入更新更慢。更新发生在扫描周期的不同位置,其持续时间变化很大。

图2来自一个培训手册,它问:“输出2会打开吗?”有三种常见的答案:它永远不会打开,它会一直打开,或者每次扫描都会短暂闪烁。请看下面的答案。

弗兰克羊肉他是自动化咨询服务公司的创始人。本文最初发表于自动化入门博客.Automation Primer是CFE Media的内容合作伙伴。由制作编辑克里斯·瓦夫拉编辑,控制工程, CFE传媒,cvavra@cfemedia.com

关键概念

  • 几乎所有的可编程逻辑控制器(plc)都以同样的方式处理扫描。
  • PLC扫描的长度取决于平台,以及它是用于机器控制项目还是过程控制项目。

考虑一下这个

您使用哪些程序进行PLC扫描,您遇到过哪些本文没有提到的挑战?

在线额外

图2中所示问题的答案是:在扫描结束时输出2始终是打开的。

-参见下面链接的关于梯子逻辑的其他故事。