《电气控制与PLC技术》课件第4章_第1页
《电气控制与PLC技术》课件第4章_第2页
《电气控制与PLC技术》课件第4章_第3页
《电气控制与PLC技术》课件第4章_第4页
《电气控制与PLC技术》课件第4章_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章PLC的编程语言及基本指令4.1PLC的编程语言概述4.2FX系列PLC的编程元件4.3FX系列PLC的基本指令小结

思考与练习4.1PLC的编程语言概述应用程序的编制需使用可编程控制器生产厂方提供的编程语言。至今为止,还没有一种能适合于各种可编程控制器的通用编程语言。但由于各国可编程控制器的发展过程有类似之处,可编程控制器的编程语言及编程工具大体差不多。一般常见的有如下几种编程语言的表达方式。

1.梯形图(LadderDiagram)梯形图是一种以图形符号及图形符号在图中的相互关系表示控制关系的编程语言,是从继电器电路图演变过来的。它是PLC编程语言中使用最广泛的一种语言。从图4.1(d)及图4.2(d)梯形图可见,梯形图中所绘的图形符号和继电器电路图中的符号十分相似。而且这两个控制实例中梯形图的结构和继电器电路图也十分相似。这两个相似的原因非常简单,一是因为梯形图是为熟悉继电器电路图的工程技术人员设计的,所以使用了类似的符号;二是两种图所表达的逻辑含义是一样的。因而设计梯形图的一种思路是将可编程控制器中参与逻辑组合的元件看成和继电器一样的器件,具有常开、常闭触点及线圈,且线圈的得电及失电将导致触点的相应动作,再用母线代替电源线,用能量流概念来代替继电器电路中的电流概念,使用绘制继电器电路图类似的思路绘出梯形图。需要说明的是,PLC中的继电器等编程元件并不是实际物理元件,而只是计算机存储器中一定的位,它的所谓接通是相应存储单元置1。图4.1异步电机单向运行控制方案比较(a)主电路;(b)用继电器实现的控制电路;(c)用PLC实现的控制电路;(d)PLC实现的梯形图及程序图4.2异步电机可逆运行控制方案比较主电路;(b)用继电器实现的控制电路;(c)用PLC实现的控制电路;(d)梯形图继电接触器电路图中部分符号和三菱公司PLC梯形图符号的对照关系见表4.1。除了图形符号外,梯形图中也有文字符号。图4.1(d)中第一行第一个常开触点边标示的X0即是文字符号。和继电接触器控制电路中一样,文字符号相同的图形符号即是属于同一器件的。表4.1符号对照

2.指令表(InstructionList)(又称语句表)指令表和单片机程序中的汇编语言有点类似,由语句指令依一定的顺序排列而成。一条指令一般可分为两部分,一为助记符,二为操作数。也有只有助记符的,称为无操作数指令。指令表语言和梯形图有严格的对应关系。对指令表编程不熟悉的人可先画出梯形图,再转换为指令表。另一方面,程序编制完毕装入机内运行时,简易编程设备都不具备直接读取图形的功能,梯形图程序只有改写为指令表才有可能送入可编程控制器运行。图4.1(d)中也列出了梯形图所对应的语句表。本书将在本章后面介绍FX系列PLC梯形图及指令表编程的基本方法。

3.顺序功能图(SequentialFunctionChart)顺序功能图常用来编制顺序控制类程序。它包含步、动作、转换三个要素。顺序功能编程法可将一个复杂的控制过程分解为一些小的工作状态,对这些小状态的功能分别处理后,再把这些小状态依一定的顺序控制要求连接组合成整体的控制程序。顺序功能图体现了一种编程思想,在程序的编制中有很重要的意义。本书将在后面应用中介绍顺序编程思想及方法。图4.3所示为顺序功能图示意。图4.3顺序功能图示意

4.功能块图(FunctionBlockDiagram)功能块图是一种类似于数字逻辑电路的编程语言,熟悉数字电路的人比较容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系。方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入端、输出端的小圆点表示“非”运算,信号自左向右流动。就像电路图一样,它们被“导线”连接在一起。功能块图举例如图4.4所示。图4.4功能块图及指令表

5.结构文本(StructuredText)

随着PLC的飞速发展,许多高级功能使用梯形图表示很不方便。为了增强PLC的数学运算、数据处理、图表显示、报表打印等功能,方便用户的使用,许多大中型PLC都配备了PASCAL、BASIC、C等高级编程语言。这种编程方式叫结构文本。与梯形图相比,结构文本有两个很大的优点:一是能实现复杂的数学运算;二是非常简洁和紧凑,用结构文本编制复杂的数学运算程序可能只占一页纸,结构文本用来编制逻辑运算程序也很容易。以上编程语言的五种表达方式是由国际电工委员会(IEC)1994年5月在PLC标准中推荐的。对于一款具体的PLC,生产厂家可在这五种表达方式中提供的几种编程语言供用户选择。也就是说,并不是所有的PLC都支持全部的5种编程语言。可编程控制器的编程语言是编制可编程控制器应用软件的工具。它以PLC的输入口、输出口、机内元件之间的逻辑及数量关系表达系统的控制要求,并存储在机内的存储器中。4.2FX系列PLC的编程元件

PLC是通过CPU循环扫描的工作方式来完成其控制任务的。PLC运行时,CPU执行用户程序从应用程序的第一条指令开始取指令并执行,直到最后一条指令执行结束,因此在一定的硬件与软件基础上的用户程序决定了控制系统的运行功能。

PLC用户程序的硬件基础是指系统的编程元件,除了主机的各个可用来编程的电子元件(如继电器、计数器等)之外,还包括构成系统的其他硬件设备及其配置组态;软件基础是指PLC的指令系统。机器的指令系统是建立在硬件结构的基础上的,这在指令表编程语言中体现的很明显。4.2.1FX系列PLC的用户数据结构

1.位元件

FX系列PLC有4种基本编程元件,它们分别如下。

X:输入继电器,用于接收外部输入信号。其特点是状态不受PLC程序的控制,只由外部控制现场的信号驱动。

Y:输出继电器,用于从PLC直接输出物理信号。其特点是状态受PLC程序的控制,并对应于输出接口中的物理继电器或其他可驱动的器件。

M:辅助继电器,PLC内部的运算标志。它实质上是起着中间继电器的作用,不能直接驱动执行元件。

S:状态继电器,PLC内部的运算标志。它是有特殊用途的专用内部继电器,在监控或诊断故障时用来表示PLC内部的某些状态或工作条件,也可以被用户程序引用以助于简化程序。上述的各种元件称为位(bit)元件,它们只有两种不同的状态,即ON和OFF,可以分别用二进制数1和0来表示。位元件用来表示开关量的状态,如触点的闭合、断开,线圈的通电、断电。

2.字元件

8个连续的位组成一个字节(Byte),16个连续的位组成一个字(Word),32个连续的位组成一个双字(DoubleWord)。如数据寄存器(D)就是字元件。定时器和计数器的当前值和设定值也为字元件,它们是有符号的字,最高位(第15位)为符号位,正数的符号位为0,负数的符号位为1。有符号字可以表示的最大正整数为32767。

3.位元件的组合

FX系列PLC用KnP的形式表示连续的位元件组,每组由4个连续的位元件组成,P为位元件的首地址,n为组数,32位操作数时n=1~8,16位操作数时n=1~4。例如,K2M0表示由M0~M7组成的两个位元件组,M0为数据的最低位(首位)。还有一种是字与位结合的数据结构。例如,定时器和计数器的触点为位(Bit),而它们的设定值寄存器和当前值寄存器的内容均为字。4.2.2输入继电器和输出继电器

PLC的存储器中有一个存储区用来存储PLC信号的输入/输出(I/O)状态,称为I/O状态表。该表上的输入部分表示现场的输入信号,称为输入继电器;该表上的输出部分表示所控制的执行单元的状态,称为输出继电器。某个I/O继电器实质上就是I/O存储区中的某一位。在I/O状态表中所表示的状态都是常开触点的状态,而对于常闭触点,只要将其相应的状态取反即可。输入继电器和输出继电器的触点可以在PLC程序中多次引用,次数不限。输入继电器和输出继电器对应于PLC的输入点和输出点。I/O点数是PLC的一个重要参数,直接影响到PLC的控制规摸。

FX系列PLC梯形图中的编程元件的名称由字母和数字组成,它们分别表示元件的类型和元件号。输入继电器名称用字母X表示,输出继电器名称用字母Y表示,如X24,Y12等。输入继电器和输出继电器的元件编号是用八进制数表示的。八进制数只有0~7这8个数字符号,遵循“逢八进一”的运算规则。例如,八进制数X27和X30是两个相邻的整数。表4.2给出了FX2N系列PLC的输入/输出继电器元件编号。表4.2FX2N系列PLC的输入/输出继电器元件编号

1.输入继电器(X)

输入继电器是PLC接收外部输入的开关量信号的窗口。PLC通过光电耦合器,将外部信号的状态读入并存储在输入映像区中。输入端可以外接控制开关、按钮、限位开关、传感器、常开触点或常闭触点,也可以接多个触点组成的串并联电路。在梯形图中,可以无限次使用输入继电器的常开触点和常闭触点。图4.5是一个PLC控制系统中输入继电器与输出继电器的示意图,X0端子外接的输入电路接通时,它对应的输入映像区的状态为1,断开时状态为0。输入继电器的状态唯一地取决于外部输入信号的状态,不受用户程序的控制。因此,在梯形图中只能出现输入继电器的触点,不能出现输入继电器的线圈。图4.5输入继电器与输出继电器

应注意的是,因为PLC只是在每一扫描周期开始时读取输入信号,因此输入信号为ON和OFF的持续时间应大于PLC的扫描周期。如果不满足这一条件,没有脉冲捕捉功能的PLC可能会丢失输入信号。

2.输出继电器(Y)输出继电器是PLC向外部负载发送信号的窗口。输出继电器用来将PLC的输出信号传送给输出模块,再由输出模块驱动外部负载。输出继电器的通断状态由程序执行结果决定,在PLC内部它有一个线圈和许多对应的常开触点、常闭触点,在编程时可以反复使用这些触点。在图4.5梯形图中Y0的线圈“通电”,继电器型输出模块中对应的硬件继电器的常开触点闭合,使外部负载工作。4.2.3辅助继电器

PLC中设有许多辅助继电器,其名称用字母M表示。每一个辅助继电器的线圈有许多常开触点和常闭触点供用户编程时使用。辅助继电器元件编号采用十进制数编号。一个辅助继电器实质上是PLC中的一个存储单元(位),在程序中起着类似于继电器控制系统中的中间继电器的作用。它们不能接收外部的输入信号,也不能直接驱动外部负载,是一种内部的状态标志。这些继电器的存在,使PLC功能大为加强,编程变得十分灵活。因此,如何利用好辅助继电器完成控制任务是PLC程序设计中的一个重要问题。PLC中辅助继电器个数是有限的,并且明确规定了地址。FX系列PLC的辅助继电器分为通用辅助继电器、失电保持辅助继电器、特殊辅助继电器3种。

1.通用辅助继电器

FX2N系列PLC通用辅助继电器的元件编号为M0~M499,共500点。在用户程序中可做中间继电器使用。FX2N系列PLC的通用辅助继电器没有断电保持功能。如果在PLC运行时电源突然中断,输出继电器和通用辅助继电器将全部变为OFF。若电源再次接通,除了因外部输入信号而变为ON的以外,其余的仍将保持为OFF状态。

2.失电保持辅助继电器

FX系列PLC的失电保持辅助继电器的元件编号为M500~M3071,共2572点。失电保持辅助继电器在电源断电时,用锂电池保持它们在映像区中的内容,或将它们保存在E2PROM中。PLC重新通电后的第一个扫描周期将保持其断电瞬间的状态,如图4.6所示。其中的M500~M1023可以用软件来设定使其成为非断电保持辅助继电器。某些控制系统要求记忆电源中断瞬间的状态,重新通电后再现其状态,失电保持辅助继电器就可以用于这种场合。假设图4.6中X0和X1分别是启动按钮和停止按钮,则M600通过Y0控制外部的电动机。如果电源中断时M600为“1”状态,因为电路的记忆作用,PLC重新通电后,M600将保持为“1”状态,使Y0继续为ON,电动机重新开始运行。应注意的是,失电保持辅助继电器只是在PLC重新通电后的第一个扫描周期保持断电瞬间的状态。图4.6断电保持功能

3.特殊辅助继电器

FX系列PLC的特殊辅助继电器的元件编号为M8000~M8255,共256点。它们用来表示PLC的某些状态,起着特殊用途的专用内部继电器的作用。特殊辅助继电器分为触点利用型和线圈驱动器型两类。

1)触点利用型触点利用型特殊辅助继电器是用户只能使用其触点的特殊辅助继电器。这类辅助继电器的线圈由PLC自动驱动,用户只能使用其触点。例如,

M8000:RUN(运行)监控,PLC运行时接通;

M8001:RUN(运行)监控,PLC运行时断开;

M8002:初始化脉冲,在PLC开始运行之初ON一个扫描周期;

M8003:初始化脉冲,在PLC开始运行之初OFF一个扫描周期;

M8005:锂电池电压降低报警继电器,当锂电池电压下降至规定值时变为ON,可以用它的触点驱动输出继电器和外部指示灯,提醒工作人员更换锂电池。

M8011~M8014:分别是10ms、100ms、1s和1min时钟脉冲继电器。例如10ms时钟脉冲继电器的功能是其触点以10ms为周期重复通、断动作,即ON为5ms,OFF为5ms。

2)线圈驱动器型线圈驱动器型特殊辅助继电器的线圈由用户程序驱动,使PLC执行其特定的操作,用户并不使用它们的触点。例如,

M8030:线圈“通电”后,“电池电压降低”发光二极管熄灭;

M8033:PLC停止时,输出保护;

M8034:线圈“通电”时,禁止所有的输出;

M8039:线圈“通电”时,PLC以D8039中指定的扫描时间工作。4.2.4状态继电器状态继电器是工序步进控制简易编程的重要元件,它常与STL指令(步进梯形指令)一起使用。状态继电器采用十进制编号,元件编号为S0~S999,共1000点,分为通用状态继电器、锁存状态继电器和报警器用状态继电器3种类型。在不对状态继电器使用步进梯形指令时,也可以把它们作为通用的辅助继电器(M)使用。

1.通用状态继电器通用状态继电器的元件编号为S0~S499,共500点。通用状态继电器没有断点保持功能,但可以程序设定。在使用IST(初始化状态功能)指令时,其中的S0~S9供初始状态使用,S10~S19供返回原点使用。

2.锁存状态继电器锁存状态继电器的元件编号为S500~S899,共400点。具有断电保持功能。锁存状态继电器在PLC断电时用带锂电池的RAM或E2PROM保存其ON/OFF状态。

3.报警器用状态继电器报警器用状态继电器的元件编号为S900~S999,共100点。在使用应用指令ANS(信号报警器置位)和ANR(信号报警器复位)时,状态继电器S900~S999可以用作外部故障诊断的输出,成为信号报警器。4.2.5定时器在PLC的实际应用中,许多过程的控制都与时间有关。因此,PLC必须具备定时功能。PLC中的定时器相当于继电器控制系统中的时间继电器。它有一个设定值寄存器(一个字长),一个当前值寄存器(一个字长)和一个用来存储其输出触点状态的映像区(占二进制的一位),这3个存储单元使用同一个元件号。FX系列PLC的定时器分为通用定时器和积算定时器。定时器元件编号采用十进制数编号。

PLC的定时器都有时间基数,在编程时,应给出一个时间常数即初始设定值。实际的定时时间值为时间基数乘以时间常数的积。PLC的定时器内部结构实际上是一个时间寄存器,将时间寄存器预置一个设定值(时间常数)后,在时钟脉冲作用下,使其进行加一操作,当时间寄存器的内容等于设定值时,表示定时时间到,定时器则有输出。常数K可作为定时器的设定值,也可以用数据存储器(D)的内容来设置定时器。例如,外部数字开关输入的数据可以存入数据寄存器,作为定时器的设定值。通常使用断电保持数据寄存器,这样在断电时不会丢失数据。应注意的是,外部设定的时间常数必须是一个0~32767之间的BCD码值,否则将出错。

1.通用定时器

FX系列PLC各系列的定时器个数和元件编号如表4.3所示。其中,T192~T199,T246~T249为子程序和中断服务程序专用的定时器。通过简单计算可知,100ms定时器的定时范围为0.l~3276.7s。通用定时器没有断电保持功能,在控制条件为断开或停电时将复位。FX系列的定时器只能提供其线圈“通电”后延迟动作的触点。图4.7所示的为100ms定时器,控制触点X0接通时,T120的当前值寄存器从0开始,对100ms的时钟脉冲进行累加记数。当前值等于设定值100时,定时器的常开触点接通,常闭触点断开。即T120的输出触点在其线圈被驱动100ms × 100 = 10s后动作。X0的常开触点断开后,定时器T120则复位,当前值恢复为0,它的常开触点断开。其逻辑功能是:控制触点X0接通时,T120开始定时,到10s后,Y0输出为“1”。表4.3FX2N系列PLC的定时器图4.7100ms定时器

2.积算定时器

100ms积算定时器有T250~T255,具有断电保持功能,即其控制条件为逻辑“l”时开始定时,在定时过程中如果控制条件变为逻辑“0”或PLC断电,积算定时器停止定时且保持当前值,当控制条件再次为逻辑“1”或PLC通电后,则继续定时,时间累计,直到定时时间到。通过简单计算可知,100ms积算定时器的定时范围为0.1~3276.7s。图4.8为100ms积算定时器的梯形图。X0的常开触点接通时,T250的当前值寄存器对100ms时钟脉冲进行累加计数。X0的常开触点断开或停电时,停止定时,当前值保持不变。X0的常开触点再次接通或重新通电时,继续定时,累计时间(t1+t2)为800 × 100ms=80s时,T250的触点动作。因为积算定时器的线圈断电时不复位,需要用X1的常开触点使T250强制复位。其逻辑功能是:控制触点X0接通时,T250开始定时,到80s后,Y0输出为“1”。当控制触点X1接通时,复位指令RST使T250复位。

3.定时器的定时精度定时器的精度与程序的安排有关,如果定时器的触点在线圈之前,精度将会降低。最小定时误差为输入滤渡器时间减去定时器的分辨率,1ms,10ms和100ms定时器的分辨率分别1ms,10ms和100ms。图4.8100ms积算定时器4.2.6计数器

PLC中的计数器可分为三类,分别为16位增计数器、32位增减计数器、高速计数器,其中16位增计数器、32位增减计数器是在执行扫描操作时对内部元件(如X、Y、M、S、T、C)的信号记数的计数器。计数器元件编号采用十进制数编号。

1. 16位增计数器

16位增计数器可以分为16位通用计数器和16位断电保持计数器。其设定值为1~32767。16位通用计数器为C0~C99,共100点;16位断电保持计数器为C100~C199,共l00点。断电保持计数器可累计计数,在电源中断时,计数器停止计数,并保持计数当前值不变,电源再次接通后在当前值的基础上继续计数。图4.9给出了16位加计数器的工作过程。图中X0的常开触点接通后,C8被复位,它对应的位存储单元被置0,它的常开触点断开,常闭触点接通,同时计数当前值被置“0”。X1用来提供计数输入信号,当计数器的复位输入电路断开,计数输入电路由断开变为接通(即计数脉冲的上升沿)时,计数器的当前值加1。在5个计数脉冲之后,C8的当前值等于设定值5,它对应的位存储单元的内容被置“1”,其常开触点接通,常闭触点断开。再来计数脉冲时当前值不变,直到复位输入电路接通,计数器的当前值被置为“0”,其触点才全部复位。计数器也可以通过数据寄存器来指定设定值。图4.916位加计数器

2. 32位增减计数器

32位增减计数器为C200~C234,共35点。其设定值为-2147483648~+2147483647,其中C200~C219(共20点)为通用型,C220~C234(共15点)为断电保持型。32位增减计数器的加/减计数方式由特殊辅助继电器M8200~M8234设定,当对应的特殊辅助继电器为ON时,为减计数,反之则为加计数。计数器的当前值在最大值2147483647时加1将变为最小值-2147483648。类似地,当前值-2147483648减1时将变为最大值+2147483647。这种计数器称为“环形计数器”。32位增减计数器如图4.10所示。图4.1032位增减计数器

32位计数器的设定值设定方法有两个,一是由常数K设定,二是通过指定数据寄存器设定。通过指定数据寄存器设定时,32位设定值存放在元件号相连的两个数据寄存器中,如指定的是D0,则设定值存放在D1和D0中。图4.10中C200的设定值为8,在加计数时,若计数器的当前值由7增加到8时,计数器的输出触点为ON,当前值大于8时,输出触点仍为ON。当前值由8减少到7时,输出触点为OFF,当前值小于8时,输出触点仍为OFF。当复位输入X13的常开触点接通时,C200被复位,其常开触点断开,常闭触点接通,当前值被置为0。

3.高速计数器(HSC)高速计数器为C235~C255,共21点,均为32位加/减计数器。其分为一相高速计数器(C235~C240)、两相双向计数器(C246~C250),A-B相型双计数输入高速计数器(C251~C255)三种。一相和两相双向计数器最高计数频率为10kHz,A-B相计数器最高计数频率为5kHz。不同类型的高速计数器可以同时使用,它们共用PLC的8个高速计数器输入端X0~X7。但是,某一输入端同时只能供一个高速计数器使用,因此应注意高速计数器输入不能有冲突。高速计数器的运行建立在中断的基础上,与扫描时间无关。在对外部高速脉冲计数时,梯形图中高速计数器的线圈应一直通电,表示与它有关的输入点正被使用,其他高速计数器的处理不能与它冲突。图4.11所示为一相高速计数器。其中,当控制触点X14为ON时,选择了高速计数器C235,并且指定了C235的计数输入端是X0,但是它并不在程序中出现,计数信号并不是X14提供的。其中,C235为一相无启动/复位输入端的高速计数器。C244为一相带启动/复位输入端的高速计数器,M8244设置C244的计数方向,ON时为减计数,OFF时为加计数。C235只能用RST指令来复位。对C244,X1和X6分别为复位输入端和启动输入端,它们的复位和启动与扫描工作方式无关,其作用是立即的、直接的。如果X12为ON,一旦X6变为ON,立即开始计数,计数输入端为X0;X6变为OFF,立即停止计数。C244的设定值由D0和D1指定。除了用X1使之立即复位外,也可以在梯形图中用复位指令复位。有关高速计数器的用法详见FX系列PLC的技术手册。图4.11一相高速计数器4.2.7数据寄存器

1.通用数据寄存器通用数据寄存器在模拟量检测与控制、位置控制等场合用来存储数据和参数,数据寄存器元件编号采用十进制数编号。与辅助继电器M不同,它是纯粹的寄存器,不带任何触点。通用数据寄存器可贮存16位二进制数或一个字,两个数据寄存器合并起来可以存放32位数据(双字),如在D0和D1组成的双字中,D0存放低16位,D1存放高16位字。双字的最高位为符号位,该位为0时数据为正,为1时数据为负。将数据写入通用数据寄存器后,其值将保持不变,直到下一次被改写。PLC从RUN状态进入STOP状态时,所有的通用数据寄存器的值被改写为0。但是,如果特殊辅助继电器M8033为ON,PLC从RUN状态进入STOP状态时,通用数据寄存器的值保持不变。图4.12所示为通用数据寄存器贮存16位/32位数据。图4.12通用数据寄存器贮存16位/32位数据

2.失电保持数据寄存器失电保持数据寄存器与通用数据寄存器一样,除非改写,否则原有的数据不会变化。它与通用数据寄存器不同的是,无论电源是否掉电,PLC运行与否,其内容不会变化,除非向其中写入新的数据。需要注意的是当两台PLC做点对点的通信时,D490~D509用作通信。

3.特殊寄存器特殊寄存器是具有特殊用途的寄存器,元件编号为D8000~D8255,共256点,用来控制和监视PLC内部的各种工作方式和元件,如电池电压、扫描时间、正在动作状态的元件编号等。其内容在电源接通时,写入初始值(先全部清0,然后由系统ROM安排写入初始值)。例如,D8000所存警戒监视时钟的时间由ROM设定。若要改变时,用传送指令将目的时间送入D8000。该值在PLC由RUN状态到STOP状态时保持不变。没有定义的数据寄存器请用户不要使用。

4.文件寄存器文件寄存器实际上是一类专用数据寄存器,用于存储大量的数据,例如采集数据、统计计算数据、多组控制参数等。其数值由CPU的监视软件决定,但可以通过扩充存储器的方法加以扩充。文件寄存器占用用户程序存储器(EPROM、E2PROM)的一个存储区,以500点为一个单位,最多可在参数设置时设置2000点,用编程器可进行写入操作。

5.外部调整寄存器

FX1S和FX1N有两个内置的设置参数用的小电位器——外部调整寄存器,可以改变指定的数据寄存器D8030或D8031的值(0~255)。FX2N和FX2NC没有内置的供设置用的电位器,但是可用附加的特殊功能扩展板FX2N-8AV-BD实现同样的功能,该扩展板上有8个小电位器,使用应用指令VRRD(模拟量读取)和VRSC(模拟量开关设置)来读取电位器提供的数据。外部调整寄存器常用来修改定时器的时间设定值。4.2.8变址寄存器变址寄存器用来改变编程元件的元件号、操作数、修改常数等。FX1S和FX1N有两个变址寄存器V和Z,FX2N和FX2NC有16个变址寄存器V0~V7和Z0~Z7,在32位操作时将V与Z合并使用,Z为低位,V为高位。变址寄存器可以用来改变编程元件的元件号。例如,当V=11时,数据寄存器的元件号D5V相当于D16(11+5=16)。通过修改变址寄存器的值,可以改变实际的操作数。变址寄存器也可以用来修改常数。例如,当Z=23时,K35Z相当于常数58(23+35=58)。4.2.9指针(P/I)在FX系列中,指针用来指示分支指令的跳转目标和中断程序的入口标号。分为分支用指针、输入中断指针及定时中断指针和计数中断指针。

1.分支用指针(P0~P127)

FX2N有P0~P127共128点分支用指针。分支指针用来指示跳转指令(CJ)的跳转目标或子程序调用指令(CALL)调用子程序的入口地址。如图4.13所示,X1常开触点接通时,执行跳转指令CJP0,PLC跳转到标号为P0处之后的程序去执行。图4.13分支用指针

2.中断指针(I0□□~I8□□)中断指针是用来指示某一中断程序的入口位置。执行中断后遇到IRET(中断返回)指令,则返回主程序。中断用指针有以下三种类型。

1)输入中断用指针(I00□~I50□)输入中断用指针共6点,它用来指示由特定输入端的输入信号而产生中断的中断服务程序的入口位置,这类中断不受PLC扫描周期的影响,可以及时处理外界信息。输入中断用指针的编号格式为:例如:I101为当输入X1从OFF→ON变化时,执行以I101为标号后面的中断程序,并根据IRET指令返回。

2)定时器中断用指针(I6□□~I8□□)定时器中断用指针共3点,是用来指示周期定时中断的中断服务程序的入口位置,这类中断的作用是PLC以指定的周期定时执行中断服务程序,定时循环处理某些任务。处理的时间也不受PLC扫描周期的限制。□□表示定时的范围,可在10~99ms中选取。

3)计数器中断指针(I010~I060)计数器中断指针共6点,它们用在PLC内置的高速计数器中,根据高速计数器的计数当前值与计数设定值之间的关系确定是否执行中断服务程序。它常用于利用高速计数器优先处理计数结果的场合。4.2.10常数(K/H)常数也作为元件看待,它在存储器中占一定空间。PLC的程序进行数值处理时必须使用十进制或十六进制数。十进制常数用K表示,如18,表示为K18,16位十进制数的表示范围为-32768~+32767,32位十进制数的表示范围为-2147483648~+2147483647。十六进制常数用H表示,如18,表示为H12,16位十六进制数的表示范围为0~FFFFH,32位十六进制数的表示范围为0~FFFFFFFFH。4.3FX系列PLC的基本指令

FX系列PLC有FX0S,FX1S,FX1N,FX2N,FX2NC等产品。我们以FX2N为例,介绍FX系列PLC的指令系统。FX系列PLC共有27条基本逻辑指令,127条功能指令。仅用基本逻辑指令便可以编制出开关量控制系统的用户程序。下面主要介绍FX2N系列PLC的基本逻辑指令。4.3.1LD、LDI、OUT指令

LD(Load):取指令,用于常开触点逻辑运算的开始,作用是将一常开触点接到母线上。另外,在分支接点处也可使用。LD指令能够操作的元件为X,Y,M,T,C和S。

LDI(LoadInverse):取反指令,用于常闭触点逻辑运算的开始,作用是将一常闭触点接到母线上。另外,在分支接点处也可使用。LDI指令能够操作的元件为X,Y,M,T,C和S。

OUT(Out):输出指令。将运算结果输出到指定的继电器,是驱动线圈的输出指令。OUT指令能够操作的元件为Y,M,T,C和S。

LD、LDI、OUT指令的使用如图4.14所示。其逻辑功能是:当触点X0接通时,输出继电器Y0接通,当输入继电器X1断电时,定时器T0开始定时,定时时间到1.9s后,输出继电器Y1接通。图中的T0是100ms定时器,K19对应的定时时间为19 × 100ms=1.9s,也可以指定数据寄存器的元件号,用它里面的数作为定时器和计数器的设定值。图4.14LD、LDI、OUT指令的使用应说明的是:

LD与LDI指令对应的触点一般与左侧母线相连.在使用ANB,ORB指令时,用来定义与其他电路串并联的电路的起始触点。

OUT指令不能用于输入继电器X,而且线圈和输出类指令应放在梯形图的最右边。OUT指令可以连续使用若干次,相当于线圈的并联。定时器和计数器的OUT指令之后应设置以字母K开始的十进制常数,常数占一个步序。定时器实际的定时时间与定时器的种类有关。计数器的设定值用来表示计完多少个计数脉冲后,计数器的位元件变为“1”。4.3.2AND、ANI指令

AND(And):与指令,用于一个常开触点同另一个触点的串联连接。

ANI(AndInverse):与非指令,用于一个常闭触点同另一个触点的串联连接。

AND和ANI指令能够操作的元件为X,Y,M,T,C和S。AND和ANI指令用来描述单个触点与别的触点或触点组组成的电路串联连接关系。单个触点与左边的电路串联时,使用AND或ANI指令。AND和ANI指令能够连续使用,即几个触点串联在一起,且串联触点的个数没有限制。

AND和ANI指令的使用如图4.15所示。在图中,OUTM101指令之后通过T1的触点驱动Y4,称为连续输出。只要按正确的次序设计电路,就可以重复使用连续输出。对T1的触点应使用串联指令,T1的触点和Y4的线圈组成的串联电路与M101的线圈是并联关系,但是T1的常开触点与左边的电路是串联关系。图4.15AND、ANI指令的使用4.3.3OR、ORI指令

OR(Or):或指令,用于一个常开触点同另一个触点的并联连接。

ORI(OrInverse):或非指令,用于一个常闭触点同另一个触点的并联连接。

OR与ORI指令能够操作的元件为X,Y,M,T,C和S。

OR和ORI指令用来描述单个触点与别的触点或触点组组成的电路的并联连接关系。用于单个触点与前面电路的并联时,并联触点的左侧接到该指令所在的电路块的起始点LD处,右端与前一条指令的对应的触点的右端相连。OR和ORI指令能够连续使用,即几个触点并联在一起,且并联触点的个数没有限制。

OR与ORI指令的使用如图4.16所示。其中,常闭触点M110前面的4条指令已经将4个触点Y5,X7,M103,X10串并联为一个整体,因此ORIM110指令把常闭触点M110并联到该电路上。图4.16OR、ORI指令的使用4.3.4ANB、ORB指令

ANB(AndBlock):块与指令,用于多触点电路块之间的串联连接。

ORB(OrBlock):块或指令,用于多触点电路块之间的并联连接。

ANB和ORB指令都不带元件号,只对电路块进行操作。

ANB指令将多触点电路块(一般是并联电路块)与前面的电路块串联。ANB指令相当于两个电路块之间的串联连接,该点也可以视为它右边的电路块的LD点。要串联的电路块的起始触点使用LD或LDI指令,完成了两个电路块的内部连接后,用ANB指令将它与前面的电路串联。ANB指令能够连续使用,串联的电路块个数没有限制。图4.17为两个并联块串联使用ANB指令的使用。图4.17ANB指令的使用

ORB指令将多触点电路块(一般是串联电路块)与前面的电路块并联,相当于电路块间左侧的一段垂直连接线。要并联的电路块的起始触点使用LD或LDI指令,完成电路块的内部连接后,用ORB指令将它与前面的电路并联。ORB指令能够连续使用,并联的电路块个数没有限制。图4.18为ORB指令的使用。图4.18ORB指令的使用4.3.5栈操作指令

MPS(Push):进栈指令,即将该指令处以前的逻辑运算结果存储起来。

MRD(Read):读栈指令,读出由MPS指令存储的逻辑运算结果。

MPP(POP):出栈指令,读出并清除由MPS指令存储的逻辑运算结果。

MPS,MRD,MPP实际上是用来解决如何对具有分支的梯形图进行编程的一组指令,用于多重输出电路。FX系列有11个存储中间运算结果的堆栈存储器,如图4.19所示。堆栈操作采用“先进后出”的数据存取方式。图4.19堆栈存储器

MPS指令用于存储电路中有分支处的逻辑运算结果,其功能是将左母线到分支点之间的逻辑运算结果存储起来,以备下面处理有线圈的支路时可以调用该运算结果。使用一次MPS指令,该时刻的逻辑运算结果推入堆栈的第一层,堆栈中原来的数据依次向下一层推移。

MRD指令用在MPS指令以下、MPP指令以上的所有支路。其功能是读取存储在堆栈最上层的电路中分支点处的逻辑运算结果,将下一个触点强制性地连接在该点。读数后堆栈内的数据不会上移或下移。实际上是将左母线到分支点之间的梯形图同当前使用的MRD指令的支路连接起来的一种编程方式。

MPP指令用在梯形图分支点处最下面的支路,也就是最后一次使用由MPS指令存储的逻辑运算结果,其功能是先读出由MPS指令存储的逻辑运算结果,同当前支路进行逻辑运算,最后将MPS指令存储的内容清除,结束分支点处所有支路的编程。使用MPP指令时,堆栈中各层的数据向上移动一层,最上层的数据在读出后从栈区内消失。应注意的是:当分支点以后有很多支路时,在用过MPS指令后,反复使用MRD指令;使用完毕后,最后一条支路必须用MPP指令结束该分支点处所有支路的编程。图4.20和图4.21分别给出了一层栈和多层栈使用的例子。每一条MPS指令必须有一条对应的MPP指令,处理最后一条支路时必须使用MPP指令,而不是MRD指令。在一块独立支路中,用进栈指令同时保存在堆栈中的运算结果不能超过11个。用编程软件生成梯形图程序后,如果将梯形图转换为指令表程序,编程软件会自动加入MPS,MRD和MPP指令。写指令表程序时,须由用户写入MPS,MRD和MPP指令。图4.20一层栈的使用图4.21多层栈的使用4.3.6主控与主控复位指令

MC(MasterControl):主控指令,或称公共触点串联连接指令,用于表示主控区的开始。MC指令能够操作的元件为Y和M(不包括特殊辅助继电器)。

MCR(MasterControlReset):主控复位指令,用来表示主控区的结束。在编程时,经常会遇到许多线圈同时受一个或一组触点控制的情况,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,而主控指令可以解决这一问题。使用主控指令的触点称为主控触点,它在梯形图中与一般的触点垂直。主控触点是控制一组电路的总开关。

与主控触点相连的触点必须用LD或LDI指令,换句话说,执行MC指令后,母线移到主控触点的后面去了,MCR使母线(LD点)回到原来的位置。图4.22所示为MC、MCR指令的使用。其中,M100为主控触点,X0为控制条件。X0的常开触点接通时,执行从MC到MCR之间的指令。X0的常开触点恢复常开时,则不执行上述区间的指令,其中的积算定时器、计数器和用复位/置位指令驱动的软元件保持其当时的状态,其余的元件被复位,非积算定时器和OUT指令驱动的元件变为OFF。图4.22MC、MCR指令的使用在MC~MCR指令区内使用MC指令称为嵌套。MC和MCR指令中包含嵌套的层数为N0~N7,N0为最高层,N7为最低层。没有嵌套结构时,通常用N0编程,N0的使用次数没有限制。有嵌套结构时,MCR指令将同时复位低的嵌套层,例如,指令MCRN2将复位2~7层。应当指出,在主控指令的控制条件为逻辑“0”时,在MC与MCR之间的程序只是处于停控状态,PLC仍然扫描这一段程序,不能简单地认为PLC跳过了此段程序。另外,MC指令不能直接从左母线开始。在程序中MC与MCR指令总是成对出现的。4.3.7取反指令

INV(Inverse):取反指令。该指令的功能是将该指令处的逻辑运算结果取反。在梯形图中用一条45°的短斜线表示INV指令。它将执行该指令之前的逻辑运算结果取反。如运算结果为逻辑0,则将它变为逻辑“1”;运算结果为逻辑“1”,则将其变为逻辑“0”。图4.23的逻辑功能是:如果X0和X1同时为ON,INV指令之前的逻辑运算结果为ON,INV指令对ON取反.则Y3为OFF;如果X0和X1不同时为ON,INV指令之前的逻辑运算结果则为OFF,INV对OFF取反,则Y3为ON。INV指令也可以用于LDP,LDF,ANDP等脉冲触点指令。图4.23INV指令的使用4.3.8PLS与PLF指令

PLS(Pulse):上升沿微分输出指令。当检测到控制触点闭合的一瞬间,输出继电器或辅助继电器的触点仅接通一个扫描周期。

PLF(PulseFalling):下降沿微分输出指令。当检测到控制触点断开的一瞬间,输出继电器或辅助继电器的触点仅接通一个扫描周期。

PLS和PLF指令能够操作的元件为Y和M(不包括特殊辅助继电器)。本指令一般用于输入信号防干扰处理,利用某信号的状态改变产生一个触发信号。图4.24中的X0一旦有信号产生(OFF→ON),PLS指令使M0输出一个方波信号去置位Y0,而X1一旦消失(ON→OFF)一次,PLF指令可使M1输出一个方波信号去复位Y0。图4.24PLS、PLF指令的使用应指出的是,PLS和PLF指令只有在检测到触点的状态发生变化时才有效,如果触点一直是闭合或者断开,PLS和PLF指令是无效的,即指令只对触发信号的上升沿和下降沿有效。PLS和PLF指令无使用次数的限制。当PLC从RUN到STOP,然后又由STOP进入RUN状态时,其输入信号仍然为ON,PLSM0指令将输出一个脉冲。然而,如果用失电保持辅助继电器代替M0,则其PLS指令在这种情况下不会输出脉冲。微分指令在实际编程应用中十分有用,利用微分指令可以模拟按钮的动作。4.3.9边沿触发器

LDP指令是取脉冲上升沿指令,上升沿检出运算开始;

LDF指令是取脉冲下降沿指令,下降沿检出运算开始;

ANDP指令是与脉冲上升沿指令,上升沿检出串联连接;

ANDF指令是与脉冲下降沿指令,下降沿检出串联连接;

ORP指令是或脉冲上升沿指令,上升沿检出并联连接;

ORF指令是或脉冲下降沿指令,下降沿检出并联连接。

LDP,ANDP和ORP:上升沿检测触点指令。被检测触点的中间有一个向上的箭头,对应的输出触点仅在指定位元件的上升沿(即由OFF→ON)时接通一个扫描周期。

LDF,ANDF和ORF:下降沿检测触点指令。被检测触点的中间有一个向下的箭头,对应的输出触点仅在指定位元件的下降沿(即由ON→OFF)时接通一个扫描周期。上述指令能够操作的元件为X,Y,M,T,C和S。

LDP,ANDP和ORP指令的使用如图4.25所示,X0~X2由ON→OFF时,M0或M1接通一个扫描周期。

LDF,ANDF和ORF指令的使用如图4.26所示,X0~X2由OFF→ON时,M0或M1接通一个扫描周期。动作效果相同的回路如图4.27所示,两种情况都在X0由OFF→ON时,M0接通一个扫描周期。图4.25LDP、ANDP、ORP指令的使用图4.26LDF、AN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论