9.1功能指令的基本形式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

9.1功能指令及其应用功能指令的基本规则1步进顺控的编程方法2实训课题功能指令的应用9.1功能指令的形式1、功能指令的格式:功能指令编号或助记符+操作数功能指令编号用FNC00~FNC246表示常用只能的助记符表示,如MEAN(FNC45)[S﹒]叫做源操作数,其内容不随指令执行而变化,在可利用变址修改软元件的情况下,用加“﹒”符号的[S﹒]表示,源的数量多时,用[S1﹒][S2﹒]等表示。[D﹒]叫做目标操作数,其内容随指令执行而改变,如果需要变址操作时,用加“﹒”的符号[D﹒]表示,目标的数量多时,用[D1﹒][D2﹒]等表示。[n﹒]叫做其他操作数,既不作源操作数,又不作目标操作数,常用来表示常数或者作为源操作数或目标操作数的补充说明。可用十进制的K、十六进制的H和数据寄存器D来表示。在需要表示多个这类操作数时,可用[n1]、[n2]等表示,若具有变址功能,则用加“﹒”的符号[n﹒]表示。此外其他操作数还可用[m]来表示。(D0+D1+D2)/3的结果放到D4Z0里边9.1.2.可处理数据长度功能指令可处理l6位数据和32位数据,例如:9.1.3.功能指令的类型FX系列PLC的功能指令有连续执行型和脉冲执行型两种形式。连续执行型的如:上图程序是连续执行方式的例子,当X1为ON时,上述指令在每个扫描周期都被重复执行一次。脉冲执行型的如:当X0由0变1时只执行一次9.1.4、操作数的形式操作数按功能分有源操作数、目标操作数和其他操作数;按组成形式分有位元件、字元件和常数。1.位元件和字元件:只处理ON、OFF的元件叫位元件例如:X、Y、M、S。可以处理数据的软件叫字元件。例如D、C、T、K、H2.位元件的组合,KnX、KnY可以处理数据。例如:3.变址寄存器V、Z思考:当Z0=5时是什么意思?FNC00~FNC09[程序流程]FNC110~FNC119[浮点运算1]FNC10~FNC19[传送与比较]FNC120~FNC129[浮点运算2]FNC20~FNC29[算术与逻辑运算]FNC130~FNC139[浮点运算3]FNC30~FNC39[循环与移位]FNC140~FNC149[数据处理2]FNC40~FNC49[数据处理]FNC150~FNC159[定位]FNC50~FNC59[高速处理]FNC160~FNC169[时钟运算]FNC60~FNC69[方便指令]FNC170~FNC179[格雷码变换]FNC70~FNC79[外部设备I/O]FNC220~FNC249[触点比较指令]FNC80~FNC89[外部设备SER]表19.2功能指令一览表功能指令介绍9.3程序流程指令程序流程指令是与程序流程控制相关的指令,程序流程指令如表2所示。FNCNO.指令记号指令名称FNCNO.指令记号指令名称00CJ条件跳转05DI禁止中断01CALL子程序调用06FEND主程序结束02SRET子程序返回07WDT警戒时钟03RET中断返回08FOR循环范围开始04EI允许中断09NEXT循环范围结束表9.2程序流程指令这里仅介绍常用的CJ、CALL、SRET、FEND指令。1.条件跳转指令CJFNC00CJ(P)(16)操作数范围(D.)占用步数P0-P127P63是END。无需标记指针标号允许用变址寄存器修改3步条件满足跳转、不满足时回来举例:(1)处于被跳转程序段中的继电器、辅助继电器、状态继电器由于该程序段不再执行,即使梯形图中涉及的工作条件发生变化,它们的工作状态将保持跳转发生前的状态不变。(2)被跳过程序段中的继电器及计数器器,无论其是否具有掉电保持功能,由于相关程序停止执行,它们的现实值寄存器被锁定,跳转发生后其计数、计时值保持不变,在跳转终止,程序继续执行时,计时计数器将继续计时。另外,计时、计数器的复位指令具有优先权,即使复位指令位于被跳过的程序段中,执行条件满足时,复位工作也将执行。2.子程序调用指令CALL和子程序返回指令SRET主程序结束FENDFNC01CALL(P)(16)操作数范围(D.)占用步数P0-P127P63是END。指针标号允许用变址寄存器修改3步FNC02SRET无1FNC06FEND无1子程序和中断程序必须写在FEND和END之间。X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序3.举例注意:1,转移标号不能重复,也不可与跳转指令的标号重复。2,子程序可以嵌套调用,最多5次。9.3.3中断指令中断返回FNC03IRET开中断FNC04EI关中断FNC05DI均无操作数梯形图开中断范围X0I100X10FENDIRETEIDIIRETI101中断子程序2中断子程序1说明在执行某个中断子程序时,禁止其它中断请求。中断程序允许嵌套,嵌套级别为2级。中断指针共有15个:输入中断6个,定时器中断3个,计数器中断6个。中断程序用T192~T199和T246~T249作定时器。中断的优先级别多个中断信号不同时产生时,按先后顺序中断。多个中断信号同时产生时,按指针大小中断。9.3.3中断指令无操作数梯形图X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序四、主程序结束指令FNC06FEND说明与END指令的功能一样,执行到该指令时程序返回到0步。中断服务子程序和子程序应该写在FEND之后,并且用IRET和SRET返回。如果多次使用FEND指令,在最后的FEND和END之间编写子程序或中断子程序9.3.4主程序结束指令FNC06FEND无操作数警戒定时器是一个专用定时器,其设定值存放在特殊的数据寄存器D8000中,并以ms为计时单位。当PLC一上电,则对警戒定时器进行初始化,将K100(设定值为100ms)装入D8000中,每个扫描周期结束时,马上刷新警戒定时器的当前值,使PLC能正常运行。当扫描周期大于100ms时,即超过了警戒定时器的设定值,警戒定时器的逻辑线圈被接通,CPU立即停止执行用户程序,同时切断全部输出,并且报警显示。9.3.5警戒定时器指令FNC07WDT如果正常的扫描周期超过警戒时钟的设定值,可以在适当程序步中加入WDT指令,适时刷新警戒时钟,使程序能顺利执行。也可以通过MOV指令修改警戒定时器的设定值(D8000的值)。可以计算出程序扫描周期的最大值作为警戒时钟的设定值。WDT指令可用在FOR-NEXT之间。9.3.5、警戒定时器指令FNC07WDT循环开始FNC08FOR操作数[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z循环结束FNC09NEXT无操作数说明n为循环次数,其范围为1~32767有效。如果指定为-32768~0,则作n=1处理。循环指令最多可以嵌套5级。程序中FOR-NEXT是成对出现的,FOR在前,NEXT在后不可倒置,否则出错。编程时NEXT应该在FEND或END之前,否则出错。9.3.6循环指令第三节传送和比较指令一、比较指令FNC10CMP二、区间比较指令FNC11ZCP三、传送指令FNC12MOV四、移位传送指令FNC13SMOV五、取反传送指令FNC14CML六、块传送指令FNC15BMOV七、多点传送指令FNC16FMOV八、数据交换指令FNC17XCH九、变换指令FNC18BCDFNC19BIN操作数[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:Y、M、S梯形图[S1]K100C10的当前值时,M0=ONK100=C10的当前值时,M1=ONK100C10的当前值时,M2=ONM0M1M2X0[S2][D]CMPK100C10M0一、比较指令FNC10CMPTHEEND!!!7.2.2传送与比较指令传送与比较指令如表7-3所示。这里仅介绍CMP、ZCP、MOV3条常用指令。1.比较指令CMPFNCNO.指令记号指令名称FNCNO.指令记号指令名称10CMP比较指令15BMOV成批传送11ZCP区间比较16FMOV多点传送12MOV传送17XCH数据交换13SMOV位移动18BCDBCD传送14CML取反传送19BINBIN传送表7-3传送比较指令2.区间比较指令ZCPZCP指令是将一个数据与两个源数据进行比较的指令。源数据[S1.]的值不能大于[S2.]的值,若[S1.]大于[S2.]的值,则执行ZCP指令时,将[S2.]看作等于[S1.]。3.传送指令MOVFNC10CMP(P)(16/32)适合软元件占用步数字元件16位:7步32位:13步位元件K、HKnXKnYKnMKnSTCDV、ZS1﹒S2﹒XYMSD﹒FNC11ZCP(P)(16/32)适合软元件占用步数字元件16位:9步32位:17步位元件K、HKnXKnYKnMKnSTCDV、ZS1﹒S2﹒S﹒XYMSD﹒FNC12MOV(P)(16/32)适合软元件占用步数字元件16位:5步32位:9步位元件S﹒K、HKnXKnYKnMKnSTCDV、ZD﹒7.2.3算术与逻辑运算指令算术与逻辑运算指令包括算术运算和逻辑运算,共有10条指令,如表7-4所示。FNCNO.指令记号指令名称FNCNO.指令记号指令名称20ADDBIN加法25DECBIN减121SUBBIN减法26WAND逻辑与22MULBIN乘法27WOR逻辑或23DIVBIN除法28WXOR逻辑异或24INCBIN加129NEG求补码表7-4算术与逻辑运算指令这里介绍ADD、SUB、MUL、DIV、INC、DEC、WAND、WOR、WXOR9条指令。1.BIN加法运算指令ADDFNC20ADD(P)(16/32)适合软元件占用步数字元件16位:7步32位:13步位元件S1.S2.K、HKnXKnYKnMKnSTCDV、ZD.ADD指令的使用说明如下:2.BIN减法运算指令SUBFNC21SUB(P)(16/32)适合软元件占用步数字元件16位:7步32位:13步位元件S1.S2.K、HKnXKnYKnMKnSTCDV、ZD.SUB指令的使用说明如下:3.BIN乘法运算指令MULFNC22MUL(P)(16/32)适合软元件占用步数字元件16位:7步32位:13步位元件S1﹒S2﹒K、HKnXKnYKnMKnSTCDV、ZD﹒限16位可用MUL指令16位运算的使用说明如下:参与运算的两个源指定的内容的乘积,以32位数据的形式存入指定的目标,其中低16位存放在指定的目标元件中,高16位存放在指定目标的下一个元件中,结果的最高位为符号位。32位运算的使用说明如下:4.BIN除法运算指令DIVFNC23DIV(P)(16/32)适合软元件占用步数字元件16位:7步32位:13步位元件S1﹒S2﹒K、HKnXKnYKnMKnSTCDV、ZD﹒限16位可用16位运算的使用说明如下:[S1﹒]指定元件的内容是被除数,[S2﹒]指定元件的内容是除数,[D﹒]所指定的元件存入运算结果的商,[D﹒]的后一元件存入余数。32位运算的使用说明如下:5.BIN加1运算指令INC和BIN减1运算指令DECFNC24INCFNC25DEC(P)(16/32)适合软元件占用步数字元件16位:3步32位:5步位元件K、HKnXKnYKnMKnSTCDV、ZD﹒INC指令使用说明如下:X0每ON一次,[D.]所指定元件的内容就加1,如果是连续执行的指令,则每个扫描周期都将执行加1运算,所以使用时应当注意。DEC指令的使用说明如下:X0每ON一次,[D.]所指定元件的内容就减1,如果是连续执行的指令,则每个扫描周期都将执行减1运算。应用举例,如图7-12所示。X20为ON时清除Z0的值,X21每ON一次依次将C0~C9的当前值转化为BCD码向K4Y0输出,当Z0的值为10时,M1动作,自动复位Z0,可再次将C0~C9的当前值以BCD码输出。6.逻辑字与指令WAND、逻辑字或指令WOR、逻辑字异或指令WXORFNC26WANDFNC27WORFNC28WXOR(P)(1

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

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

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

×
保存成功