1.3.3 可编程序控制器扫描周期与响应时间
1.扫描周期
PLC周而复始地扫描执行图1-7中①~⑤项内容,每一次执行的时间称为扫描周期,完成一个周期后又重新执行上述过程。扫描周期的长短取决于系统配置、I/O点数、所用的编程指令以及是否接有外设。当用户程序较长时,指令执行时间在扫描周期中将占相当大的比例。
扫描周期是PLC的重要指标之一,可以利用梯形图编辑软件的在线监视功能或使用手持编程器的监视操作读出扫描周期的最大值或当前值。在PLC内部,监视定时器(Watch Dog Timer,俗称“看门狗”)用来检测扫描周期并和设定值进行比较,若扫描周期超出了监视定时器的设定值,CPU单元停止运行。此时,特殊辅助继电器的周期时间超时标志置为“1”(ON)。监视定时器一般是在系统上电时由系统程序设定,但是用户可以根据需要利用高级指令修改设定值,以适应较多I/O点数的系统。
扫描周期会因为中断处理、诊断和故障处理、测试和调试功能,以及通信等事件而延长。为了缩短周期时间,可以采用“将不执行的任务转为待机”或者“将不执行的程序区域插入JMP-JME指令跳过”的处理方法。
扫描周期短(或扫描速度快)表示PLC系统运行速度快,允许扩大控制规模和提升控制系统功能。通常用执行1 KB程序或1 K步(1K=1024)程序所用的时间来表示扫描速度快慢,例如,C200Hα系列的扫描速度是1.1 ms/KB(条件:基本指令占50%,MOV指令占30%,算术指令占20%),而CJ1系列PLC仅为0.04 ms/K步,扫描速度大幅提高了30倍。
2.I/O响应时间
响应时间是指PLC接收到一个输入信号以后,到输出控制信号所需的时间。当CPU接受对应于输入刷新周期的输入信号时,用于响应的时间取决于扫描周期。
(1)单个PLC的最小I/O响应时间
当PLC恰巧在更新输入的扫描阶段优先接收到一个输入信号时,则响应最快。此时响应时间等于PLC的扫描时间加上输入ON延迟时间和输出ON延迟时间,如图1-8所示。
图1-8 最小I/O响应时间
(2)单个PLC的最大I/O响应时间
当PLC恰好在更新输入的扫描阶段之后收到输入信号,则响应时间最长。这是因为CPU要到下一次扫描的末尾才能读取输入信号,所以最大响应时间是输入ON延迟时间与输出ON延迟时间加两次扫描时间之和,如图1-9所示。
图1-9 最大I/O响应时间
由图1-9可知,输入采样(刷新)阶段和输出刷新阶段都是在一个扫描周期的适当期间进行的,而且是集中输入和集中输出,这就导致了输出信号对于输入信号响应的滞后,响应时间最长为2个扫描周期。以欧姆龙公司的C200Hα系列PLC为例,扫描30 KB程序的周期是33.7 ms(条件:基本指令占50%,MOV指令占30%,算术指令占20%),则最长响应时间是67.4 ms。对于一般的工业系统,这种循环刷新所带来的滞后时间是能够接受的。但是对于要求快速响应的场合,则需要采取以下措施:
① 定时刷新。定时刷新是指在用户程序执行阶段中,每隔一定时间对输入映象寄存器进行一次刷新,从而减少了滞后时间。
② 执行刷新指令。有些PLC使用专用指令对某个输入映象寄存器或输出映象寄存器进行刷新。例如,欧姆龙PLC的I/O刷新指令IORF,可以随时刷新指定的I/O单元。
③ 执行即时刷新指令。常规的I/O刷新是指CPU的内存与I/O单元的状态和数据交换;而即时刷新是对指令所访问字(也称通道)的I/O单元进行状态和数据交换,一个即时刷新包括指定通道的8个位(最左或最右8位)。即时刷新梯形图示例如图1-10所示,图中支持即时刷新的指令为!LD和!OUT,第7章中将详细介绍。
图1-10 即时刷新梯形图示例