资源描述
三菱PLC基础与应用,第5章 FX2N系列PLC的应用指令,5.8 方便指令,5.5 循环与移位指令,5.4 四则运算与逻辑运算指令,5.3 比较与传送指令,5.2 程序流程指令,5.1 应用指令概述,5.6 数据处理指令,5.7 高速处理指令,5.9 实训项目,5.10 习题,三菱PLC基础与应用,5.1 应用指令概述,5.1.1 应用指令的表达形式 1. 位元件与字元件 只处理ON/OFF状态的软元件称为位元件,如X、Y、M、S等;而处理数值的软元件则称为字元件,如T、C、D等,一个字元件由16位二进制数组成。 位元件组合使用也可处理数值,位元件每4位一组组合成一个单元,通常的表示方法是Kn加上首元件号组成,n为单元数。例如,K2X0表示由X0X7组成的位元件组,这是一个8位数据,X0为最低位。16位数据时n=14,32位数据n=18。,三菱PLC基础与应用,当一个16位的数据传送到K1M0、K2M0、K3M0时,只能传送低位数据,较高位数据不传送,32位数据传送时也一样。在作16位数操作时,参与操作的位元件不足16位时,高位(不足部分)均作0处理,这就意味着只能处理正数(符号位为0),32位数据操作也一样。 被组合的位元件的首元件号可以是任意的,但为避免混乱,建议采用编号以0为结尾的元件,如X0、Y10、M20等。,三菱PLC基础与应用,2. 指令与操作数 应用指令用助记符表示,有些应用指令仅有指令段(助记符),但更多的有操作数。下面是指令中操作数符号表示方法及解释: S:表示数据源。内容不随指令执行而变化的操作数称为源。在可变址修改软元件编号的情况下,加上“.”符号的S.表示。源的数量多时,以S1.、S2.等表示。 D.:表示目标操作数。内容随指令执行而改变的操作数被称作目标。可作变址修饰时,加上“.”符号的D.表示。目标数量多时,以D1.、D2.等表示。 n.、m.:以m.或n.表示既不作源,也不作目标的操作数。这样的操作数数量很多时,以m1.、m2.、n1.、n2.等表示。,三菱PLC基础与应用,3. 数据格式 在FX系列PLC内部,数据以二进制(BIN)补码的形式存储,所有的四则运算和加1/减1运算都使用二进制数。16位数据的二进制补码最高位(第15位)为符号位,正数的符号位为0,负数的符号位为1,最低为第0位。 4. 应用指令的表达形式 与基本指令不同,FX2N系列PLC的应用指令用编号FNC00FNC246表示,采用计算机通用的助记符(英文名称或缩写)表示。例如,FNC45的助记符是MEAN(平均)。应用指令的表示格式如图5-1所示。,三菱PLC基础与应用,应用指令的指令段通常占1个程序步,16位操作数占2步,32位操作数占4步。,图5-1 应用指令的表示格式,三菱PLC基础与应用,5.1.2 数据长度 FX2N型PLC中的数据寄存器D为16位,用于存放16位二进制数。在应用指令的助记符前加“D”就变成32位指令。数据长度的表示格式如图5-2所示。,图5-2 数据长度的表示,三菱PLC基础与应用,5.1.3 执行形式 应用指令有连续执行和脉冲执行型两种执行形式。 脉冲执行形式的使用如图5-3所示。,图5-3 脉冲执行型的表示,三菱PLC基础与应用,在应用指令助记符中标有“P”的表示该指令为脉冲执行型,在执行条件满足时仅执行一个扫描周期。如果指令格式没有“P”的表示该指令只能是连续执行型,在执行条件满足的每个扫描周期都要被执行。“P”和“D”可以同时使用。,三菱PLC基础与应用,5.1.4 变址寄存器 FX2N有16个16位的变址寄存器,分别是V0V7和Z0Z7。在传送、比较指令中,变址寄存器V和Z用来修改操作对象的元件号,在循环程序中常使用变址寄存器。 进行32位运算时,常用V和Z自动组对使用,分别组成(V0、Z0)、(V1、Z1)、(V7、Z7)。V为高16位,Z为低16位,这时变址指令只需指定Z,Z就能代表V和Z的组合。,三菱PLC基础与应用,5.2 程序流程指令,程序流程指令共有10条,应用指令的编号为FNC00FNC09。 5.2.1 条件跳转指令 条件跳转指令CJ(Conditional Jump)的功能编号为FNC00,操作数的指针标号P0P127,其中P63即END所在步序,无需再标号。CJ和CJP都占3个程序步,指针标号占1个程序步。 指针P(Point)用于分支和跳转步序,在梯形图中,指针放在左侧母线的左边,当CJ指令条件满足时,跳转到相应的标号处。,三菱PLC基础与应用,图5-4 跳转指令的使用,三菱PLC基础与应用,使用跳转指令时应当注意事项如下: 1)CJP指令表示脉冲执行方式。 2)在一个程序中,一个指针标号只能出现一次,否则程序会出错。但是在同一个程序中两条跳转指令可以使用相同的指针标号。 3)跳转指令一般在CJ指令之后,但也可出现在跳转指令之前。 4)跳转执行期间,即使被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态,因为跳转期间没有执行这段程序。 5)如果跳转开始时定时器和计数器已在工作,则跳转执行期间它们将停止工作,即T和C的当前值保持不变,直到跳转条件不满足后又继续工作(T和C接着以前的数值继续计时和计数)。但定时器T192T199和高速计数器C235C255在跳转后将继续动作,接点也动作。,三菱PLC基础与应用,5.2.2 子程序调用和子程序返回 子程序调用指令CALL(Sub Routine Call)的功能编号为FNC01,操作数为P0P127,CALL和CALLP指令都占3个程序步。 子程序返回指令SRET(Sub Routine Return)的功能编号为FNC02,无操作数,占用1个程序步。 子程序是为一些特定的控制目的而编制的相对独立的程序。为了区别于主程序,规定在程序编排时,将主程序排在前面,子程序排在后面,以主程序结束指令FEND(FNC06)将它们隔开。,三菱PLC基础与应用,子程序调用指令CALL的功能是当执行条件满足时,该指令使程序跳到标号处,执行该标号对应的子程序。 子程序返回指令SRET的功能是返回到调用该子程序的CALL指令处的下一逻辑行。 子程序调用和子程序返回指令的简单使用示例如图5-5所示。,三菱PLC基础与应用,图5-5 子程序调用和返回指令的使用,三菱PLC基础与应用,使用子程序调用和返回指令的注意事项: 1)同一标号在左母线前只能出现一次,但不同的CALL指令可调用同标号的子程序。 2)子程序中可再调用子程序,形成子程序嵌套,最多可有5级嵌套。 3)在调用子程序和中断子程序时,可采用T192T199和T246249作为定时器。,三菱PLC基础与应用,【例5-1】用两个开关X1、X0控制一个信号灯Y0,当X1X0=00时灯灭;当X1X0=01时,灯以1s脉冲闪烁;当X1X0=10时,灯以2s脉冲闪烁;当X1X0=11时,灯常亮。用子程序调用来实现,则如图5-6所示。,三菱PLC基础与应用,图5-6 子程序调用实例,三菱PLC基础与应用,5.2.3 中断指令 中断返回指令IRET(Interrupt Return)的功能编号FNC03,无操作数,占1个程序步。 中断允许指令EI(Enable Interrupt)的功能编号FNC04,无操作数,占1个程序步。 中断禁止指令DI(Disable Interrupt)的功能编号FNC05,无操作数,占1个程序步。,三菱PLC基础与应用,1中断指针 中断指针(II8)是用来指示某一中断程序的入口位置的。执行中断后遇到IRET指令,则返回主程序。中断指针有以下三种类型: 1)输入中断指针(I00I50):共6点,用来指示由特定输入端的输入信号而产生中断的中断服务程序的入口位置。这类中断不受PLC扫描周期的影响,可以及时处理外界信息。输入中断指针编号格式如下: 例如:I201是当输入X2从OFFON变化时,执行以I201为标号的中断程序,并根据IRET指令返回。,三菱PLC基础与应用,2)定时器中断指针(I6I8):共3点,用来指示周期定时中断的中断服务程序的入口位置。这类中断的作用是PLC以指定的周期定时执行中断服务程序,定时循环处理某些任务,处理的时间也不受PLC扫描周期的影响。定时器中断指针格式如下: 3)计数器中断指针(I010I060):共6点,用于在PLC内置的高速计数器中。当高速计数器的当前值达到规定值,执行中断子程序。常用于利用高速计数器优先处理计数结果的场合。,三菱PLC基础与应用,2中断指令 中断是指在执行主程序的过程中,中断主程序转而去执行中断服务子程序。PLC通常处于禁止中断状态,由EI和DI指令组成允许中断范围。在执行到该区间时,如果有中断源产生中断,CPU将暂停主程序而转去执行中断服务程序。当遇到IRET时返回断点继续执行主程序。 中断指令的简单使用示例如图5-7所示。在图5-7中,如在允许中断范围内,如果外部中断源X1有一个下降沿,则转入I100为标号的中断服务程序。但X0能否引起中断还受M8050的控制,当X10为ON时,M8050=1,禁止I100中断。,三菱PLC基础与应用,图5-7 中断指令的使用,三菱PLC基础与应用,表5-1 中断类型及中断禁止特殊辅助继电器,三菱PLC基础与应用,使用中断指令的注意事项: 1)如果有多个中断信号依次发出,则优先级按发生的先后顺序,即发生越早的优先级越高。若同时发生多个中断信号,则中断指针号小的优先级越高。 2)无需中断禁止时,可只用EI指令,不必用DI指令。 3)通过特殊辅助继电器M8050M8058可实现中断的选择,它们分别与外部中断和定时器中断一一对应。当M8050M8058为ON时,禁止执行相应I0I8的中断,M8059为ON时,则禁止所有计数器中断。 4)FX2N系列PLC可实现不多于两级的中断嵌套,即在中断子程序中再使用一对EI和DI指令。,三菱PLC基础与应用,【例5-2】三人智力抢答,(a)输入中断(抢答)梯形图,(b)抢答器接线图,图5-8 输入中断(抢答电路)实例,三菱PLC基础与应用,5.2.4 主程序结束指令 主程序结束指令FEND(First End)的功能编号为FNC06,无操作数,占用1个程序步。 FEND表示主程序结束,当执行到FEND时,PLC执行输入/输出处理、监视定时器的刷新、返回0步程序。 使用FEND指令的注意事项: 1)子程序和中断服务程序应放在FEND之后。 2)子程序和中断服务程序必须写在FEND和END之间,否则会出错。,三菱PLC基础与应用,5.2.5 监视定时器指令 监视定时器指令WDT(Watch Dog Timer)的功能编号为FNC07,没有操作数,占用1个程序步。 监视定时器WDT(Watch Dog Timer)又称看门狗,该指令的功能是对PLC的监视定时器进行复位。PLC正常工作时扫描周期小于它的定时时间。监控定时器定时时间在FX2N中默认值为200ms,如果PLC运行一个扫描周期的时间超过监控定时器规定的200ms时,PLC将停止工作,这时CPU-E(CPU错误)指示灯亮。,三菱PLC基础与应用,可以通过修改PLC的特殊数据寄存器D8000(存放一个扫描周期时间)值来设定WDT的定时时间,如图5-9所示。,图5-9 WDT的定时时间设定,三菱PLC基础与应用,此外,如果一个程序大于默认的200ms,也可以通过在程序中插入WDT指令,将程序一分为二,使它们都小于200ms,则不会出现停机报警现象,如图5-10所示。,图5-10 WDT指令的应用,三菱PLC基础与应用,WDT指令的使用注意事项如下: 1)如果FOR-NEXT循环程序的执行时间过长,可能超过监控定时器的定时时间,可将WDT指令插入循环程序中。 2)如果条件跳转指令CJ出现在它所对应的指针标号之后,可能因连续反复跳步使它们之间的程序被反复执行,使WDT动作。为避免这种情况,可以在CJ指令和其指针标号之间插入WDT指令。,三菱PLC基础与应用,5.2.6 循环指令 循环开始指令FOR的功能编号为FNC08,源操作数表示循环次数,占3个程序步。 循环结束指令NEXT的功能编号为FNC09,无操作数,占1个程序步。 FOR与NEXT构成循环指令,FORNEXT之间的程序被反复执行,执行次数由FOR指令的源操作数n设定,n的取值范围132767。执行完后,再执行NEXT后面的指令。,三菱PLC基础与应用,循环指令简单使用示例如图5-11所示。在图5-11中,外层循环程序A嵌套内层循环B,外层A执行2次,每执行一次外层程序A,就要执行5次内层B,因此循环B一共要执行10次。,图5-11 循环指令的使用,三菱PLC基础与应用,循环指令的使用注意事项: 1)FOR与NEXT指令总是成对使用。 2)FORNEXT循环可以嵌套五层。 3)利用循环中的CJ指令可以跳出FORNEXT之间的循环区。 4)如果NEXT指令应放在FOR指令的前面;FOR指令没有对应的NEXT指令;FOR指令与NEXT指令的个数不成对;NEXT指令放在FEND和END指令的后面,以上情况均会出错。 5)如果执行FORNEXT指令的时间太长,PLC的扫描周期有可能会超过WDT的设定时间。,三菱PLC基础与应用,5.3 比较与传送指令,比较与传送指令共有10条,应用指令的编号为FNC10FNC19。比较与传送指令包括数据传送、比较处理、交换及转换等功能。 5.3.1 比较指令 比较指令CMP(Compare)的功能编号FNC10,是将源操作数S1.和S2.的数据进行比较,将比较的结果送到目标操作数D.中,并且占用3个连续单元。比较指令的简单使用示例如图5-12所示。,三菱PLC基础与应用,图5-12 比较指令的使用,三菱PLC基础与应用,比较指令的使用注意事项: 1)按代数形式进行大小比较。例:(-52)。 2)指定的元件种类或元件号超出允许范围时将会出错。 3)源操作数可以取任意的数据格式,目标操作数可以取Y、M和S。 4)CMP(P)占7个程序步,DCMP(P)占13个程序步。,三菱PLC基础与应用,【例5-3】密码锁设计。 密码锁的设计如图5-13所示(其中左图为梯形图,右图为接线图),设置4位密码8251。将数字开关拨到8时按一下确认键,再分别在拨到2、5、1时按一下确认键,电磁锁Y0得电开锁。,三菱PLC基础与应用,图5-13 密码锁,三菱PLC基础与应用,5.3.2 区间比较指令 区间比较指令ZCP(Zone Compare)的功能编号为FNC11,它是将一个源操作数S.与两个源操作数S1.和S2.中的数值进行比较,然后将比较结果传送到目标操作数D.为首地址的3个连续的软件元件中。区间比较指令的简单使用示例如图5-14所示。,三菱PLC基础与应用,图5-14 区间比较指令的使用,三菱PLC基础与应用,区间比较指令的使用注意事项: 1)按代数形式进行大小比较。 2)S1.中的数据不能大于S2.中的数据,如果S1.大于S2.,则S2.被看作与S1.一样大。 3)源操作数可以取所有数据格式,而目标操作数可取Y、M、S。 4)ZCP(P)占7个程序步,DZCP(P)占13个程序步。,三菱PLC基础与应用,5.3.3 传送指令 传送指令MOV(Move)的功能编号为FNC12,该指令的功能是将源操作数S.的内容传送到目标操作数D.中。传送指令的使用示例如图5-15所示。,图5-15 传送指令的使用,三菱PLC基础与应用,传送指令的使用注意事项: 1)源操作数可以取所有数据格式,而目标操作数可取KnY、KnM、KnS、T、C、D、V、Z。 2)MOV(P)占5个程序步,DMOV(P)占9个程序步。,三菱PLC基础与应用,【例5-4】用传送指令实现八人抢答电路。 要求8个指示灯Y0Y7对应8个抢答按钮X0X7,在主持人按下开始按钮X10后,才可以抢答,先按按钮者的灯亮,同时蜂鸣器Y10响,后按按钮者灯不亮。则按要求其设计的梯形图如图5-16所示。,图5-16 传送指令的使用,三菱PLC基础与应用,5.3.4 移位传送指令 移位传送指令SMOV(Shift Move)的功能编号为FNC13,该指令的功能是将S.中的16位二进制数据以BCD的形式按位传送到D.中指定的位置。该指令的使用如图5-17所示。,三菱PLC基础与应用,图5-17 移位传送指令的使用,三菱PLC基础与应用,移位传送指令的使用注意事项: 1)数据寄存器D只能存放二进制数,所以SMOV指令只是在传送的过程中以BCD码的方式传送,而到达指定目标D后仍以二进制数存放。 2)BCD码值超过9999时会出错。 3)源操作数可以取所有数据格式,而目标操作数可取KnY、KnM、KnS、T、C、D、V、Z。 4)SMOV(P)指令只有16位运算,占11个程序步。,三菱PLC基础与应用,5.3.5 取反传送指令 取反传送指令CML(Complement)的功能编号为FNC14,该指令的功能是将源操作数S.中的各位二进制数取反(01,10),按位传送到目标操作数D.中。取反传送指令的使用示例如图5-18所示。,图5-18 取反传送指令的使用,三菱PLC基础与应用,取反传送指令的使用注意事项: 1)源操作数可以取所有数据格式,而目标操作数可取KnY、KnM、KnS、T、C、D、V、Z。 2)如果源数据为常数K,该数据会自动转换为二进制数。 3)CML(P)占5个程序步,DCML(P)占9个程序步。,三菱PLC基础与应用,5.3.6 块传送指令 块传送指令BMOV(Block Move)的功能编号为FNC15,该指令是将源操作数指定的元件开始的n个数据组成的数据块传送到指定的目标,n可以取K、H和D。块传送指令的使用示例如图5-19所示。,图5-19 块传送指令的使用,三菱PLC基础与应用,块传送指令的使用注意事项: 1)如果元件号超过允许的范围,数据仅传送到允许的范围。 2)源操作数可以取KnX、KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可以取KnY、KnM、KnS、T、C、D和文件寄存器。 3)M8024为BMOV指令的方向特殊功能继电器,如果M8024为ON,传送的方向相反,即将目标数据块中的数据传送到源数据块中。 4)BMOV(P)只有16位操作,占7个程序步。,三菱PLC基础与应用,5.3.7 多点传送指令 多点传送指令FMOV(Fill Move)的功能编号为FNC17,该指令是将源操作数中的数据传送到指定目标开始的n个文件中,传送后n个文件中的数据完全相同。多点传送指令的使用示例如图5-20所示。,图5-20 多点传送指令的使用,三菱PLC基础与应用,多点传送指令的使用注意事项: 1)如果元件号超过允许的范围,数据仅传送到允许的范围。 2)源操作数可以取所有数据类型,目标操作数可以取KnY、KnM、KnS、T、C、D、V和Z,其中n512。 3)FMOV(P)占7个程序步,DFMOV(P)占13个程序步。,三菱PLC基础与应用,5.3.8 数据交换指令 数据交换指令XCH(Exchange)的功能编号为FNC17,该指令是将数据在指定的目标元件之间进行交换。交换指令一般采用脉冲执行方式,否则每一个扫描周期都要交换一次。数据交换指令的使用示例如图5-21所示。,图5-21 数据交换指令的使用,三菱PLC基础与应用,数据交换指令的使用注意事项: 1)两个目标操作数可以取KnY、KnM、KnS、T、C、D、V和Z。 2)XCH(P)占5个程序步,DXCH(P)占9个程序步。,三菱PLC基础与应用,5.3.9 BCD变换指令 BCD(Binary Code to Decimal)变换指令的功能编号为FNC18,该指令是将源元件中的二进制数转换为BCD码并送目标元件中。如果执行的结果超过09999的范围,或者32位操作时超过099999999的范围时,PLC会认定为错误。BCD变换指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器。BCD变换指令的使用如图5-22所示。,图5-22 BCD变换指令的使用,三菱PLC基础与应用,BCD变换指令的使用注意事项: 1)源操作数可取所有数据格式,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 2)BCD(P)占5个程序步,DBCD(P)占9个程序步。,三菱PLC基础与应用,5.3.10 BIN变换指令 BIN(Binary)变换指令的功能编号为FNC19,该指令是将源元件中的BCD数据转换成二进制数据送到目标元件中。可以用BIN指令将BCD数字拨码开关提供的设定值输入到PLC,如果源元件中数据不是BCD码,将会出错。BIN变换指令的使用示例如图5-23所示。,图5-23 BIN变换指令的使用,三菱PLC基础与应用,【例5-5】试设计1个简易定时报时器,具体控制要求如下: 1)早晨6:30,电铃(Y0)每秒响1次,6次后自动停止。 2)9:0017:00,启动住宅报警系统(Y1)。 3)晚上6:00开启园内照明(Y2)。 4)晚上10:00关闭园内照明(Y2)。 则按定时控制器要求的设计的梯形图如5-24所示。,三菱PLC基础与应用,图5-24 定时报时器梯形图,三菱PLC基础与应用,完成本例的控制要求要解决如下几个问题: 1)产生1个实时时钟,即1个周期为24小时循环的时钟信号。利用内部时钟脉冲信号和计数器结合使用即可构成,每15min为一设定单位,共96个时间单元。 2)能按设定时间进行控制。应用计数器产生实时时间与设定值进行比较,利用比较结果进行相关控制。 3)能进行校时。为了能够进行校时,设置X1为15min快速调整开关,X2为格数设定的快速调整开关。时间设定值为钟点数乘以4。 设置X0为启动开关,使用时,在0:00时启动定时器。,三菱PLC基础与应用,5.4 四则运算与逻辑运算指令,5.4.1 加法指令 加法指令ADD(Addition)的功能编号为FNC20,该指令将指定的源元件中的二进制数相加,结果送到指定的目标元件。加法指令的使用示例如图5-25所示。,图5-25 加法指令的使用,三菱PLC基础与应用,加法指令的使用注意事项: 1)加法指令在执行时影响三个常用的标志位:M8020零标志、M8021借位标志和M8022进位标志。当运算结果为0时,M8020置“1”;当运算结果超过32767(16位)或2147483647(32位)时,M8022置“1”;当运算结果小于-32768(16位)或-2147483648时,M8021置“1”。 2)数据为有符号的二进制数,最高位为符号位(0为正,1为负)。 3)源操作数可取所有数据格式,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 4)ADD(P)占7个程序步,DADD(P)占13个程序步。,三菱PLC基础与应用,【例5-6】一台投币洗车机,用于司机清洗车辆,司机每投入1元可以使用10分钟时间,其中喷水时间为5分钟。则按要求设计的投币洗车机梯形图如图5-26所示。,三菱PLC基础与应用,图5-26 投币洗车机梯形图,三菱PLC基础与应用,5.4.2 减法指令 减法指令SUB(Subtration)的功能编号为FNC21,该指令将指定的源元件中的二进制数相减,结果送到指定的目标元件。减法指令的使用示例如图5-27所示。,图5-27 减法指令的使用,三菱PLC基础与应用,减法指令的使用注意事项: 1)M8020、M8021和M8022对减法指令的影响和加法指令相同。 2)数据为有符号的二进制数,最高位为符号位(0为正,1为负)。 3)源操作数可取所有数据格式,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 4)SUB(P)占7个程序步,DSUB(P)占13个程序步。,三菱PLC基础与应用,【例5-7】30s倒计时显示控制的设计。 设计的30s倒计时显示控制梯形图如图5-28所示。,图5-28 30s倒计时显示控制的梯形图,三菱PLC基础与应用,5.4.3 乘法指令 乘法指令MUL(Multiplication)的功能编号为FNC22,该指令将指定源元件中的二进制数相乘,结果送到指令的目标元件中。乘法指令的使用如图5-29所示。,图5-29 乘法指令的使用,三菱PLC基础与应用,乘法指令的使用注意事项: 1)目标位元件的位数如果小于运算结果的倍数,只能保存结果的低位。 2)数据为有符号的二进制数,最高位为符号位(0为正,1为负)。 3)源操作数可取所有数据格式,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z,Z只有在16位乘法时可用,32位乘法不可用。 4)MUL(P)占7个程序步,DMUL(P)占13个程序步。,三菱PLC基础与应用,5.4.4 除法指令 除法指令DIV(Division)的功能编号为FNC23,该指令将源操作数S1.除以S2.,商送到目标元件D.中,余数送到D.的下一元件。其中S1.为被除数,S2.为除数。除法指令的使用示例如图5-30所示。,图5-30 除法指令的使用,三菱PLC基础与应用,除法指令的使用注意事项: 1)除法运算中若将位元件指定D.,则无法得到余数,除数为0时则会出错。 2)数据为有符号的二进制数,最高位为符号位(0为正,1为负)。 3)源操作数可取所有数据格式,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 4)DIV(P)占7个程序步,DDIV(P)占13个程序步。,三菱PLC基础与应用,5.4.5 加1指令 加1指令INC(Increment)的功能编号为FNC24,该指令是将指定元件中的数值加1。加1指令的使用示例如图5-31所示。,图5-31 加1指令的使用,三菱PLC基础与应用,加1指令的使用注意事项: 1)加1指令的结果不影响零标志位、借位标志和进位标志。 2)如果是连续指令,则每个周期均作一次加1运算,16位运算中,+32767再加1就变成-32768,+2147483647再加1,就会变成-2147483648。 3)操作数可取KnY、KnM、KnS、T、C、D、V和Z。 4)INC(P)占3个程序步,DINC(P)占5个程序步。,三菱PLC基础与应用,【例5-8】控制一台电动机,要求正转5s、停止5s、反转5s、停止5s,并自动循环运行,直到停止运行。其梯形图及程序设计如图5-32所示。,图5-32 电动机定时正转-停止-反转-停止的自动循环运行,三菱PLC基础与应用,5.4.6 减1指令 减1指令DEC(Decrement)的功能编号为FNC25,该指令是将指定元件中的数值减1。减1指令的使用如图5-33所示。,图5-33 减1指令的使用,三菱PLC基础与应用,减1指令的使用注意事项: 1)减1指令的结果不影响零标志位、借位标志和进位标志。 2)如果是连续指令,则每个周期均作一次减1运算。 3)操作数可取KnY、KnM、KnS、T、C、D、V和Z。 4)DEC(P)占3个程序步,DDEC(P)占5个程序步。,三菱PLC基础与应用,5.4.7 字逻辑与指令 字逻辑与指令WAND指令的编号为FNC26。该指令是将两个源操作数按位进行与操作,结果存入在指定元件。逻辑与指令的使用如图5-34所示。 5.4.8 字逻辑或指令 字逻辑或指令WOR指令的编号为FNC27。该指令是将两个源操作数按位进行或操作,结果存入在指定元件。逻辑或指令的使用如图5-34所示。 5.4.9 字逻辑异或指令 字逻辑异或指令WXOR(Exclusive OR)指令的编号为FNC28。该指令是将两个源操作数按位进行异或操作,结果存入在指定元件。逻辑异或指令的使用如图5-34所示。,三菱PLC基础与应用,图5-34 逻辑与、或和异或指令的使用,三菱PLC基础与应用,逻辑与、或和异或指令的使用注意事项: 1)逻辑与指令常用于某些位清0,逻辑或指令常用于某些位置1,而逻辑异或指令常用于判断两数是否相等。 2)逻辑与、或和异或指令的源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 3)WAND(P)、WOR(P)和WXOR(P)各占7个程序步,DWAND(P)、DWOR(P)和DWXOR(P)占13个程序步。,三菱PLC基础与应用,5.4.10 求补指令 求补指令NEG(Negation)的功能编号为FNC29,该指令是将指定元件中的各位按位取反(01,10)后再加1,将其结果仍存放在原来的元件中。求补指令的使用如图5-35所示。 FX系列PLC的负数用二进制的补码形式来表示,最高位为符号位,正数时该位为0,负数时该位为1,将负数求补后得到它的绝对值。,图5-35 求补指令的使用,三菱PLC基础与应用,求补指令的使用注意事项: 1)NEG指令只有目标操作数,可取KnY、KnM、KnS、T、C、D、V和Z。 2)NEG(P)占3个程序步,DNEG(P)占5个程序步。,三菱PLC基础与应用,【例5-9】求两个数之差的绝对值。 求两个数之差的绝对值的梯形图如图5-36所示。,图5-36 求两个数之差的绝对值,三菱PLC基础与应用,5.5 循环与移位指令,循环与移位指令共有10条,编号为FNC30FNC39,主要用于数据的移位等操作。 5.5.1 循环右移指令 循环右移指令ROR(Rotation Right)的功能编号为FNC30,执行该指令时,各位数据向右移动(从高位向低位)n位,最后一次移出来的那一位同时存入进位标志M8022中。如图5-37所示。,三菱PLC基础与应用,循环右移指令的使用注意事项: 1)16位指令和32位指令中n应分别小于16和32。 2)ROR指令的目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 3)ROR(P)占5个程序步,DROR(P)占9个程序步。,图5-37 循环右移指令的使用,三菱PLC基础与应用,5.5.2 循环左移指令 循环右移指令ROL(Rotation Left)的功能编号为FNC31,执行该指令时,各位数据向左移动(从低位向高位)n位,最后一次移出来的那一位同时存入进位标志M8022中。如图5-38所示。,图5-38 循环左移位指令的使用,三菱PLC基础与应用,循环左移指令的使用注意事项: 1)16位指令和32位指令中n应分别小于16和32。 2)ROL指令的目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 3)ROL(P)占5个程序步,DROL(P)占9个程序步。 【例5-10】按1-2相激磁方式控制一个四相步进电动机。可正反转控制,每步为1s。电动机运行时,指示灯亮。四相步进电动机的1-2相激磁方式波形和程序如图5-39所示。,三菱PLC基础与应用,图5-39 四相步进电动机的1-2相激磁方式波形图和梯形图,三菱PLC基础与应用,5.5.3 带进位的循环右移指令 带进位的循环右移指令RCR(Rotation Right with Carry)的功能编号为FNC32,执行该指令时,将各位数据连同进位标志M8022一起右移。如图5-40所示。,图5-40 带进位的循环右移指令的使用,三菱PLC基础与应用,带进位的循环右移指令的使用注意事项: 1)在循环右移过程中,移出的位将送入进位标志,原进位标志又被送回目标操作数的另一端。 2)RCR指令的目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 3)RCR(P)占5个程序步,DRCR(P)占9个程序步。,三菱PLC基础与应用,5.5.4 带进位的循环左移指令 带进位的循环左移指令RCL(Rotation Left with Carry)的功能编号为FNC33,执行该指令时,将各位数据连同进位标志M8022一起左移。如图5-41所示。,图5-41 带进位的循环左移指令的使用,三菱PLC基础与应用,带进位的循环左移指令的使用注意事项: 1)在循环左移过程中,移出的位将送入进位标志,原进位标志又被送回目标操作数的另一端。 2)RCL指令的目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 3)RCL(P)占5个程序步,DRCL(P)占9个程序步。,三菱PLC基础与应用,5.5.5 位右移指令 位右移指令SFTR(Shift Right)的功能编号为FNC34,该指令使位元件中的状态成组地向右移动,由n1指定位元件的长度,n2指定移动的位数,一般n2n11024。位右移指令的使用如图5-42所示。,图5-42 位右移指令的使用,三菱PLC基础与应用,位右移指令的使用注意事项: 1)如果采用连续型指令,每个扫描周期都移动n2位。 2)SFTR指令源操作数可取X、Y、M和S,目标操作数可取Y、M、S。 3)SFTR(P)只有16位操作数,占9个程序步。,三菱PLC基础与应用,5.5.6 位左移指令 位左移指令SFTL(Shift Left)的功能编号为FNC35,该指令使位元件中的状态成组地向左移动,由n1指定位元件的长度,n2指定移动的位数,一般n2n11024。位左移指令的使用如图5-43所示。,图5-43 位左移指令的使用,三菱PLC基础与应用,位左移指令的使用注意事项: 1)如果采用连续型指令,每个扫描周期都移动n2位。 2)SFTL指令源操作数可取X、Y、M和S,目标操作数可取Y、M、S。 3)SFTL(P)只有16位操作数,占9个程序步。 【例5-11】四台水泵轮流运行,由四台三相异步电动机M1M4驱动。正常要求是两台运行两台备用。为了防止备用水泵长时间不用造成锈蚀等问题,要求四台水泵中两台运行,并每隔8h切换一台,使四台水泵轮流运行。,三菱PLC基础与应用,图5-44 四台水泵轮流工作实例,三菱PLC基础与应用,5.5.7 字右移指令 字右移指令WSFR(Word Shift Right)的功能编号为FNC36,该指令以字为单位,对n1位D.所指的字元件进行n2位S.字的向右移位,其工作过程与位右移指令类似。字右移指令的使用如图5-45所示。,图5-45 字右移指令的使用,三菱PLC基础与应用,字右移指令的使用注意事项: 1)一般情况下n2n1512。 2)WSFR指令源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C和D。 3)WSFR(P)只有16位操作数,占9个程序步。,三菱PLC基础与应用,5.5.8 字左移指令 字左移指令WSFL(Word Shift Left)的功能编号为FNC37,该指令以字为单位,对n1位D.所指的字元件进行n2位S.字的向左移位,其工作过程与位左移指令类似。字左移指令的使用示例如图5-46所示。,图5-46 字左移指令的使用,三菱PLC基础与应用,字左移指令的使用注意事项: 1)一般情况下n2n1512。 2)WSFL指令源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C和D。 3)WSFL(P)只有16位操作数,占9个程序步。,三菱PLC基础与应用,5.5.9 移位写入指令 移位寄存器写入指令SFWR(Shift Register Write)的功能编号为FNC38,该指令将S.中的数据依次传送到D.中。移位写入指令的使用示例如图5-47所示。,图5-47 移位写入指令的使用,三菱PLC基础与应用,移位写入指令的使用注意事项: 1)一般情况下2n512。 2)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C和D。 3)SFWR(P)只有16位操作数,占7个程序步。,三菱PLC基础与应用,5.5.10 移位读出指令 移位寄存器写入指令SFRD(Shift Register Read)的功能编号为FNC39,该指令将S.中的数据依次读出到D.中。移位写入指令的使用如图5-48所示。,图5-48 移位写入指令的使用,三菱PLC基础与应用,移位寄存器又称为FIFO(First In First Out,先入先出)堆栈,堆栈的长度范围为2512字。移位寄存器写入指令SFWR和移位寄存器读出指令SFRD用于FIFO堆栈的读写,先写入的数据先读出。 移位读出指令的使用注意事项: 1)一般情况下2n512。 2)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C和D。 3)SFRD(P)只有16位操作数,占7个程序步。,三菱PLC基础与应用,【例5-12】入库物品FIFO。写入99个物品的产品编号(4位十进制数),依次存放在D2D100中,按照先入库的物品先出库的原则,读取出库物品的产品编号,并用4位数码管显示产品编号。则其程序如图5-49所示。,图5-49 移位写入和读出物品编号实例,三菱PLC基础与应用,5.6 数据处理指令,数据处理指令共有10条,应用指令的编号为FNC40FNC49。用来处理更复杂的运算或控制。 5.6.1 区间复位指令 区间复位指令ZRST(Zone Reset)的功能编号为FNC40,该指令是将D1.D2.之间的指定元件号范围内的同类元件成批复位。区间复位指令的使用如图5-50所示。,图5-50 区间复位指令的使用,三菱PLC基础与应用,区间复位指令的使用注意事项: 1)D1.与D2.必须指定相同的组件区域。 2)D1.的元件号应小于D2.的元件号。 3)目标操作数可取Y、M、S、T、C和D。 4)ZRST(P)只有16位操作数,占5个程序步。,三菱PLC基础与应用,5.6.2 解码指令 解码(译码)指令DECO(Decode)的功能编号为FNC41,该指令将S.的n位二进制数进行译码,结果用D.的第2n个元件置1来表示。解码指令的使用如图5-51所示。,图5-51 解码指令的使用,三菱PLC基础与应用,利用解码指令,可以通过数据寄存器D中的数值来控制指定位元件的ON/OFF。解码指令既可用于位元件,也可用于字元件。其具体用法如图5-52所示。,图5-52 解码指令的使用二,三菱PLC基础与应用,解码指令的使用注意事项: 1)若D.指定的目标元件是字元件T、C、D,应使n4,目标元件每一位都受控;若D.指定的目标元件是位元件Y、M、S,应使n8,n=0时,不作处理。 2)位源操作数可取X、T、M和S;位目标操作数可取Y、M、S;字源操作数可取K、H、T、C、D、V和Z;字目标操作数可取T、C和D。 3)DECO(P)只有16位操作数,占7个程序步。,三菱PLC基础与应用,5.6.3 编码指令 编码指令ENCO(Encode)的功能编号为FCN42,编码指令和解码指令刚好相反,该指令是将S.的2n位中最高位的1进行编码,编码存放D.的低n位中。编码指令的使用示例如图5-53所示。,图5-53 编码指令的使用,三菱PLC基础与应用,编码指令的使用注意事项: 1)若S.指定的源操作数是字元件T、C、D、V和Z时,应使n4;若S.指定的源操作数是位元件X、Y、M、S时,应使n的取值范围为18。 2)源操作数是字元件时,可以是T、C、D、V和Z;源操作数是位元件时,可以是X、Y、M和S。位目标操作数可取Y、M、S;字目标操作数可取T、C和D。 3)如果指定源操作数中有多个1,则只有最高位的1有效。 4)ENCO(P)只有16位操作数,占7个程序步。,三菱PLC基础与应用,5.6.4 ON位数统计指令 ON位数统计指令SUM的功能编号为FNC43,该指令用来统计指定元件中1的个数,用于将S.中1的个数存放在D.中,无1时零标志M8020=1。ON位数统计指令的使用示例如图5-54所示。,图5-54 ON位数统计指令的使用,三菱PLC基础与应用,ON位数统计指令的使用注意事项: 1)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 2)SUM(P)占5个程序步,DSUM(P)占9个程序步。,三菱PLC基础与应用,5.6.5 ON位判别指令 ON位判别指令BON(Bit ON Check)功能编号为FNC44,该指令是判断S.的指定位n是否为1,为1时,D.=1,为0时,D.=0。ON位判别指令的使用示例如图5-55所示。,图5-55 ON位判别指令的使用,三菱PLC基础与应用,ON位判别指令的使用注意事项: 1)源操作数可取所有数据类型,目标操作数可取Y、M、S。 2)BON(P)占7个程序步,n=015;DBON(P)占13个程序步,n=031。,三菱PLC基础与应用,5.6.6 平均值指令 平均值指令MEAN的功能编号为FNC45,该指令是求S.开始的n个字元件的平均值,结果送到D.中,余数舍去。平均值指令的使用示例如图5-56所示。 平均值指令的使用注意事项: 1)源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z,n=164。 2)MEAN(P)只有16位操作数,占7个程序步。,图5-56 平均值指令的使用,三菱PLC基础与应用,5.6.7 报警器置位指令 报警器置位指令ANS(Annunciator Set)的功能编号为FNC46,该指令用于驱动信号的报警。报警器置位指令的使用示例如图5-57所示。 报警器置位指令的使用注意事项: 1)报警器的源操作数为T0T199,目标操作数为S900S999,n=132767(n是100ms定时器的设定值)。 2)ANS(P)只有16位操作数,占7个程序步。,图5-57 报警器置位指令的使用,三菱PLC基础与应用,5.6.8 报警器复位指令 报警器复位指令ANR(Annunciator Reset)的功能编号为FNC47,该指令用于对报警器S900S999复位。报警器复位指令的使用示例如图5-58所示。 报警器复位指令的使用注意事项: 1)ANR无操作数。 2)ANR(P)为16位运算指令,占1个程序步。,图5-58 报警器复位指令的使用,三菱PLC基础与应用,【例5-13】用报警器监控送料小车的运行情况。,图5-59 送料车运行监控报警,三菱PLC基础与应用,5.6.9 二进制平方根指令 二进制平方根指令SQR(Square Root)的功能编号为FNC48,该指令对S.中的数值开平方运算,结果存放在D.中。该指令的使用如图5-60所示。 二进制平方根指令的使用注意事项: 1)源操作数应大于零,可以取K、H、D,目标操作数为D。 2)SQR(P)占5个程序步,DSQR(P)占9个程序步。,图5-60 二进制平方根指令的使用,三菱PLC基础与应用,5.6.10 浮点数转换指令 二进制整数转换为二进制浮点数指令FLT(Floating Point)的功能编号为FNC49,该指令将S.中的二进制整数转换为二进制浮点数,结果存放在D.中。FLT指令的使用如图5-61所示。 浮点数转换指令的使用注意事项: 1)源操作数和目标操作数均为D。 2)FLT(P)占5个程序步,DFLT(P)占9个程序步。,图5-61 浮点数转换指令的使用,三菱PLC基础与应用,5.7 高速处理指令,高速处理指令共有10条,应用指令的编号为FNC50FNC59,高速处理指令主要用于对PLC中的输入输出数据进行立即高速处理,以避免受扫描周期的影响。 5.7.1 输入输出刷新指令 输入输出刷新指令REF(Refresh)的功能编号为FNC50,该指令是将X或Y的n位继电器的值进行刷新。输入输出刷新指令的使用示例如图5-62所示。,图5-62 输入输出刷新指令的使用,三菱PLC基础与应用,PLC在处理输入输出信号时采用全部一次再生的方式,也就是在扫描Step 0之前会将输入端(X)信号全部读出,然后扫描到END时才将最新的数据读取或送到输出端(Y)来驱动外部负载。如果在PLC程序执行中不必等到END指令,希望能将最新的数据读取或送到输出端(Y),则可使用REF指令。 输入输出指令的使用注意事项: 1)目标操作数为元件编号个位为0的X或Y,如X0、X10、Y0、Y20等,n必须是8的倍数,n=8,16256。 2)REF(P)只能进行16位运算,占5个程序步。,三菱PLC基础与应用,5.7.2 滤波调整指令 滤波调整指令REFF(Refresh And Filter Adjust)的功能编号为FNC51,该指令用于改变X0X17的输入滤波时间常数(对于FX2N-16M型PLC为X0X7)。输入滤波时间常数n=060ms。当滤波时间常数设为0时,但实际上该输入达不到0,X0X1为20s,其它为50s。 X0X17的输入滤波值(10ms)被传送到特殊数据寄存器D8020,因此,也可以通过改变D8020中的初始值来设定输入滤波时间常数。 滤波调整指令的使用示例如图5-63所示。,三菱PLC基础与应用,滤波调整指令的使用注意事项: 1)如果X0X7用作高速计数器输入或使用FNC56速度检测指令以及中断输入时,相对应输入端的反应时间则被自动调整为最小值(50s),没有关系的输入端还是维持为10ms。 2)REFF(P)为16位运算指令,占7个程序步。,图5-63 滤波调整指令的使用,三菱PLC基础与应用,5.7.3 矩阵输入指令 矩阵输入指令MTR(Matrix)的功能编号为FNC52,该指令是使用8点的输入与n点的输出,按顺序读入8点n列的输入信号。矩阵输入指令的使用示例如图5-64所示。,图5-64 矩阵输入指令的使用,三菱PLC基础与应用,矩阵输入指令的使用注意事项: 1)S.指定连接输入端的起始号码,从该号码开始算起连续8点为矩阵输入端;D1.则是指定矩阵扫描的起始号码,配合n来决定点数,如D1.=Y20,n=3表示由Y20、Y21、Y22作矩阵扫描;D2.指定读入结果的起始号码,如指定M30,则表示M30M37、M40M47、M50M57。 2)使用本指令每一列读取时间约20ms,如果8列,则读取时间20ms8=160ms,因此ON/OFF速度快于160ms的输入信号就不适用于矩阵输入。 3)MTR指令一般使用M8000触点,该接点在PLC运行时始终是接通的,如果用其他的触点,则当触点断开时,指定输出Y开始的16点(例如Y40Y57)将失电,这样需要在MTR指令前后增加保护Y数据的程序。 4)源操作数S.是元件编号个位为0的X,通常用X20以后的编号(FX2N-16M为X10以后的编号);目标操作数D1.是元件编号个位为0的Y;目标操作数D2.是元件编号个位为0的Y、M和S;n的取值范围是28。 5)MTR为16位运算指令,占9个程序步。,三菱PLC基础与应用,5.7.4 高速计数器置位指令 调整计数器置位指令HSCS(Set By High Speed Counter)的功能编号为FNC53,该指令用于高速计数器的置位,当计数器的当前值达到预置值时,计数器的输出触点立即动作。它采用了中断方式使置位和输出立即执行而与扫描周期无关。由于该指令用于32位高速计数器C235C255,所以应该用32位DHSCS指令。调整计数器置位指令的使用如图5-65所示。,三菱PLC基础与应用,高速计数器置位指令的使用注意事项: 1)源操作数S1.可取所有数据类型,S2.为C235C255;目标操作数可取Y、M和S。 2)该指令只有32位运算,必须输入DHSCS,若输入HSCS则无效,占13个程序步。,(a)高速计数器一,(b)高速计数器二,图5-65 高速计数器置位指令的使用,三菱PLC基础与应用,5.7.5 高速计数器复位指令 高速计数器复位指令HSCR(Reset By High Speed Counter)的功能编号为FNC54,该指令用于高速计数器的复位,同DHSCS一样,该指令为32位指令,应用DHSCR,而不能用H
展开阅读全文