第2章PLC的结构、原理和编程语言
2.1 PLC的基本结构
根据硬件结构的不同,可以将PLC分为整体式PLC和模块式PLC。
1.整体式PLC的结构
其主机由CPU、存储器、I/O接口、电源、通信接口等几大部分组成。此外根据用户需要而配备的各种外部设备(如编程器、图形显示器、微型计算机等)都可以通过通信接口与主机相连。图2-1为整体式PLC的外形示意图,图2-2为整体式PLC的硬件结构示意图。整体式PLC其CPU、I/O接口电路、电源等装在一个箱状机壳内,结构紧凑、体积小、价格低。基本单元内有CPU模块、I/O模块和电源,扩展单元内只有I/O模块和电源,基本单元和扩展单元之间用扁平电缆连接。整体式PLC一般配备有许多专用的特殊功能单元,如模拟量I/O单元、位置控制单元和通信单元等。
图2-1 整体式PLC的外形示意图
图2-2 整体式PLC的硬件结构示意图
2.模块式PLC的结构
大、中型PLC一般采用模块式结构。模块式PLC采用搭积木的方式组成系统,它由机架和模块组成。模块插在模块插座上,后者焊在机架的总线连接板上。机架有不同的槽数供用户选用。如果一个机架容纳不下所选用的模块,可以增加扩展机架。各机架之间用I/O扩展电缆连接。
用户可以选用不同档次的CPU及按需求选用I/O模块。除电源模块和CPU模块插在固定的位置外,其他槽可以按需要插上输入或输出模块。所插槽位不同,输入或输出点的地址也不同,不同型号的PLC及不同点数的I/O模块,其地址号也不同,这要参考相应的用户使用手册。
机架:用于固定各种模块,并完成模块间通信。
CPU模块:由微处理器和存储器组成,是PLC的核心部件,用于整机的控制。
电源模块:供PLC内部各模块工作,并可为输入电路和外部现场传感器提供电源。
输入模块:用于采集输入信号,分为开关量和模拟量输入模块。
输出模块:用于控制动作执行元件,分为开关量和模拟量输出模块。输出有三种形式:继电器输出、晶闸管输出、晶体管输出。
功能模块:用于完成各种特殊功能的模块,如运动控制模块、高速计数器模块、通信模块等。图2-3 为模块式PLC外形示意图。
图2-3 模块式PLC外形示意图
2.1.1 中央处理器(CPU)
中央处理器是PLC的“大脑”,它一般由控制电路、运算器和寄存器组成,这些电路一般都集成在一块芯片上。CPU通过地址总线、数据总线和控制总线与存储单元、输入/输出(I/O)接口电路连接。
不同型号的PLC可能使用不同的CPU部件,制造厂家使用CPU的指令系统编写系统程序,并固化在只读存储器(RAM)中。CPU按系统程序赋予的功能,接收用户程序和数据,存入随机存储器(RAM)中。CPU按扫描方式工作,从0000首地址存放的第一条用户程序开始,到用户程序的最后一个地址,不停地周期性扫描,每扫描一次,用户程序执行一次。
目前大多数PLC都用8位或16位单片机作为CPU。单片机在PLC中的功能分为两部分:一部分是对系统进行管理,如自诊断、查错、信息传送、时钟、计数刷新等;另一部分是读取用户程序、解释指令、执行输入/输出操作等。
PLC主要使用以下几类CPU芯片。
(1)通用微处理器,如Intel公司的8086,80186到Pentium系列芯片。
(2)单片微处理器(单片机),如Intel公司的MCS51/96系列单片机。
(3)位片式微处理器,如AMD 2900系列位片式微处理器。
CPU的主要功能有以下几点。
(1)从存储器中读取指令。CPU从地址总线获取存储地址,从控制总线获取读命令,从数据总线上获取读出的指令,并存入CPU内的指令寄存器中。
(2)执行指令。对存放在指令寄存器中的指令操作码进行译码,执行指令规定的操作,如读取输入信号、读取操作数、进行逻辑运算或算术运算,将结果输出给有关部件。
(3)准备取下一条指令。CPU执行完一条指令后,根据条件可产生下一条指令的地址,以便取出和执行下一条指令。在CPU的控制下,程序的指令既可以顺序执行,也可以分支或跳转。
2.1.2 存储器(MEMORY)
存储器是具有记忆功能的半导体电路,用来存放系统程序、用户程序、逻辑变量和其他一些信息。PLC的存储器分为系统程序存储器和用户程序存储器两种。
1.系统程序存储器
用来存放制造商为用户提供的监控程序、模块化应用功能子程序、命令解释程序、故障诊断程序及其他各种管理程序。程序固化在ROM中,用户无法改变。
2.用户程序存储器
专门提供给用户存放程序和数据,可通过编程进行修改或增删。它决定了PLC的输入信号与输出信号之间的具体关系。其容量一般以字(每个字由16位二进制数组成)为单位。
3.PLC程序存储器的种类
(1)随机存储器(RAM)
一般为用户存储器。读出时,RAM中的内容不被破坏;写入时,刚写入的信息就会覆盖原有的信息。为防止断电后RAM中的内容丢失,PLC使用了专用电池对部分RAM供电,这样在PLC断电后,它仍可由电池供电,使RAM中的部分信息保持不变。RAM中一般存放以下内容。
① 用户程序。在编程时,通过编程设备输入的程序经过预处理后,存放在RAM的从0000开始的地址区。
② 逻辑变量。在RAM中有若干个存储单元用来存放逻辑变量,用PLC的术语来说,这些逻辑变量就是指输入继电器、输出继电器、内部辅助继电器、保持继电器、定时器、计数器和位移继电器等。
③ 供内部程序使用的工作单元。不同型号的PLC存储器的容量是不相同的,在技术说明书中,一般都给出与用户编程和使用有关的指标,如输入继电器和输出继电器的数量、内部辅助继电器的数量、定时器和计数器的数量、允许用户程序的最大长度等。这些指标都间接地反映了RAM的容量,而ROM的容量与PLC的复杂程度有关。
(2)只读存储器(ROM)
一般为系统存储器。系统程序一般包括以下几个部分。
① 检查程序:PLC加电后,首先由检查程序检查PLC各部件操作是否正常,并将检查结果显示给操作人员。
② 翻译程序:将用户输入的控制程序变换成由微机指令组成的程序,然后再执行,还可以对用户程序进行语法检查。
③ 监控程序:相当于总控程序。根据用户的需要调用相应的内部程序,如用手持编程器PROGRAM编程工作方式,则总控程序就调用“键盘输入处理程序”,将用户输入的程序送到RAM中。若选择RUN运行工作方式,则总控程序将启动程序。
(3)可电擦除的存储器(EPROM、E2PROM):用于存放用户程序,存储时间远远大于RAM,一般作为PLC的可选部件。图2-4为存储器之间的存储关系。
图2-4 存储器之间的存储关系
2.1.3 输入/输出接口电路
输入和输出接口电路是PLC内弱电(Low Power)信号和工业现场强电(High Power)信号联系的桥梁。输入和输出接口主要有两个作用:一是利用内部的电隔离电路将工业现场PLC内部进行隔离,起保护作用;二是调理信号,可以将不同的信号(如强电、弱电信号)调理成CPU可以处理的信号(5V、3.3V或2.7V等),如图2-5所示。
图2-5 输入/输出接口电路信号示意图
(1)输入接口电路用于采集输入信号。图2-6为采用光电耦合的直流输入接口电路原理图。图2-6中,当现场开关S(信号的输入部件)闭合时,通过接线端子,将信号传送给光电耦合器T(电隔离电路),T中的发光二极管因有足够的电流流过而发光,输出端的光敏三极管导通,A点为高电平,经滤波电路输入到PLC的内部电路。R1、R2起分压作用,R1且起限流作用,R2和C构成滤波电路(R1、R2和C 共同构成了信号调理和转换电路)。所有的输入信号都是经过光电耦合并经RC电路滤波后才送入PLC内部放大器。采用光电耦合并经RC电路滤波的措施后能有效地消除环境中杂散电磁波等造成的干扰。LED为信号指示灯,也可用寿命较长的氖灯。
图2-6 直流输入接口电路
图2-7为交流输入接口电路,图2-8为交/直流输入接口电路,原理与直流输入接口电路原理类似,不再分析。
图2-7 交流输入接口电路
图2-8 交/直流输入接口电路
(2)输出接口电路用于输出信号,输出信号控制执行部件完成各种动作。输出接口电路的功率放大元件有晶体管、晶闸管和继电器三种。输出电流为0.3~2A。
继电器输出形式的PLC的负载电源可以是直流电源或交流电源,但其输出频率较低。晶体管输出的PLC负载电源是直流电源,其输出频率较高。晶闸管输出的PLC的负载电源是交流电源。选型时要特别注意PLC的输出形式。
图2-9为继电器输出接口电路原理图。图中继电器KA既是输出开关器件,又是隔离器件;电阻R1和LED组成了输出状态显示器;电阻R2和电容C组成了RC灭弧电路。在程序运行过程中,当某一输出点有输出信号时,通过内部电路使得相应的输出继电器线圈接通,继电器触点闭合,使外部负载电路接通,同时输出指示灯点亮,指示该路输出端有输出。负载电源由外部提供。
图2-9 继电器输出接口电路
图2-10为晶体管输出接口电路,图2-11为晶闸管输出接口电路,原理与继电器输出接口电路的原理类似,不再分析。
图2-10 晶体管输出接口电路
图2-11 晶闸管输出接口电路
2.1.4 A/D转换和D/A转换
可编程序控制器的输入和输出信号可以是离散信号或模拟信号。
当输入信号是离散信号时,输入端的设备类型可以是限位开关、按钮、压力继电器、继电器触点、接近开关、选择开关、光电开关等。当输入信号为模拟量时,输入设备的类型可以是压力传感器、温度传感器、流量传感器、电压传感器、电流传感器、力传感器等。
当输出信号是离散信号时,输出端的设备类型可以是电磁阀的线圈、电动机的启动器、控制柜的指示器、接触器的线圈、LED灯、指示灯、继电器的线圈、报警器和蜂鸣器等。当输出信号为模拟量时,输出设备的类型可以是流量阀、AC驱动器(如交流伺服驱动器)、DC驱动器、模拟量仪表、温度控制器和流量控制器。
某些输入量是连续变化的模拟量,而某些执行机构要求PLC输出模拟信号,而PLC的CPU只能处理数字量,这就产生了将模拟信号转换成数字信号(A/D转换)及将数字信号转换成模拟信号(D/A转换)的输入/输出模块。
A/D、D/A单元也是I/O单元,不过是特殊的I/O单元。A/D单元是把外电路的模拟量转换成数字量,然后送入PLC。D/A单元是把PLC的数字量转换成模拟量再送给外电路。作为一种特殊的I/O单元,它仍具有I/O电路抗干扰、内外电路隔离、与输入/输出继电器或内部继电器交换信息等特点。它也是PLC工作内存的一个区,可读/写。A/D中的A多为电流或电压,也有的为温度。D/A中的A多为电压或电流。电压与电流变化范围为0~5V、0~10V与4~20mA,有的还可处理正负值。
1.A/D转换器
模拟量首先被传感器和变送器转换为标准的电流或电压,通过A/D转换器将模拟量变成数字量送入PLC,PLC根据数字量的大小便能判断模拟量的大小。例如,测速发电机随着电动机速度的变化其输出的电压变化,其输出的信号通过变送器后送入A/D转换器,变成数字量,PLC对此信号进行处理,便可知速度的快慢。图2-12为A/D转换的过程。
图2-12 A/D转换过程图
2.D/A转换器
D/A转换器的作用是将PLC的数字输出量转换成模拟电压或电流,再去控制执行机构。图2-13为D/A转换的过程。
图2-13 D/A转换过程图
可编程序控制器也可接收计数脉冲,频率可高达几千到几万赫兹。可用多种方式接收这种脉冲,还可多路接收。有的PLC还有脉冲输出功能,脉冲频率也可达几万赫兹。有了这两种功能,加上PLC有数据处理及运算能力,若再配备相应的传感器,如旋转编码器或脉冲伺服装置,如环形分配器、功放、步进电动机,则完全可以依照NC(数字控制技术)的原理实现各种控制。高、中档的PLC,还开发有NC单元,或运动单元,可实现点位控制。运动单元还可实现曲线插补,可控制曲线运动。所以,若PLC配置了这种单元,则完全可以用NC的办法进行数字量的控制。新开发的运动单元甚至还发行了NC技术的编程语言,为更好地用PLC进行数字控制提供了方便。
2.1.5 高速计数模块
PLC梯形图程序中的计数器的最高工作频率受扫描周期的限制,一般仅为几十赫兹。在工业控制中,有时要求PLC有快速计数功能,计数脉冲可能来自旋转编码器、机械开关或电子开关。高速计数模块可以对几万赫兹甚至几十万赫兹的脉冲计数,它们大多有一个或几个开关量输出点,计数器的当前值等于或大于预置值时,可通过中断程序及时地改变开关量输出的状态。这一过程与PLC的扫描过程无关,可以保证负载被及时驱动。
FX2N的高速计数模块FX2N-1HC有一个高速计数器,可以单相/双相50kHz的高速计数,用外部输入或通过PLC的程序,可使计数器复位或启动计数过程,它可与编码器连接。
2.1.6 运动控制模块
这类模块一般带有微处理器,用来控制运动物体的位置、速度和加速度,它可以控制直线运动或旋转运动、单轴或多轴运动。它们使运动控制与PLC的顺序控制功能有机地结合在一起,被广泛地应用在机床、装配机械等场合。
位置控制一般采用闭环控制,用伺服电动机作驱动装置。如果用步进电动机作驱动装置,既可以采用开环控制,也可以采用闭环控制。模块用存储器来存储给定的运动曲线。
2.1.7 通信模块
通信模块是通信网络的窗口。通信模块用来完成与别的PLC、其他智能控制设备或主计算机之间的通信。远程I/O系统也必须配备相应的通信接口模块。
2.1.8 人机接口
随着科学技术的不断发展,以及自动化控制的需要,PLC的控制日趋完美。许多品牌的PLC配备了种类繁多的显示模块和图形操作终端(人机界面)作为人机接口。
1.显示模块
以三菱FX-10DM-E显示模块为例。
FX-10DM-E显示模块可安装在面板上,用电缆与PLC连接,有5个键和带背光的LED显示器,可显示两行数据,每行16个字符,可用于各种型号的FX系列PLC。可监视和修改T、C的当前值,监视和修改D的当前值。
2.图形操作终端(人机界面)
图形操作终端(人机界面),在液晶画面中可以显示各种信息、图形,还可以自由显示指示灯、PLC内部数据、棒图、时钟等内容。同时,可以配备设备的状态,使设备的运行状况一目了然。图形操作终端(人机界面),配置有触摸屏,可以在画面中设置开关键盘,只需触按屏幕即可完成操作。画面的内容可以通过专用的画面制作软件,非常简便地创建。制作过程是从库中调用、配置所需部件的设计过程。