第3章 CPM1A系列PLC的指令系统.ppt
第3章CPM1A系列PLC的指令系统,3.1概述3.2基本指令3.3常用的应用指令3.4数据传送和数据比较指令3.5数据移位和数据转换指令,3.6数据运算指令3.7子程序控制指令3.8高速计数器控制指令3.9脉冲输出控制指令3.10中断控制指令3.11步进控制指令3.12特殊指令,3.1概述,1.指令的分类按指令功能的不同,可分为基本指令和应用指令两类。基本指令是直接对输入和输出点进行操作的指令,如输入、输出及逻辑“与”、“或”、“非”等操作。应用指令是进行数据传送、数据处理、数据运算、程序控制等操作的指令。应用指令的多少关系到PLC功能的强弱。,2.指令的格式指令的格式可以表示为助记符指令码操作数1操作数2操作数33.执行指令对标志位的影响4.指令的微分、非微分形式,3.2基本指令,3.2.1常用的基本指令1.LD、LDNOT、AND、ANDNOT、OR、ORNOT、OUT、OUTNOT指令2.END指令3.NOP指令,3.2.2ANDLD和ORLD指令1.ANDLD指令2.ORLD指令,3.2.3SET和RESET指令3.2.4KEEP指令3.2.5DIFU和DIFD指令,3.2.6基本编程规则和编程方法1.基本编程规则2.基本编程方法,3.3常用的应用指令,3.3.1IL/ILC指令3.3.2暂存继电器(TR)3.3.3JMP/JME指令,使用JMPN和JMEN指令时应注意以下几点①发生跳转时,JMPN和JMEN之间的程序不执行,且不占用扫描时间。②发生跳转时所有继电器、定时器、计数器均保持跳转前的状态不变。③对同一个跳转号N,JMPN/JMEN只能在程序中使用一次。但当N取00时,JMP00/JME00可以在程序中多次使用。④以00作为跳转号时,指令的执行时间比其他跳转号的执行时间长,因为CPU要花时间去寻找下一个JME00。⑤跳转指令可以嵌套使用,但必须是不同跳转号的嵌套,如JMP00-JMP01-JME01-JME00等。,3.3.4定时器/计数器指令使用定时器/计数器时应注意以下几点①定时器和计数器同在一个TC区,它们共同使用编号000~127,所以在同一程序中它们的编号不能重复使用。②当SV为通道时(通道内数据必须是BCD数),改变通道内的数据,其设定值即改变。也可以通过外部设备拨码器来改变其设定值。③间接寻址DM通道不存在,是指以DM的内容为地址的通道不存在。④定时器没有掉电保持功能,计数器有掉电保持功能。⑤当扫描时间Ts﹥0.1s时,定时器TIM会不准确;当Ts﹥0.01s时,定时器TIMH会不准确。,1.定时器(TIM)①定时器的使用方法。②定时器定时时间的扩展。③定时器的定时方式。2.计数器(CNT)①计数器的计数功能。②计数器的定时功能。③计数器容量的扩展。,3.可逆计数器(CNTR)①可逆计数器的计数功能。②可逆计数器的循环定时功能。③循环计数器容量的扩展。,3.4数据传送和数据比较指令,3.4.1数据传送指令1.传送指令(MOV/MOV)和求反传送指令(MVN/MVN)2.块设置指令(BSET/BSET),3.4.2数据比较指令1.单字比较指令(CMP)2.块比较指令(BCMP/BCMP),3.5数据移位和数据转换指令,3.5.1数据移位指令1.移位寄存器指令(SFT)2.可逆移位寄存器指令(SFTR/SFTR)3.数字左移(SLD/SLD)和右移位(SRD/SRD)指令4.字移位指令(WSFT/WSFT),3.5.2数据转换指令1.BCD码→二进制数转换指令(BIN/BIN)2.二进制数→BCD码转换指令(BCD/BCD),3.16→4编码器指令(DMPX/DMPX)使用编码指令DMPX时要注意①S3不能超过其所在区域。②要牢记控制字的内容及意义,并注意控制字的内容不能写错。,4.4→16译码指令(MLPX/MLPX)使用译码指令MLPX时要注意①R3不能超过其所在区域。②要牢记控制字的内容及意义,注意控制字的内容不能写错,若C设置错误,程序将无法执行。,5.七段译码指令(SDEC/SDEC)使用SDEC指令要注意①结果通道不能超过其所在区域,②一次最多只能对4个数字进行译码。6.ASCII码转换指令(ASC/ASC),3.6数据运算指令,3.6.1十进制运算指令1.十进制加法运算指令(ADD/ADD、ADDL/ADDL),2.十进制减法运算指令(SUB/SUB)3.十进制递增(INC/INC)、递减指令(DEC/DEC)及乘(MUL/MUL)、除法(DIV/DIV)运算指令,3.6.2二进制运算指令3.6.3逻辑运算指令,3.7子程序控制指令,3.7.1子程序调用、子程序定义/子程序返回指令3.7.2宏指令,编写子程序调用程序时要注意以下几点①所有子程序都必须放在主程序之后和END指令之前。②主程序调用各子程序的次数没有限制。③子程序可以嵌套调用,即子程序中又调用别的子程序。但是嵌套不能超过16级,且子程序不能自调用。④要特别注意子程序执行完毕的返回地址。,3.8高速计数器控制指令,3.8.1旋转编码器,3.8.2高速计数器的计数功能1.高速计数器的计数模式(1)递增计数模式(2)增减计数模式2.高速计数器的复位方式(1)硬件复位Z信号软件复位(2)软件复位,3.高速计数器的设定4.高速计数器的溢出5.高速计数器的当前值存储区,3.8.3高速计数器的中断功能1.目标值比较中断2.区域比较中断,3.8.4高速计数器的控制指令(1)高速计数器的目标值比较中断(2)高速计数器的区域比较中断,高速计数器具有高速计数和中断功能,现归纳如下①使用高速计数器前必须进行设定,设定数据存放在DM6642中,以确定高速计数器的使用/不使用、复位方式、计数模式等。②使用高速计数器时,SR248和SR249通道已经被占用,不能再作它用。③使用高速计数时00000~00002三个输入点被占用,不能再作它用。④高速计数器有计数功能。⑤高速计数器具有中断功能。⑥高速计数器的中断处理子程序与普通子程序的编写规则相同。,3.9脉冲输出控制指令,(1)连续模式脉冲输出(2)独立模式脉冲输出在使用脉冲输出指令时,要注意以下几点①同一时刻只能从一个输出点输出脉冲。②正在输出脉冲时,不能用PULS指令改变输出脉冲的个数。③独立模式时,当达到指定脉冲数时停止脉冲输出;在连续输出模式时,将SPED指令的F设为0000、或将INI指令的C设为003,都可以使脉冲输出停止。,3.10中断控制指令,3.10.1外部输入中断功能1.外部输入中断的输入点2.外部输入中断的优先级,3.外部输入中断的模式(1)输入中断模式(2)计数器中断模式4.外部输入中断的子程序5.外部输入中断的设定,3.10.2间隔定时器的中断功能1.间隔定时器2.间隔定时器的中断模式(1)单次中断模式(2)重复中断模式,3.间隔定时器的中断处理子程序编写中断处理子程序应注意以下几点①在中断处理子程序内部可以定义新的中断,也可以解除中断。②在中断处理子程序内部不可以调用别的中断处理子程序。③在中断处理子程序内部不可以调用普通子程序。④在普通子程序中不可以调用中断处理子程序。,3.10.3中断的优先级3.10.4中断控制指令1.外部输入中断模式2.外部输入的计数中断模式3.间隔定时器单次中断模式4.间隔定时器重复中断模式,把普通子程序与中断处理子程序的问题进行归纳。(1)两种子程序的相同点①子程序都必须由SBN和RET指令来定义其开始和结束。②子程序都要放在主程序之后和END之前,即子程序之后不能再写主程序。③当SBS指令的执行条件不满足时或没产生中断时,CPU都不扫描子程序。,(2)两种子程序调用的不同之处①在子程序调用的控制方式上的区别。②两种子程序执行完毕返回地址的区别。③用SBS调用的各子程序之间没有优先级的问题,而由于各种中断存在优先级,所以与各种中断对应的中断处理子程序在执行时有优先顺序。,(3)注意的问题①在中断处理子程序内部不可使用SBS指令,即中断处理子程序不可调用普通子程序。②不可用SBS指令去调用中断处理子程序,即普通子程序不可调用中断处理子程序。③中断处理子程序内部不可以调用别的中断处理子程序。,3.11步进控制指令,3.11.1步进程序的结构及程序的编写规则1.步进程序的基本结构2.步进程序结构的几种类型,3.编写步进程序时注意的问题①各步的控制位必须同在一个区,并且前后步的控制位最好连续。②步程序段内不能使用以下几个指令END、IL/ILC、JMP/JME、SBN。③当SNXT(09)B执行时,将结束前一步(B-1)的执行,并复位前一步使用的定时器和数据区。④若步的控制位使用HR、AR,则具有掉电保护功能。⑤各步必须以前一步的结束及清除为启动条件,即不能先启动中间的步。⑥各步的执行条件是脉冲信号,所以PLC上电即ON的执行条件无效。,3.11.2步进程序的执行过程1.顺序执行类步进程序的执行过程2.选择分支执行类步进程序的执行过程3.并行分支执行类步进程序的执行过程,3.12特殊指令,3.12.1故障诊断指令1.可继续运行的故障诊断指令(FAL/FAL)2.停止运行的故障诊断指令(FALS),3.12.2信息显示指令1.存放ASCII码的顺序2.显示MSG信息的顺序被显示信息的优先级取决于存放该信息的存储区的优先级,其顺序为①LR→I/O→IR除I/O外→HR→AR→TC→DM/*DM。②同一区域内地址小的优先,间接寻址时,DM地址小的优先。3.清除当前显示的MSG信息,3.12.3I/O刷新指令3.12.4位计数指令,