【热点追问】PLC是如何进行扫描的?

本文来自于《控制工程中文版》(CONTROL ENGINEERING China )2016年10月刊杂志,原标题为:PLC是如何进行扫描的?

无论使用什么程序,了解可编程逻辑控制器如何进行扫描工作是用户需要解决的事情。

全世界范围内,几乎所有的可编程逻辑控制器(PLC)都采用相同方式处理扫描问题。首先,CPU读取物理输入信号并存储于内存表中,通常被称为“输入表”,在程序评估的时候使用该表。在不同的平台之间,有不同类型的寄存器;当逻辑沿着每个程序的梯形图从左到右以及从上到下处理的过程中,寄存器的内容得到更新。这包括输出表的更新,该输出表会在后续用于驱动连接到PLC的物理设备。


程序可以因为不同的目的而调用不同的子程序;执行顺序比较重要。根据内存寄存器和输出表更新的位置,物理输出可能延误长达两个扫描周期。在任意一种情况下,被调用以后,程序通过不同的路径执行,直到返回到程序被调用的地方,而且最终终止在初始循环程序处。大多数程序都使用初始循环程序,用于调用其它程序。一些程序按照周期运行,而不是连续运行。大部分使用一个连续运行程序,且运行的能多快就多快。

在完成所有代码执行、逻辑评估以及更新所有数据表(除了在扫描最开始的时候写入的输入表以外)之后,结果输出表或寄存器内容被写入到物理输出上。

扫描时间长短取决于平台(处理器的速度)、程序中代码的多少以及所用的指令类型。有时候编程人员会在程序中使用回路或者重复调用相同的程序。所有这些都会影响总的扫描时间。一般会有文档说明不同的指令所需要的执行时间,不过将它们加起来用于时间长度的估计是没有意义的。那仅仅用于参考目的。

扫描时间可以长达80 ms。如果扫描时间超过50 ms(对于一个机器控制项目),那么用户需要寻求更加强大的处理器或使代码更加高效的方法。超过50 ms以后,对于机器控制项目的输出响应的影响可以很严重,对于过程控制来说,这应该不是问题。

图中所示为使用请求数据包间隔(RPI) 进行可编程逻辑控制器扫描的例子

本文图中所示的案例中,这个程序的扫描时间显示为56 ms。尽管对于每个平台来说,扫描的工作方式都有所描述,但是这是个例外(显示为A,B和C)。这个平台采用制造商-消费者模式,输入卡为CPU加工信息,CPU为输出卡加工信息。这样就可以说CPU“消费”信息,而输出卡消费来自于CPU的信息。信息的加工和消费在每个输入/输出(I/O)卡内通过设定所谓的请求数据包间隔(RPI)来制定时间安排。

假设将RPI设定为20 ms;每个扫描周期中,程序都会从物理输入获得一些更新,并且每个扫描周期更新两次物理输出。这对于数字量I/O很常见;模拟量输入通常设定为100 ms或更长,并且其更新通常比数字量更慢。更新在扫描周期的不同点进行,所用的时间长度会有比较大的变化。(作者:Frank Lamb)

(0)

相关推荐