1.2 PLC硬件基础
PLC是按继电接触线路原理设计的,其等效的内部电器及线路与继电接触线路相同。由PLC定义可知,它与一般计算机的结构相似,也有中央处理单元(CPU)、存储器(MEMORY)、输入/输出(INPUT/OUTPUT)接口、电源部件及外部设备接口等。由于PLC是专为在工业环境下应用而设计的,为便于接线、扩充功能及操作与维护,它的结构及组成又与一般计算机有所区别。
1.2.1 PLC的组成
PLC是一种通用的工业控制装置,其组成与一般的微机系统基本相似。按结构形式的不同,PLC可分为整体式和组合式两类。
整体式PLC是将中央处理器(CPU)、存储器、输入单元、输出单元、电源、通信接口等组装成一体,构成主机,如图1-40 所示。另外还有独立的I/O扩展单元与主机配合使用。主机中,CPU是PLC的核心,I/O单元是连接CPU与现场设备之间的接口电路,通信接口用于PLC与上位机连接和网络通信。
图1-40 整体式PLC的组成
组合式PLC将CPU单元、输入单元、输出单元、智能I/O单元、通信单元等分别做成相应的电路板或模块,各模块插在底板上,模块之间通过底板上的总线相互联系;或不用底板,直接通过总线相连,如图1-41所示。
无论哪种结构类型的PLC,都可根据需要进行配置与组合。整体式结构的PLC通过主机连接I/O扩展单元,也可以配置模拟量I/O点。组合式PLC则在I/O配置上更方便、更灵活。
下面具体介绍PLC的各组成部分。
图1-41 组合式PLC的组成
(1)中央处理单元(CPU)
CPU在PLC中的作用类似于人体的神经中枢,它是PLC的运算、控制中心。一般由控制电路、运算器、寄存器等组成,通过地址总线、数据总线和控制总线与存储器、I/O接口电路连接。它按照系统程序所赋予的功能,完成以下任务:
① 接收并存储从编程器输入的用户程序和数据;
② 诊断电源、PLC内部电路的工作状态和编程的语法错误;
③ 用扫描的方式接收输入信号,送入PLC的数据寄存器保存起来;
④ PLC进入运行状态后,根据存放的先后顺序逐条读取用户程序,进行解释和执行,完成用户程序中规定的各种操作;
⑤ 将用户程序的执行结果送至输出端。
(2)存储器
PLC系统中的存储器主要用于存放系统程序、用户程序和工作状态数据。
① 系统程序存储器。采用ROM或PROM芯片存储器,由生产厂家用来存放PLC的操作系统程序、用户指令解释程序和编译程序、系统诊断程序和通信管理程序等。这些程序与PLC的硬件组成和专用部件的特性有关,处理器在出厂时已经根据不同功能的PLC编写并固化在ROM内,用户不能访问和修改这部分程序存储器的内容。
② 用户程序存储器。用于存放用户经编程器输入的应用程序。一般采用EPROM或EEPROM存储器,现在采用Flash ROM,用户可擦除重新编程;其内容可由用户根据生产过程和工艺的要求进行修改。它的容量一般就代表PLC的标称容量。通常,小型机小于8KB,中型机小于50KB,而大型机可在50KB以上。
③ 工作数据存储器。工作数据是PLC运行过程中经常变化、需要随机存取的一些数据,这些数据一般不需要长久保留,因此采用随机存储RAM。在PLC的工作数据存储区,开辟有元件映像寄存器和数据表。元件映像寄存器用来存储PLC的开关量输入/输出和定时器、计数器、辅助继电器等内部继电器的ON/OFF状态。数据表用来存放各种数据,它的标准格式是每一个数据占一个字。它用来存储用户程序执行时的某些可变参数值,如定时器和计数器的当前值和设定值。它还用来存放A/D转换得到的数字和数学运算的结果等。
根据需要,部分数据在停电时用后备电池维持其当前值,在停电时可以保持数据的存储区域称为数据保持区。
(3)I/O单元
输入/输出接口电路用来连接PLC主机与外部设备。为了提高抗干扰能力,一般的输入/输出接口均有光电隔离装置,应用最广泛的是由发光二极管和光电三极管组成的光电隔离器。
来自现场的指令元件、检测元件的信号经输入接口进入PLC。指令元件的信号是指由用户在控制台、操作台或控制键盘上发出的控制信号,如启动、停止、转换、调整、急停等;检测元件的信号是指用检测元件(如各种传感器、继电器接点、限位开关、行程开关等)对生产过程中的参数(如压力、流量、温度、速度、位置、行程、电流、电压等)进行检测时发出的信号。这些信号有的是开关量、有的是模拟量,有的是直流信号,有的是交流信号,要根据输入信号的类型选择合适的输入接口。
由PLC产生的各种输出控制信号经输出接口去控制和驱动负载,如指示灯的亮灭,电动机的启停和正反转,设备的转动、平移、升降,阀门的开闭等。与输入接口一样,输出接口的负载有的是数字量,有的是模拟量,要根据负载性质选择合适的输出接口。
根据现场执行部件的不同需要,输出接口的功率放大环节又分为继电器型、双向硅型和晶体管型三种型式。继电器容量大,交直流通用,响应时间为毫秒级;可控硅只能带交流负载,响应时间为微秒级;晶体管只能带直流负载,响应速度最快,为纳秒级。半导体器件的寿命可以说是永久的,而新型继电器的寿命也可达1010次。
(4)编程设备
编程设备是可编程序控制器系统中最重要的外围设备,利用它可以输入、检查、修改、调试用户程序,也可以在线监视PLC的工作情况。
编程器可分为简易编程器和图形编程器两种。图形编程器可直接输入梯形图程序,操作方便,功能强,且可脱机编程,有液晶显示(GPC)的便携式和阴极射线(CRT)式两种,价格一般较高;简易编程器价格低,但功能较少,一般需将梯形图变为指令编码的形式输入,通常需联机工作。
目前,很多PLC都可以利用微型计算机作为编程工具,这时应配上相应的编程软件及接口。由于微机的强大功能,使PLC的编程和调试更为方便。
(5)电源
电源部件用来将外部供电电源转换成供PLC的CPU、存储器、I/O接口等电子电路工作所需要的直流电源,使PLC能正常工作。它既可以使外挂的,也可以是内置的。
PLC的电源部件有很好的稳压措施,因此对外部电源的要求不高。直流24V供电的机型,允许电压为16~32V;交流供电的机型,允许电压为85~264V,频率为47~53Hz。
一般情况下,交流供电的PLC还为用户提供24V直流电源作为输入电源或负载电源。
1.2.2 PLC的输入/输出单元
输入/输出单元分为开关量输入/输出单元和特殊功能输入/输出单元两部分。特殊功能包括模拟量控制、温度控制、精确定位和速度控制等。
1.开关量输入/输出单元
该单元用来接收和采集现场设备的输入信号,包括由按钮、选择开关、行程开关、继电器触点、接近开关、光电开关、数字拨码开关等的开关量输入信号和用来向各执行机构进行输出的控制信号,包括向接触器、电磁阀、指示灯和开关等输出的数字量输出信号。它们有能直接接受和输出交流电压(110V或220V)信号的交流输入/输出单元、直流电压(24V、12V或5V TTL电平)信号的直流输入/输出单元。采用光电耦合器或隔离脉冲变压器将来自现场的输入信号或驱动现场设备的输出信号与CPU隔离,以防止外来干扰引起的误动作或故障。
(1)开关量输入单元
直流输入单元外接直流电源,其电路如图1-42 所示。有的输入单元内部提供24V直流电源,称作无源式输入单元,用户只需将开关接在输入端子和公共端子之间即可。
交流输入单元外接交流电源,其电路如图1-43所示。
图1-42 直流输入电路
图1-43 交流输入电路
在图1-42 和图1-43 所示的输入电路中,输入端子有一个公共端子COM,即有一个公共汇集点,因此称为汇点式输入方式。除此之外,输入单元还有分组式和分隔式。分组式输入单元的输入端子分为若干组,每组公用一个公共端子和一个电源。分隔式输入单元的输入端子互相隔离,互不影响,各自使用独立的电源。
(2)开关量输出单元
① 晶体管输出单元。输出电路采用三极管作为开关器件,如图1-44所示。晶体管开关量输出单元为无触点输出,使用寿命长,响应速度快。
图1-44 晶体管输出电路
② 继电器输出单元。其输出电路采用的开关器件是继电器,电路如图1-45 所示。继电器输出电路中的负载电源可以根据需要选用直流或交流。继电器的工作寿命有限,触点的电气寿命一般为30~50 万次,因此在需要输出点频繁通断的场合(如脉冲输出),应使用晶体管型输出电路。另外,继电器线圈从得电到触点动作,存在延迟时间,这是造成输出滞后输入的原因之一。
③ 双向晶闸管输出单元。输出电路采用的开关器件是光控双向晶闸管,如图1-46所示。
图1-45 继电器输出电路
图1-46 晶闸管输出电路
输出单元按照使用公共端子的情况分类,也有汇点式、分组式和分隔式三种接线方式。
在一些晶体管I/O单元中,对外接设备的电流方向是有要求的,即有灌电流(汇流)与拉电流(源流)之分。四种不同的输入/输出接线方式如图1-47所示。
图1-47 四种直流输入/输出接线方式
2.模拟量输入/输出单元
该单元用来接收和采集由电位器、测速发电机和各种变送器等送来的连续变化的模拟量输入信号和向调节阀、调速装置输出模拟量的输出信号。模拟量输入模块将各种满足IEC标准的直流信号(如4~20mA、1~5V、-10~+10V、0~10V)转换成8、10、12 或16 位的二进制数字信号,送给CPU进行处理;模拟量输出模块将CPU的二进制信号转换成满足IEC标准的直流信号,提供给执行机构。
① 模拟量输入单元。其内部结构框图如图1-48所示,从图中可知,它的每一路输入端子都有电压输入和电流输入两种,用户可以通过开关设定、跳线的不同接法来选择使用哪种输入方式。模拟量输入单元主要完成将模拟量输入信号通过A/D转换器转换为二进制数字量的功能。以12 位二进制数据为例来说明模拟量输入信号与A/D转换数据之间的关系,如图1-49所示。
图1-48 模拟量输入单元内部结构
图1-49 输入信号与转换数据关系
② 模拟量输出单元。其内部结构框图如图1-50所示,从图中可知,它的每一路输出端子都有电压输出和电流输出两种,用户可以通过开关设定、跳线的不同接法来选择使用哪种输出方式。
图1-50 模拟量输出单元内部结构
如图1-51 所示,模拟量输出单元主要通过D/A转换器完成二进制数字量转换为模拟量的功能,并最终将模拟量信号输出到端子上,以12 位二进制数据为例来说明数字量输入与模拟量输出之间的转换关系。
图1-51 数字量输入与D/A转换关系
3.温度模块
温度模块接收来自温度传感器的信号,并以数字量表示的值传给PLC。使用温度模块相当于在温度传感器后面配置了变送器和A/D转换器,温度模块送给PLC的数据即是现场的实际温度值,便于监视。温度模块与模拟量输出模块配合使用,可实现温度自动控制,其工作原理如下。
(1)热电阻测温
热电阻测温是利用物质在温度变化时本身电阻也随着发生变化的特性来测量温度的,其主要材料有铂、铜和镍。
铂热电阻具有良好的稳定性和测量温度,其温度范围为-200~+600℃。由于铂是贵金属,价格较高,主要用于高精度的温度测量和标准测温装置。
镍热电阻的温度范围为-100~+300℃。
铜热电阻的温度范围为-50~+150℃。在一些测量精度要求不很高,测量范围比较小的情况下,铜热电阻被广泛采用。
目前铜热电阻和铂热电阻都已标准化,并且有系列化的各种型号传感器,适用于各种不同的场合。
由于铂电阻在零度时R=100Ω,铜电阻在零度时R=50Ω,因此在传感器与测量仪表之间引线过长会引起测量误差。在工业测量中,热电阻与仪表或放大器接线有两种方式:两线制及三线制。对两线制的引线电阻有一定要求,铜电阻不超过R的0.2%,铂电阻不超过R的0.1%。采用三线制可以消除连接线过长及连接线电阻随环境温度变化而引起的误差,其接线方法如图1-52所示。
图1-52 热电阻与仪表的连接方式
图1-53 热电偶工作原理示意图
(2)热电偶测温
热电偶测温的基本工作原理如图1-53所示,两种不同的导体A与B组成两个接点,形成闭合回路。当两个接点温度不同时,回路中将产生电势,该电势的方向和大小取决于两导体的材料及两接点的温度差,而与两导体的粗细、长短无关。这种现象称为物体的热电效应,两种导体组成的回路称为热电偶,它产生的电势称为热电势,热电偶中温度高的一端叫热端(测量端),温度低的一端叫冷端。
热电偶的测量温度范围较宽,一般为-50~+1600℃,最高可达2800℃,并有较好的测量精度。另外,热电偶已标准化、产品系列化,易于选用。各种热电偶都有相应的分度号,可以直接和温度传感器模块、温度控制模块配套使用,也可以另外配接温度变送器,将温度变为4~20mA或1~5V等模拟信号再送入模拟量输入模块,从而实现对温度信号的测控。
在实际测量中,由于热电偶的材料一般都比较贵,当测量点与仪表之间(热端与冷端之间)的距离较远时,为了节省热电偶的材料(或采用标准化的系列产品),通常在热电偶冷端接点上采用补偿导线,用它引入仪表,如图1-54所示。
补偿导线采用多股廉价金属制造,不同热电偶采用不同的补偿导线(已标准化)。补偿导线必须满足两个条件:①在一定温度范围内,补偿导线的热电势必须与所延长的热电偶产生的电势相同。②补偿导线与热电偶的两个接点必须在同一温度下。
图1-54 热电偶补偿导线
在实际应用中,当冷端的温度不足0°C时,会产生测量误差,所以常采用冷端补偿的方法进行补偿。在PLC的温度传感器模块和温度控制模块上直接带有冷端补偿电路,可以直接连线使用。如果使用温度变送器转换的话,由于温度变送器产品也自带冷端补偿电路,所以也可以直接使用。
与热电阻相比,热电偶具有结构简单、测量范围宽、响应速度快等特点,而且无须测量电路就能直接将温度的变化转化成输出电压的变化。但热电偶的稳定性不如热电阻,当被测温度较低时输出的热电势较低,此时因自由端温度变化等因素引起的误差就显得很突出。因此热电偶一般多用在中高温区测温。
4.位置模块
位置模块主要用于位置控制,模块内部具有脉冲发生器,可直接向步进电机或伺服电机驱动器输出脉冲串,控制单坐标,改变位移、速度和位置。其脉冲输出方式可由用户设定为独立地发出正向/反向脉冲序列或无方向脉冲序列和方向信号两种方式。输出脉冲数的多少决定了位移的大小,而输出脉冲的频率则决定了位移的速度。脉冲数及脉冲频率由处理器根据PLC的命令对脉冲发生器加以控制。
由于其内部拥有处理器和存储器,因此位置模块既可以受PLC的主处理器控制,也可以直接被控制台的外部输入信号控制,它的结构框图如图1-55所示。
图1-55 位置控制模块的结构框图
位置模块中的处理器是专门执行定位程序,控制脉冲发生器发出的脉冲数及频率的,它一方面通过总线及接口电路与PLC的主CPU频繁交换信息,另一方面又通过I/O连接器接受外部开关量输入及输出脉冲,并根据PLC发出的控制指令和接收到的外部输入信号,在主CPU的指挥管理下执行具体的定位算法等,这样就极大地减轻了主CPU的负担,节省了时间。但位置模块不能独立于PLC之外工作,它还是作为PLC的一个智能模块,占用相应的I/O地址。
5.高速计数模块
由于PLC是按周期扫描的方式工作的,所以对于高频变化的输入信号(周期小于扫描时间),PLC往往来不及响应,这样将会造成系统工作不正常。高速计数模块正是为了解决这一困难而制造的智能快速响应模块,它直接连接旋转编码器或增量编码器等高速脉冲源,用以实现定位、位移测量和转速测量等。
高速计数模块内部有1 个寄存器和1 个计数器,都由CPU为其设置初值。在外来信号控制下,寄存器和计数器内的数值进行比较,比较的结果送给CPU作为控制信号;如果相等,该信号用来控制该模块的输出。高速计数模块结构框图如图1-56所示。
图1-56 高速计数模块结构框图
(1)基本输入类型
计数器支持3种计数输入类型。
① 脉冲和方向:计数脉冲从通道A输入,用户可以根据通道B的电平或程序来决定计数方向(即决定加计数或减计数)。
② 上升/下降脉冲:在这种方式下,对输入通道A的脉冲上升沿进行加计数,对输入通道B的脉冲上升沿进行减计数。
③ 积分:对从通道A和通道B输入的脉冲进行计数,以两信号的相位差决定计数器的方向。
(2)基本工作模式
① 线性工作模式:计数范围为-32768~+32767,当计数值落在某一组设定值范围内时,该组指定的输出为ON。如果计数值超出允许范围,就会提供上溢/下溢指示,如图1-57所示。
② 环形工作模式:计数范围为0~+32767 的双向计数工作方式,当计数值落在某一组设定值范围内时,该组指定的输出为ON,如图1-58所示。与线性工作模式不同的是,当增计数设定值达到最大值时,即回到零,继续从零开始增计数;而减计数达到零时,即回到最大值,继续从最大值开始减计数至零。
图1-57 线性工作模式
图1-58 环形工作模式
1.2.3 PLC的工作原理
1.PLC等效工作电路
PLC是一种微机控制系统,其工作原理也与微机相同,但在应用时,可不必用计算机的概念去做深入的了解,只需将它看成由普通继电器、定时器、计数器、移位器等组成的装置,从而把PLC等效成输入、输出和内部控制电路三部分。图1-59所示为典型启停线路的PLC执行过程。
图1-59 PLC等效工作电路
(1)输入部分
这部分的作用是接受被控设备的信息或操作命令等外部输入信息。输入接线端是PLC与外部的开关、按钮、传感器等输入设备连接的端口。每个端子可等效为一个内部继电器线圈,线圈号即输入接点号。这个线圈由接收到的输入端的外部信号来驱动,其驱动电源可由PLC的电源部件提供(如直流24V),也可由独立的交流电源(如交流110V)供给。每个输入继电器可以有无穷多个内部触点(常开、常闭形式均可),供设计PLC的内部控制电路(即编制PLC控制程序)时使用。
(2)内部控制电路
这部分的作用是运算和处理由输入部分得到的信息,并判断应产生哪些输出。内部控制电路实际上也就是用户根据控制要求编制的程序。PLC程序一般用梯形图形式表示。而梯形图是从继电器控制的电气原理图演变而来的,PLC程序中的常开、常闭触点、线圈等概念均与继电器控制电路相同。
在PLC内部还设有定时器、计数器、移位器、保持器、内部辅助继电器等继电器控制系统没有的器件,它们的线圈及常开、常闭触点只能在PLC内部控制电路中使用,而不能与外部电路相连。
(3)输出部分
这部分的作用是驱动外部负载。在PLC内部,有若干能与外部设备直接相连的输出继电器(有继电器、双向硅、晶体管三种形式),它也有无限多由软件实现的常开、常闭触点,可在PLC内部控制电路中使用;但对应每一个输出端只有一个硬件的动合触点与之相连,用以驱动需要操作的外部负载。外部负载的驱动电源接在输出公共端(L)上。
总之,在使用PLC时,可以把输入端等效为一个继电器线圈,其相应的继电器接点(常开或常闭)可在内部控制电路中使用,而输出端可以等效为内部输出继电器的一个常开触点,以驱动外部设备。
2.PLC的工作过程
在计算机程序执行中有一种查询方式结构,专门查看某一变量条件的满足情况的,并据此决定下一步的操作。现在要查看的已不是某一变量的条件,而是多个变量的条件,像查询一个变量的条件那样等待查询已不能满足要求,因此我们采用对整个程序巡回执行的工作方式,也称循环扫描,就是说用户程序的执行不是从头到尾只执行一次,而是执行完一次之后,又返回去执行第二次、第三次、……直至停机。如果程序的每一条指令的执行时间足够快,整个程序并不长,使得每执行一次程序所占用的时间足够短,这个时间短到足以保证变量条件不变,即如果在前一次执行程序时对某一变量的状态没有捕捉到,保证在第二次执行程序时该条件依然存在。PLC的工作过程如图1-60所示。
要使程序循环扫描一次的时间短,首先和每条指令的执行时间长短有关,其次和程序中所用指令类型及包含指令的条数的多少有关。前者主要和机器的主频即时钟的快慢有关,机器选择确定之后,它也随之而定;后者则和被控系统的复杂程度,以及程序编制者的水平有关。
从程序执行的角度希望循环扫描一次用户程序的时间要短,但是从用户的角度又希望时间尽量长,这一长与一短必须统一,必须统一在一个循环扫描周期的时间不改变形成变量逻辑关系各因素的状态。由于这些信息因素多来自继电器触头状态的变化,所以一般确定循环扫描周期的时间约为100~200ms。为了适应用户程序长度的要求,还可以从形成用户程序所用指令的选择上来节约时间。
图1-60 PLC工作过程
3.建立I/O映像区
在PLC系统中,决定被控制变量状态的逻辑关系组成因素多来自生产系统现场。为了执行控制程序,从现场采集这些信息的方式有两种:
① 随着程序的执行需要哪一个信息,就到生产现场去采集该信息,这样采集到的信息是实时的,采集时间可能略长。同一因素信息,由于采集的时间不同,其状态可能会有所不同。
② 定时采集。在每一循环扫描周期内定时(一般定在扫描周期的开始或结束)将现场全部有关信息采集到控制器中,存放在系统准备好的一定区域——随机存储器的某一地址区,称为输入映像区,对应等效工作电路的输入继电器线圈。执行用户程序所需现场信息都在输入映像区取用,而不直接到外设去取。这种方式因为是集中采集现场信息,虽然从理论上分析每个信息被采集的时间仍有先后差异,但它已很小,因此可以认为采集到的信息是同时的。同样对被控制对象的控制信息,也不采用形成一个输出就去改变一个被控对象的控制方法,而是先把它们存放在随机存储器的某个特定区域,称为输出映像区,对应等效工作电路的输出继电器接点。当用户程序扫描结束后,将所存被控对象的控制信息集中输出,改变被控对象的状态。对于那些在一个扫描周期内没有发生变化的变量状态,就输出一个与前一周期同样的信息,因而也不引起外设工作的变化。上述输入映像区、输出映像区集中在一起就是一般所称的I/O(输入/输出)映像区。映像区的大小随系统输入、输出信息多少,即输入、输出点数而定。
I/O映像区的建立,使系统工作变成一个采样控制系统,我们称之为数字采样控制系统。虽然不像硬件逻辑系统那样,随时反映控制器件工作状态变化对系统的控制作用,但在采样时刻则基本符合实际工作状态,只要采样周期T足够小,采样频率足够高,我们就可以认为这样的采样系统足够符合实际系统的工作状态。
数字采样系统和一般常见的模拟采样控制系统是有差异的。模拟采样系统的采样对象是一个或几个模拟量,它们是随时间而连续变化的;而在采样系统中对它的处理是在采样时刻采集它们的实际瞬时值,在采样周期内将认为它们是不变的,并保持为采样值。在数字控制系统中,变量都是离散量,在两种状态之间变化,所以对系统变量关心的是它们的状态而不是数值的大小变化。在数字控制系统中输出变量的状态几乎和所有输入信息的状态有关,因此我们关心的是所有输入、输出变量的状态,采集量比较大。在模拟量采集系统中因为要对被采集的模拟量进行各种运算包括微分、积分运算,因此对采集周期T不仅要求它足够短,而且希望它是固定不变的。在数字采样系统中,由于涉及的运算关系多是逻辑关系,因此只要采样周期T足够小即可,而它在一定范围内的变化和影响都是次要的,因此我们可以利用循环扫描周期作为系统的采样周期。
数字采样控制系统中,虽然在采样周期对变量的处理仍然是顺序执行程序,但是,由于输入信息是从现场瞬时采集来的,输出信息又是在程序执行后瞬时输出去控制外设的,因此,可以认为实际上恢复了系统对被控变量控制作用的并行性。
I/O映像区的建立,是PLC工作时只和内存有关地址单元内所存信息状态发生关系,而系统输出也是只给内存某一地址单元设定一个状态,因此,这时的控制系统已经远离实际控制对象,这一点为系统的标准化生产、大规模生产创造了条件。
4.输入/输出操作
PLC的工作方式是循环扫描执行用户程序。由于建立了输入/输出映像区,因此执行程序时系统工作只涉及充当映像区的存储器区,只是在扫描周期的适当时刻,在操作系统的组织下将输出映像区的信息全部倾卸给外设,同时也由所有外设读入信息。这种周期性地与外界交换信息,对一般外设是可以满足要求的。但是随着PLC功能的扩展,特别是许多特殊功能单元、智能单元被当作I/O外设以及中断控制的利用等,对响应的及时性,提出了新的要求。因此正常的周期性的输入/输出交换信息就满足不了要求。例如,某中断源提出中断申请被响应后机器就转向执行中断子程序,在执行中断子程序后的输出信息当然希望尽早送到相关外设,而不希望等到扫描周期的输入/输出阶段。又比如闭环控制系统,按照香农定理对系统确定了采样周期,它当然不可能与系统扫描周期一致,因此就希望在采样周期中系统能进行输入/输出的信息交换,以便及时采集到有关参数的数值进而实现控制。诸如此类,系统的周期性扫描与外设希望的及时响应矛盾的解决办法是设法将有关要输入/输出的信息分离出来,即这一部分信息的输入或输出与系统CPU的周期扫描脱离,利用专用的硬件单元(如快速响应I/O单元)或通过软件利用专门指令去执行某一I/O映像区的输入/输出(如利用定区I/O服务指令使定区的信息及时输入或输出,即取得立即执行)。
5.中断输入处理
在可编程序控制器系统中,中断输入处理是由一块专用的特殊模板完成的。有关中断的概念及处理的思路和一般微机系统基本是一样的,即当有中断申请信号输入后,系统要中断正在执行的程序而转向执行相关的中断子程序;系统若有多个中断源时,它们之间按重要性有一个先后顺序的排队。系统由程序设定可以中断屏蔽等。此外,结合PLC工作的特点,中断的处理也有其特殊之处。
(1)中断的响应是在系统循环扫描周期的各个阶段。在可编程序控制器系统工作过程中,系统不仅对用户程序实行循环扫描,而且对输入、输出、编程器、通信单元及自诊断等,都实行循环扫描。因此对中断信号的响应也不限于用户程序的执行阶段,而是在循环扫描周期的各个阶段。那么,系统CPU是否也和一般微机系统CPU一样,在执行每一条指令结束时去查询有无中断申请呢?在可编程序控制器系统中,不是在每条指令执行结束后查询,而是在相关的程序块结束后查询中断申请,如有中断申请,则转入执行中断服务程序。如果用户程序是以块式结构组成的,则在每块结束或实行块调用时处理中断,见图1-61。
图1-61 中断处理过程
中断时间的决定因素有哪些?它应该包括:
① 等待响应时间t1。从外界中断源发出中断申请信息,到主CPU正在执行的程序块结束,CPU开始查询中断申请的时间。它与有关程序块的长短与中断申请发生的时刻有关,是一个在小范围内变化的随机量。
② 中断信号读入处理时间t2。从C PU查询出有中断申请至查清中断源并读入的时间。
③ 系统处理和中断服务程序的启动t3。它也是一个随机变量,与同时申请中断的中断源数、中断排队及系统处理速度有关。
所以中断响应时间T=t1+t2+t3。
一般系统的中断响应时间为1~2ms。
(2)在可编程序控制器系统中,用户程序是循环扫描反复执行的。中断程序却不是每次扫描用户程序都要执行的,它只在中断申请被接受后执行一次,也就是说,中断申请只能使系统迅速去执行一次中断程序,而与中断程序中有关信息的状态及中断程序执行的结果无关,因此要想多运行几次中断子程序,则必须多进行几次中断申请。
(3)中断源先后排队顺序问题。在可编程序控制器系统中,中断源的信息是通过输入点而进入系统的,可编程序控制器扫描输入点是按顺序进行的,因此,中断源的先后顺序随它们占用的输入点编号的前后就自动排了顺序,因此在分配输入点时考虑一下中断源的主要性就可以解决中断源的排队问题。系统接到中断申请后,顺序扫描中断源,可能只有一个中断源申请中断,也可能同时有2 个或多个中断源提出中断申请。系统在扫描中断源的过程中,就在存储器的一个特定区建立起“中断处理表”,按顺序存放中断信息,中断源被扫描过后,中断处理表亦建立完毕,系统就按照该表顺序先后转至相应的中断子程序入口地址。
在可编程序控制器系统中,中断程序的编制与一般微机系统基本一致。允许中断、禁止中断指令的使用,中断源与中断服务程序的对应关系等都是一样的,稍有不同的地方是:
① 在可编程序控制器系统中,多中断源可以有优先顺序(前面已指出可以通过占用输入点号来排队),根据处理器类型的不同可分为有嵌套关系和无嵌套关系两种,即中断程序执行中,如果系统处于允许中断的状态,若有新的中断发生,可以读取锁存器输出,确定中断输入源,有中断嵌套关系的处理器根据它们的优先顺序,若新中断的优先级高则将现在执行的中断挂起去执行新的中断;但无嵌套关系的处理器不论它们的优先顺序如何,都是将执行中的中断处理结束后,再进行新的中断处理。
② 在中断子程序结束后,返回主程序的方法有两种:其一是中断子程序正常结束,遇到中断处理结束指令(IEND);其二是遇到符合条件的中断处理中断指令(RETI),上述指令放在中断程序中的哪部分,只能根据该程序的具体情况而定。
③ 关于中断服务程序执行结果信息的输出问题,由于PLC执行的是循环扫描方式,正常的输入/输出是在扫描周期的一定阶段进行的,因此对中断子程序有关信息的输出必须进行特殊处理。
6.PLC的主要性能指标
(1)存储容量
PLC的存储器由系统存储器和用户存储器两部分组成。系统存储器用来存放不可改变和访问的系统程序,用户存储器用来存放用户程序及所需要的数据。它包括程序存储器和数据存储器。数字输入/输出量在数据存储器中建立的文件分别称为输入/输出映像文件,也叫输入/输出映像表。模拟输入/输出量通常在数据存储器中建立块传送文件。生产厂家在生产PLC时,已经按照机器型号的不同,设置了不同容量的存储器,小至1KB到几KB,大至1~2MB。用户可根据控制对象的复杂程度不同,预估所需容量,进而选择机型。在16位PLC中,存储器容量通常以字(不是字节)为基本单位,而在32位PLC处理器中,存储容量常以字节计。
(2)控制容量
PLC的控制容量就是I/O容量,也叫I/O能力,通常以离散量(数字量)个数计。不同的PLC的I/O容量的差别很大,一些微型的PLC的I/O能力在20点以下,而大型PLC的I/O能力可达10KB以上。由于I/O容量大小与存储容量的大小基本一致,生产厂家在生产PLC时,常以I/O容量的大小来设置不同的存储器容量。I/O模块、数据存储器与程序存储器之间的关系如图1-62所示。
图1-62 I/O模块、数据存储器与用户程序
(3)循环扫描周期
PLC扫描周期也叫处理器扫描时间。通常将输入扫描与输出扫描合称为I/O扫描,因此处理器扫描时间为I/O扫描与程序扫描(逻辑扫描)之和。I/O扫描时间是指处理器把其输出映像表中的数据写到输出模块和把输入数据从输入模块读到处理器输入映像数据表的时间。当处理器完成了系统中所有的I/O刷新后,就开始逻辑扫描。逻辑扫描是执行用户程序的时间,程序指令对某些条件进行检查并将该条件与输入映像表中的位相比较。如果映像表中的位与被检查的条件相符,则逻辑为真,处理器就刷新输出映像表中相应的位,这个过程将连续不断地进行,直至执行到逻辑扫描的结束语句为止。这时开始I/O扫描。
在I/O扫描期间,处理器将完成内务处理和离散数据传送两项工作。内务处理时间(一般不大于4.5ms)包括处理器的内部检查:用输出映像表数据刷新处理器基本框架上驻留本地I/O输出模块;用输出映像表的数据刷新远程I/O缓冲区;用处理器基本框架内的I/O输入状态刷新输入映像表;用存放在远程I/O缓冲区的远程I/O输入状态刷新输入映像表。在完成内务处理之后,处理器将进行扩展本地I/O框架(如果存在)的扫描:扩展本地I/O的离散数据在处理器数据映像表和扩展本地I/O框架中的I/O之间进行交换;扫描扩展本地I/O框架所需要的时间加上内务处理时间就是总的I/O扫描时间。
远程I/O系统是一种独立的与程序扫描不同步的扫描。远程I/O扫描从远程I/O缓冲区取输出数据送给输出模块,并将来自输入模块的输入数据放入远程I/O缓冲区;然后CPU在I/O扫描期间,再与远程I/O缓冲区进行输入和输出映像表数据的交换。
由图1-63 可见,机器在正常运行状态下,每一个扫描周期都包含I/O扫描与用户程序扫描(逻辑扫描),而这两个过程在机器运行过程中所用的时间往往是可变的。特别对程序中有条件调用和子程序调用等情况,程序中指令数目难于确定,因此通常用执行1000条指令的时间(大约1~10ms/k指令)来衡量PLC的运行速度。
图1-63 系统工作示意图
(4)指令功能及软件支持
最初的PLC只是一些简单的开关量逻辑控制器件,而且其控制数目有限,因此只有基本的输入/输出及程序控制指令,编程设备也很简陋。但可编程序控制器发展到现在,不仅其I/O能力大大增强,且实现了对模拟量的各种控制,其指令系统也得到了充分的发展,变得相当完善。如S7-300系列可编程序控制器的指令系统包括继电器指令、定时器和计数器、计算指令(包括三角函数、指数、幂运算等)、数据转换、诊断、移位寄存器、比较、数据传送、顺序器、立即I/O、程序控制和PID控制,以及顺序功能流程图指令等,是指令功能最强的可编程序控制器之一。
在可编程序控制器不断发展、指令功能不断增强的同时,其开发手段也从早期的专用编程设备移到计算机上进行;计算机开发环境也从DOS转到Win98//XP/NT上,从而变得更加易于使用。除编程软件外,还有仿真软件,这使PLC的开发、调试可以在一台计算机上完成,缩短了应用系统的开发时间。通常在选择PLC时,不但要考虑PLC本身是否适合应用,同时还要考虑相应的开发环境及软件是否易用。