无论使用什么程序,了解可编程逻辑控制器如何进行扫描工作是用户需要解决的事情。
在完成所有代码执行、逻辑评估以及更新所有数据表(除了在扫描最开始的时候写入的输入表以外)之后,结果输出表或寄存器内容被写入到物理输出上。 扫描时间长短取决于平台(处理器的速度)、程序中代码的多少以及所用的指令类型。有时候编程人员会在程序中使用回路或者重复调用相同的程序。所有这些都会影响总的扫描时间。一般会有文档说明不同的指令所需要的执行时间,不过将它们加起来用于时间长度的估计是没有意义的。那仅仅用于参考目的。 扫描时间可以长达80 ms。如果扫描时间超过50 ms(对于一个机器控制项目),那么用户需要寻求更加强大的处理器或使代码更加高效的方法。超过50 ms以后,对于机器控制项目的输出响应的影响可以很严重,对于过程控制来说,这应该不是问题。
本文图中所示的案例中,这个程序的扫描时间显示为56 ms。尽管对于每个平台来说,扫描的工作方式都有所描述,但是这是个例外(显示为A,B和C)。这个平台采用制造商-消费者模式,输入卡为CPU加工信息,CPU为输出卡加工信息。这样就可以说CPU“消费”信息,而输出卡消费来自于CPU的信息。信息的加工和消费在每个输入/输出(I/O)卡内通过设定所谓的请求数据包间隔(RPI)来制定时间安排。 假设将RPI设定为20 ms;每个扫描周期中,程序都会从物理输入获得一些更新,并且每个扫描周期更新两次物理输出。这对于数字量I/O很常见;模拟量输入通常设定为100 ms或更长,并且其更新通常比数字量更慢。更新在扫描周期的不同点进行,所用的时间长度会有比较大的变化。(作者:Frank Lamb) |
|