您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 几个PLC功能指令的理解
1PLC功能指令实际上就是功能各异的PLC子程序块。FX2N系列PLC的功能指令有程序流程、传送比较、四则逻辑运算、旋转移位、数据处理、高速处理、方便指令、外部设备处理、浮点数、时钟运算、接点比较等若干类。本节仅介绍FX2N系列PLC常用的功能指令。一、功能指令形式1.功能指令格式功能指令用编号FNC00~FNC246表示,并给出对应的语句名称,每条功能指令都有一个指令表。例如FNC45是一条数据处理平均值功能的指令,助记符为MEAN,使用简易编程器时输入FNC45,而采用智能编程器或计算机编程时也可输入助记符MEAN。图1是一条取平均值功能指令的梯形图。图1MEAN示例梯形图图中MEAN是功能指令的语句名称,也可使用FNC45(但不直观);D0是源操作数的首元件;D4Z是指定计算结果存放的数据寄存器的地址;K3是指定取值的个数为3。显然该功能指令的含义是D4Z=(D0+D1+D2)/3,即将(D0+D1+D2)/3的运算结果赋值给D4Z。功能指令的指令段通常占1个程序步,16位操作数占2步,32位操作数占4步。2.功能指令执行方式功能指令有连续执行和脉冲执行两种类型。图2中第1支路的MOV是连续执行型指令,即当X001接通时,各运算周期都执行一次,而第2支路的MOV(P)是脉冲执行型型指令,(P)就表示当X000由OFF转换为ON时,仅执行一次指令。图2功能指令执行方式示例3.可处理数据长度功能指令可处理16位数据,也可处理32位数据,见图3示例梯形图。第1梯级中,当X000接通,则移位MOV功能指令处理的数据为16位,即将D10的内容传送至D12;而在第2梯级中,(D)MOV功能指令处理的数据为32位,将D21D20(由D21、D20构成的32位数据)的内容传送到D23D22(由D23、D22组成的32位数据存储单元)。图3功能指令处理数据长度示例几个常见和搞错的功能指令:2一、BCD指令和BIN指令1、BCD指令BCD码就是用四位二进制数表示一位十进制数的编码,比如十进制12用BCD码表示为:00010010(1=0001,2=0010,合起来就是00010010)所以BCDD0K1Y0这条指令就是将D0中的值转为BCD码,然后送到K1Y0这个单元中。2、BIN指令BIN码就是二进制编码,比如十进制数的12,用BIN码表示就是1100,(12=8+4,8=1000,4=100,合起来就是1100)所以BIND0K1Y0这条指令就是将D0中的值转为BIN码,然后送到K1Y0这个单元中。二、条件跳转指令CJ当执行条件跳转指令CJ指令时,跳过CJ指令和指针标号之间的程序,见图4。当X30接通时,跳转到P20处执行该行及以后程序,如果X30不接通,则跳转不执行,程序按原顺序执行。指令可用的有效指针范围为P0~P127。图4CJ指令应用示例执行跳转指令CJ后,对于不被执行的指令,即使输入零件状态发生改变,输出元件的状态也维持不变。三.子程序调用指令图5CALL指令示例子程序调用CALL指令的操作数为P0~P127,占用3个程序步。需与子程序返回指令SRET(无操作数)配合使用,见图5。若X0接通,则转到标号P10处去执行子程序。当执行到子程序结束SRET指令时,返回到CALL指令的下一步执行。使用子程序调用与返回指令时应注意转移标号不能重复,也不可与跳转指令的标号重复。子程序调用可以嵌套调用,3最多可达5级嵌套。FEND是主程序结束指令,无操作数,占用1个程序步。表示主程序结束,当执行到FEND时,PLC进行输入/输出处理,监视定时器刷新,完成后返回起始步。二、CMP指令和ZCP指令1.CMP指令(一个数的比较)图6CMP指令示例比较CMP指令有3个操作数,其中是将2个源操作数相比较,将比较结果送到目标操作数中,见图6示例。当X0接通时,比较K100和C10当前值的大小,分三种情况分别接通M0、M1、M2中一个辅助继电器,另二个辅助继电器则不接通。若X0不接通,则CMP指令也不执行。2.ZCP指令(一个区间的比较)区间比较ZCP指令是将1个源数据与2个源源数据相比较,比较结果将影响目标存储器的数据状态,见图7。当X0接通时,根据C30与K100、K120之间的比较结果,分别对M3、M4、M5进行赋值。图7ZCP指令示例4三、交替指令ALTALT是交替指令,一次触发时为ON,再一次触发就OFF,再触发又ON,如此交替下去;但注意ALT是连续执行型的,就是说,当X20常ON时(执行条件一直接通),程序每一个扫描周期都ALT都要执行一次。若只想只执行一个扫描周期,即每X20接通一次时ALT只变化一次,这要用带脉冲的指令ALTP即:当按一下时X20时,Y20为ON并一直保持,再按一下X20时,Y20为OFF并一直保持。要特别注意连续执行型ALT和脉冲执行型ALTP,一般来说,脉冲执行型ALTP才是我们要的效果。ALT同ALTP的区别:一个是脉冲带P的,只在一个扫描周期执行一次一个是每个周期都执行;意思是,执行条件一直接通时,ALTP只执行一个扫描周期(执行条件上升沿时),ALT在每个扫描周期都执行。四、七段译码指令SEGD七段译码指令SEGD(P)下图2所示,将[S.]指定元件的低4位所确定的十六进制数(0~F)经译码后存于[D.]指定的元件中,以驱动七段显示器,就是说,要将D1里的数转化为十六进制后显示出来。如SEGDk1k2y0数码管就显示数字1(因为十进制1,变为十六进制也是1)SEGDk10k2y0数码管显示字母A(因为十进制k10,变为十六进制为A)五、区间复位指令ZRST区间复位指令ZRST,指令代码为FNC40,其功能是将[D1·]、[D2·]指定的元件号范围内的同类元件成批复位,目标操作数可取T、C、D或Y、M、S。[D1·]、[D2·]指定的元件应为同类元件,[D1·]的元件号应小于[D2·]的元件号。若[D1·]的元件号大于[D2·]的元件号,则只有[D1·]指定的元件被复位。如图1所示,M8002在PLC运行开始瞬间为ON,M500~M599、C235~C255、S0~S127均被复位。5ZRST成批复位指令,比如ZRSTY0Y7,就是把Y0到Y7的8个输出一起复位
本文标题:几个PLC功能指令的理解
链接地址:https://www.777doc.com/doc-7305157 .html