PLC功能指令与简单编程器.ppt
PLC功能指令系统,为了满足工业控制的需要,PLC生产厂家为PLC增添了过程控制,数据处理和特殊功能指令,这些指令我们称为功能指令。,用途主要用于输入输出的高速处理、算术运算、数据传送等。,第四章功能指令与简单编程器的使用方法,4.1FX系列PLC的功能指令概述一功能指令的表示方法用功能号表示“FNC”来指定功能每条功能指令都要助记符例FNC45的助记符是MEAN,,由上图可见,功能指令的梯形图结构包括以下3部分1执行条件由X、Y、M、S、T、C等软元件的接点或接点组构成,如图中的X0和X1,当执行条件为ON时,才执行应用指令2功能号和助记符每条功能指令都有一个功能编号和相应的助记符,功能号不同,应用指令的功能就不同。图中,MEAN就是指令助记符,,3操作数操作数有以下几种1)源操作数〔S〕在执行指令的过程中,源操作数中的内容保持不变。当同时有多个源操作数时,分别用〔S1〕〔S2〕等表示若可使用变址功能可用〔S.〕表示2)目标操作数用〔D〕表示,在执行指令的过程中,目标操作数中的内容随程序的执行会有所改变。3)其他操作数用m、n表示,用来表示十进制常数K或十六进制常数H。,,K、H表示常数,如K6表示十进制常数6;KnXm、KnYm、KnMm、KnSm表示以n为组数,每组4位所组成4*n位的数据(Xm、Ym、Mm、Sm为最低位)。,,二数据长度和指令类型1数据长度16位指令和32位指令在16位指令助记符的前面加上字符D即为32位指令16位操作数的每一个操作数占2个程序步2脉冲执行与连续执行脉冲执行指令仅在执行条件从OFF变到ON时执行,脉冲执行方式的指令在指令助记符后面附有符号P连续执行当执行条件位ON时,指令在各个扫描周期都被执行,,注符号“(P”和“D”和同时使用例“ADD”“ADDP”“DADD”“DADDP”,,位元件1、位元件与字元件位元件只有ON/OFF状态的元件,例XYMS字元件处理数据的元件TCD2、位元件的组合没相邻的4bit元件组成一个单元,用“Kn首位元件”表示.n位组数,16位指令Kn为K1K432位指令Kn为K1K8例K8M100,,变址寄存器VZ1同普通寄存器一样,变址寄存器VZ也是16位的数据寄存器,其地址编号为V7-V0,Z7-Z0,共16点。当需用进行32位数据运算时,需将VZ组合起来使用。且规定Z存放低16位数据2可用变址寄存器修改的软元件有XYMSPTCDKHKnXKnYKnMKnS,但不能修改VZ本身以及指定位数用的Kn本身例不能用Z0M10来修改Z的地址。但可用M10Z0来修改M的地址。,,,4.2程序流向控制指令一条件跳转指令CJ通过例子对跳转指令执行前后以及跳转区内外各软元件的状态进行说明1、软元件YMS的状态保持跳转前的状态,,2计数器C的状态及定时器T的状态1)若发生跳转前,C和T没有计数和计时,跳转发生后,即使条件满足,C和T也不工作2)若C和T在工作时跳转,则在跳转期间,它们将停止计数和定时,并保持当前值不变,当跳转解除后,计数和定时继续,如图3)定时器T192-T199高速计数器的状态与跳转指令无关,,3当主控指令MC与跳转指令一起使用,应注意1当程序由MC区外向MC区外跳转,或由MC区外向MC区内跳转时,跳转指令的执行与MC指令是否有效无关2)当程序执行由MC区内向MC区内跳转,或由MC区内向MC区外跳转时,跳转指令的执行,必须是MC指令有效3)当程序的执行由1个MC区如主控1跳转到另一个MC区如主控2是,只有当1区的MC指令有效时,才能执行跳转4T、C软元件复位指令RST的执行,,4.2.2子程序调用与子程序返回指令CALLSRET注意问题子程序应写在FEND之后,即CALLCALLP指令对应的标号应写在FEND之后,CALLCALLP指令调用的程序必须以SRET结束,CJ指令中用过的指针不能再用。,,,,4.2.3与中断有关的指令IRET中断返回指令EI允许中断指令DI禁止中断指令以上3个指令无操作数,分别占用一个程序中断程序从他唯一的中断指针开始,到第一条IRET指令结束。中断指令应放在FEND指令之后,IRET指令只能在中断程序中使用。,,4.2.4程序结束指令FEND主程序结束指令子程序包括中断子程序应放在FEND指令之后,4.2.6循环指令FOR用来表示循环区的起点,它的原操作数用来表示循环次数N,可以取任意的数据格式,如果N为负数,当作N1处理。NEXT是循环区终点指令,无操作数FOR和NEXT之间的程序被反复执行,执行次数由FOR指令的原操作数决定,执行完后,执行NEXT后面的指令,,循环程序注意FOR和NEXT指令总是成对使用的,FOR指令应放在NEXT的前面,如果没有满足上述条件,就会出错,,例题在X1的上升沿,将50、55、60、、90分别送D10D18LDPX1RSTZMOVK50D10FORK8ADDD10ZK5D11ZINCZNEXT,,4.3比较与传送指令4.3.1比较指令CMP比较,用来实现两个数据的代数比较ZCP区间比较1比较CMP2个原操作数[S1]和[S2]为原操作数[D]目标操作数,放比较结果,,2区间比较3个原操作数,,4.3.2传送指令MOV指令将源程序传送到指定目标SMOV移位指令,MOV指令对源操作数没有要求,而目的操作数不能是输入继电器X和常数K,H,原因很明显目的操作数是用来保存结果的,自然不能用输入继电器和常数。,,3取反指令CML,,块传送指令BMOV块传送将原操作数指定的元件开始的n个数据组成的数据块传送到指定的目标,,多点传送指令FMOVFMOV将源文件中的数据传送到指定目标开始的n个元件中,传送后n个文件中的数据完全相同6数据交换指令XCH执行数据交换指令时,数据在指定的目标元件之间交换,交换指令一般采用脉冲执行方式,否则在每一个扫描周期都要交换一次,,4.3.3数据变换指令BCD变换指令将源文件中的二进制数转换为BCD码并送到目标元件中,,4.4算术运算与字逻辑运算指令4.4.1算术运算1加法指令将源元件中的二进制数相加,结果送到指定的目标元件2减法指令SUB3乘法指令MUL4除法指令DIV,,4.4.2二进制加1INC减1DEC指令,,综合运算举例,,4.4.3字逻辑运算,,4.5循环移位与移位指令4.5.1循环移位指令右移位ROR左移位ROL,,4.5.2带进位的循环移位指令右循环RCR左循环RCL,,4.5.3位右移SFTR和位左移SFTL指令,,4.5.4字右移WSFR和字左移WSFL指令,,4.5.5FIFO写入与读出指令,,例题某仓库的产品在出库时,要求按入库登记的顺序从库内取出,即按先入先出的原则出库,假设产品编号用4位16进制数表示,允许最大的库存量为99,实现上述要求的程序如图所示,,指令表LDPX20MOVK4X0D256SFWRD256D257K100LDPX21SFWDD257D357K100LDM8000MOVD357K4Y0,,4.6数据处理指令4.6.1区间复位指令ZRST,,4.6.2解码与编码指令1解码指令DECO,,2解码指令ENCO,,4.6.3求置ON位总数与ON位判别指令1求置ON位总数指令SUM2ON位判别指令BON,,4.7高速处理指令4.7.1与输入输出有关的指令1输入输出刷新指令REF2刷新和滤波时间常数调整指令REFF,,4.7.2高速计数器指令1高速计数器比较值位指令HSCS,2高速计数器比较复位指令HSCR,,3高速计数器区间比较指令HSZ,,4.8方便指令4.8.1状态初始化指令ISTIST指令与STL指令一起使用状态初始化指令IST与STL指令一起使用,用于自动设置多种工作方式的系统的顺序功能图。IST指令只能使用一次,它应放在程序开始的地方,被它控制的STL电路应放在它的后面。,IST中的源操作数可取X、Y和M,图中IST指令的源操作数X20用来指定与工作方式有关的输入继电器的首元件,它实际上指定从X20开始的8个输入继电器,这8个输入继电器的意义如下表。,,4.8.2数据搜索指令SER,表4.3搜索结果,4.8.4定时器指令1示教定时器指令TTMR,2特殊定时器指STMR特殊定时器指令用来产生延时断开定时器、脉冲定时器和闪烁定时器。该指令使用说明如图所示。m用来指定定时器的设定值,图中T10的设定值为10s(m100)。图中的M0是延时断开定时器,M1是X0由ON→OFF的单脉冲定时器,M2和M3是为闪动而设的,4.8.5其他方便指令1交替输出指令ALTALT指令使用使用说明如图所示。X0由OFF变为ON时,Y0的状态改变一次,若不用脉冲执行方式,每个扫描周期Y0的状态都要改变一次。ALT指令具有分频器的效果,使用ALT指令,用1只按钮X0就可以控制Y0对应的外部负载的起停。,4.9外部I/O设备指令4.9.1数据输入指令110建输入指令KEY,4.9.2数字译码输出指令17段译码指令SEGD,,例题用按钮SB0控制LED数码管顺序显示数字0到F。在系统刚开始运行时,LED数码管显示数字“0”;第1次闭合按钮SB0时,LED数码管显示数字“1”;第2次闭合按钮SB0时,LED数码管显示数字“2”;第10次闭合按钮SB0时,LED数码管显示数字“A”;第15次闭合按钮SB0时,LED数码管显示数字“F”;此后再闭合按钮SBO,LED数码管显示数字“F”不变;按钮SB1做复位用,闭合SB1,LED数码管显示数字“0”。断开SB1,再闭合SB0时,LED数码管显示“1”,,,1、硬件设计,,,,,