4.4.2 FX系列PLC功能指令介绍
FX2N系列PLC有丰富的功能指令,共有程序流向控制、传送与比较、算术与逻辑运算、循环与移位等19类功能指令。
1.程序流向控制类指令(FNC00~FNC09)
程序流向控制类指令如表4-2所示。
表4-2 程序流程指令表
续表
1)条件跳转指令CJ(P)
编号为FNC00,操作数为指针标号P0~P127,其中P63为END所在步序,不需标记。指针标号允许用变址寄存器修改。CJ和CJP都占3个程序步,指针标号占1步。
如图4-27所示,当X20接通时,则由CJ P9指令跳到标号为P9的指令处开始执行,跳过了程序的一部分,减少了扫描周期。如果X20断开,跳转不会执行,则程序按原顺序执行。
图4-27 跳转指令的使用
使用跳转指令时应注意:
(1)CJP指令表示为脉冲执行方式;
(2)在一个程序中一个标号只能出现一次,否则将出错;
(3)在跳转执行期间,即使被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态,因为跳转期间根本没有执行这段程序;
(4)如果在跳转开始时定时器和计数器已在工作,则在跳转执行期间它们将停止工作,到跳转条件不满足后又继续工作,但对于正在工作的定时器T192~T199和高速计数器C235~C255不管有无跳转仍连续工作;
(5)若积算定时器和计数器的复位(RST)指令在跳转区外,即使它们的线圈被跳转,但对它们的复位仍然有效。
2)与中断有关的指令
与中断有关的三条功能指令是:中断返回指令IRET,其编号为FNC03;中断允许指令EI,其编号为FNC04;中断禁止DI,其编号为FNC05。它们均无操作数,占用1个程序步。
PLC通常处于禁止中断状态,由EI和DI指令组成允许中断范围。在执行到该区间,如有中断源产生中断,CPU将暂停主程序执行转而执行中断服务程序。当遇到IRET时返回断点继续执行主程序。如图4-28所示,允许中断范围中若中断源X0有一个下降沿,则转入I000为标号的中断服务程序,但X0可否引起中断还受M8050控制,当X20有效时则M8050控制X0无法中断。
图4-28 中断指令的使用
使用中断相关指令时应注意:
(1)中断的优先级排队如下,如果多个中断依次发生,则以发生先后为序,即发生越早级别越高,如果多个中断源同时发出信号,则中断指针号越小优先级越高;
(2)当M8050~M8058为ON时,禁止执行相应I0~I8的中断,M8059为ON时则禁止所有计数器中断;
(3)无需中断禁止时,可只用EI指令,不必用DI指令;
(4)执行一个中断服务程序时,如果在中断服务程序中有EI和DI,可实现二级中断嵌套,否则禁止其他中断。
2.传送与比较类指令(FNC10~FNC19)
传送与比较类指令如表4-3所示。
表4-3 传送与比较类指令表
1)比较指令CMP
(D)CMP(P)指令的编号为FNC10,其功能是将源操作数[S1.]和源操作数[S2.]的数据进行比较,比较结果用目标元件[D.]的状态来表示。如图4-29所示,当X1为接通时,把常数100与C20的当前值进行比较,比较的结果送入M0~M2中。X1为OFF时不执行,M0~M2的状态也保持不变。
图4-29 比较指令的使用
使用比较指令CMP时应注意:
(1)[S1.]、[S2.]可取任意数据格式,目标操作数[D.]可取Y、M和S;
(2)所有的源数据都被看成二进制值处理。
2)传送指令MOV
(D)MOV(P)指令的编号为FNC12,该指令的功能是将源数据传送到指定的目标。如图4-30所示,当X0为ON时,则将[S.]中的数据K100传送到目标操作元件[D.]即D10中。在指令执行时,常数K100会自动转换成二进制数。当X0为OFF时,则指令不执行,数据保持不变。
图4-30 传送指令的使用
使用应用MOV指令时应注意:
(1)源操作数可取所有数据类型,标操作数可以是KnY、KnM、KnS、T、C、D、V、Z;
(2)16位运算时占5个程序步,32位运算时则占9个程序步。
3.算术和逻辑运算类指令(FNC20~FNC29)
算术和逻辑运算类指令如表4-4所示。
表4-4 算术和逻辑运算类指令表
续表
1)算术运算指令
(1)加法指令ADD (D)ADD(P)指令的编号为FNC20。其功能是将指定的源元件中的二进制数相加结果送到指定的目标元件中去。如图4-31所示,当X0为ON时,执行(D10)+(D12)→(D14)。
图4-31 加法指令的使用
(2)减法指令SUB (D)SUB(P)指令的编号为FNC21。其功能是将[S1.]指定元件中的内容以二进制形式减去[S2.]指定元件的内容,其结果存入由[D.]指定的元件中。如图4-32所示,当X0为ON时,执行(D10)—(D12)→(D14)。
图4-32 减法指令的使用
使用加法和减法指令时应该注意:
①操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z;
②16位运算占7个程序步,32位运算占13个程序步;
③数据为有符号二进制数,最高位为符号位(0为正,1为负);
④加法指令有三个标志:零标志(M8020)、借位标志(M8021)和进位标志(M8022)。当运算结果超过32 767(16位运算)或2 147 483 647(32位运算)则进位标志置1;当运算结果小于-32 767(16位运算)或-2 147 483 647(32位运算),借位标志就会置1。
2)逻辑运算类指令
逻辑与指令WAND、逻辑或指令WOR、逻辑异或指令WXOR和求补指令NEG的使用如图4-33所示。
图4-33 逻辑运算指令的使用
4.循环与移位类指令(FNC30~FNC39)
循环与移位类指令如表4-5所示。
表4-5 循环与移位类指令表
右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30和FNC31。执行这两条指令时,各位数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中,如图4-34所示。
图4-34 右、左循环移位指令的使用
使用ROR/ROL/RCR/RCL指令时应该注意:
(1)目标操作数可取KnY、KnM、KnS、T、C、D、V和Z,目标元件中指定位元件的组合只有在K4(16位)和K8(32位指令)时有效;
(2)16位指令占5个程序步,32位指令占9个程序步。
(3)用连续指令执行时,循环移位操作每个周期执行一次。
5.数据处理指令(FNC40~FNC49)
数据处理指令如表4-6所示。
表4-6 数据处理指令表
1)区间复位指令
区间复位指令ZRST(P)的编号为FNC40。其功能是将指定范围内的同类元件成批复位。如图4-35所示,当M8002由OFF→ON时,位元件M500~M599成批复位,字元件C235~C255也成批复位。
图4-35 区间复位指令的使用
使用区间复位指令时应注意:
(1)[D1.]和[D2.]可取Y、M、S、T、C、D,且应为同类元件,同时[D1]的元件号应小于[D2]指定的元件号,若[D1]的元件号大于[D2]元件号,则只有[D1]指定元件被复位;
(2)ZRST指令只有16位处理,占5个程序步,但[D1.][D2.]也可以指定32位计数器。
2)译码指令DECO
DECO(P)指令的编号为FNC41。如图4-36所示,n=3则表示[S.]源操作数为3位,即为X0、X1、X2。其状态为二进制数,当值为011时相当于十进制数3,则由目标操作数M7~M0组成的8位二进制数的第三位M3被置1,其余各位为0。如果为000则M0被置1。用译码指令可通过[D.]中的数值来控制元件的ON/OFF。
图4-36 译码指令的使用
使用译码指令时应注意:
(1)位源操作数可取X、T、M和S,位目标操作数可取Y、M和S,字源操作数可取K、H、T、C、D、V和Z,字目标操作数可取T,C和D;
(2)若[D.]指定的目标元件是字元件T、C、D,则n≤4;若是位元件Y、M、S,则n=1~8。译码指令为16位指令,占7个程序步。
6.高速处理指令(FNC50~FNC59)
高速处理指令如表4-7所示。
表4-7 高速处理指令表
1)和输入输出有关的指令
输入输出刷新指令REF REF(P)指令的编号为FNC50。FX系列PLC采用集中输入输出的方式。如果需要最新的输入信息,以及希望立即输出结果则必须使用该指令。如图4-37所示,当X0接通时,X10~X17共有8点将被刷新;当X1接通时,则Y0~Y7、Y10~Y17共有16点输出将被刷新。
图4-37 输入输出刷新指令的使用
使用REF指令时应注意:
①目标操作数为元件编号个位为0的X和Y,n应为8的整倍数;
②指令只要进行16位运算,占5个程序步。
2)高速计数器指令
(1)高速计数器置位指令HSCS DHSCS指令的编号为FNC53。它应用于高速计数器的置位,当计数器的当前值达到预置值时,计数器的输出触点立即动作。它采用了中断方式使置位和输出立即执行而与扫描周期无关。如图4-38所示,[S1.]为设定值(100),当高速计数器C255的当前值由99变100或由101变为100时,Y0都将立即置1。
图4-38 高速计数器指令的使用
(2)高速计数器比较复位指令HSCR DHSCR指令的编号为FNC54。如图4-38所示,当C254的当前值由199变为200或由201变为200时,则用中断的方式使Y10立即复位。
使用HSCS和HSCR时应注意:
①源操作数[S1.]可取所有数据类型,[S2.]为C235~C255,目标操作数可取Y、M和S;
②只有32位运算,占13个程序步。
③高速计数器区间比较指令HSZ DHSZ指令的编号为FNC55。如图4-38所示,其目标操作数为Y20、Y21和Y22。如果C251的当前值<K1000时,Y20为ON;K1000≤C251的当前值≤K1200时,Y21为ON;C251的当前值>K1200时,Y22为ON。
使用高速计数器区间比较指令时应注意:
①操作数[S1.]、[S2.]可取所有数据类型,[S.]为C235~C255,目标操作数[D.]可取Y、M、S;
②指令为32位操作,占17个程序步。
3)速度检测指令
速度检测指令的使用如图4-39所示。
图4-39 速度检测指令的使用
4)脉冲输出指令
脉冲输出指令的使用如图4-40所示。
图4-40 脉冲输出指令的使用
7.其他功能指令
除上述各种指令外,还有定时器指令、外部I/O设备指令、外围设备指令等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。