第六章+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+D12)/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、浮点数指令11、定位指令12、时钟指令13、外围指令14、触点指令功能指令简介•标志位功能指令在操作过程中,其运算结果要影响某些特殊继电器或寄存器,称为标志(位)。标志(位)分:一般标志(位);运算标志(位);功能标志(位)。•一般标志(位)在功能指令操作中,其结果会影响一些标志位:M8020:零标志,如果运算结果为0则动作;M8021:借位标志,如果减运算时被减数不够时动作;M8022:进位标志,如果运算结果发生进位时动作;M8029:指令执行结束标志。•运算标志(位)如果功能指令的结构、可用软件及其编号范围等方面有错误时,或在运算过程中出现错误,一些标志位会动作,并记录出错信息:M8067:运算出错标志;M8068:运算错误代码编号存储;M8069:错误发生的序号记录存储。PLC由STOP-RUN时标志是瞬间清除,如果出现运算错误,则M8068保持动作,D8068中存储发生错误的步序号。•功能标志(位)部分功能指令中,同时使用由该功能指令确定的固有特殊辅助继电器,可进行功能扩展。如: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步跳转的指令,程序中不要对标号编程。如图6-17示。跳转指令和主控指令在使用时关系: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同;•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.]、[S2.],一个目的操作数[D.];(2)指令将[S1.]和[S2.]进行比较,结果送到[D.]中。(3)比较结果清除,需用RST和ZRST指令。动作:(1)当X10为ON时,比较K100和C20当前值的大小,分三种情况分别使M0、M1、M2中的一个为ON,另两个则为OFF;(2)当X10为OFF,则CMP不执行,M0、M1、M2的状态保持不变。(2)区间比较ZCPNOTE:该指令是将一个操作数[S.]与两个操作数[S1.]、[S2.]形成的区间比较,且[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码右起从第1位(m1=1)开始的1位(m2=1)移送到目标D2’的第3位(n=3)。而D2’的第4位、第2位和第1位三位BCD码不变。(5)取反传送CML将源操作数中的数据(自动转换为二进制)遂位取反后传送。可作为PLC的反相输入或反相输出指令。(6)块传送BMOVNOTE(1)将源操作数开始的n个数据组成的数据块传送到指定目标。指令操作顺序依次为[S.]、[D.]和n。如果元件号超出允许范围,数据仅传送到允许范围

1 / 113
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功