Date:2020/3/9Page:1应用指令CH7第7章PLC的功能指令Date:2020/3/9Page:2应用指令CH77.1程序控制指令Date:2020/3/9Page:3应用指令CH7结束指令有两条:END和MEND。两条指令在梯形图中以线圈形式编程。END,条件结束指令。使能输入有效时,终止用户主程序。MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。用Micro/Win32编程时,编程人员不需手工输入MEND指令,而是由软件自动加在主程序结尾。指令格式:END(无操作数)1.结束指令Date:2020/3/9Page:4应用指令CH7使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令的执行不考虑对特殊标志寄存器位和能流的影响。指令格式:STOP(无操作数)返回本节2.暂停指令Date:2020/3/9Page:5应用指令CH73看门狗WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式:WDR(无操作数)Date:2020/3/9Page:6应用指令CH7LDSM5.0//检查I/O错误OSM4.3//运行时刻检查编程OI0.3//外部切换开关STOP//条件满足,由RUN//切换到STOP方式////LDI0.5//外部停止控制END//停止程序执行////LDM0.4//用触点重新触发WDR//看门狗定时器AI0.2//停止、结束、看门狗指令返回本节Date:2020/3/9Page:7应用指令CH74跳转与跳转相关的指令有下面两条:(1)跳转指令JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。执行跳转指令时,逻辑堆栈的栈顶值总是1。(2)标号指令LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置。操作数n为0~255的字型数据。Date:2020/3/9Page:8应用指令CH7程序跳转实例Date:2020/3/9Page:9应用指令CH75程序循环循环开始循环结束程序实例Date:2020/3/9Page:10应用指令CH7LDM0.0//使能输入FORVW10,+1,+20//循环开始//与第2个NEXT//之间为一级循环体LDM0.1//使能输入FORVW20,+1,+5//循环开始//与第1个NEXT//之间为二级循环体Date:2020/3/9Page:11应用指令CH7LDI0.0//使能输入CALLSBR_0//调用子程序0//本梯级为二级//循环体的功能段NEXT//循环结束指令LDSM0.0//使能输入INCWVW100//字增指令//每执行一次一级//循环体,VW100//的值增1NEXT//循环结束指令程序循环Date:2020/3/9Page:12应用指令CH7局部变量的类型TEMP(临时变量)IN(输入变量)OUT(输出变量)IN_OUT(输入_输出变量)7.2局部变量局部变量的数据类型Date:2020/3/9Page:13应用指令CH7子程序的作用建立子程序子程序调用带参数的子程序调用7.3子程序的编写与调用Date:2020/3/9Page:14应用指令CH7用外部控制条件分别调用两个子程序。LDI0.0//使能输入CALLS2//调用子程序S2//LDI0.0//使能输入CALLSBR_1//调用子程序//SBR_1子程序调用Date:2020/3/9Page:15应用指令CH7子程序参数变量名变量类型数据类型为了移植方便,应避免使用全局符号和变量带参数的子程序调用Date:2020/3/9Page:16应用指令CH7局部变量表Date:2020/3/9Page:17应用指令CH7LDI0.0//装入常开触点CALLSBR_0,I0.2,VB20,VD30////调用子程序SBR_0//含有3个参数://分别为布尔、字节//和双字型带参数的子程序调用返回本节Date:2020/3/9Page:18应用指令CH77.4数据处理指令1比较指令字节比较、整数比较、双字整数比较、实数比较Date:2020/3/9Page:19应用指令CH7应用举例控制要求:一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。Date:2020/3/9Page:20应用指令CH7LDI0.0//增计数输入端LDI0.1//减计数输入端LDI0.2//复位输入端CTUDC30,+10000//增减计数,//设定脉冲数//为10000。LDW=C30,VW20//比较计数器//当前值是否大于//VW20中的值=Q0.0//输出触点LDW= C30,VW30//比较计数器//当前值是否大于//VW30中的值=Q0.1//输出触点Date:2020/3/9Page:21应用指令CH7其他数据处理指令传送类指令移位指令字节交换指令填充指令返回本章首页Date:2020/3/9Page:22应用指令CH7数据传送指令Date:2020/3/9Page:23应用指令CH7单一传送(1)MOVB,字节传送指令使能输入有效时,把一个单字节无符号数据由IN传送到OUT所指的字节存储单元。IN的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。OUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:MOVBIN1,OUT例:MOVBVB0,QB0Date:2020/3/9Page:24应用指令CH7(2)BIR,传送字节立即读指令使能输入有效时,立即读取单字节物理输入区数据IN,并传送到OUT所指的字节存储单元。IN的寻址范围:IBOUT的寻址范围:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。指令格式:BIRIN1,OUT例:BIRIB0,VB10Date:2020/3/9Page:25应用指令CH7块传送指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。三条指令中N的寻址范围都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常数。使ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(数超界)。Date:2020/3/9Page:26应用指令CH7移位指令1.左移和右移2.循环左移、循环右移3.寄存器移位Date:2020/3/9Page:27应用指令CH7(1)字节左移和字节右移SLB和SRB,字节左移和字节右移。使能输入有效时,把字节型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字节存储单元。最大实际可移位次数为8。左移和右移Date:2020/3/9Page:28应用指令CH7SLW和SRW,字左移和字右移。使能输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。最大实际可移位次数为16。指令格式:SLWOUT,N(字左移)SRWOUT,N(字右移)例:SLWMW0,2SRWLW0,3Date:2020/3/9Page:29应用指令CH7双字左移和双字右移SLD和SRD,双字左移和双字右移。指令盒与字节移位比较,只有名称变为SHL_DW和SHR_DW,其他部分完全相同。使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。最大实际可移位次数为32。指令格式:SLDOUT,N(双字左移)SRDOUT,N(双字右移)例:SLDMD0,2SRDLD0,3Date:2020/3/9Page:30应用指令CH7循环左移、循环右移循环左移和循环右移根据所循环移位的数的长度分别又可分为字节型、字型、双字型。循环移位特点:移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。Date:2020/3/9Page:31应用指令CH7循环移位的类型(1)字节循环左移和字节循环右移(2)字循环左移和字循环右移(3)双字循环左移和双字循环右移Date:2020/3/9Page:32应用指令CH7SHRB,寄存器移位指令。该指令在梯形图中有3个数据输入端:DATA为数值输入,将该位的值移入移位寄存器;S_BIT为移位寄存器的最低位端;N指定移位寄存器的长度。每次使能输入有效时,整个移位寄存器移动1位。移位特点:移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的最大长度为64位,可正也可负。寄存器移位Date:2020/3/9Page:33应用指令CH7字节交换指令SWAP,字节交换指令。使能输入有效时,将字型输入数据IN的高字节和低字节进行交换。本指令只对字型数据进行处理,指令的执行不影响的特殊存储器位。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。指令格式:SWAPIN(字节交换)例:SWAPVW10Date:2020/3/9Page:34应用指令CH7填充指令FILL,存储器填充指令。使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。填充指令只对字型数据进行处理,N值为字节型,可取从1~255的整数。指令的执行不影响的特殊存储器位。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(操作数超界)。指令格式:FILLIN,OUT,N(填充指令)例:FILL10,VW100,12本条指令的执行结果是:将数据10填充到从VW100到VW122共12个字存储单元。返回本节Date:2020/3/9Page:35应用指令CH75.5运算指令加法减法乘法除法数学函数指令增减逻辑运算返回本章首页Date:2020/3/9Page:36应用指令CH7+I,整数加法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相加,产生一个16位整数结果OUT。整数加法LDI0.0//使能输入端+IVW0,VW4//整数加法//VW0+VW4=VW4加法Date:2020/3/9Page:37应用指令CH7+D,双整数加法指令。使能输入有效时,将两个双字长(32位)的符号双整数IN1和IN2相加,产生一个32位双整数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1+IN2=OUT。在STL中,执行结果:IN1+OUT=OUT。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。指令格式:+DIN1,OUT例:+DVD0,VD4双整数加法Date:2020/3/9Page:38应用指令CH7+R,实数加法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。在LAD和FBD中,以指令盒形式编程,执行结果:IN1+IN2=OUT。OUT的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。返回本节实数加法指令Date:2020/3/9Page:39应用指令CH7减法减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。Date:2020/3/9Page:40应用指令CH7在