有了上述过程,用PLC实现控制显然是可能的。因为:有了输入刷新,可把输入电路监视得到的输入信息存入PLC的输入映射区;经运行用户程序,输出映射区将得到变换后的信息;再经输出刷新,输出锁存器将反映输出映射区的状态,并通过输出电路产生相应的输出。又由于这个过程是永不停止地循环反复地进行着,所以,输出总是反映输入的变化。只是响应的时间上,略有滞后。但由于PLC的工作速度很快,所以,这个“略有滞后”的时间是很短的,一般也就是几毫秒、几十毫秒,最多也不会超过100到200毫秒。
图2a所示的是简化的过程,实际的PLC工作过程还要复杂些。除了I/O刷新及运行用户程序,还要做些其它的公共处理工作。公共处理工作有:循环时间监视、外设服务及通讯处理等。
监视循环时间的目的是避免用户程序“死循环”,保证PLC能正常工作。为避免用户程序“死循环”的办法是用“看门狗”(Watching dog),即设一个定时器,监测用户程序的运行时间。只要循环超时,即报警,或作相应处理。
外设服务是让PLC可接受编程器对它的操作,或向编程器输出数据。
通讯处理是实现与计算机,或与其它PLC,或与智能操作器、传感器进行信息交换的。这也是增强PLC控制能力的需要。
也就是说,实际的PLC工作过程总是:公共处理——I/O刷新——运行用户程序——再公共处理——⋯反复不停地重复着。图2b所示的是实际的过程。
此外,PLC上电后,也要进行系统自检及内存的初始化工作,为PLC的正常运行做好准备。
用这种不断地重复运行程序以实现控制,称扫描方式工作。是PLC基本的工作方式。
此外,为了应对紧急任务,PLC还有中断工作方式。在中断方式下,需处理的任务先申请中断,被响应后停止正运行的程序,转而去处理中断工作(运行有关中断的服务程序)。待处理完中断,又返回运行原来程序。
PLC的中断方式的任务,或称事件,是分等级的。同时出现两个或多个中断事件,则优先级高的先处理,继而处理低的。直到全部处理完中断任务,再转为执行扫描程序。
PLC对大量控制都用扫描方式工作,而对个别急需的处理,则用中断方式。这样,既可做到所有的控制都能照顾到,而个别应急的任务也能及时进行处理。
当然,PLC的实际工作过程比这里讲的还要复杂一些,分析其基本原理,也还有一些理论问题。但如果能弄清上面介绍的思路,也可知到PLC是怎么工作的了。