《电器与可编程控制器应用技术第9章功能指令.ppt》由会员分享,可在线阅读,更多相关《电器与可编程控制器应用技术第9章功能指令.ppt(130页珍藏版)》请在三一办公上搜索。
1、1,9.1功能指令的基本形式功能指令的基本格式数据长度指令类型操作数的形式变址寄存器(V,Z)的应用9.2功能指令一览表9.3程序控制指令及应用条件跳转指令子程序调用与子程序返回指令与中断有关的指令9.3.4 主程序结束指令监视定时器指令循环指令9.4传送与比较指令比较指令,区间比较指令传送指令块传送指令 BCD/BIN指令 9.5四则运算与逻辑运算指令 加法指令 减法指令 乘法指令 除法指令 加1/减1指令逻辑运算指令 9.6循环与移位指令 位右移/位左移指令 FIFO写入/读出指令 9.7数据处理指令 区间复位指令 解码指令 编码指令,2,本章难点:功能指令的编程应用,功能指令是PLC数据
2、处理能力的重要标志,远比基本逻辑处理指令复杂,本章从功能指令的类型、表示形式和使用要素入手,介绍FX系列PLC常用功能指令的使用方法,并以实例的形式讨论其编程应用。,本章要点:,功能指令的基本形式功能指令简介功能指令的编程应用,3,在FX系列PLC中,功能指令是按功能号(FNC00FNC250)编排的,每条功能指令都有助记符,功能指令的表示格式如图9.1所示。,图9.1功能指令示意图,9.1功能指令的基本形式,功能指令的基本格式,4,大多数功能指令有1 4个操作数,有的功能指令没有操作数;S表示源操作数,D表示目标操作数;如果可使用变址功能,用S和D表示。用n和m表示其他操作数,它们常用来表示
3、常数K和H,或作为源和目标操作数的补充说明。上图含义为:当X10由OFFON时,D内(M0M15)各位数据连同S内(X0X1)2位数据向左移2位,(X0X1)2位数据从D低位端移入,(M14M15)2位数据从D高位端移出(溢出)。,9.1功能指令的基本形式,功能指令的基本格式,5,处理32位数据的指令是在助记符前加“D”标志,无此标志即为处理16位数据的指令。注意32位计数器(C200C255)的一个软元件为32位,不可作为处理16位数据指令的操作数使用。在使用32位数据时建议使用首编号为偶数的操作数。,9.1功能指令的基本形式,数据长度,上面传送指令的含义为:当X0由OFFON时,将D11和
4、D10的数据传送到D13和D12中(处理32位数据)。,6,9.1.2节例中“P”表示脉冲执行型,即该指令仅在X0由OFFON时,执行一次。而没有“P”则表示连续执行型,即在X0接通时的每一个扫描周期MOV指令都被重复执行。,9.1功能指令的基本形式,指令类型,7,1位元件与字元件 只处理ON/OFF信息的软元件称为位元件,如X、Y、M和S;可处理数值的软元件则称为字元件,如T、C、D等。但位元件也可以组合成字元件进行数据处理,4个位元件为一个单元,通用表示方法是由Kn加起始的软元件号组成,n为单元数。例如K2M0表示M0M7组成两个位元件组(K2表示2个单元),它是一个8位数据,M0为最低位
5、。,9.1功能指令的基本形式,操作数的形式,8,2数据格式 在FX系列PLC内部,数据是以二进制(BIN)补码的形式存储,所有的四则运算都使用二进制数。二进制补码的最高位为符号位,正数符号位为0,负数符号位为1。为更精确地进行运算,可采用浮点数运算。在FX系列PLC中提供了二进制浮点运算和十进制浮点运算。,9.1功能指令的基本形式,操作数的形式,9,变址寄存器在传送、比较等指令中用来修改操作元件的地址,其操作方式与普通数据寄存器一样。下面来看一个传送指令的例子:,9.1功能指令的基本形式,变址寄存器(V,Z)的应用,上面传送指令的例子中,当Z0=5时,(D10Z0)(D12)=(D15)(D1
6、2),10,FX系列不同型号的PLC,其功能指令的范围各不相同,表9.1列出了FX全系列使用的功能指令,具体某个型号的PLC哪些功能指令可用、哪些不可用,也可据此表查出。,9.2功能指令一览表,表9.1功能指令简表,11,9.2功能指令一览表,表9.1功能指令简表(续表),12,9.2功能指令一览表,表9.1功能指令简表(续表),13,9.2功能指令一览表,表9.1功能指令简表(续表),14,9.2功能指令一览表,表9.1功能指令简表(续表),15,9.2功能指令一览表,表9.1功能指令简表(续表),16,9.2功能指令一览表,表9.1功能指令简表(续表),17,9.2功能指令一览表,表9.1
7、功能指令简表(续表),18,9.2功能指令一览表,表9.1功能指令简表(续表),19,9.2功能指令一览表,表9.1功能指令简表(续表),20,9.2功能指令一览表,表9.1功能指令简表(续表),21,9.2功能指令一览表,表9.1功能指令简表(续表),22,9.2功能指令一览表,表9.1功能指令简表(续表),23,9.2功能指令一览表,表9.1功能指令简表(续表),24,9.2功能指令一览表,表9.1功能指令简表(续表),25,9.2功能指令一览表,表9.1功能指令简表(续表),26,9.2功能指令一览表,表9.1功能指令简表(续表),27,9.2功能指令一览表,表9.1功能指令简表(续表)
8、,28,9.2功能指令一览表,表9.1功能指令简表(续表),29,9.2功能指令一览表,表9.1功能指令简表(续表),30,9.2功能指令一览表,表9.1功能指令简表(续表),31,9.2功能指令一览表,表9.1功能指令简表(续表),32,9.3程序控制指令及应用,程序流向控制类指令(FNC00FN09),用于程序执行流程的控制。对一个扫描周期而言,跳转指令可以使程序出现跨越或跳跃以实现程序段的选择。子程序指令可调用某段子程序。循环指令可多次重复执行特定的程序段。中断指令则用于中断信号引起的中断子程序调用。程序控制类指令可以影响程序执行的流向及内容。对合理安排程序的结构、有效提高程序的功能、实
9、现某些技巧性运算,都有重要的意义。,33,9.3程序控制指令及应用,1CJ指令简介 该指令的助记符、指令代码、操作数、程序步如表9.2所示。,条件跳转指令,表9.2条件跳转指令要素,34,9.3程序控制指令及应用,条件跳转指令在梯形图中使用的情况如图9.2所示。图中跳转指针P5对应CJ P5跳转指令。跳转指令执行的意义为在满足跳转条件之后的各个扫描周期中,PLC将不再扫描执行跳转指令与跳转指针P间的程序,即跳到以指针P为入口的程序段中执行。直到跳转的条件不再满足,跳转停止进行。在图9.2中,当 X0为ON时,跳转指令CJ P5执行条件满足,程序将从CJ P5指令处跳至标号 P5处,接着往下执行
10、程序。,条件跳转指令,35,9.3程序控制指令及应用,2CJ指令的使用说明(1)由于跳转指令具有选择程序段的功能。在同一程序且位于因跳转而不会被同时执行程序段中的同一线圈不被视为双线圈。(2)可以有多条跳转指令使用同一标号。在图9.3中,如X0接通,第一条跳转指令有效,从这一步跳到标号P5处。如果X0断开,而X10接通,则第二条跳转指令生效,程序从第二条跳转指令处跳到 P5处。但不允许一个跳转指令对应两个标号的情况,即在同一程序中不允许存在两个相同的标号,否则将出错。(3)标号一般设在相关的跳转指令之后,也可以设在跳转指令之前。但要注意从程序执行顺序来看,如果由于标号在前造成该程序的执行时间超
11、过了警戒时钟设定值,则程序就会出错。,条件跳转指令,36,9.3程序控制指令及应用,(4)CJ(P)指令表示为脉冲执行方式,使用CJ(P)指令时,跳转只执行一个扫描周期,但若用辅助继电器M8000作为CJ指令的工作条件,跳转就成为无条件跳转。(5)即使被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态。,条件跳转指令,图9.2CJ指令应用,图9.3两条CJ指令使用同一标号,37,9.3程序控制指令及应用,(6)在跳转执行期间定时器和计数器将停止工作,到跳转条件不满足后又继续工作。但对于正在以中断方式工作的定时器和计数器,如定时器T192T199和高速计数器C235C255不管有无跳
12、转仍连续工作。(7)若积分定时器和计数器的复位(RST)指令在跳转区外,即使它们的线圈被跳转,但对它们的复位仍然有效。3CJ指令的编程应用【例9-1】利用跳转指令来执行程序初始化工作。【解】如图9.4 所示,在PLC运行的第一个扫描周期中,跳转CJ P5不执行,程序执行初始化程序后执行工作程序。而从第二个扫描周期开始,初始化程序则被跨过,不再执行。,条件跳转指令,38,9.3程序控制指令及应用,【例9-2】利用跳转指令实现手动/自动程序的切换。【解】如图9.5所示为一段手动/自动程序切换的梯形图程序。当X1为ON时,程序跳过自动程序区域,由标号P0执行手动工作方式;当X1为OFF时,则执行自动
13、工作方式。,条件跳转指令,图9.4 CJ指令用于程序初始化,图9.5手动/自动切换程序,39,9.3程序控制指令及应用,该指令的助记符、指令代码、操作数、程序步如表9.3所示。,子程序调用与子程序返回指令,表9.3子程序指令要素,40,9.3程序控制指令及应用,子程序是为了一些特定的控制目的编制的相对独立的程序。为了区别于主程序,规定在程序编排时,将主程序排在前边,子程序排在后边,并以主程序结束指令FEND(FNC06)将这两部分分隔开。子程序指令在梯形图中使用的情况如图9.6所示。图中,子程序调用指令CALL安排在主程序段中,X0是子程序执行的条件,当X0为ON时,标号为P20的子程序得以执
14、行。子程序P20安排在主程序结束指令FEND之后,标号P20和子程序返回指令SRET间的程序构成了P20子程序的内容。当主程序带有多个子程序时,子程序可依次列在主程序结束之后。并以不同的标号相区别。,子程序调用与子程序返回指令,41,9.3程序控制指令及应用,注意:(1)转移标号不能重复,也不可与跳转指令的标号重复。(2)子程序可以嵌套调用,最多可5级嵌套。,子程序调用与子程序返回指令,图9.6子程序指令应用,图9.7中断指令应用,42,9.3程序控制指令及应用,该类指令的助记符、指令代码、操作数、程序步如表9.4所示。中断指令的梯形图表示如图9.7所示。从图中可以看出,中断程序作为一种子程序
15、安排在主程序结束指令FEND之后。主程序中允许中断指令EI及不允许中断指令DI之间的区间表示可以开放中断的程序段。主程序带多个中断子程序时,中断标号和距其最近的一处中断返回指令构成一个中断子程序。,与中断有关的指令,43,9.3程序控制指令及应用,与中断有关的指令,表9.4中断指令要素,44,9.3程序控制指令及应用,与中断有关的指令,注意:,(1)如果多个中断依次发生,则以发生先后为序,如果多个中断源同时发出信号,则中断指针号越小优先级越高。(2)当M8050M8058为ON时,禁止执行相应I0 I8的中断,M8059为ON时则禁止所有计数器中断。(3)无需中断禁止时,可只用EI指令,不必用
16、DI指令。(4)执行一个中断服务程序时,如果在中断服务程序中有EI和DI,可实现二级中断嵌套,否则禁止其他中断。,45,9.3程序控制指令及应用,主程序结束指令,该指令的助记符、指令代码、操作数、程序步如表9.5所示。,表9.5主程序结束指令要素,FEND表示主程序结束,当执行到FEND时,PLC进行输入/输出处理,监视定时器刷新,完成后返回起始步。注意:(1)子程序和中断服务程序应放在FEND之后。(2)子程序和中断服务程序必须写在FEND和END之 间,否则出错。,46,9.3程序控制指令及应用,监视定时器指令,该指令的助记符、指令代码、操作数、程序步如表9.6所示。,表 9.6监视定时器
17、指令要素,WDT指令是对PLC的监视定时器进行刷新,FX系列PLC的监视定时器默认值为200 ms(可用D8000来设定)。当PLC的扫描周期(0END或FEND指令执行时间)超过200 ms时,PLC的CPU-E指示灯亮、PLC停机,因此需在程序的中途插入WDT指令,使PLC的监视定时器刷新,如图9.8所示。,47,9.3程序控制指令及应用,监视定时器指令,图9.8WDT指令应用,(1)如果在后续的FOR-NEXT循环中,执行时间可能超过监视定时器的定时时间,可将WDT插入循环程序中。(2)当与条件跳转指令CJ对应的指针标号在CJ指令之前时(即程序往回跳)就有可能连续反复跳步使它们之间的程序
18、反复执行,使执行时间超过监控时间,可在CJ指令与对应标号之间插入WDT指令。,注意:,48,9.3程序控制指令及应用,循环指令,表9.7循环指令要素,该指令的助记符、指令代码、操作数、程序步如表9.7所示,49,9.3程序控制指令及应用,循环指令,表9.7循环指令要素,FOR和NEXT指令是成对出现的,如图9.9所示的梯形图中各有两条FOR和NEXT指令,构成二层循环。循环次数由FOR指令后的n值指定,n=132767,若n=-327670之间,则当作n=1处理。运行时,位于FORNEXT间的程序反复执行n次后再继续执行后续程序。,50,9.3程序控制指令及应用,循环指令,注意:(1)FOR和
19、NEXT必须成对使用。(2)FX2N系列PLC可循环嵌套5层。(3)在循环中可利用CJ指令在循环没结束时 跳出循环体。(4)FOR应放在NEXT之前,NEXT应在FEND和END之前,否则出错。循环指令用于某些需反复操作的场合,如对某一采样数据做一定次数的加权运算等。,51,9.3程序控制指令及应用,循环指令,注意:(1)FOR和NEXT必须成对使用。(2)FX2N系列PLC可循环嵌套5层。(3)在循环中可利用CJ指令在循环没结束时 跳出循环体。(4)FOR应放在NEXT之前,NEXT应在FEND和END之前,否则出错。循环指令用于某些需反复操作的场合,如对某一采样数据做一定次数的加权运算等。
20、,52,9.4传送与比较指令,比较指令,FX1N系列PLC有6条传送与比较指令,能实现单一数据或批数据的传送、数制变换与比较,下面择要介绍。,该指令的助记符、指令代码、操作数范围、程序步如表9.8所示。,表9.8比较指令的要素,53,9.4传送与比较指令,比较指令,比较指令CMP是将源操作数S1和源操作数S2的数据进行比较,比较结果用目标元件D的状态来表示,如图9.10所示。,图9.10CMP指令应用,在X1断开,即不执行CMP指令时,M0M2保持X1断开前的状态。数据比较是进行代数值大小比较(即带符号比较)。所有的源数据均按二进制处理。当比较指令的操作数不完整(若只指定一个或两个操作数),或
21、者指定的操作数不符合要求(例如把X、D、T、C指定为目标操作数),或者指定的操作数的元件号超出了允许范围等情况,比较指令就会出错。,54,9.4传送与比较指令,区间比较指令,该指令的助记符、指令代码、操作数范围、程序步如表9.9所示。,表9.9区间比较指令的要素,55,9.4传送与比较指令,区间比较指令,区间比较指令执行时,是将源操作数S与S1和S2的内容进行比较,并将比较的结果用目标操作数D 的状态来表示,如图9.11所示。,图9.11ZCP指令应用,56,9.4传送与比较指令,区间比较指令,在X0断开,即不执行ZCP指令时,M10M12保持X0断开前的状态。注意:(1)使用ZCP时,S2的
22、数值不能小于S1。(2)所有的源数据都被看成二进制值处理。(3)在不执行指令时,可用复位指令清除比较结果。,57,9.4传送与比较指令,传送指令,该指令的助记符、指令代码、操作数范围、程序步如表9.10所示。,表9.10传送指令的要素,58,9.4传送与比较指令,传送指令,MOV指令是将源操作数内的数据传送到指定的目标操作数内,即SD,如图9.12所示。,图9.12MOV指令应用,当X0=ON时,源操作数S中的常数K150传送到目标操作元件D20中。当指令执行时,常数K150自动转换成二进制数。当 X0 断开时,指令不执行,数据保持不变。,59,9.4传送与比较指令,块传送指令,该指令的助记符
23、、指令代码、操作数范围、程序步如表9.11所示。,表9.11移位传送指令的要素,60,9.4传送与比较指令,块传送指令,BMOV指令的功能是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标,如图9.13所示。,图9.13BMOV指令应用,注意:如果元件号超出允许范围,数据则仅传送到允许范围内的元件。,61,9.4传送与比较指令,BCD/BIN指令,该类指令的助记符、指令代码、操作数范围、程序步如表9.12所示。,表9.12数据变换指令的要素,62,9.4传送与比较指令,BCD/BIN指令,BCD变换指令是将源元件中的二进制数转换成BCD码送到目标元件中。BIN变换指令是BCD变换指令
24、的逆变换,是将源元件中的BCD码转换成二进制数据送到目标元件中,如图9.14所示。,图9.14BCD/BIN指令应用,如果指令进行16位操作时,执行结果超出09999范围将会出错;当指令进行32位操作时,执行结果超过099999999范围也将出错。传送与比较指令在PLC控制程序中起如下用途。,63,9.4传送与比较指令,BCD/BIN指令,1)用以获得程序的初始工作数据 一个控制程序总是需要初始数据的。这些数据既可以从输入端口上连接的外部器件获得,运用传送指令读取这些器件上的数据并送到内部单元;也可以用程序设置,即向内部单元传送立即数;另外,某些运算数据存储在机内的某个地方,等程序开始运行时通
25、过初始化程序送到工作单元。2)机内数据的存取管理 在数据运算过程中,机内的数据传送是不可缺少的。运算可能要涉及不同的工作单元,数据需在它们之间传送;运算可能会产生一些中间数据,这需要传送到适当的地方暂时存放;有时机内的数据需要备份保存,这就要找地方把这些数据存储妥当。总之,对一个涉及数据运算的程序,数据管理是很重要的。此外,,64,9.4传送与比较指令,BCD/BIN指令,二进制和BCD码的转换在数据管理中也是很重要的。3)运算处理结果向输出端口传送 运算处理结果总是要通过输出实现对执行器件的控制,或者输出数据用于显示,或者作为其他设备的工作数据。对于输出口连接的离散执行器件,可成组处理后看做
26、是整体的数据单元,按各端口的目标状态送入一定的数据,即可实现对这些器件的控制。4)比较指令用于建立控制点 控制现场常有将某个物理量的量值或变化区间作为控制点的情况。如温度低于多少度就打开电热器,速度高于或低于一个区间就报警等。作为一个控制“阀门”,比较指令常出现在工业控制程序中。,65,9.4传送与比较指令,BCD/BIN指令,【例9-3】PLC在送料车方向自动控制上的应用。控制要求如下。某车间有8个工作台,送料车往返于工作台之间送料,动作示意图如图9.15所示。每个工作台设有一个到位开关(SQ)和一个呼叫按钮(SB),送料车开始应能停留在8个工作台中任意一个到位开关的位置上,系统受启停开关Q
27、S的控制。具体控制要求如下。(1)当料车所在暂停位置的SQ号码大于呼叫的SB号码时,料车往左行,到呼叫的SB位置后停止。(2)当料车所在暂停位置的SQ号码小于呼叫的SB号码时,料车往右行,到呼叫的SB位置后停止。试用传送与比较指令编程实现送料车的控制要求。,66,9.4传送与比较指令,BCD/BIN指令,图9.15送料车工作示意图,67,9.4传送与比较指令,BCD/BIN指令,【解】设送料车现暂停于m号工作台(SQm为ON)处,这时n号工作台呼叫(SBn为ON),则根据题意可知:(1)当料车所在暂停位置的SQ号码大于呼叫的SB号码时,料车往左行,到呼叫的SB位置后停止。即mn,送料车左行,直
28、至 SQn动作,到位停车。(2)当料车所在暂停位置的SQ号码小于呼叫的SB号码时,料车往右行,到呼叫的SB位置后停止。即mn,送料车右行,直至SQn动作,到位停车。(3)送料车所停位置SQ的号码与呼叫按钮SB的号码相同时,送料车不动。即m=n,送料车原位不动。,68,9.4传送与比较指令,BCD/BIN指令,5)I/O地址分配及硬件连接 由控制要求可知,系统的I/O地址分配如表9.13所示,硬件连接如图9.16所示。,表9.13送料车系统的I/O地址分配表,69,9.4传送与比较指令,BCD/BIN指令,表9.13送料车系统的I/O地址分配表(续表),70,9.4传送与比较指令,BCD/BIN
29、指令,图9.16送料车系统硬件连接图,71,9.4传送与比较指令,BCD/BIN指令,6)PLC软件的实现 用传送与比较指令编程实现送料车控制的梯形图程序如图9.17所示。,72,9.4传送与比较指令,BCD/BIN指令,图9.17送料车系统梯形图程序,73,9.4传送与比较指令,BCD/BIN指令,图中将送料车当前位置送到数据寄存器D128中,将呼叫工作台号送到数据寄存器D129中,然后通过D128与D129中数据的比较,决定送料车的运行方向和到达的目标位置,D128、D129都是断电保持型数据寄存器,因此送料车系统重新启动后,能自动恢复断电前的状态。,74,9.5四则运算与逻辑运算指令,四
30、则运算及逻辑运算指令是基本运算指令。可完成四则运算或逻辑运算,可通过运算实现数据的传送、变位及其他控制功能。PLC中有两种四则运算,即整数四则运算和实数四则运算。前者指令较简单,参加运算的数据只能是整数。非整数参加运算需先取整,除法运算的结果分为商和余数。整数四则运算进行较高准确度要求的计算时,需将小数点前后的数值分别计算再将数据组合起来,除法运算时要对余数再做多次运算才能形成最后的商。这就使程序的设计非常烦琐。而实数运算是浮点运算,是一种高准确度的运算。FX1N系列PLC仅有整数运算指令,FX2N系列PLC具有实数运算指令。,75,9.5四则运算与逻辑运算指令,该指令的助记符、指令代码、操作
31、数、程序步如表9.14所示。,加法指令,表9.14加法指令的要素,ADD加法指令是将指定的源元件中的二进制数相加,结果送到指定的目标元件中去,如图9.18所示。,76,9.5四则运算与逻辑运算指令,当执行条件X0由OFFON时,D0+D1 D2。运算是代数运算,如2+(-3)=-1。如果运算结果为0,则零标志M8020置1;如果运算结果超过32767(16位)或2147483647(32位),则进位标志M8022置1;如果运算结果小于-32767(16位)或-2147483647(32位),则借位标志M8021置1。在32位运算中,被指定的字元件是低16位元件,而下一个元件为高16位元件。,加
32、法指令,图9.18ADD指令应用,77,9.5四则运算与逻辑运算指令,源和目标可以用相同的元件号。若源和目标元件号相同而采用连续执行的 ADD、(D)ADD指令时,加法的结果在每个扫描周期都会改变。,加法指令,78,9.5四则运算与逻辑运算指令,该指令的助记符、指令代码、操作数、程序步如表9.15所示。,减法指令,表9.15减法指令的要素,79,9.5四则运算与逻辑运算指令,SUB减法指令是将指定的源元件中的二进制数相减,结果送到指定的目标元件中去,如图9.19所示。,减法指令,图9.19SUB指令应用,各种标志的动作、32位运算中软元件的指定方法、连续执行型和脉冲执行型的差异均与上述加法指令
33、相同。,80,9.5四则运算与逻辑运算指令,该指令的助记符、指令代码、操作数、程序步如表9.16所示。,乘法指令,表9.16乘法指令的要素,MUL乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。如图9.20所示,它分16位和32位两种运算。,81,9.5四则运算与逻辑运算指令,图9.20(a)为16位运算,执行条件X1由OFFON 时,D0D1 D3,D2中。源操作数是16位,目标操作数是32位。当D0=10,D1=-10时,D3,D2=-100。最高位为符号位,0为正值,1为负值。,乘法指令,图9.20MUL指令应用,82,9.5四则运算与逻辑运算指令,图9.20(b)
34、为32位运算,执行条件X2由OFF ON时,D1、D0D3、D2D7、D6、D5、D4中。源操作数是32位,目标操作数是64位。当 D1、D0=200,D3、D2=500时,D7、D6、D5、D4=100 000,最高位为符号位,0为正值,1为负值。如将位组合元件用于目标操作数时,限于K的取值,只能得到低32位的结果,不能得到高32位的结果。这时,应将数据移入字元件再进行计算。用字元件时,也不可能监视64位数据,只能通过监视高32位和低32位。32位运算时,Z不能用于D目标元件。,乘法指令,83,9.5四则运算与逻辑运算指令,该指令的助记符、指令代码、操作数、程序步如表9.17所示。,除法指令
35、,表9.17除法指令的要素,84,9.5四则运算与逻辑运算指令,DIV除法指令是将指定的源元件中的二进制数相除,S1为被除数,S2为除数,商送到指定的目标元件D中去,余数送到D的下一个目标元件。如图9.21所示,它分16位和32位两种运算。,除法指令,图9.21DIV指令应用,85,9.5四则运算与逻辑运算指令,图9.21(a)为16位运算。执行条件X1由OFFON 时,D0/D1D2。当D0=23,D1=4时,D2=5,D3=3。图9.21(b)为32位运算。执行条件X2由OFFON时,D1、D0/D3、D2。商在D5、D4,余数在D7、D6中。Z不能用于D。除数为0时,有运算错误,不执行指
36、令。若D指定位元件,得不到余数。商和余数的最高位是符号位。被除数或除数中有一个为负数,商为负数;被除数为负数时,余数为负数。,除法指令,86,9.5四则运算与逻辑运算指令,该类指令的助记符、指令代码、操作数、程序步如表9.18所示。,加1/减1指令,表9.18加1/减1指令的要素,87,9.5四则运算与逻辑运算指令,该类指令的助记符、指令代码、操作数、程序步如表9.18所示。,加1/减1指令,表9.18加1/减1指令的要素,表示连续执行时,各扫描周期的目标内容都有变化,因此使用时应引起注意。,88,9.5四则运算与逻辑运算指令,INC/DEC的应用如图9.22所示。,加1/减1指令,图9.22
37、INC/DEC指令应用,89,9.5四则运算与逻辑运算指令,图9.22(a)中,当X0由OFFON变化时,由D指定的元件D0中的二进制数加1。若用连续指令时,每个扫描周期都加1。16位运算时,+32767再加1就变为-32768,但标志不置位。同样,在32位运算时,+2147483647再加1就变为-2147483648,标志也不置位。图9.22(b)中,当X1由OFFON变化时,由D指定的元件D10中的二进制数减1。若用连续指令时,每个扫描周期都减1。16位运算时,-32768再减1就变为+32767,但标志不置位。同样,在32位运算时,-2147483648再减1就变为+214748364
38、7,标志也不置位。,加1/减1指令,90,9.5四则运算与逻辑运算指令,该类指令的助记符、指令代码、操作数、程序步如表9.19所示。,逻辑运算指令,表9.19逻辑运算指令的要素,91,9.5四则运算与逻辑运算指令,逻辑运算指令,表9.19逻辑运算指令的要素(续表),92,9.5四则运算与逻辑运算指令,逻辑运算指令,【例9-4】自动售货机的PLC控制。(1)控制要求:此自动售货机可投入1元、5元或10元硬币,投完币后,确认,投币显示灯灭。当投入的硬币总值等于或超过12元时,食品指示灯亮;当投入的硬币总值超过15元时,食品、饮料指示灯都亮。当食品指示灯亮时,按食品按钮选择要购买的食品,按购买键确认
39、后,食品指示灯灭,出货口指示灯亮,显示正出物品,一会熄灭。,93,9.5四则运算与逻辑运算指令,逻辑运算指令,当饮料指示灯亮时,按饮料按钮选择要购买的饮料,按购买键确认后,饮料指示灯灭,出货口指示灯亮,显示正出物品,一会熄灭。若投入硬币总值超过购物所需钱数时,则退币处的指示灯亮,显示正在进行退币工作,退完币后,退币指示灯熄灭,等待下一次售货。,94,9.5四则运算与逻辑运算指令,逻辑运算指令,(2)I/O地址分配如表9.20所示。,表9.20自动售货机的I/O地址分配表,试编制PLC控制程序实现其控制要求。,95,9.5四则运算与逻辑运算指令,逻辑运算指令,【解】根据题意,可编写其梯形图程序如
40、图9.23所示。,图9.23自动售货机的梯形图程序,96,9.5四则运算与逻辑运算指令,逻辑运算指令,图9.23自动售货机的梯形图程序(续),97,9.5四则运算与逻辑运算指令,逻辑运算指令,图9.23自动售货机的梯形图程序(续),98,9.5四则运算与逻辑运算指令,逻辑运算指令,图9.23自动售货机的梯形图程序(续),99,9.6循环与移位指令,FX系列PLC循环与移位指令有移位、循环移位、字移位及先入先出FIFO指令等数种,其中循环移位分为带进位位循环及不带进位位循环;移位有左移和右移之分;FIFO分为写入和读出。从指令的功能来说,循环移位是指数据在本字节或双字内的移位,是一种环形移动。而
41、非循环移位是线形的移位,数据移出部分会丢失,移入部分从其他数据获得。移位指令可用于数据的2倍乘处理,形成新数据,或形成某种控制开关。字移位和位移位不同,它可用于字数据在存储空间中的位置调整等功能。先入先出FIFO指令可用于数据的管理。FX1N系列PLC只有SFTR、SFTL和SFWR、SFRD四条循环与移位指令,现择要介绍如下。,100,9.6循环与移位指令,位右移/位左移指令,该类指令的助记符、指令代码、操作数、程序步如表9.21所示。,表9.21位右移/位左移指令的要素,位右移/位左移指令是对n1位(移位寄存器的长度)的位元件进行n2位的位右移或位左移的指令,如图9.24所示。,101,9
42、.6循环与移位指令,位右移/位左移指令,图9.24SFTR/SFTL指令应用,102,9.6循环与移位指令,位右移/位左移指令,图9.24SFTR/SFTL指令应用(续),103,9.6循环与移位指令,位右移/位左移指令,图9.24(a)中,当X10由OFFON时,D内(M0M7)各位数据连同S内(X0X1)2位数据向右移2位,(X0X1)2位数据从D高位端移入,(M0M1)2位数据从D低位端移出(溢出)。当X10再次从OFFON时,(X0X1)2位数据再次从D高位端移入,当前(M0M1)2位数据从D低位端溢出,依此类推。图9.24(b)中,当X10由OFFON时,D内(M0M7)各位数据连同
43、S内(X0X1)2位数据向左移2位,(X0X1)2位数据从D低位端移入,(M6M7)2位数据从D高位端移出(溢出)。当X10再次从OFFON时,(X0X1)2位数据再次从D低位端移入,当前(M6M7)2位数据从D低位端溢出,依此类推。,104,9.6循环与移位指令,位右移/位左移指令,用脉冲执行型指令时,指令执行取决于X10由OFFON变化;而用连续指令执行时,移位操作是每个扫描周期执行一次,使用指令时必须注意。,105,9.6循环与移位指令,FIFO写入/读出指令,该类指令的助记符、指令代码、操作数、程序步如表9.22所示。,表9.22FIFO写入/读出指令的要素,106,9.6循环与移位指
44、令,FIFO写入/读出指令,SFWR是先进先出控制的数据写入指令,如图9.25所示。,图9.25SFWR指令应用,107,9.6循环与移位指令,FIFO写入/读出指令,当X1由OFFON变化时,则将D10的内容存储在D1内,D0的内容变为1。在改变D10的内容之后,若使X1再次由OFFON,则将D10内容存储在D2内,D0的内容变为2。以后同样按顺序由右端填入,用指针D0的内容表示数据的存储点数。若D0的内容超过n 1,则变成无处理,进位标志M8022动作。在采用SFWR指令时,则在各扫描周期按顺序存储。SFRD是先进先出控制的数据读出指令,如图9.26所示。,108,9.6循环与移位指令,F
45、IFO写入/读出指令,当X2由OFFON变化时,则将D1的内容送到D20中,同时指针D0的内容减1,D2到D7的数据向右移一字。若采用连续指令SFRD时,则每个扫描周期数据右移一字,数据总是从D1读出。指针D0的内容为0时,不再执行上述操作,零标志M8020置1。,图9.26SFRD指令应用,109,9.6循环与移位指令,FIFO写入/读出指令,【例9-5】艺术彩灯造型的PLC控制。(1)艺术彩灯造型实验板结构简介 该板的结构如图9.27所示,图中a、b、c、d、e、f、g、h分别为八路LED发光二极管,模拟彩灯显示。上面八路形成一个环形,下面八路形成一字形,上下同时控制,形成交辉相映的效果。
46、(2)艺术彩灯造型的控制要求 艺术彩灯受一个开关控制,启动开关后,(a)快速顺序点亮,然后顺序熄灭;(b)快速逆序点亮,然后全部熄灭;(c)慢速顺序点亮,然后逆序熄灭;(d)快速闪烁;(e)慢速闪烁;(f)要求系统能够自动循环。开关断开后全部熄灭并复位。,110,9.6循环与移位指令,FIFO写入/读出指令,【解】(1)控制原理分析。分析控制要求,结合我们刚学过的循环移位、传送与比较等功能指令,可以得出,由左移位指令(SFTL)就可实现依次点亮、依次熄灭;由右移位指令(SFTR)就可实现逆序点亮、逆序熄灭;由传送指令(MOV)就可实现闪烁;然后把每一类动作作为一种状态,以单流程的形式实现循环,
47、由批复位指令(ZRST)实现所有状态的复位等。(2)分配I/O地址,并画出外部接线图如图9.28所示。输入地址:X0为控制开关(K1)。输出地址:Y0(a),Y1(b),Y2(c),Y3(d),Y4(e),Y5(f),Y6(g),Y7(h)。,111,9.6循环与移位指令,FIFO写入/读出指令,图9.27艺术彩灯造型实验板,图9.28艺术彩灯系统的参考接线图,112,9.6循环与移位指令,FIFO写入/读出指令,图9.29艺术彩灯造型PLC控制的流程图和SFC图,(3)由以上分析即可设计出实现艺术彩灯控制要求的流程图,如图9.29(a)所示,SFC图如图9.29(b)所示,梯形图程序如图9.
48、30所示。,113,9.6循环与移位指令,FIFO写入/读出指令,图9.29艺术彩灯造型PLC控制的流程图和SFC图(续),114,9.6循环与移位指令,FIFO写入/读出指令,图9.29艺术彩灯造型PLC控制的流程图和SFC图(续),115,9.6循环与移位指令,FIFO写入/读出指令,图9.30艺术彩灯造型PLC控制的梯形图程序,116,9.6循环与移位指令,FIFO写入/读出指令,图9.30艺术彩灯造型PLC控制的梯形图程序(续),117,9.6循环与移位指令,FIFO写入/读出指令,图9.30艺术彩灯造型PLC控制的梯形图程序(续),118,9.7数据处理指令,区间复位指令,表9.23
49、区间复位指令的要素表,数据处理指令含批复位指令,编、译码指令及平均值计算等指令。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某一置1位的位码的编译。现择要介绍如下。,该类指令的助记符、指令代码、操作数、程序步如表9.23所示。,119,9.7数据处理指令,区间复位指令,图9.31ZRST指令应用,区间复位指令也称为成批复位指令,如图9.31所示。当PLC由OFFON 时,区间复位指令执行。位元件Y0Y7成批复位、字元件D0D100成批复位、状态元件S0S127成批复位。,120,9.7数据处理指令,区间复位指令,目标操作数D1和D2指定的元件应为同类元件,D1指定的元件号应小
50、于或等于D2指定的元件号。若D1的元件号大于D2的元件号,则只有D1指定的元件被复位。该指令为16位处理,但是可在D1、D2中指定32位计数器。不过不能混合指定,即不能在D1中指定16位计数器,在D2中指定32位计数器。,121,9.7数据处理指令,解码指令,该类指令的助记符、指令代码、操作数、程序步如表9.24所示。,表9.24解码指令的要素表,122,9.7数据处理指令,解码指令,(1)当D是位元件时,设以源S为首地址的n位连续的位元件所表示的十进制码值为Q,则DECO指令把以D为首地址目标元件的第Q位(不含目标元件位本身)置1,其他位置0。如图9.32(a)所示,源数据Q=20+22=5