PLC 虽具有计算机的许多特点,但它的工作方式却与计算机有很大不同。计算机一般采用等待命令的工作方式,如常见的键盘扫描方式或 I/0扫描方式,有键按下或I/0动作则转入相应的子程序。无键按下,则继续扫描。PLC 则采用巡回扫描的工作方式。PLC按巡回扫描方式的工作过程如图 4-3 所示。一个扫描周期内大致有内部处理、通信操作、程序输入处理、程序执行和输出处理等几个阶段。

PLC运行时,用户程序中有众多的操作需要去执行,但 CPU 不能同时去执行多个操作,只能按分时操作原理每一时刻执行一个操作。由于 CPU 的运算速度很高,使得外部出现的结果从宏观来看似乎是同时完成的,这种分时操作的过程称为 CPU对程序的扫描。PLC对一个用户程序的扫描从程序的第一条指令开始,在无中断或跳转控制的情况下按顺序逐条执行用户程序,直到程序结束。每扫描完一次程序就构成一个扫描周期,然后再从头开始扫描,并周而复始地重复。如此周而复始地循环执行过程称为“巡回扫描”。
1内部处理。一般包括输入/输出部分、存储器、CPU 等部分的故障诊断,复位监视定时器,对通信区域、外部设备检查等。PLC 在执行自诊断程序时,一旦发现有异常,即启动关机程序并保留现行工作状态,发出报警信号和显示出错信息,如自诊断正常,则继续扫描。
2通信操作。在自诊断程序结束后,如果没有发现故障,PLC 立即与编程器交换信息
并通过通信模块与其他职能装置进行通信。
3程序输入处理。在此过程中,控制器首先以扫描方式顺序读入所有的输入端的信号状态 (ON或OFF、1或0),并逐一存人输入状态寄存器。输入状态寄存器的位数与输入端子的数目相对应,因而输入状态寄存器又可称为输入映像寄存器。输入处理结束后转入程序执行阶段。在程序执行期间,即使输人状态变化,输人状态寄存器的内容也不会改变,这些变化只能在下一工作用期的输入处理阶段才被读入。
4程序执行。PLC 执行用户程序一般是从存储器的最低地址所存放的第一条指令开始在没有中断或跳转指令控制的情况下,按存储器地址递增的方向依次扫描用户程序,按照输入状态表中的数据和程序要求解算出相应的结果,按照该结果更新输出缓冲区的内容,直到执行用户程序结束为止。
5输出处理。在所有的指令执行完毕后,进人输出处理过程,输出状态寄存器中的状态(ON或OFF,1或0) 在输出刷新阶段由输出映像寄存区转存到输出锁存器,再经输出接口驱动外部用户负载,形成 PLC的实际输出。
PLC的程序语言
与计算机的工作原理一样,PLC 的操作是按其程序要求进行的,而程序是用程序语言表达的。PLC不是用一般微机控制常用的汇编语言,而是采用一种面向控制现场、面向问题的自然语言,能清晰、直观地表达被控对象的动作及输入输出关系。下边分别介绍几种常见的PLC编程语言。
(1)梯形图 (LAD) 梯形图是通过连线把 PLC 指令的梯形图符号连接在一起的连通图,用以表达所使用的 PLC 指令及前后顺序,其形式与继电器控制系统的电路图很相似,直观、形象、实用。梯形图由触点、线圈和用方框表示的功能块组成。触点代表逻辑输人条件,如外部的开关、按钮和内部的输出条件等。功能块用来表示定时器、计数器或者数学运算等附加指令。
(2) 语句表(STL) 用语表描述的编程方式是一种与计算机汇编语言类似的助记符编程方式。语句表可以实现某些不能用梯形图或功能块图实现的功能,比较适合熟悉 PLC和逻辑程序设计的经验丰富的程序员。
(3)功能块图 (FBD) 功能块图程序设计语言是一种对应于线路图的图形语言,类似于数字逻辑门电路的编程语言。该语言用类似与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示非运算,方框被导线连接在一起,信号自左向右流动。