




已阅读5页,还剩143页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PLC应用技术,指令系统,梯形图编程的注意事项 指令系统概述 基本指令 逻辑运算指令 数据比较指令 数据传送指令 数据移位与数据运算指令 子程序调用及中断控制指令,编程的注意事项,能流只能从左边的母线流向右边母线。 继电器触点和线圈只能作为水平元件使用。 网络中,最右一列只能放置线圈。 线圈如放在其他列,其右边不能放置任何指令 。 线圈在梯形图程序中只能使用一次,但作为该线圈的触点,可以在梯形图中多次使用。 若梯形图中串联或并联的指令数超过网络规定的数值时,必须使用内部继电器经分段组合来完成,线圈可以并联,00000,00001,线圈总在最右边,编程技巧(P86),编程技巧,直接输出、减少内存,不要出现串、并交叉的情况,简化方法,指令概述,基本指令:LD、NOT、AND、OR、OUT、TIM(H)、 CNT、CNTR,锁存、微分指令:KEEP、DIFU(D),数据移位类指令:SFT,数据传送类指令:MOV、MVN,数据比较类指令:CMP,数制换算类指令:BCD、BIN,数据运算类指令:ADD、SUB、COM,指 令 系 统,分支、跳转:IL/ILC、JMP/JME,CQM1 PLC 基本指令,LD / LD NOT AND / AND NOT OR / OR NOT OUT / OUT NOT AND LD OR LD END(01),TIM CNT CNTR TIMH(15) TR,基本指令,LD 以常开接点开始的指令,作 用:把常开接点连接到母线上或从特定的程序地址开始执行操作。,10000,基本指令,LD NOT 以常闭接点开始的指令,作 用:把常闭接点连接到母线上或从特定的程序地址开始执行操作。,基本指令,AND 对两个输入进行逻辑与,作 用:串联常开接点。,00000,00001,10000,基本指令,AND NOT 串联常闭接点,作 用:串联常闭接点。,基本指令,OR对两个输入进行逻辑或,作 用:并联常开接点 。,基本指令,OR NOT对两个输入进行逻辑或非,作 用:并联常闭接点 。,基本指令,OUT输出指令,作 用:对外输出控制 。,基本指令,OUT NOT输出指令,作 用:对逻辑结果反相输出控制 。,基本指令,AND LD两个程序块串联,助记符指令格式:LD A LD B LD C AND LD,基本指令,OR LD两个程序块并联,助记符指令格式:LD A LD B LD C OR LD,00002,00003,00006,00007,10000,基本指令,END(01) 程序结束,注意: 1)程序的最后一条指令都必须是END(01)。 2)如果程序中有多个子程序存在,则END指令要放在最后一个子 程序的子程序返回指令RET(93)之后。 3)END指令后面所写的任何指令都不会被执行,这样可以分段 的来检查程序。 4)如果程序中没有END指令,CPU不会执行程序中的任何指令。如果有编程器连接在可编程序控制器上,在编程器显示窗口将显示“NO END INST”错误信息,同时,位于中央处理器模块上的ERR指示灯将被点亮。,00001,00002,00003,00004,00005,00006,00007,10000,20000,20001,10000,OR LD,AND,LD,LD,AND LD,OR,OR,基本指令示例,END,运行程序,三人抢答器控制程序,基本指令,TIM定时器,N是定时器的编号,其取值范围:000N511。 SV的取值区域:IR,HR,AR,LR, DM,*DM或#。 若采用通道定时,则通道内容必须是BCD码,否则ER标志位置“1”,程序虽能运行,但定时器不准确。 功能:实现导通延时操作的指令。当定时器的输入条件是OFF或电源断电时,定时器复位时,计时当前值PV等于定时器设定值SV;当输入条件变为ON时,定时器开始定时,计时当前值不断减1,当经过设定时间后当前值变为0000,定时器输出。 SV的取值范围是09999,系统定时精度是0.1秒,故定时范围是0999.9秒;,定时器指令TIM工作示例,程序演示,水处理控制,基本指令,CNT计数器,当通道内容不是BCD码或间接寻址DM区不存在时,ER标志位置“1”。 功能:预置计数器,完成减数操作。当计数输入端(CP)信号从OFF变为ON时,计数值减1,当计数器当前值减为0000时,计数器为ON;当计数复位端(R)为ON时,计数器为OFF,且当前值返回到初始设定值。 当电源断电时,计数器当前值保持不变,计数器不复位,这是计数器与定时器的不同点。 当计数输入(CP)和复位输入(R)同时来到时,复位输入优先。 CNT与TIM的编号不能重复使用,两者数量和为512个。,N是计数器的编号,取值范围:000N511。 SV的取值区域:IR,HR,AR,LR, DM,*DM或#。 SV的取值范围是09999,计数器指令CNT工作示例,程序演示,问题:若接点00002改成25502程序会怎样?,可逆计数器指令:CNTR, 当递增计数输入端ACP信号从OFF变ON时,可逆计数器将计数当前值加1;当递减计数输入端SCP信号从OFF变ON时,可逆计数器将计数当前值减1,这两个输入端信号同时从OFF变ON时,可逆计数器不计数。 复位输入信号R从OFF变ON时,可逆计数器复位,计数当前值被复位成0000。复位信号保持为ON时,不能计数。 在电源掉电或CNTR指令位于IL-ILC间而IL条件为OFF时,CNTR的当前值被保持。 当递增计数时, 计数当前值达到设定值时,计数器不输出,当下一个递增计数信号到达时,计数器才有输出;当递减计数时,计数当前值减到0000时,计数器不输出,当下一个递减计数信号到达时,计数器才有输出。,符号:,CNTR N SV,ACP,R,N是计数器的编号,取值范围:000N511。 SV的取值区域:IR,HR,AR,LR, DM,*DM或#。 SV的取值范围是09999,SCP,功能:,CNTR指令示例,程序演示,基本指令,TIMH高精度定时器,说明:1)高精度定时器TIMH与定时器TIM的工作过程基本相同。递减,OFF时复归。 2)两者的主要区别在于TIMH的最小定时单位是001秒。在使用中如果程序的扫描周期大于10毫秒,TIMH定时器可能产生较大的误差。,3)高精度定时器共有15个可以利用。和TIM定时器一样SV设置值由用户设定,范围为BCD数据0000到9999,相应定时范围是0到9999秒,小数点不需要输入。,TIMH(15)指令示例,基本指令,TR暂存继电器,说明: 在对复杂控制系统进行梯形图程序设计时,需要用到暂存继电器。CQM1系统暂存继电器共有8个,编号n为00到07。 在同一段程序中可以利用TR n 指令设置8处分支,即设置TR0到TR07,在不同程序段中暂存继电器TR0TR07可以重复使用。 TR最好用于不能用IL和ILC编程的场合。 编程器是唯一有“TR”输入的设备。故只有当前使用编程器时,才能使用“TR” TR状态不能监视。,TR指令示例,特殊功能指令表,高级指令,IL(02)/ILC(03)互锁和互锁解除,说明:1)建立互锁和互锁解除,IL(02)和ILC(03)指令总是成对使用。IL(02)位于一段分支程序的首处,ILC(03)位于分支程序的末尾处。 2)IL前面的继电器为OFF状态,则位于IL和ILC之间的指令不执行,并且IL和ILC之间的所有输出位均为OFF状态,所有定时器均为复位状态,所有计数器和移位寄存器均保持以前的状态。 3)如果IL前的输入条件为ON,则位于IL和ILC之间的指令正常执行,如同程序中没有IL和ILC指令一样。,IL(02)/ILC(03)指令示例,TIM或CNT指令会怎样?,高级指令,JMP(04)/JMP(05) 跳转和跳转结束,说明:1)JMP和JME指令用于控制程序的跳转。 2)当JMP指令前面的输入条件状态为ON时,JMP和JME指令不起作用,与没有它们一样执行程序B,然后在执行程序C。 3)如果JMP指令前面的输入条件状态为OFF时,则执行完程序A后将跳过程序段B转去执行程序C。 4)JMP和JME指令必须成对出现,如果一段程序中有多对JMP和JME指令时用跳转 号n来区分。对于CQM1系列可编程序控制器JMP和JME指令的跳转号可以是00到99之间的任意数。 5)JMP 00是一种特殊情况,当JMP 00和JME 00之间的指令被跳转时,这些指令仍被CPU扫描但不执行,在扫描这些指令时仍要占用扫描时间。 6)对于跳转号n不是00的JMP和JME指令,在执行跳转时JMP和JME之间的程序则完全被跳过,不占用CPU扫描时间。 7)JMP00和JME00指令在程序中可以使用任意次,而其它跳转号的JMP和JME指令在同一段程序中只能使用一次。,JMP(04)/JME(05)指令示例,程序跳转时不受00001接点控制,高级指令,KEEP(11) 保持继电器,说明:1)KEEP指令用于对继电器状态的保持,它可以使某一继电器的状态保持ON或OFF状态直到复位输入端使其复位。 2)n是需要保持的继电器号, S是启动条件输入端即置位输入端, R是复位输入端。 IR、SR、AR、HR和LR区的各位均可以用作保持。 将HR和AR继电器区的位用作保持时可以实现掉电保护。 3)在复位和置位输入中,复位信号具有较高的优先级,当复位信号R和置位信号S同时变为ON时,将首先进行复位操作。,KEEP(11)指令示例,00000,00001,00002,00003,00000,00003,10000,10000,演示,例题,报警系统,高级指令,DIFU(13)/DIFD(14) 上微分和下微分,DIFU(13):输入脉冲的上升沿使指定继电器闭合一个扫描周期, 然后复位。 DIFD(14):输入脉冲的下降沿使指定继电器闭合一个扫描周期, 然后复位。 在CQM1指令系统中,某些高级指令具有微分特性,在指令前加符号来标识。,DIFU(13)/DIFD(14) 上微分和下微分指令示例,00000,10000,演示,例题,DIFU(13),DIFD(14),10001,微 分 指 令,微分指令编程实例,报警器消声控制程序,自动门开关控制程序,高级指令,SET/RSET 强制置位和复位,SET指令在执行条件为ON时将指定的继电器位置为ON,而在执行条件为OFF时并不影响操作数位的状态。 RSET指令在执行条件为ON时将指定的继电器位置为OFF,而在执行条件为OFF时不影响操作数位的状态。,RSET,10000,SET,SET/RSET强制置位和复位示例,例题,00000,10000,00000,10000,00001,高级指令,NOP(00) 空操作,梯形图符号: 无 助记符格式: NOP(00) 说明:NOP(00)是空操作指令,它在程序中不是必须的,也没有梯形图符号,在程序中出现NOP时,什么也不作,程序执行转向下一条指令。在编程前清除内存区域时,所有的内存单元都被写上了NOP(00)指令,NOP(00)是用00号功能代码输入到可编程序控制器的。,逻 辑 运 算 类 指 令, 逻辑反指令:COM(29), 逻辑与指令:ANDW(34), 逻辑或指令:ORW(35), 逻辑异或指令:XORW(36), 逻辑异或非指令:XNRW(37),高级指令,COM(29) 求反,说明:1)指令对单个通道中的数据按位求反,求反结果仍存在原输入通道中。 COM指令影响标志位ER和EQ。 ER:间接寻址DM通道不存在时,ER标志位被置1。 EQ:求反结果为0时,EQ标志位被置1。 2)如果使用COM指令的非微分形式,COM指令前面的条件为ON状态,则在每次扫描中 都要计算一次W的反码,如果不希望这样可以使用COM指令的微分形式COM。,COM(29) 求反指令示例,例题,1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0,0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1,00000,HR10,HR11,00001,HR10,HR11,演示,说明:1)ANDW指令对两个字(16位二进制数I1和I2逐位进行逻辑与运算,并将运算结果输出至指定通道R中。 2)只有当输入I1和I2的相对应位同时为“1”时,结果通道R中的相对应位才被置为“1”,否则为“0”。 3)输入I1和I2的取值区域为IR、SR、AR、LR、TC、DM和立即数。结果通道的取值区域为IR、SR、AR、HR、LR和DM。 注意:1)对于CQM1来讲DM区不能取DM6144DM6655的空间。 2)ANDW指令影响标志位ER和EQ。当间接寻址DM区域不存在时,ER标志位被置1。 当逻辑与运算结果为0时,EQ标志位被置1。,高级指令,ANDW(34) 逻辑与,ANDW(34) 逻辑与指令示例,例题,1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0,0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0,HR00,演示,00000,ANDW(34),HR 00,#0100,DM0000,0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0,DM0000,#0100,说明:1)ORW(35)对两个字(16位二进制数)I1和I2进行逻辑或运算,输出结果存入输出通道R中。 2)只要输入I1和I2相对应的某一位为“1”,则结果通道R中相对应的位被置“1”。 3) ORW指令影响标志位ER和EQ。 4) ER:间接寻址DM通道不存在时,ER标志位被置1。 5)EQ:逻辑或结果为0时,EQ标志位被置1。 6) 输出结果R不能使用DM6144DM6155区间。,高级指令,ORW(35) 逻辑或,ORW(35) 逻辑或指令示例,例题,演示,00000,#0100,DM0000,DM0000,#0100,ORW(35),#1011,#1011,说明:1)XORW指令的功能是对两个字(16位二进制数)作逐位异或运算,并将运算结果输出到R所指定的通道中。当XORW指令前面的执行条件满足时(ON),对输入I1和I2的内容进行逻辑异或运算,即I1和I2中相对应的位如果不同时为“1”或“0”,则结果通道中相对应的位被置“1”,否则置“0”。 2)XORW指令操作影响标志位ER和EQ。 ER:间接寻址DM通道不存在时,ER被置1。 EQ:异或运算结果R中数据为0时,EQ被置1。 当输出结果通道R位于DM区时,不能取DM6144DM6655。,高级指令,XORW(36)逻辑异或,XORW(36) 逻辑异或指令示例,例题,演示,00000,XORW(36),DM0000,DM0000,#0100,HR 00,DM1000,HR 00,说明:1)XNRW指令对两个字(16位二进制数)作逐位异或非运算,运算结果存放到指定通道R中。当两个输入数据I1和I2的对应位相同时即同为“1”或同为“0”,输出通道R中的相应位置“1”,否则置“0”。 2)XNRW指令影响标志位ER和EQ。 3)ER:间接寻址DM通道不存在时,ER标志位被置1。 4)EQ:输出通道R中的各位全为0时,EQ标志位被置1。 5)输出结果通道R不能是DM6144DM6655区间。,高级指令,XNRW 逻辑异或非,XNRW 逻辑异或非指令示例,例题,演示,00000,DM2000,DM2000,DM1000,DM1000,DM0000,DM0000,XNRW(37),数据比较类指令, CMP(20) 单通道数据比较, CMPL(60) 双通道数据比较, BCMP(68) 块比较, TCMP(85) 表比较, MCMP(19) 多通道比较,说明: CMP指令用来比较两个指定通道CP1和CP2内的数据,并将比较结果输出到SR继电器区的GR、EQ和LE标志位。,高级指令,CMP(20) 单通道数据比较,CMP(20) 单通道数据比较指令示例,例题,演示,00000,TR0,TR0,HR09,010,CMP(20),25505,10000,25506,25507,10001,10002,说明:CMPL指令用来比较双通道数据,其中CP1是第一对比较字的第一个字,CP2是第二对比较字的第一个字。在这里CP1和CP11、CP2和CP21必须在同一数据区内。 当CMPL指令前面的执行条件是OFF时不执行CMPL指令,当执行条件是ON时,CMPL指令连接CP1和CP1中的两个4位十六进制数成为一个8位十六进制数,同样连接CP2和CP21中的两个4位十六进制数成为另一个8位十六进制数,然后比较这两个8位十六进制数,把比较结果输出到SR区的GR、EQ和LE标志位。,高级指令,CMPL(60) 双通道数据比较,CMPL(60) 双通道数据比较,注:表中CP1和CP2代表双字长的数据 CP1 = CP1 +1, CP1 ;CP2= CP2 +1, CP2,说明:1) CD为用于比较的数据,CB为指定一个数据块起始字,R存放比较结果的字。 2)数据块是由CB、CB1、CB2CB31组成的连续数据块,每两个通道为一组共16组,这16组中的32个数据由用户设置。用户在设置数据时必须是数值小的数据存放在通道号低的通道中。16组数据的比较结果存放在结果通道R中的对应位。 3)当执行条件为ON时,若 CB下限CD数据字CB上限 则对应位的R=1,否则R=0 4)BCMP指令影响标志位ER,当间接寻址DM通道不存在或数据块超出了所在数据区的范围时,ER标志位被置1。,高级指令,BCMP(68) 块比较,BCMP(68) 块比较指令示例,例题,00000,DM0000,HR 10,100,说明:1)TCMP指令用于将一个数据与一个数据表中的数据相比较。CD是比较数据, TB是一个具有16个字的数据表,R是存放比较结果通道。数据表由16个连续通道(字)组成,每一通道中包含有待比较的数据。 2)TB指定数据表的起始通道号。 3)比较时,把数据表中每一通道的数据依次与指定的比较数据CD相比较,若二者相等,则在结果通道R中的相应位上置1,否则置0。 如果间接寻址DM通道不存在或者数据表超出了所在数据区的范围,标志位ER将被置1。,高级指令,TCMP(85) 表比较,BCMP(68) 块比较指令示例,例题,00000,HR00,HR00,DM0000,HR01,说明:1)MCMP指令用于比较两个数据表TB1和TB2,每个数据表包含16个连续的通道。 2)当数据表中相对应通道的数据相等时,则在输出通道R相对应的位上置0,否则置1。 3) 每个数据表的16个通道必须是同一数据区内的连续通道,当数据表的范围超出了数据区的范围时,或者间接寻址DM通道不存在时,标志位ER将被置为1。,高级指令,MCMP(19) 多通道比较,MCMP(19) 多通道比较指令示例,例题,00000,DM3000,100,注意:R=0-相等;R=1-不等,传 送 类 指 令, 传递/反传递指令:MOV(21)/MVN(22), 块设置指令:BSET(71), 块传送指令:XFER(70), 数据交换指令:XCHG(73), 位传送指令:MOVB(82), 数传送指令:MOVD(83), 变址传送指令:DIST(80), 数据采集指令:COLL(81),说明:两个通道间传送数据,MOV/MVN指令将原通道S中的数据(也可以是立即数传送/反传送到目标通道D中去。由于源通道和目的通道均为一个,因此称其为单通道数据传送指令。 MOV/MVN指令操作影响标志位ER和EQ。 ER:当间接寻址DM通道不存在时,ER标志位被置1。 EQ:当目标通道中的数据全为0时,EQ标志位被置1。 对于DM区不能使用DM61446655空间。,高级指令,MOV(21) /MVN(22) 单通道数据传送/反传送,MOV(21) /MVN(22) 单通道数据传送/反传送指令示例,例题,演示,00000,MOV(21)/MVN(22),#1010,100,说明:BSET(71)指令用于将某一常数或某一通道中的数据传送到若干个连续通道构成的块中。利用BSET指令可以将数据传送到定时/计数器中作为预置数据使用。 1)S(source)是要传送的源数据或存放源数据的通道号,ST(start)是目标块的起始通道号,E(end)是目标块的结束通道号。 2)在BSET指令中, ST和D必须位于同一数据区内,并且STE。,高级指令,BSET(71) 块置数,BSET(71) 块置数指令示例,例题,演示,00000,TIM 000,TIM 000,TIM000,10000,说明:1)将相邻几个通道中的数据传送到另外几个相邻通道中,N必须是BCD码格式,S和D可以不在同一数据区内,但是当S和D在同一数据区时,不能占用相同的通道。 2)XFER指令影响标志位ER。当间接寻址DM通道不存在,S和SN或者D和DN不在同一数据区时,标志位ER被置1。,高级指令,XFER(70) 块传送,XFER(70) 块传送指令示例,例题,演示,00000,XFER(70),# 0003,DM1000,DM2000,说明:1)XCHG(73)指令的功能是将两个不同通道的数据进行交换。 2)只要指令前面的条件为ON,每次扫描到XCHG指令时都要交换E1和E2通道的数据,这样就可能导致输入条件满足一次,E1和E2通道的数据交换多次的现象。 3)为了避免这种现象的发生,最好使用XCHG指令的微分形式XCHG。 4)XCHG指令影响标志位ER。 ER:间接寻址DM通道不存在时,ER标志位被置1。,高级指令,XCHG(73) 数据交换,演示,说明:1)MOVB指令的功能是将源数据S中的直到位传送到目标通道D中的直到位。源位和目标位号由控制字C中的BCD码数据决定。 2) MOVB指令操作影响标志位ER,如果控制字中的数据不是BCD格式,或者控制字直到的位号不存在,或者间接寻址DM通道部存在时,标志位ER将被置1。 3)控制字C中的低两位BCD码指明要传送的源数据位。 控制字C中的高两位BCD码指明要传送到目标通道的那一位。,高级指令,MOVB(82) 位传送,MOVB(82) 位传送指令示例,例题,演示,00000,DM2000,DM0000,#1201,位1和位0指明要传递的源数据位,位3和位2指明目标位,C:,说明:1)MOVD指令的功能时将直到源通道中的十六进制数的直到段(4位二进制数)传送到目标通道中的直到段。 2)MOVD指令一次最多传送4段(16位二进制数),具体传送方式由控制字C中的相应位加以说明。 MOVD指令影响标志位ER。 ER:控制字中的数据不是BCD格式或每一位数字超过3时, ER标志位被置1。 间接寻址DM通道不存在时,ER标志位被置1。,高级指令,MOVD(83) 段传送,MOVD(83) 段传送指令示例,例题,演示,00000,DM1000,DM0000,#0203,MOVD(83),位0指明源通道中首先要传送的段(03,本例中为从源通道DM0000的第四(位3位开始传送,位1指明要传送的段数,本例传送1段(4位。0:只传1段 1:传送2段 2:传送3段 3:传送4段,位3 保留,指明被传送数据在目的通道中存放的起始位号,取值为03。本例为传送到目的通道DM1000的第3位即位2。,说明:根据功能控制字C中的第1215二进制位的不同,DIST指令有两种功能,一种是基本变址传送功能,另一种是堆栈操作功能。,高级指令,DIST(80) 变址传送,DIST(80)指令基本变址传送功能示例,例题,00000,DISTT(80),# 00FF,HR 20,LR 10,S,SBS,C,首位,偏移量,C,S,SBS,目标地址:,2)控制字C中,BCD码的后三位为地址偏移量,当执行条件为ON时,DIST指令将 # 00FF传送到目标地址HR(20+5)即HR25通道中去即目标地址=DBS+C偏移量,总结:1)控制字C中,BCD码首位0为变址命令,DIST(80)指令堆栈操作功能示例,例题,00000,DISTT(80),HR 10,推栈指针,首位,堆栈深度,C,# 8888,DM0000,动断5次,注意:1)在进行堆栈操作时,控制字C的首位BCD码必须为9,其余3位为堆栈深度,DBS指明的通道作为堆栈指针使用,初始值为0000,以后每执行一次DIST指令,堆栈指针都要自动加1。 2)当指令执行条件满足时, DIST指令首先将堆栈指针加1,即DM0000通道的内容由0000变为0001,然后由基地址DM0000和堆栈指针构成目标地址DM0001,并将立即数8888传送到目标地址DM0001中。以后每次执行DIST指令都重复上述操作直到堆栈指针增加到预置值5,完成压栈操作。,3)以上两个使用DIST指令编程示例中均使用了指令的微分形式,否则,如果不用指令的微分形式,只要输入00000为ON,每个扫描周期都将执行DIST操作。 4)在使用DIST指令时,如果间接寻址DM通道不存在,或者堆栈指针加1后的值超过了堆栈长度,或者指令控制字中的数据不是BCD格式时,标志位ER将被置为1。,说明:COLL(81)指令也具有两种功能: 当控制字C中BCD码最高位为0时,该指令为变址采集指令,用于将源通道的数据传送到目标通道中,其中源通道的地址由基地址加上偏移量之和决定,偏移量就是控制字C中的低3位BCD码组成的数据。 当控制字C中BCD码最高位为9时,该指令用于进行出栈操作。,高级指令,COLL(81) 数据采集,COLL(81)指令用于数据采集功能示例,例题,00000,HR 10,100,D,SBS,C,首位,偏移量,C,D,SBS,目标地址:,COLL(81),DM0000,0 0 F F,控制字C中,BCD码首位0为 数据采集,输入00000由OFF变ON时COLL指令拷贝源通道中的数据(基地址偏移量)到目标通道D。,COLL(81)指令用于出栈操作功能示例,例题,00000,COLL(81),100,推栈指针,首位,堆栈深度,C,DM0000,HR35,动断5次,D,当操作数控制字C中的BCD码最高位为9时,该指令的功能是进行出栈操作。其中SBS单元的内容为出栈指标,控制字C中的后3位BCD码构成出栈深度。,如果控制字C中的数据不是BCD格式,或者间接寻址DM通道不存在,或者出栈指针超过出栈长度,ER标志位均 将被置1。,移 位 类 指 令, 移位寄存器指令:SFT(10), 双向移位寄存器指令:SFTR(84), 算术左移寄存器指令:ASL(25), 算术右移寄存器指令:ASR(26), 循环左移指令:ROL(27), 循环右移指令:ROR(28), 数左移指令:SLD(74), 数右移指令:SRD(75), 字移位指令:WSFT(16),说明: 1)SFT指令的功能是将ST直到E通道内的数据左移一位。 2)ST为移位起始通道,E为移位结束通道。 P移位脉冲输入端,用于接收脉冲信号的上升沿。 I数据输入端,在输入脉冲的作用下,I端数据将被移入ST通道的最低位,同时ST至E通道中的所有数据依次向左移动一位,移位结束通道E中的最高位将丢失。 R复位端,当R端的输入信号为ON时,ST至E通道的所有位将被置为0。,SFT(10) 移位寄存器,SFT(10) 移位寄存器示例,例题,演示,00000,25502,00001,SFT(10),100,100,10015,10100,当100的10015为“1”时,将输出10100。,ST和E必须处于同一数据区中,STE SFT指令不影响标志位。,注意:,丢失,说明:1)SFTR为双向可逆移位指令,用来进行单通道或多通道移位。该指令即可以实现向左移位,也可以实现向右移位。 2)在进行单通道数据移位时,必须设定ST和E为同一通道号,同时还必须指定一个包含复位输入、移位脉冲输入的控制通道C,C的具体格式如下:,SFTR(84) 可逆移位寄存器,说明: 3)SFTR指令影响标志位ER和CY。 ER:ST和E不在同一数据区或STE时或间接寻址DM通道不存在时,ER位被置1。 CY:当向左移位时,CY接收E通道的第15位。向右移位时,CY接收ST通道的第00位。,SFTR(84) 可逆移位寄存器,SFTR(84) 可逆移位寄存器指令示例,例题,00000,HR 0012,00001,HR 0013,00002,25502,HR 0014,00003,HR 0015,00004,SFTR(84),HR 00,100,100,说明: ASL(25)为算术左移指令,执行算术左移操作时,将通道中的16位二进制数据顺序左移一位,最高位移入进位标志,最低位补入一个0。,ASL(25)算术左移寄存器指令,演示,说明: ASR(26)为算术右移指令,执行算术右移操作时,将通道中的16位二进制数据顺序右移一位,最低位移入进位标志,最高位补入一个0。,ASR(26)算术右移寄存器指令,演示,说明: ROL和ROR指令用于将指定通道中的数据循环向左或循环向右带进位移动一位。 当向左移位时,指定通道W中的数据依次向左移动一位,通道W中第15移入进位标志位CY,原进位标志移入W通道第00位。 当向右移位时,指定通道W中的数据依次向右移动一位,通道W中第00位移入进位标志位,原进位标志移入W通道第15位。 ROL/ROR指令影响标志位ER和EQ。 ER:间接寻址DM通道不存在时,ER标志被置1。 EQ:W通道中的数据各位全为0时,EQ标志被置1。,ROL(27)/ROR(28)带C循环左/右移指令,ROL(27)/ROR(28)循环左/右移指令示例,例题,左循环右循环,00000,DM0000,00001,ROR(28),DM0001,说明: SLD(74)为16进制数左移指令,执行左移操作时,将通道中的16进制顺序左移一位,最高一位移出丢失,最低位补入一个0。,SLD(74)数左移指令,演示,注意: ST小于或等于E,且必须是在同一区域内,说明: SRD(75)为16进制数右移指令,执行右移操作时,将通道中的16进制顺序右移一位,最低一位移出丢失,最高位补入一个0。,SRD(75)数右移指令,演示,注意: ST小于或等于E,且必须是在同一区域内,说明: WSFT指令的功能是将指定通道内的数据以字为单位从起始通道ST向结束通道E依次移动一个字,起始通道用0000填补。 起始通道ST和结束通道E必须在同一数据区内。,WSFT(16)字移位指令,WSFT(16)字移位指令示例,例题,演示,00000,WSFT(16),DM0000,DM1000,传送、移 位 类 指 令的综合应用,移位类指令编程实例,霓虹灯控制程序1,霓虹灯控制程序2,数 制 换 算 类 指 令, 10进制2进制指令:BIN(23), 2进制10进制指令:BCD(24), 4 16译码器指令:MLPX(76), 16 4编码器指令:DMPX(77), 7段译码指令:SDEC(78), ASCII码转换指令:ASC(86),说明: BIN(23)为BCD码到二进制码的转换指令。当执行条件满足时,将S中的数据完成所需转换并将结果送R。S中的内容不变。 当转换结果等于0000时,EQ标志25506为ON。,BIN(23)10进制2进制指令,演示,说明: BCD (24)为二进制码到BCD码的转换指令。当执行条件满足时,将S中的数据完成所需转换并将结果送R。S中的内容不变。 当转换结果等于0000时,EQ标志25506为ON。,BCD(24)2进制10进制指令,演示,说明:(1)MLPX是十六进制数的译码指令。它根据Di的规定把S中最多4个十六进制数译为十进制数,根据结果将R通道中的对应位置为ON,而S中的内容不变。 (2)第一个要译码的数字位可任意指定,译码结果输出至R,第二个要译码的数字必须是紧邻第二个数字位的高位数字,译码结果到R+1,以此类推,MLPX(76) 4 16译码器指令,(3)影响标志位ERR。指定不正确时,R+1R+3超出数据区,DM的内容不是BCD,超出DM区,MLPX(76)4 16译码器指令示例,例题,不用,S中第一个要译码的数位(03),译码位数(03),不用,S中第一个要译码的数位,译码位数,说明: (1)DMPX是十六进制数的编码指令。它根据Di的规定把SB指定的源通道中的第一个为ON的位的所在位数得到一个十进制数,再将该数转换成十六进制数写入R中,它是MLPX指令的反操作。一次最多转换4个连续的源通道。 (2)编码时,第一个源通道的编码数字放在R通道由Di指定的数字位中,其他通道的编码放在R通道由Di1 Di3指定,DMPX(77) 16 4编码器指令,(3)影响标志位ERR。指定不正确时,SB SB +3超出数据区,DM的内容不是BCD,超出DM区,DMPX(77) 16 4编码器指令示例,不用,接收编码结果的第一个数字位(03),被编码的源通道数(03),DMPX(77) 16 4编码器指令示例,不用,接收编码结果的第一个数字位(03),被编码的源通道数(03),说明: 当执行条件满足时,将S中的数据译为七段显示码,结果存入D中。S为原数据,Di指定源通道中的哪一位或者哪几位进行译码,D为译码输出的起始通道号。,SDEC(78)7段译码指令,该指令影响标志位25503:位指定不正确时,D+1D+2超出数据区,DM的内容不是BCD,超出DM区时25503为ON。,SDEC(78)7段译码指令,SDEC(78)7段译码指令示例,Di:0001,S,D,不用,结果通道指定位 0:低8位 1:高8位,源通道第一个被译码的位号,译码数字位(03),SDEC(78)7段译码指令示例,LSB,MSB,功能: 当执行条件为ON时,ASC对S中指定的数字(十六进制数)转换ASC码并存入从R开始的结果通道中,一次最多可对S中的4个数字进行转换,如果C中指定从R的高8位开始存放,则最多可占用3个结果通道。,ASC转换指令 ASC(86)/ASC(86),控制字C含义:,转换,ASCII码转换实例,数 据 运 算 类 指 令,2进制加法指令:ADB(50),2进制数运算指令:,置标志位指令: STC(40),清标志位指令: CLC(41),STC(40)/CLC(41) :置/清标志位指令,数 据 运 算 类指 令,BCD码运算指令:, BCD码加1指令:INC(38), BCD码减1指令:DEC(39), BCD码加法指令:ADD(30), BCD码减法指令:SUB(31), BCD码乘法指令:MUL(32), BCD码除法指令:DIV(33), BCD码浮点除法指令:FDIV(79), BCD码平方根指令:ROOT(72),高级指令,BCD码加1指令:INC(38),演示,高级指令,BCD码减1指令:DEC(39),演示,高级指令,BCD码加法指令:ADD(30),演示,ADD(30)指令的功能是将两个4位BCD数据相加,并将结果存放到指定通道中。 进位标志CY也参加运算,运算过程如下:,ADD(30) : BCD码加法指令示例,CLC(41),00002,TR 0,HR03,# 6103,DM0100,25504,MOV(21),DM0101,# 0001,25504,MOV(21),# 0000,DM0101,清零,有进位,无进位,根据进位标志位CY(25504)的状态把0000或00001写到R1通道的目的是便于进行8位BCD数据处理。,高级指令,BCD码减法指令:SUB(31),演示,SUB (31)指令的功能是将两个4位BCD数据作减法运算,运算结果输出到指定通道R中,运算过程如下:,BCD码减法指令示例,00002,TR 0,DM0100,HR 20,25504,SUB(31),#0000,HR 20,HR 20,25504,HR2100,HR2100,第一次:001:1029 第二次: #: 0000 DM0100 :3452 HR20 : 7577 CY: 0 CY : 0 HR20 : 7577 HR20 : 2423 CY : 1 CY : 1,(1)SUB指令在运算过程中如果结果为负,则置CY1(ON),并将实际结果的十进制补码写入到结果通道R中,为了得到正确的结果,需要将CY清零,再用0减去结果通道中的数据。 (2) 如果第一次减法运算的结果为正,就不需要再进行第二次减法运算。 (3)SUB指令影响标志位ER。 ER:通道MI或通道SU中的数据不是BCD格式时,ER标志位被置1。,高级指令,MUL(32) BCD乘法指令,MUL指令用于两个4位BCD数乘法运算,运算结果存放到指定通道R及R1中。 MUL指令影响标志位ER和EQ。 ER:MD和MR中不是BCD数或间接寻址DM通道不存在时,25503被置1。 EQ:当乘积为0时,25504被置1。,MUL(32) BCD乘法指令示例,00000,035,DM5005,HR 07,乘法运算结果使用了两个结果通道,R和 R1,即HR07和HR08通道。,035: 8856 DM0005: 0005 CY: 0,HR08:0004 HR07: 4280 CY: 1,演示,高级指令,DIV(33) BCD除法指令,DIV指令对两个4位BCD数作除法运算,运算得到的商存放到R通道中,余数存放到R1通道中,DIV指令对标志位的影响情况与MUL指令相同。,DIV(33) BCD除法指令示例,00000,DIV(33),216,HR 09,DM0017,演示,高级指令,FDIV(79) BCD码浮点除法指令,功能:一个浮点数除以另一个浮点数,商也为浮点数,存储在结果通道。除数、被除数、及商均需占两个通道(8个数字)、其中最右边7个数字是数值部分,左边的一个数字是指数。,指数的格式如下:,指数符号0 :;1:,指数符号07,数据有效范围是:,FDIV(79) BCD码浮点除法指令示例,00000,FDIV(79),DM0100,HR 20,LR30,演示,指数的数字:A(1010),B(1011),2(0010),高级指令,ROOT (72) BCD码平方根指令,计算一个8位BCD码的平方根,并将舍去小数部分的4位BCD码整数传送至结果通道。,ROOT (72 ) BCD码平方根指令示例,演示,高 级 指 令 综 合 应 用,传递、比较及数制换算指令编程综合实例,倒计数控制程序,子程序调用及中断控制类指 令,SBS(91) 子程序调用,SBN(92)/RET(93) 子程序定义与返回,INT(89) 中断控制,高级指令,SBS(91) 子程序调用指令,SBS指令用于在主程序中调用子程序。当主程序在运行中遇到SBS N指令时,就转去执行子程序号为N的子程序,当N号子程序执行完成以后,又转回主程序中SBS指令的下一条指令继续执行主程序。在主程序中可以任意多次使用SBS子程序调用指令,也可以在主程序的不同地方调用同一个子程序。,SBS指令还可以放在子程序中使用,即子程序可以嵌套。当第二个子程序执行完成以后,遇到RET(93)子程序返回指令时,再返回到第一个子程序处接着执行第一个子程序,直到遇到第一个子程序的RET(93)指令才返回到主程序。 CQM1系列可编程序控制器的子程序嵌套最多可以达到16层。但是,子程序不能调用其自身。 SBS指令影响标志位25503,当调用的N号子程序不存在时;子程序自身调用;子程序嵌套超过16层时,25503被置1并不再执行SBS子程序调用指令。,高级指令,SBS(91) 子程序调用指令,主 程 序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团队危机公关预案
- 职业教育实训基地开放共享实施方案
- 工作总结:为梦想拼搏的意志力量
- 销售代表职位要求和薪资待遇
- 音乐专业设置必要性调研报告示例
- 客户服务监控预案
- 产业组织学课程案例分析报告
- 种植花园的技巧与经验
- Linux系统告警分析报告
- 如何解决学习中的困难
- 幼儿园财务审批报销制度
- 统编版七年级道德与法治上册《第三课梦想始于当下》单元检测卷(含答案)
- 附件1:施工安全风险辨识、评定表
- 高级考评员职业技能鉴定考试题库(含答案)
- 抗艾滋病药物介绍
- 8《荷花淀》《小二黑结婚》《党费》群文阅读课件 2024-2025学年统编版高中语文选择性必修中册
- 编钟教学课件教学课件
- DL∕ T 1060-2007 750KV交流输电线路带电作业技术导则
- 电子元器件的焊接知识大全
- (2024年)羊水栓塞完整版pptx
- 非法侵入住宅谅解书范本
评论
0/150
提交评论