第2部分 PLC的工作原理和功能特点
2.1 PLC的工作原理和工作方式
PLC属于精密的电子设备。其工作原理和工作方式都与以往继电器—接触器控制系统和计算机控制系统有所不同。
2.1.1 PLC的工作原理
PLC是一种以微处理器为核心的可编程控制装置,是专门为大中型工业用户现场的操作管理而设计的。它采用可编程序的存储器,用于在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。
PLC的整机工作原理示意图如图2-1所示。从图中可以看到,CPU(中央处理器)是PLC的控制核心,主要由控制器、运算器和寄存器三部分构成,通过数据总线、控制总线和地址总线与其内部存储器及I/O接口相连。
图2-1 PLC的整机工作原理示意图
PLC的硬件电路主要是由CPU模块、存储器、通信接口、基本I/O接口、电源模块电路五部分组成的。
[1] CPU模块是PLC的核心。CPU的性能决定了PLC的整体性能。不同的PLC配有不同的CPU。其主要作用是接收、存储由编程器输入的用户程序和数据,对用户程序进行检查、校验,并执行用户程序。PLC中常用的微处理器(CPU)有通用微处理器、单片微处理器和位片式微处理器。
[2] 存储器分为系统程序存储器、用户程序存储器和工作数据存储器。
● 系统程序存储器为只读存储器(ROM),用于存储系统程序。系统程序是由PLC制造厂商设计编写的,用户不能直接读写和更改。一般包括系统诊断程序、输入处理程序、编译程序、信息传送程序及监控程序等。
● 用户程序存储器为随机存储器(RAM),用于存储用户程序。用户程序是用户根据控制要求,按系统程序允许的编程规则,用厂家提供的编程语言编写的程序。
● 工作数据存储器也为随机存储器(RAM),用来存储工作过程中的指令信息和数据。
[3] 通信接口通过编程电缆与编程设备(计算机)连接,计算机通过编程电缆对PLC进行编程、调试、监视、试验及记录。
[4] 基本I/O接口是PLC与外部各设备联系的桥梁,可以分为PLC输入接口和PLC输出接口两种。输入接口将所接各种控制及传感器部件发出的信号作为输入信号送入PLC输入电路,经PLC内部CPU处理后,由PLC输出接口输出用以控制外接设备或功能部件的状态。
[5] PLC内部配有一个专用开关式稳压电源,始终为各部分电路提供工作所需的电压,确保PLC工作的顺利进行。
1. PLC用户程序的输入
PLC的程序是由工程技术人员通过编程设备(简称编程器)输入的。目前,PLC的编程有两种方式:一种是通过PLC手持式编程器编写程序,然后传送到PLC内;另一种是利用PLC通信接口(I/O接口)上的RS-232串口与计算机相连,然后通过计算机上专门的PLC编程软件向PLC内部输入程序。
例如,图2-2为将计算机编程软件编写的程序输入到PLC中的示意图。不论是计算机还是编程器的输入程序均输入到PLC内部,存放在PLC的用户存储器中。
图2-2 将计算机编程软件编写的程序输入到PLC中的示意图
2. PLC内部用户程序的编译处理
当用户编写的程序存入后,CPU会向存储器发出控制指令,从系统程序存储器中调用解释程序将用户编写的程序进行进一步的编译,使之成为PLC认可的编译程序。
图2-3为用户程序在PLC内的编译过程。一般采用一定的编程语言编写的PLC程序不能直接被PLC所识别,还需要经过进一步的编译处理。
图2-3 用户程序在PLC内的编译过程
3. PLC用户程序的执行过程
用户程序的执行过程为PLC工作的核心内容。通过控制及传感部件发出的状态信息和控制指令通过输入接口(I/O接口)送入到存储器的工作数据存储器中。在CPU控制器的控制下,这些数据信息会从工作数据存储器中调入CPU的寄存器,与PLC认可的编译程序结合,由运算器进行数据分析、运算和处理,最终将运算结果或控制指令通过输出接口传送给接触器、继电器、电磁阀、指示灯及蜂鸣器等外部设备及功能部件。这些外部设备及功能部件即会执行相应的动作。
图2-4为PLC用户程序的执行过程示意图。PLC进行工作的核心即为周而复始的执行用户程序中的控制逻辑和读/写数据。其执行的过程便是将程序与物理输入和输出点联系的过程。
图2-4 PLC用户程序的执行过程示意图
为了更清晰地了解PLC工作原理,可将PLC内部等效为三个功能电路,即输入电路、运算控制电路及输出电路。
图2-5为PLC系统等效功能电路示意图。输入电路和输出电路为PLC信息输入与输出的通道,运算控制电路为介于输入与输出电路中间的电路,用于完成信息处理。
图2-5 PLC系统等效功能电路示意图
(1)PLC的输入电路
输入电路主要是输入信号采集部分。其作用是将被控对象的各种控制信息及操作命令转换成PLC输入信号,然后送给运算控制电路部分。
PLC的输入电路根据输入端电源类型的不同主要有直流电源输入电路和交流电源输入电路两种,如图2-6所示。
图2-6 PLC的输入电路部分
从图中可以看到,PLC外接的各种按钮、操作开关等提供的开关信号作为输入信号经输入接线端子后送至PLC内部接口电路(主要由电阻器、电容器、发光二极管、光电耦合器等构成),在接口电路部分进行滤波、光电隔离、电平转换等处理,将各种开关信号变为CPU能够接收和处理的标准信号(图中只画出对应于一个输入点的输入电路,各个输入点所对应的输入电路均相同)。
① 直流电源输入电路。
在如图2-6(a)所示电路中,PLC输入电路部分主要由电阻器R1、R2、电容器C、光电耦合器IC、发光二极管LED等构成。其中,R1为限流电阻,R2与C构成滤波电路,用于滤除输入信号中的高频干扰;光电耦合器起到光电隔离的作用,防止现场的强电干扰进入PLC中;发光二极管用于显示输入点的状态。
PLC直流电源输入电路的工作原理如图2-7所示。可以看到,当按下PLC外接按钮开关(按钮SB1)时,PLC内光电耦合器导通,发光二极管LED点亮,指示开关部件SB1处于闭合状态。此时,光电耦合器输出端输出高电平,该高电平信号送至内部电路中。CPU识别该信号后将用户程序中对应的输入继电器触点置1。
图2-7 PLC直流电源输入电路的工作原理
相反,当按钮SB1断开时,光电耦合器不导通,发光二极管不亮,CPU识别该信号后将用户程序中对应的输入继电器触点置0。
目前,一些PLC中的直流电源采用内置式,即由PLC内部提供24 V的直流电源,该类PLC在连接外部开关部件时,只需将各种开关部件接入PLC的输入接线端子和公共端子之间即可,如图2-8所示,采用该类型直流供电方式的PLC大大简化了输入端的接线。
图2-8 PLC内置直流电源
② 交流电源输入电路。
在如图2-6(b)所示电路中,交流电源输入电路与直流电源输入电路基本相同,外接交流电源的大小根据不同CPU类型而有所不同(可参阅相应的使用手册)。
如图2-9所示,在交流电源输入电路中,电容器C2用于隔离交流强电中的直流分量,防止强电干扰损坏PLC。另外,光电耦合器内部有两个方向相反的发光二极管,任意一个发光二极管导通都可以使光电耦合器中光敏三极管导通并输出相应的信号。状态指示灯也采用了两个反向并联的发光二极管,光电耦合器中任意一只二极管导通都能使状态指示灯点亮(直流电源输入电路也可以采用该结构,外接直流电源时可不用考虑极性)。
图2-9 PLC交流输入电路的工作原理
(2)PLC的运算控制电路
运算控制电路以内部的CPU为核心,按照用户设定的程序对输入信息进行处理,然后将处理结果送至输出电路,再由输出电路输出控制信号,这个过程可实现算术运算和逻辑运算等多种处理功能。
(3)PLC的输出电路
输出电路即开关量的输出单元,由PLC输出接口电路、连接端子和外部设备及功能部件构成,CPU完成的运算结果由该电路提供给被控负载,用于完成PLC主机与工业设备或生产机械之间的信息交换。
PLC的输出电路根据输出电路所用开关器件不同,主要有晶体三极管输出电路、晶闸管输出电路和继电器输出电路三种,如图2-10所示。
图2-10 PLC的输出电路部分
从图中可以看到,PLC内部电路输出的控制信号,经输出接口电路(主要由光电耦合器、晶体管或晶闸管或继电器、电阻器等构成)、PLC输出接线端子后,送至外接的执行部件,用于输出开关量信号,执行相应的动作(图中只画出对应于一个输出点的输出电路,各个输出点所对应的输出电路均相同)。
① 晶体三极管输出电路。
在如图2-10(a)所示电路中,PLC输出电路主要是由光电耦合器IC、状态指示灯LED、输出晶体三极管VT、保护二极管VD及熔断器FU等构成的。其中,熔断器FU用于防止PLC外接设备或功能部件短路时损坏PLC。
PLC晶体三极管输出电路的工作原理如图2-11所示。从图中可以看到,PLC内部电路接收到输入电路的开关量信号,使对应于晶体三极管VT的内部继电器为1,其相应的输出继电器得电,使所对应输出电路的光电耦合器导通,从而使晶体三极管VT导通,PLC外部设备或功能部件得电,同时状态指示灯LED点亮,表示当前该输出点状态为1。
图2-11 PLC晶体三极管输出电路的工作原理
② 晶闸管输出电路。
在如图2-10(b)所示电路中,PLC输出电路主要是由光电耦合器IC、状态指示灯LED、双向晶闸管VS、保护二极管VD、熔断器FU等构成的。
PLC晶闸管输出电路的工作原理如图2-12所示。从图中可以看到,PLC内部电路接收到输入电路的开关量信号,使对应于双向晶闸管VS的内部继电器为1,其相应的输出继电器得电,使所对应输出电路的光电耦合器导通,从而使双向晶闸管VS导通,PLC外部设备或功能部件得电,同时状态指示灯LED点亮,表示当前该输出点状态为1。
图2-12 PLC双向晶闸管输出电路的工作原理
③ 继电器输出电路。
在如图2-10(c)所示电路中,PLC输出电路主要是由继电器K、状态指示灯LED等构成的。
PLC继电器输出电路的工作原理如图2-13所示。从图中可以看到,PLC内部电路接收到输入电路的开关量信号,使对应于继电器K的内部继电器为1,其相应的输出继电器得电,继电器K线圈得电,其常开触点闭合,PLC外部设备或功能部件得电,同时状态指示灯LED点亮,表示当前该输出点状态为1。
图2-13 PLC继电器输出电路的工作原理
上述三种PLC输出电路都有其各自的特点,也可将其作为选用PLC时的重要参考因素,以使PLC控制系统达到最佳控制状态。表2-1为三种PLC输出电路的特点。
表2-1 三种PLC输出电路的特点
根据输入电路或输出电路公共端子接线方式可以分为共点式输入或输出、分组式输入或输出、隔离式输入或输出电路。
● 共点式输入或输出电路是指输入或输出电路中所有I/O点共用一个公共端子。
● 分组式输入或输出电路是指将输入或输出电路中所有I/O点分为若干组,每组各共用一个公共端子。
● 隔离式输入或输出电路是指具有公共端子的各组输入或输出点之间互相隔离,可各自使用独立的电源。
4. PLC电源电路的供电过程
在整个工作过程中,PLC中的电源始终为各部分电路提供工作所需的电压,以确保PLC工作的顺利进行。
PLC电源电路主要是将外加的交流电压或直流电压转换成微处理器、存储器、I/O电路等部分所需要的工作电压。图2-14为其工作过程示意图。
图2-14 PLC电源电路的工作过程示意图
不同型号或品牌PLC的供电方式有所不同,有些采用直流电源供电(5 V、12 V、24 V),有些采用交流电源供电(220 V/110 V)。目前,采用交流电源(220 V/110 V)供电的PLC较多。该类PLC内置开关式稳压电源,将交流电压进行整流、滤波、稳压处理后,转换为满足PLC内部微处理器、存储器、I/O电路等所需的工作电压。另外,有些PLC可向外部输出24 V的直流电压,可用于为输入电路外接的开关部件或传感部件供电。
根据原理不难看出,PLC作为全新型的工业控制装置,有效地将传感控制技术、计算机控制技术和通信技术融合在一起,用软件编程逻辑代替硬件布线逻辑,拓展了功能、提升了效率、增强了系统的控制能力和抗干扰能力,并有效地降低了故障发生的概率,目前已成为工业自动化发展不可缺少的实用技术核心。
2.1.2 PLC的工作方式
PLC的工作方式采用不断循环的顺序扫描工作方式(串行工作方式)。CPU从第一条指令开始执行程序,按顺序逐条地执行用户程序直到用户程序结束,然后返回第一条指令开始新一轮的扫描。如此周而复始不断循环。当然,整个过程是在系统软件控制下进行的,顺次扫描各输入点的状态,按用户程序进行运算处理(用户程序按先后顺序存放),然后顺序向输出点发出相应的控制信号。
图2-15为PLC的工作方式示意图。从图中可以看到,PLC周而复始的执行一系列任务。任务循环执行一次被称为一个扫描周期。每个扫描周期执行的操作有自诊断处理、通信处理、输入信息处理、用户程序执行及输出信号处理等。
图2-15 PLC的工作方式示意图
PLC接通电源后,市电电压经内部电路处理后为PLC整机供电。系统首先执行自身的初始化操作,包括硬件、软件的初始化和其他设置的初始化处理。整个过程可以大体分为以下多个阶段。
(1)自诊断处理
自诊断处理的检查对象包括CPU、电池电压、程序存储器、I/O和通信等。若发现异常,则马上传递出错代码,特别是出现致命错误时,CPU立刻进入“STOP”(停止)方式,所有的扫描停止。PLC每扫描一次,执行一次自诊断检查。
(2)通信处理
PLC自诊断处理完成后,先检查有无通信任务,如有,则调用相应进程,完成PLC之间或PLC与其他设备的通信处理,并对通信数据做相应处理。例如,PLC与外部编程器、显示器、打印机等是否有通信信息需要传递。PLC每扫描一次,执行一次通信处理。
(3)输入信息处理
将输入端子导入的外部输入信息存入映像寄存器中。PLC每扫描一次,执行一次输入信息处理。
(4)用户程序执行
用户程序由若干条指令组成,指令在存储器中按照序号顺序排列。从首地址开始按自上而下、从左到右的顺序逐条扫描执行,并从输入映像寄存器中“写入”输入端子状态,从元件映像寄存器“写入”对应元件(软继电器)的当前状态,然后根据指令要求执行相应的运算,运算结果再存入元件映像寄存器中。
(5)输出信息处理
所有指令执行完毕后,进入输出信息处理阶段,将运算处理完毕的结果信息存入输出映像寄存器中,并进一步传输至外部被控设备。PLC每扫描一次,执行一次输出信息处理。
至此,一个扫描过程完毕,整个工作周期被称为扫描周期。为了确保控制能正确实时地进行,每个扫描周期的作业时间必须被控制在一定范围内。通常用PLC执行l KB指令所需时间来说明其扫描速度,一般为零点几毫秒到上百毫秒。PLC运行正常时,程序扫描周期的长短与CPU的运算速度、I/O点的情况、用户应用程序的长短及编程情况等有关。