第11章 欧姆龙CPM1A系列PLC的指令系统.ppt
1,第11章欧姆龙CPM1A系列PLC的指令系统,2,内容提要欧姆龙CPM1A系列机基本指令数据传送和数据比较指令数据移位和数据转换指令数据运算指令子程序控制指令高速计数器控制指令脉冲输出控制中断控制指令步进控制指令特殊指令,3,11.1基本指令,11.1.1IL/ILC指令,1.IL指令IL指令的格式、逻辑符号、操作数的含义及范围如表11.1所示。,2.ILC指令ILC指令的格式、逻辑符号、操作数的含义及范围如表11.2所示。,表11.1IL指令,表11.2ILC指令,,,4,11.1.2JMP/JME指令1.JMP指令JMP指令的格式、逻辑符号、操作数的含义及范围如表11.3所示。,,2.JME指令JME指令的格式、逻辑符号、操作数的含义及范围如表11.4所示。,当JMP的执行条件为OFF时,跳过JMP和JME之间的程序转去执行JME之后的程序;当JMP的执行条件为ON时,JMP和JME之间的程序被执行。,表11.4JME指令,表11.3JMP指令,,,5,11.1.3定时器/计数器指令1.TIM指令TIM指令的格式、逻辑符号、操作数的含义及范围如表11.5所示。,,TIMBSV,功能定时器。从输入条件为ON时开始定时(定时时间为SV0.1s)。定时时间到,定时器的输出为ON且保持;当输入条件变为OFF时,定时器复位,输出变为OFF,并停止定时,其当前值PV恢复为SV。,表11.5TIM指令,,6,2.TIMH指令TIMH指令的格式、逻辑符号、操作数的含义及范围如表11.6所示。,表11.6TIMH指令,TIMH15BSV,功能高速定时器指令。定时时间为SV0.01s,其余同TIM指令。3.CNT指令CNT指令的格式、逻辑符号、操作数的含义及范围如表11.7所示。,表11.7CNT指令,CNTBSV,7,表11.8CNTR指令,4.CNTR指令CNTR指令的格式、逻辑符号、操作数的含义及范围如表11.8所示。功能可逆循环计数器。只要复位R端为ON,计数器即复位为OFF并停止计数,且不论加计数还是减计数,其PV均为0。从ACP端和SCP端同时输入计数脉冲则不计数;从ACP端输入计数脉冲为加计数;从SCP端输入计数脉冲为减计数;加/减计数有进/借位时,输出ON一个计数脉冲周期。,CNTR12BBSV,8,,11.2数据传送和数据比较指令11.2.1数据传送指令CPM1A系列提供多种数据传送指令,在指令前加符号是指该指令是微分型指令,它只在执行条件由OFF变为ON时执行一次,此后即使执行条件一直为ON,指令也不再执行。1.MOV21指令MOV21指令的格式、逻辑符号、操作数的含义及范围如表11.9所示。功能传送指令。当执行条件为ON时,将源数据S传送到通道D中。,表11.9MOV21指令,,9,,2.MVN22指令MVN22指令的格式、逻辑符号、操作数的含义及范围如表11.10所示。功能取反传送指令。当执行条件为ON时,将源数据S按位取反后传送到通道D中。,表11.10MVN22指令,10,3.XFER70指令XFER70的格式、逻辑符号、操作数的含义及范围如表11.11所示。功能块传送。当执行条件为ON时,将几个连续通道中的数据应传送到另外几个连续通道中去。,表11.11XFER70指令,,11,4.BSET71指令BSET71的格式、逻辑符号、操作数的含义及范围如表11.12所示。功能块设置。当执行条件为ON时,将源数据S传送到从St到E的所有通道中去。,表11.12BSET71指令,,,12,5.MOVB82指令MOVB82的格式、逻辑符号、操作数的含义及范围如表11.13所示。功能位传送。当执行条件为ON时,根据C的内容,将S中指定的某一位传送到D的指定位中。,表11.13MOVB82指令,,13,6.MOVD83指令MOVD83的格式、逻辑符号、操作数的含义及范围如表11.14所示。功能数字传送。当执行条件为ON时,根据C的内容,将S中指定的数字传送到D的指定的数字位中去。,,表11.14MOVD83指令,14,7.DIST80指令DIST80指令的格式、逻辑符号、操作数的含义及范围如表11.15所示。功能单字分配。当执行条件为ON时,根据C的内容进行单字数据分配或堆栈的进栈操作。,表11.15DIST80指令,15,8.XCHG73指令XCHG73指令的格式、逻辑符号、操作数的含义及范围如表11.16所示。功能数据交换。当执行条件为ON时,将E1与E2的内容进行交换。,,表11.16XCHG73指令,16,9.COLL81指令COLL81指令的格式、逻辑符号、操作数的含义及范围如表11.17所示。功能数据调用。当执行条件为ON时,根据C的内容进行调用数据或堆栈的出栈操作。,,表11.17COLL81指令,,17,11.2.2数据比较指令CPM1A系列提供了4种数据比较指令。1.CMP20指令CMP20指令的格式、逻辑符号、操作数的含义及范围如表11.18所示。功能单字比较。当执行条件为ON时,将C1和C2进行比较,并将比较结果送到各标志位。,表11.18CMP20指令,,18,2.CMPL60指令CMPL60指令的格式、逻辑符号、操作数的含义及范围如表11.19所示。功能双字比较。当执行条件为ON时,将C1+1、C1两个通道的内容与C2+1、C2两个通道的内容进行比较,将比较结果放在SR区的相关标志位中。,,,表11.19CMPL60指令,19,3.BCMP68指令BCMP68指令的格式、逻辑符号、操作数的含义及范围如表11.20所示。功能块比较。比较分16个区域,每个区域由两个通道组成,一个通道存下限数据,另一个通道存上限数据。,,表11.20BCMP68指令,20,4.TCMP85指令TCMP85指令的格式、逻辑符号、操作数的含义及范围如表11.21所示。功能表比较。当执行条件为ON时,将数据CD与比较表中的数据进行比较。,表11.21TCMP85指令,,,21,11.3数据移位和数据转换指令11.3.1数据移位指令1.SFT10指令SFT10指令的格式、逻辑符号、操作数的含义及范围如表11.22所示。功能移位寄存器。当复位端R为OFF时,在SP端的每个移位脉冲的上升沿时刻,St到E通道中的所有数据按位依次左移一位。,SFT10StE,,,SP,,IN是数据输入端,SP是移位脉冲输入端,R是复位端,表11.22SFT10指令,22,2.SFTR84SFTR84的格式、逻辑符号、操作数的含义及范围如表11.23所示。功能可逆移位寄存器。当执行条件为ON时,SFTR指令执行。,表11.23SFTR84指令,,15141312不使用,,-,23,3.SLD74指令SLD74指令的格式、逻辑符号、操作数的含义及范围如表11.24所示。功能一位数字左移。当执行条件为ON时,每执行一次SLD指令,St和E通道的数据以字数为单位左移一位。,表11.24SLD74指令,-,24,4.SRD75指令SRD75指令的格式、逻辑符号、操作数的含义及范围如表11.25所示。功能一位数字右移。当执行条件为ON时,每执行一次SRD指令,St和E通道的数据以字数为单位右移一位。,表11.25SRD75指令,-,25,5.ASL25指令ASL25指令的格式、逻辑符号、操作数的含义及范围如表11.26所示。功能算术左移位。当执行条件为ON时,每执行一次移位指令,将Ch通道的数据按位左移一位。,表11.26ASL25指令,-,26,6.ASR26指令ASR26指令的格式、逻辑符号、操作数的含义及范围如表11.27所示。功能算术右移位。当执行条件为ON时,每执行一次移位指令,将Ch通道中的数据按位右移一位。,表11.27ASR26指令,-,27,7.ROL27指令ROL27指令的格式、逻辑符号、操作数的含义及范围如表11.28所示。,表11.28ROL27指令,-,功能循环左移位。当执行条件为ON时,每执行一次移位指令。,28,8.ROR28指令ROR28指令的格式、逻辑符号、操作数的含义及范围如表11.29所示。功能循环右移位。当执行条件为ON时,每执行一次移位指令,将Ch通道中的数据连同CY的内容按位循环右移一位。,表11.29ROR28指令,-,29,9.WSFT16指令WSFT16指令的格式、逻辑符号、操作数的含义及范围如表11.30所示。功能字移位。当执行条件为ON时,每执行一次指令,St和E通道的数据以字为单位左移一位。,表11.30WSFT16指令,-,30,10.ASFT17指令ASFT17指令的格式、逻辑符号、操作数的含义及范围如表11.31所示。功能异步移位寄存器。由St和E之间的通道组成移位寄存器。,表11.31ASFT17指令,-,31,11.3.2数据转换指令1.BIN23指令BIN23指令的格式、逻辑符号、操作数的含义及范围如表11.32所示。功能BCD码向二进制数转换。当执行条件为ON时,将S中的BCD码转换成二进制数(S中的内容不变)并存入R中。,表11.32BIN23指令,-,32,2.BCD24指令BCD24指令的格式、逻辑符号、操作数的含义及范围如表11.33所示。,表11.33BCD24指令,-,功能二进制数转换成BCD码。当执行条件为ON时,将S中二进制数转换成BCD码(S中的内容不变)并存入R中。,33,3.MLPX76指令MLPX76指令的格式、逻辑符号、操作数的含义及范围如表11.34所示。功能译码。当执行条件为ON时,对S中指定的数字位进行译码(由C确定要译码的起始数字位及译码的位数),即将该位数字(十六进制)转换为0~15的十进制数,再将结果通道中与该十进制数对应的位置为ON,其余位为OFF。,表11.34MLPX76指令,-,34,4.DMPX77指令DMPX77指令的格式、逻辑符号、操作数的含义及范围如表11.35所示。功能编码。当执行条件为ON时,对S中进行编码(由C确定被编码的通道数),将被编码通道中为ON的最高位的位号,编为一位十六进制数,再将结果送到结果通道指定的数字位(由C确定存放结果的第一个数字位)上。,表11.35DMPX77指令,-,35,5.SDEC78指令SDEC78指令的格式、逻辑符号、操作数的含义及范围如表11.36所示。功能七段译码。当执行条件为ON时,对S中进行编码(由C确定被编码的起始数字位及译码的位数)。,表11.36SDEC78指令,,-,C,R是结果通道,其范围是IR、SR、HR、AR、LR、DM、*DM,S是源通道(内容为BCD),其范围是IR、SR、HR、AR、LR、TC、DM、*DMC是控制数据,其范围是IR、SR、HR、AR、LR、TC、DM、*DM、C各数字位的含义为,03,36,6.ASC86指令ASC86指令的格式、逻辑符号、操作数的含义及范围如表11.37所示。功能ASCII码转换。当执行条件为ON时,根据控制数据C,将S中指定的数字转换成ASCII码,并存在从R开始的结果通道中。,表11.37ASC86指令,,-,C,R是结果通道,其范围是IR、SR、HR、AR、LR、DM、*DM,S是源通道,其范围是IR、SR、HR、AR、LR、TC、DM、*DMC是控制数据,其范围是IR、SR、HR、AR、LR、TC、DM、*DM、C各数字位的含义为,03,37,11.4数据运算指令,数据运算指令种类较多,包括对十进制和二进制数的加、减、乘、除运算及数据的逻辑运算等。由于进行加、减运算时进位位也参与运算,所以对进位置1和置0的指令STC和CLC一并在本节介绍。11.4.1十进制运算指令1.STC40指令STC40指令的格式、逻辑符号、操作数的含义及范围如表11.38所示。,表11.38STC40指令,,2.CLC41指令CLC41指令的格式、逻辑符号、操作数的含义及范围如表11.39所示。,表11.39CLC41指令,,38,4.DEC39指令DEC39指令的格式、逻辑符号、操作数的含义及范围如表11.41所示。,表11.41DEC39指令,,3.INC38指令INC38指令的格式、逻辑符号、操作数的含义及范围如表11.40所示。,表11.40INC38指令,,39,5.ADD30指令ADD30指令的格式、逻辑符号、操作数的含义及范围如表11.42所示。,表11.42ADD30指令,-,功能单字BCD码减法运算。当执行条件为ON时,将被减数减去减数,再减去CY的内容,把结果存在R中。,40,6.SUB31指令SUB31指令的格式、逻辑符号、操作数的含义及范围如表11.43所示。,表11.43SUB31指令,-,功能单字BCD码减法运算。当执行条件为ON时,将被减数减去减数,再减去CY的内容,把结果存在R中。,41,7.ADDL54指令ADDL54指令的格式、逻辑符号、操作数的含义及范围如表11.44所示。,表11.44ADDL54指令,-,功能双字BCD码加法运算。当执行条件为ON时,将被加数、加数以及CY中内容相加,把结果存入从R(存放低4位)开始的结果通道中。,42,8.SUBL55指令SUBL55指令的格式、逻辑符号、操作数的含义及范围如表11.45所示。,表11.45SUBL55指令,-,功能双字BCD码减法运算。当执行条件为ON时,将被减数减去减数,再减去CY的内容,把结果存入从R(存放低4位)开始的结果通道中。,43,9.MUL32指令MUL32指令的格式、逻辑符号、操作数的含义及范围如表11.46所示。,表11.46MUL32指令,-,功能单字BCD码乘法运算。当执行条件为ON时,将Md和Mr相乘,把结果存入从R(存放低4位)开始的结果通道中。,44,10.DIV33指令DIV33指令的格式、逻辑符号、操作数的含义及范围如表11.47所示。,表11.47DIV33指令,-,功能单字BCD码除法运算。当执行条件为ON时,被除数除以除数,把结果存入从R(存商)和R+1(存余数)通道中。,45,11.MULL56指令MULL56指令的格式、逻辑符号、操作数的含义及范围如表11.48所示。,表11.48MULL56指令,-,功能双字BCD码乘法运算。当执行条件为ON时,两个8位的BCD数相乘,结果存入从R(存放低4位)开始的结果通道中。,46,12.DIVL57指令DIVL57指令的格式、逻辑符号、操作数的含义及范围如表11.49所示。,表11.49DIVL57指令,-,功能双字BCD码除法运算。当执行条件为ON时,两个8位的BCD数相除,商存入R(低4位)和R+1(高4位)中。,47,11.4.2二进制运算指令二进制数据运算指令是单字运算指令。1.ADB50指令ADB50指令的格式、逻辑符号、操作数的含义及范围如表11.50所示。,表11.50ADB50指令,-,功能单字二进制加法运算。当执行条件为ON时,将被加数、加数以及CY相加,把结果存在R中。,48,2.SBB51指令SBB51指令的格式、逻辑符号、操作数的含义及范围如表11.51所示。,表11.51SBB51指令,-,功能单字二进制码减法运算。,49,3.MLB52指令MLB52指令的格式、逻辑符号、操作数的含义及范围如表11.52所示。,表11.52MLB52指令,-,功能单字二进制码乘法运算。,50,11.4.3逻辑运算指令1.COM29指令COM29指令的格式、逻辑符号、操作数的含义及范围如表11.53所示。,表11.53COM29指令,-,功能通道数据按位求反。,51,2.ANDW34指令ANDW34指令的格式、逻辑符号、操作数的含义及范围如表11.54所示。,表11.54ANDW34指令,-,功能字逻辑与运算。,52,3.ORW35指令ORW35指令的格式、逻辑符号、操作数的含义及范围如表11.55所示。,表11.55ORW35指令,-,功能字逻辑或运算。,53,4.XORW36指令XORW36指令的格式、逻辑符号、操作数的含义及范围如表11.56所示。,表11.56XORW36指令,-,功能字逻辑异或运算。,54,5.XNRW37指令XNRW37指令的格式、逻辑符号、操作数的含义及范围如表11.57所示。,表11.57XNRW37指令,-,功能字逻辑同或运算。,55,11.5子程序控制指令,11.5.1子程序调用、子程序定义和子程序返回指令SBS是子程序调用指令,SBN和RET是子程序定义和子程序返回指令。所编写的子程序应在指令SBN和RET之间。主程序中,在需要调用子程序的地方安排SBS指令。1.SBS91指令SBS91指令的格式、逻辑符号、操作数的含义及范围如表11.58所示。,表11.58SBS91指令,,,56,2.SBN92/RET93指令SBN92/RET93指令的格式、逻辑符号、操作数的含义及范围如表11.59所示。,表11.59SBN92/RET93指令,-,功能子程序定义和返回。SBN和RET指令不需要执行条件,两条指令要成对使用。SBN指令定义子程序的开始,RET指令表示子程序结束,RET指令不带操作数。,,-,,SBN92B,RET93,57,11.5.2宏指令宏指令也是调用程序的指令,但与前述子程序有所不同。宏指令的子程序操作数只是形式上的操作数,在调用子程序时才赋予它们确定的数据。MCRO指令的操作数I1是子程序中第一个输入字的参数,操作数O1是子程序中第一个输出字的参数,每次调用时,I1和O1的数据可以不同。由于宏调用的子程序其输入/输出的数据可以变换,所以提高了子程序存在的价值。MCRO99指令的格式、逻辑符号、操作数的含义及范围如表11.60所示。,表11.60MCRO99指令,-,功能宏指令。用一个子程序B代替数个具有相同结构但操作不同的子程序。,58,11.6高速计数器控制指令对高频脉冲信号的计数,大、中型PLC是采用特殊功能单元来处理。普通计数器CNT的计数脉冲频率受扫描周期及输入滤波时间常数的限制,所以不能对高频脉冲信号进行计数。对小型PLC,专门设置了高频脉冲信号的输入点,配合相关的指令及必要的设定,可以处理高频脉冲信号的计数问题。11.6.1旋转编码器旋转编码器能输出脉冲信号,高速计数器配合使用旋转编码器,可以用于测量、处理转动和移位信号等。,59,旋转编码器输出的脉冲有单相脉冲和两相脉冲,单相脉冲信号如图11.27a所示,其最高频率是5kHz,对应每个脉冲信号的前沿高速计数器计数。相位差90的两相脉冲如图11.27b所示,其最高频率是2.5kHz。至于A相和B相脉冲的超前、和滞后,取决于旋转编码器的旋转方向。对应每个脉冲信号的前沿和后沿高速计数器计数。有的旋转编码器还能产生一个复位Z信号。,图11.27旋转编码器输出信号波形,60,,11.6.2高速计数器的计数功能1.高速计数器的计数模式(1)递增计数模式。被计数的高频脉冲信号由00000点输入。在输入计数脉冲信号的前沿,高速计数器的当前值加1。递增计数的最高计数频率是5kHz,递增计数的计数范围是0~65535(00000000~0000FFFF)。(2)增减计数模式。在增减计数时可使用旋转编码器的A相脉冲接在00000输入点,B相脉冲接在00001输入点,复位信号接在00002输入点。递增计数当A相超前B相90时,在A、B相脉冲的前沿,计数器当前值加1。增减计数当B相超前A相90时,在A、B相脉冲的前沿,计数器当前值减1。增减计数的最高计数频率是2.5kHz,计数范围是-32767~+32767(F0007FFF~00007FFF,第一位的F表示负数)。,61,2.高速计数器的复位方式高速计数器复位时,其当前值PV=0。CPM1A系列PLC的高速计数器有两种复位方式。(1)硬件复位Z信号+软件复位。这种复位分两种情况若高速计数器的复位标志位25200先为ON时,在复位Z信号ON的前沿时刻,高速计数器复位;若复位Z信号为ON时,在25200为ON后一个扫描周期时,高速计数器复位。(2)软件复位。当25200为ON,一个扫描周期后,高速计数器复位。3.高速计数器的设定使用高速计数器前必须进行设定,对CPM1A系列PLC,其设定值在DM6642中(可用编程器写入设定值)。DM6642的内容和含义如表11.61所示。,62,表11.61高速计数器的设定,4.高速计数器的溢出高速计数器计数时,若从上限开始进行递增计数就会发生上溢出,其当前值为0FFFFFFF;若从下限开始进行增减计数就会发生下溢出,其当前值为FFFFFFFF。5.高速计数器的当前值存储区高速计数器的当前值放在SR248和SR249中。SR248存放当前值的低4位,SR249存放当前值的高4位。,63,11.6.3高速计数器的中断功能高速计数器有两类中断方式,即目标值比较中断和区域比较中断。1.目标值比较中断在采取目标值比较中断时,要建立一个目标值比较表,如图11.28a所示。目标值比较表占用一个区域的若干个通道,其中首通道存放目标值个数(BCD数)。比较表中最多存放16个目标值,每个目标值占2个通道(各存放目标值的低4位和高4位)。每个目标值对应一个中断子程序,存放16个子程序号需16个通道,所以目标值比较表最多占用48个通道。目标值比较表中的数据可用编程器预先写入。,64,,图11.28两种比较表的结构,2.区域比较中断在采取区域比较中断时,要建立一个区域比较表,如图11.28b所示。区域比较表分8个区域,每个区域占5个通道,其中两个通道用来存放下限值的低4位和高4位,两个通道用来存放上限值的低4位和高4位,一个通道存放该区域对应的中断子程序号。8个区域要占40个通道。当实际使用的比较区域不满8个时,要把其余区域存放上、下限值的通道都置为0,将存放子程序号的通道都置为FFFF。区域比较表中的数据可用编程器预先写入。,65,-,功能比较表登录。当执行条件为ON时,根据C的内容,登录一个目标值比较表或区域比较表;根据C的内容,决定启动比较的方式。,11.6.4高速计数器的控制指令1.CTBL63指令CTBL63指令的格式、逻辑符号、操作数的含义及范围如表11.62所示。,表11.62CTBL63指令,66,-,2.INI61指令INI61指令的格式、逻辑符号、操作数的含义及范围如表11.63所示。,表11.63INI61指令,功能操作模式控制。当执行条件为ON时,根据C的内容,做如下操作启动和停止比较表的比较;更新高速计数器的当前值;停止由01000和01001脉冲输出。,67,-,功能当前值读出。当执行条件为ON时,高速计数器的当前值读出,并传送到目的通道D(放低4位)和D+1(放高4位)中去。,3.PRV62指令PRV62指令的格式、逻辑符号、操作数的含义及范围如表11.64所示。,表11.64PRV62指令,68,11.7脉冲输出控制CPM1A系列晶体管输出型的PLC,其主机的01000和01001两个输出点可以输出20Hz~2kHz的单脉冲,如图11.29所示。脉冲输出根据用户的需要可以设置成连续或独立两种模式。连续模式要用指令来控制脉冲的输出和停止;独立模式输出的脉冲个数达到指定的数目(1~1677715)时,脉冲输出将自动停止。,图11.29脉冲输出的两种模式,69,-,功能设置脉冲。当执行条件为ON时,设定独立模式脉冲输出的脉冲个数。,1.PULS65指令PULS65指令的格式、逻辑符号、操作数的含义及范围如表11.65所示。,表11.65PULS65指令,70,-,功能速度输出。当执行条件为ON时,设定脉冲的输出点、输出的模式以及脉冲的频率。在脉冲输出过程中,改变操作F数值,即可改变脉冲输出的频率。,2.SPED64指令SPED64指令的格式、逻辑符号、操作数的含义及范围如表11.66所示。,表11.66SPED64指令,71,11.8中断控制指令CPM1A系列PLC除了高速计数器的中断功能外,还有外部输入中断和间隔定时器中断的功能。11.8.1外部输入中断功能1.外部输入中断的输入点CPM1A系列PLC中,20,30,40点的主机,其00003~00006在四个点是外部输入中断的输入点。10点的主机,00003和00004是外部输入中断的输入点。外部发生的事件所产生的信号通过中断输入点送入PLC,当某个中断输入点为ON或ON一定次数时,产生中断请求信号。当不使用中断功能时,这些点可以作为普通输入点使用。各中断输入点的编号为00003中断输入000004中断输入100005中断输入200006中断输入3,72,2.外部输入中断的优先若几个中断输入点同时为ON,则这些中断的优先顺序为中断输入0→中断输入1→中断输入2→中断输入33.外部输入中断的模式外部输入中断有输入中断和计数中断两种模式。(1)输入中断模式。在非屏蔽情况下,主要中断输入点接通则产生中断响应。若在屏蔽情况下,即使中断输入点接通也不能产生中断响应,但该中断信号被记忆下来,待屏蔽解除后立即产生中断。若屏蔽解除后不希望响应所记忆的中断,可用指令清除该记忆。(2)计数中断模式。这种模式的中断,是对中断输入点接通的次数进行高速计数(减计数),当达到设定的次数时产生中断,且计数器停止计数、中断被屏蔽。若想再产生中断需使用指令进行设定。计数器的计数范围为0~65535,计数频率最高为1kHz。,73,对计数模式的中断,CPM1A系列规定用通道SR240~243存放计数器设定值,通道SR244~247存放计数器当前值-1的数据。各输入点与上述通道的对应关系如表11.67所示。,表11.66SPED64指令,74,4.外部输入中断的子程序外部输入中断的子程序用SBN定义其开始,用RET定义其结束,而且中断处理子程序必须放在主程序之后和END之前。外部输入点对应中断处理子程序编号是固定的,其对应关系为中断输入0(输入点00003)子程序号为000中断输入1(输入点00004)子程序号为001中断输入2(输入点00005)子程序号为002中断输入3(输入点00006)子程序号为003当不使用中断功能时,这些子程序号可以作为普通子程序编号使用。,75,5.外部输入中断的设定在外部中断应用之前,要用编程器对DM6628进行设定,若不进行设定就没有中断功能。DM6628设定的内容和含义为03020100输入点00003(0普通输入点,1中断输入点)输入点00004(0普通输入点,1中断输入点)输入点00005(0普通输入点,1中断输入点)输入点00006(0普通输入点,1中断输入点),DM6628,76,11.8.2间隔定时器的中断功能1.间隔定时器CPM1A系列PLC有一个间隔定时器,它是递减计数器(从设定值开始按一定的时间间隔进行减计算),当其定时时间到时,可以不受扫描周期的影响,停止主程序并建立断点,立即转去执行中断子程序,从而实现高精度的定时中断处理。2.间隔定时器的中断模式间隔定时器有两种工作模式,即单次模式和重复模式,因此由间隔定时器产生的中断也有两种模式。(1)单次中断模式。当间隔定时器的定时时间到时,停止定时并中断信号,但只执行一次中断。(2)重复中断模式。重复中断模式是每隔一定时间产生一次中断,因此是循环地执行中断,直到定时器停止计数为止。,77,3.间隔定时器的中断处理子程序不论是单次中断模式还是重复中断模式,其子程序都由STIM指令来确定,其范围为000~049。编写中断处理子程序应注意中断处理子程序内部可以定义新的中断,也可以解除中断。中断处理子程序内部不可以调用别的中断处理子程序,也不可以调用普通子程序。11.8.3中断的优先级CPM1A系列PLC有高速计数器中断、外部输入中断、间隔定时器中断等几种中断功能,执行各种中断的优先级顺序如下外部输入中断0→外部输入中断1→外部输入中断2→外部输入中断3→间隔定时器中断→高速计数器中断。,78,11.8.4中断控制指令1.INT89指令INT89指令的格式及符号如表11.68所示。,表11.68中断控制指令格式及符号,-,当执行条件为ON时,根据CC的数据完成以下6种功能中的一种。CC是控制码,其取值和含义如下,79,输入点00003(0不屏蔽,1屏蔽)输入点00004(0不屏蔽,1屏蔽)输入点00005(0不屏蔽,1屏蔽)输入点00006(0不屏蔽,1屏蔽),D,(1)CC=000对00003~00006输入点屏蔽/不屏蔽。是否屏蔽由D的位00~03决定。,03020100,输入点00003(0不清除,1清除)输入点00004(0不清除,1清除)输入点00005(0不清除,1清除)输入点00006(0不清除,1清除),D,(2)CC=001清除/不清除输入中断记忆。是否清除由D的位00~03决定。,03020100,80,输入点00003(0不屏蔽,1屏蔽)输入点00004(0不屏蔽,1屏蔽)输入点00005(0不屏蔽,1屏蔽)输入点00006(0不屏蔽,1屏蔽),D,(3)CC=002读出00003~00006输入点的当前屏蔽状态写入D中。00003~00006输入点屏蔽/不屏蔽。是否屏蔽由D的位00~03决定。,03020100,输入点00003(0不更新,1更新)输入点00004(0不更新,1更新)输入点00005(0不更新,1更新)输入点00006(0不更新,1更新),D,(4)CC=003更新/不更新00003~00006输入点的计数器设定值。是否更新设定值,由D的位00~03决定。,03020100,81,(5)CC=100屏蔽所有中断。屏蔽期间若有中断请求将不响应,但可记忆各种中断信号,待屏蔽解除后立即响应中断。(6)CC=200解除所有中断屏蔽,即恢复到执行INT“屏蔽所有中断”之前的状态,但不解除单独中断类型的中断。当CC=100和CC=200时,D=0000为固定设置,屏蔽所有中断与解除所有中断屏蔽应成对使用,不是十分必要,一般不要使用屏蔽所有中断。,82,2.SIM69指令SIM69指令的格式及符号如表11.69所示。,表11.69中断控制指令格式及符号,-,当执行条件为ON时,根据C1的数据完成以下4种功能中的一种。C2,C3的取值根据C1的状态来决定。,83,(1)C1=000启动单次中断模式。①C2若为常数(BCD0000~9999)时,则为定时器的设定值。时间间隔固定为1ms,实际定时时间即为该常数值,单位为ms。C3为子程序号。②C2若为通道号,则其内容(BCD0000~9999)为定时器的设定值。时间间隔为C2+1的内容(BCD0005~0320),对应(0.5~32ms)确定,实际定时时间为[C2的内容(C2+1)的内容]0.1ms,故实际定时时间的范围是0.5~319968ms。C3为子程序号。(2)C1=003启动重复中断模式C2,C2+1,C3的意义及定时时间的计算方法同启动单次中断模式。(3)C1=006读出定时器的当前值可读出计数器减1的次数、时间间隔、从上一次减1到当前时刻的时间,读出的数据分别放在C2,C2+1,C3中,由此计算出定时开始的当前时刻的时间为[C2的内容(C2+1)的内容+C3的内容]0.1ms。(4)C1=010停止间隔定时器工作,此时C2,C3固定为000。,84,11.9步进控制指令步进控制指令的格式、逻辑符号、操作数的含义及范围、指令功能如表11.70所示。,表11.70步进控制指令,85,步进程序的结构可以分为三种类型,即顺序执行类、选择分支执行类、并行分支执行类。图11.30是几种类型的步进程序结构示意图,也称步进程序的流程图。,图11.29脉冲输出的两种模式,86,2.FALS07指令FALS07指令的格式、逻辑符号、操作数的含义及范围如表11.72所示。,表11.72FALS07指令,,,当执行条件为ON时,将故障代码B2传送到FAL的输出区SR25300~25307中,同时使主机面板上的ERR指示灯常亮,RUN指示灯灭,停止执行程序,所有输出均复位。能使程序再启动的方法是(1)清除故障后,将PLC的工作方式转换到PROGRAM,再转换回RUN或MONITOR方式。(2)清除故障后,将PLC关机再开机。,87,3.MSG46指令MSG46指令的格式、逻辑符号、操作数的含义及范围如表11.73所示。,表11.73MSG46指令,-,功能信息显示。当执行条件为ON时,从FM开始的8个通道中读取ASCII码,并把对应的字符在显示屏上显示出来。若出现非ASCII码,则该码以后的信息将不被显示。执行FAL0600指令时,可清除当前显示的信息。,88,4.IORF97指令IORF97指令的格式、逻辑符号、操作数的含义及范围如表11.74所示。,表11.74IORF97指令,-,功能I/O刷新。当执行指令为ON时,刷新从St开始到E之间的全部通道。当St>E时,25503为ON。,89,5.BCNT67指令BCNT67指令的格式、逻辑符号、操作数的含义及范围如表11.75所示。,表11.75BCNT67指令,-,功能位计数。当执行条件为ON时,计算S~S+(N-1)之间的所有通道中为1的位数有多少,并将结果以BCD码的形式存在D中。,90,本章小结CPM1A系列PLC的编程指令共有153条,按指令的不同可分为基本指令和应用指令两类。常用的应用指令等许多指令与C系列P型机指令一致。CPM1A系列PLC的编程指令主要有基本指令、常用的应用指令、数据传送和数据比较指令、数据运算指令、子程序控制指令、高速计数器控制指令、脉冲输出控制、中断控制指令、步进控制指令、特殊指令。,91,思考题和习题1111.1CPM1机基本指令有多少与C系列P型机的基本指令一致吗11.2数据传送指令中MOV21和MNV22区别是什么11.3数据传送指令中XFER70和BSET71区别是什么11.4数据的比较指令共有几条其作用分别是什么11.5简述异步移位寄存指令ASFT17的作用。11.6对照数据转换指令BIN23和BCD24的异同点。11.7说明指令ASC86的作用。11.8数据运算指令中逻辑运算共几条其作用是什么11.9高速计数器指令是怎样复位的11.10步进控制指令所控制的步进程序有几种类型11.11指出CPM1机特殊指令是哪些其作用是什么,