结合PLC的组成和结构分析PLC的工作原理容易理解。PLC是采用周期循环扫描的工作方式,CPU连续执行用户程序和任务的循环序列称为扫描。CPU对用户程序的执行过程是CPU的循环扫描,并用周期性地集中采样、集中输出的方式来完成的。一个扫描周期主要可分为:
(1)读输入阶段。 每次扫描周期的开始,先读取输入点的当前值,然后写到输入映像寄存器区域。在之后的用户程序执行的过程中,CPU访问输入映像寄存器区域,而并非读取输入端口的状态,输入信号的变化并不会影响到输入映像寄存器的状态,通常要求输入信号有足够的脉冲宽度,才能被响应。
(2)执行程序阶段。 用户程序执行阶段,PLC按照梯形图的顺序,自左而右,自上而下的逐行扫描,在这一阶段CPU从用户程序的一条指令开始执行直到后一条指令结束,程序运行放入输出映像寄存器区域。在此阶段,允许对数字量I/O指令和不设置数字滤波的模拟量I/O指令进行处理,在扫描周期的各个部分,均可对中断事件进行响应。
(3)处理通信请求阶段。 是扫描周期的信息处理阶段,CPU处理从通信端口接收到的信息。
(4)执行CPU自诊断测试阶段。在此阶段CPU检查其硬件,用户程序存储器和所有I/O模块的状态。
(5)写输出阶段。每个扫描周期的结尾,CPU把存在输出映像寄存器中的数据输出给数字量输出端点(写入输出锁存器中),新输出状态。然后PLC进入下一个循环周期,重新执行输入采样阶段,周而复始。
如果程序中使用了中断,中断事件出现,立即执行中断程序,中断程序可以在扫描周期的任意点被执行。
如果程序中使用了立即I/O指令,可以直接存取I/O点。用立即I/O指令读输入点值时,相应的输入映像寄存器的值未被修改,用立即I/O指令写输出点值时,相应的输出映像寄存器的值被修改。
对用户程序的循环扫描执行过程,可分为输入采样、程序执行、输出刷新三个阶段,如图1所示。
1. 输入采样阶段
在输入采样阶段,PLCC以扫描方式将所有输入端的输入信号状态(ON/OFF状态)读入到输入映 像寄存器中寄存起来,称为对输入信号的采样。接着转入程序执行阶段,在程序执行期间,即使输入状态变化,输入映像寄存器的内容也不会改变。输入状态的变化只能在下一个工作周期的输入采样阶段才被重新读入。
图1 PLC程序执行的过程
2. 程序执行阶段
在程序执行阶段,PLC对程序按顺序进行扫描。如程序用梯形图表示,则总是按先上后下、先左后右的顺序扫描。每扫描到一条指令时所需要的输入状态或其他元素的状态,分别由输入映像寄存器或输出映像寄存器中读入,然后进行相应的逻辑或算术运算,运算结果再存入**寄存器。若执行程序输出指令时,则将相应的运算存入输出映像寄存器。
3. 输出刷新阶段
在所有指令执行完毕后,输出映像寄存器中的状态就是欲输出的状态。在输出刷新阶段将其转存到输出锁存电路,再经输出端子输出信号去驱动用户输出设备,这就是PLC的实际输出。PLC重复地执行上述三个阶段,每重复一次就是一个工作周期(或称扫描周期)。工作周期的长短与程序的长短有关。
由于输入/输出模块滤波器的时间常数,输出继电器的机械滞后以及执行程序时按工作周期进行等原因,会使输入/输出响应出现滞后现象,对一般工业控制设备来说,这种滞后现象是允许的。但一些设备的某些信号要求做出快速响应,因此,有些PLC采用高速响应的输入/输出模块,也有的将顺序程序分为快速响应的高级程序和一般响应速度的低级程序两类。如FANUC-BESK PLC规定高级程序每8ms扫描一次,而把低级程序自动划分分割段,当开始执行程序时,首先执行高级顺序程序,然后执行低级程序的分割段1,然后又去执行高级程序,再执行低级程序的分割段2,这样每执行完低级程序的一个分割段,都要重新扫描执行一次高级程序,以保证高级程序中信号响应的快速性。
浔之漫智控技术(上海)有限公司专注于西门子等