您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第5章 plc功能指令
可编程序控制器的编程方法与工程应用黄麓升FX系列可编程序控制器的功能指令概述•功能指令的表示方法•数据长度与指令类型•位元件•变址寄存器V,Z功能指令的表示方法•采用计算机通用的助记符形式来表示功能指令。—般用指令的英文名称或缩写作为助记符•大多数功能指令在指定功能号的同时还需要指定操作元件[S1],[S2],[D1],[D2]等。用n或m如果可以使用变址功能,则表示为[S·]和[D·]•功能号和指令助记符占一个程序步,16位操作与32位操作的每一个操作数分别占2个和4个程序步•写入功能指令时,先按键,再输入功能指令的编号【(DO)+(D1)+(D2)]/3一(D420)将D1l,D10中的数据传送到D13,D12位元件•位元件和字元件X,Y,M和ST,C和数据寄存器D•位元件的组合每相邻的4bit位元件组合成一个单元,它由Kn加首位元件号来表示(K2M0、K4S10)对32位指令,V。为高16位,z为低16位。32位指令中使用变址指令只需指定Z,这时z就能代表V和Z程序流向控制指•CJ(条件跳转)•CALL、SRET(子程序调用、返回)•IRET(中断返回)EI、DI(中断允许与中断禁止)•FEND(主程序结束)•WDT(监控定时器刷新)•FOR、NEXT(循环开始和循环结束))CJ(条件跳转)•FNC00,操作数为P0~P127,占三个程序步,标号占一个程序步。•P63是END所在步序,不需要标记。•该指令占三个程序步,标号占一个程序步•两条跳转指令可以使用相同的标号•标号可以出现在相应跳转指令之前•一个标号只能出现一次。•如果用M8000的常开触点驱动CJ指令,相当于无条•跳步期间即使驱动的电路状态改变,被跳过的元件仍保持跳步前的状态CJ(条件跳转)•跳步开始时定时器和计数器正在工作,在跳步期间它们将停止定时和计数(在工作的T63和高速计数器除外)•不管它的主控触点是否接通,都把它当成接通来执行主令控制区内的程序。如果跳步指令在主令控制区内,主控触点没有接通时不执行跳步。•同一编程元件的线圈可以在跳步条件相反的两个跳步程序(如图4.6中的自动程序和手动程序)中分别出现一次子程序调用与子程序返回指令•CALL,指令编号为FNC01操作数为P0~P127(不包括P63),占用3个程序步,•允许用变址寄存器修改。•子程序可以嵌套调用,最多嵌套5级•子程序返回指令SRET指令编号为FNC02,无操作数。•标号应写在FEND(主程序结束)指令之后•同一标号只能出现一次,CJ指令中用过的标号不能再用•但不同位置的CALL指令可以调用同一标号的子程序•SRET指令后返回到调用其指令的下一条指令与中断有关的指令•中断返回指令IRET的指令编号为FNC03:•允许中断指令El指令编号为FNC04•禁止中断指令DI指令编号为FNC05(以上三条指令均无操作数,分别占用一个程序步)•指令EI和DI之问的程序段为允许中断的区间•M805AON时,禁止执行相应的中断IA口口•M8059ON时,关闭所有的计数器中断。•如果有多个中断信号依次发出,发生越早的优先级越高。若同时发生多个中断信号,则中断指针号小的优先。•中断信号在禁止中断区间出现,该中断信号被储存,并在EI指令之后响应该中断。不需要关中断时,只使用EI指令,可以不使用Dl指令与中断有关的指令•FX2N系列:1、有6个与X0~X5对应的中断输入点,中断指针为I 0 ,最低位为0时表示下降沿中断,反之为上升沿中断。最高位与X0~X5的元件号相对应2、有3点定时器中断,对应的中断指针为I6口口~I8口口,低两位是以ms为单位的定时时间,定时器中断用于高速处理或每隔一定的时间执行的程序3、6点计数器的中断指针为IO口O(口=1~6),它们利用高速计数器的当前值产生中断,与HSCS(高速计数器比较置位)指令配合使用程序结束指令•FEND(FirstEnd)的功能指令编号为FNC06,无操作数,占用…个程序步•子程序(包括中断子程序)应放在FEND指令之后。CALL指令调用的子程序必须用SRET指令结束,中断子程序必须以IRET指令结束监控定时器指令•WDT编号为FNC07,无操作数,占用一个程序步。•监控定时器又称看门狗,在执行FEND和END指令时,监控定时器被刷新(复位)•可编程序控制器正常工作时扫描周期小于它的定时时间,定时时间到时,可编程序控制器将停止运行•定时时间的缺省值为200ms,可通过修改D8000来设定它的定时时问。•如果扫描周期大于它的定时时间,可将WDT指令插入到合适的程序步中刷新监控定时器。如果FOR-NEXT循环程序的执行时间可能超过监控定时器的定时时间,可将WDT指令插入到循环程序中。循环指令•FOR:循环区的起点,编号FNC08,16位指令占用3个程序步,它的源操作数用来表示循环次数N,可以取任意的数据格式。在-32767~0之间,当作N=l处理,循环可嵌套5层。•NEXT是循环区终点指令,编号为FNC09,占用1个程序步,无操作数•利用循环中的CJ指令可跳出FOR-NEXT之间的循环体比较与传送指令•CMP(比较)和ZCP(区间比较)指令•MOV(传送)•SMOV(BCD码移位传送)•CML(取反传送)•BMOV(数据块传送)•FMOV(多点传送)•XCH(数据交换)•BCD(二进制数转换成BCD码并传送)•BIN(BCD码转换为二进制数并传送)CMP、ZCP•CMP比较指令,编号为FNCl0,16位运算占7个程序步,32位运算占13个程序步•ZCP区间比较,编号为FNCll。16位运算占9个程序步,32位运算占17个程序步传送指令•MOV传送指令,编号为FNCl2,16位运算占5个程序步,32位运算占9个程序步。•SMOV移位传送指令,编号为FNCl3,只有16位运算,占ll-个程序步•CML取反传送指令,编号为FNCl4,16位运算占5个程序步,32位运算占9个程序步•BMOV块传送指令,编号为FNCl5,16位操作占7个程序步•FMOV多点传送指令,编号为FNCl6,16位操作占7个程序步,32位操作占13个程序步•XCH数据交换指令,编号为FNCl7,16位运算占5个程序步,32位运算占9个程序步数据变换指令•BCD指令,编号为FNCl8.该指令将源元件中的二进制数转换为BCD码并送到目标元件中•BIN指令,编号为FNCl9,该指令将源元件中的BCD码转换为二进制数并送到目标元件中算术运算与字逻辑运算指令•16位运算占7个程序步,32位运算占13个程序步•加法指令ADD/减法指令SUB•乘法指令MUL(FNC22)/除法指令DIV(FNC23)•加1(FNC24)和减l指令(FNC25)•字逻辑运算指令:WAND(字逻辑与)、WOR(字逻辑或)、WXOR(字逻辑异或)和NEG(求补)ADD•编号为FNC20•在32位运算中用到字编程元件时,被指定的字编程元件为低位字,下一个编程元件为高位字。为了避免错误,建议指定操作元件时采用偶数元件号•如果运算结果为0,零标志M8020置l;运算结果超过32767(16bit运算)或2147483647(32bit运算),进位标志M8022置1;运算结果小于-32767(16bit运算)或一2147483647(32bit运算),借位标志M8023置l•若源元件和目标元件号相同,并采用连续执行的ADD指令,每一个扫描周期加法的结果都会改变。SUB•编号为FNC21•每个标志的功能、32位运算元件的指定方法、连续执行和脉冲执行的区别等均与加法指令中的相同•脉冲执行的加减指令来加/减l与脉冲执行的INC(加1)、DEC(减1)指令的执行结果相似,其不同之处在于INC指令和DEC指令不影响零标志、借位标志和进位标志字逻辑运算指令•WAND(字逻辑与)、WOR(字逻辑或)、WXOR(字逻辑异或),它们的功能指令编号分别为FNC26~FNC28•16位运算占7个程序步,32位运算占13个程序步•以位(bit)为单位作相应的运算•NEG(求补)指令FNC29,16位运算占3个程序步,32位运算占5个程序步循环移位与移位指令•ROR/ROL(右/左循环移位),FNC30和FNC31•RCR/RCL(带进位的右/左循环移位)•SFTR/SFTL(位右/左移)•WSFR/WSFL(字右移/字左移)•SFWR/SFRD(先入先出)
本文标题:第5章 plc功能指令
链接地址:https://www.777doc.com/doc-4042745 .html