您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 第六章_PLC功能指令系统
第六章PLC功能指令系统功能指令的表示形式及含义功能指令的分类与操作数说明功能指令说明第一节功能指令的表示形式及含义功能指令的表示形式功能指令的含义第一节功能指令的表示形式及含义一、功能指令的表示形式:PLC采用计算机通用的助记符形式来表示功能指令,通常用英文名称或其缩写作为助记符。功能指令按功能号FNC00~XXX(99,246)编排。每条功能指令都有一个助记符和功能号,还需指定操作数。功能指令格式:助记符(或功能号)+操作数。操作数:K,hKnXKnYKnMKnSTCDV,Zm,n[S.][D.][S]:源操作数,[S.]表示变址功能的源操作数,[S1.]、[S2.]表示源操作数不止一个。[D]:目的操作数,[D.]表示变址功能的目的操作数,[D1.]、[D2.]表示目的操作数不止一个。m,n:表示其它操作数,常用来表示常数(可用十进制K或十六进制H)或作为源操作数和目标操作数的补充说明。需要注释项目不止一个时,采用m1,m2程序步的计算:功能指令的功能号和助记符占一个程序步,操作数占2或4程序步,16位指令是2步,32位指令是4步。所以,一般地16位指令为7个程序步,32位指令为13个程序步.例:指令格式举例。•当X0为ON时,(D10+D11+12)/3→D20二、数据长度及指令的执行形式1、16位和32位指令中的符号(D)表示处理32位数据;处理32位数据时,使用元件号相邻的两个元件组成元件对,建议首元件号使用偶数,如D10;32位计数器不能用作16位指令的操作数。2、连续执行/脉冲执行连续执行方式:当X0为ON时,指令在每个扫描周期会被重复执行。脉冲执行方式(助记符后加(P)符号):只有当X10由OFF变为ON时,指令才会被执行。符号(D)和(P)可同时使用,如(D)MOV(P)3、位元件位元件:只处理ON/OFF状态的元件,如X,Y,M,S。字元件:处理数据的元件,如T,C,D。位元件组合起来可处理数字数据。每4位为一组组合成单元,用Kn+首位元件号表示。n表示组数(单元数)。16位操作数时为K1~K4,32位操作数时为K1~K8。首元件号为最低位。如:K4M0表示由M0~15组成的16位数据,K2X0表示由X0~X7组成的8位数据。4、变址寄存器V,Z变址寄存器用于在传送、比较指令中修改操作对象的元件号,其操作方式与普通寄存器一样。操作数[S2.]、[D.]表示可以加入变址寄存器。对32位指令,V,Z自动组对,V作高16位,Z作低16位,在指令中只需指定Z。执行:M10为ON时,(V)=10;M11为ON时,(Z)=20;M12为ON时执行ADD指令,(D5V)+(D15Z)→(D40Z),即(D15)+(D35)→(D60)。V,Z内容不变。功能指令简介功能指令1、程序流程控制指令FNC00~092、传送与比较指令FNC10~193、算术运算和逻辑运算指令FNC20~294、循环移位和移位指令FNC30~395、数据处理指令FNC40~496、高速处理指令FN50~597、方便指令FNC60~698、外部I/O设备指令FNC70~799、FX外围设备指令FNC80~8910、FX2外部模块指令FNC90~9911、浮点数指令12、定位指令13、时钟指令14、外围指令15、触点指令标志位功能指令在操作过程中,其运算结果要影响某些特殊继电器或寄存器,称为标志(位)。标志(位)分:一般标志(位)、运算标志(位)、功能标志(位)。一般标志(位)在功能指令操作中,其结果会影响一些标志位:M8020:零标志,如果运算结果为0则动作;M8021:借位标志,如果减运算时被减数不够时动作;M8022:进为标志,如果运算结果发生进位时动作;M8029:指令执行结束标志。运算标志(位)如果功能指令的结构、可用软件及其编号范围等方面有错误时,或在运算过程中出现错误,一些标志位会动作,并记录出错信息:M8067:运算出错标志;M8068:运算错误代码编号存储;M8069:错误发生的序号记录存储。PLC由STOPRUN时标志是瞬间清除,如果出现运算错误,则M8068保持动作,D8068中存储发生错误的步序号。功能标志(位)部分功能指令中,同时使用由该功能指令确定的固有特殊辅助继电器,可进行功能扩展。如:M8160:FNC17(XCH)的SWAP功能;M8161:为8位处理模式,适用于FNC76(ASC)、FNC80(RS)、FNC82(ASCI)、FNC83(HEX)、FNC84(CCD)指令。功能指令简介1、程序流程控制指令FNC00~09(1)条件跳转指令CJ(FNC00)(2)主程序结束FEND(FNC06)(3)子程序调用CALL(FNC01)子程序返回SRET(FNC02)(4)中断返回IRET(FNC03)、允许中断EI(FNC04)、禁止中断DI(FNC05)(5)监视定时器刷新WDT(FNC07)(6)循环开始FOR(FNC08)、循环结束NEXT(FNC09)(1)条件跳转指令CJ使用说明:X10为ON,程序跳到标号P8处,否则,顺序执行。NOTE(1)一个标号只能出现一次,否则出错。(2)两条跳转指令可以使用共同的标号,(3)M8000为执行条件,则为无条件跳转。编程时,标号占一行,对有意向END步跳转的指令,程序中不要对标号编程。动作说明:(1)X0为OFF时,程序正常运行;(2)X0为ON时,则跳转到P63(END)处,使继电器输出,定时器、计数器值均保持不变。跳转指令和主控指令在使用时关系(不讲)a.对跳过整个主控区(MC-MCR)的跳转不受任何限制;b.从主控区外跳转到主控区内时,跳转独立于主控操作,CJP1执行时,不论M0状态如何,作ON状态处理;c.在主控区内部跳转时,M0为OFF,跳转不可能执行。M0为ON时,按跳转指令执行;d.从主控区内跳转到主控区外时,M0为OFF,跳转不执行,M0为ON,跳转条件满足可跳转;e.从一个主控区跳到另一个主控区内,M1为ON,可跳转,执行跳转时,不论M2状态如何,均看作为ON。跳转指令在手动/自动控制方式切换中的应用:(2)主程序结束FENDNOTE:程序执行FEND时,PLC进行输入处理、输出处理、监视定时刷新,完成后返回第0步。FEND为主程序的结束指令,功能同END。CJ指令中,用FEND作为主程序及跳转程序的结束。•CALL(调用子程序)指令中,子程序、中断子程序应写在FEND指令之后,且在结束端用SRET和IRET为返回指令。•FEND指令在CALL或CALL(P)-SRET指令执行之后出现,则程序出错。同样,FEND指令在FOR-NEXT循环中也出错。•子程序及中断子程序必须写在FEND与END间,若使用多个FEND指令,则在最后的FEND与END间编写子程序或中断子程序。SRET(3)子程序调用CALL与子程序返回SRET动作(1)当X10为ON,CALLP20指令使程序执行P20子程序,在子程序中执行到SRET指令后程序返回到CALL指令的下一条指令(104步)处执为。(2)X10为OFF,则程序顺序执行。NOTE子程序应写在主程序后,即子程序的标号应写在指令FEND之后,且子程序必须以SRET结束。NOTE:在子程序中可再次使用CALL指令,形成子程序嵌套,共可有5级嵌套。•应用子程序调用指令,可优化程序结构,提高编程效果。(4)中断返回IRET、允许中断EI、禁止中断DINOTE(1)FX系列有9(+6)个中断点,外部输入中断,中断信号从X0~X5输入;内部定时器中断;(计数器中断;)(2)中断服务程序的标号为I×××;(3)指令EI~DI之间的程序段为允许中断区间,而DI~EI之间为禁止中断区间。M8050~M8059为中断禁止特殊辅助继电器。“0”为允许中断,“1”禁止中断。(4)当程序执行到允许中断区间且出现中断请求信号时,PLC跳到相应标号处执行中断服务程序,遇到中断返回指令IRET后返回断点处继续执行主程序。动作:当程序执行到允许中断区间时,X0或X1为ON,则去执行相应的中断程序(1)或(2)。中断程序应写在主程序之后,并以IRET结束。NOTE:(1)有关的特殊辅助继电器(M805*)置1时,相应的中断程序(I*××)不能执行。(2)执行一个中断程序时,其它中断自动被禁止。但如果在该中断程序编入EI和DI指令时,则响应其它中断,最多可实现2级中断嵌套。(3)如果中断信号产生于禁止中断区间,该中断信号被存储,并在EI指令之后被执行。(4)多个中断信号同时出现,中断指针号低的优先权高。(5)监视定时器刷新WDTNOTE:用于监视PLC的工作情况,在每一个扫描周期自动对WDT复位,监控定时器定时时间缺省值为200ms,通过修改D8000来设定它的定时时间。如果程序出错则当WDT定时时间到时,监控定时器不再被复位,定时时间到时,PLC将停止运行,其CPU-E发光二极管亮,对系统重新启动。WDT的用法:•若扫描周期大于它的定时时间,可将WDT指令插入到合适的程序步中刷新监控定时器。•若FOR-NEXT循环程序的执行时间可能超过监控定时器的定时时间,可将WDT指令插入循环程序中。•条件跳步指令CJ若在它对应的标号后(即程序往回跳),可能因连续反复跳步使它们间的程序被反复执行,总执行时间可能超过WDT的定时时间,可在CJ指令和对应的标号间插入WDT指令。(6)循环开始FOR、循环结束NEXTNOTE:FOR~NEXT之间的程序重复执行n次(由操作数指定)后,再执行NEXT指令后的程序。循环次数n的范围为1~32767。若n为负数,作1处理。2、传送与比较指令FNC10~19(1)比较CMP(FNC10)(2)区间比较ZCP(FNC11)(3)传送指令MOV(FNC12)(4)移位传送指令SMOV(FNC13)(5)取反传送CML(FNC14)(6)块传送BMOV(FNC15)(7)多点传送FMOV(FNC16)(8)交换XCH(FNC17)(9)BCD交换(FNC18)、BIN交换(FNC19)(1)比较CMPNOTE:(1)该指令有二个源操作数[S1.]、[S1.],一个目的操作数[D.];(2)指令将[S1.]和[S1.]进行比较,结果送到[D.]中。(3)比较结果清除,需用RST和ZRST指令。动作:(1)当X10为ON时,比较100和C20当前值的大小,分三种情况分别使M0、M1、M2中的一个为ON,另两个则为OFF;(2)当X10为OFF,则CMP不执行,M0、M1、M2的状态保持不变。(2)区间比较ZCPNOTE:该指令是将一个操作数[S.]与两个操作数[S1.]、[S1.]形成的区间比较,且[S1.]<[S2.]。比较指令和区间比较指令,数据均为二进制数,且带符号位比较。•X0为ON,C30的当前值与K100和K120比较。(3)传送指令MOVNOTE:(1)将源操作数[S.]传送到目标元件[D.],即[S.]→[D.],源操作数不变。(2)指令执行时,K100十进制常数自动转换成二进制数。•若[S]源操作数是一个变数,要用脉冲型传送指令MOV(P)。•对于32位数据的传送,需用(D)MOV指令。否则出错。•X0为ON,则(D1,D0)→(D11,D10);•X1为ON,(C235)32位→(D21,D20)。•将K200→(D12)•读出C0的当前值→(D20)。•用MOV指令,将输入端X0~X3的状态送到输出端Y0~Y3,(4)移位传送指令SMOVNOTE:BCD码值超过9999时出错。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2的第3位(n=3)和第2位。而D2’的第4位和第1位两位BCD码不变。BCD码(二-十进制代码)举个例子:321的8421码就是321001100100001原因:0011=8x0+4x0+1x2+1x1=30010=8x0+4x0+2x1+1x0=20001=8x0
本文标题:第六章_PLC功能指令系统
链接地址:https://www.777doc.com/doc-3730542 .html