三菱FX/Q系列PLC工程实例详解: 5.2.1 区间比较指令ZCP(FNC11) |
您所在的位置:网站首页 › 三菱xch指令实例 › 三菱FX/Q系列PLC工程实例详解: 5.2.1 区间比较指令ZCP(FNC11) |
5.2 相关知识点 本节主要介绍区间比较指令、高速计数器的区间比较/置位指令、速度检测指令和边沿信号指令,并介绍了BFM寄存器及其写入/读出指令等相关知识。 5.2.1 区间比较指令ZCP(FNC11) (1)指令格式 该指令的指令名称、助记符、功能号、操作数及程序步长见表5-1。 表5-1 区间比较指令表
(2)指令说明 区间比较指令ZCP使用说明如图5-3所示。它是将一个数据[S.]与两个源数据[S1.]、[S2.]进行代数比较,比较结果影响目标存储到操作数[D.]中。X0为“ON”,C1的当前值与K100和K120比较,若C1<K100,则M0=1;若K100≤C1≤K120时,则M1=1;若C1>K120时,则M2=1。区间比较指令的数据均为二进制数,且带符号位比较。
图5-3 区间比较指令使用说明 5.2.2 高速计数器区间比较指令HSZ(FNC55) (1)指令格式 该指令的指令名称、助记符、功能号、操作数及程序步长见表5-2。 表5-2 高速计数器区间比较指令表
(2)指令说明 高速计数器区间比较指令(HSZ)与传送比较功能指令组中的区间比较指令(ZCP)相似。图5-4所示为高速计数器区间比较指令功能说明。当X0合上后,C251计数器的值大小与K1000和K2000比较,满足下列条件时,相应的Y0、Y1、Y2有输出。
图5-4 高速计数器区间比较指令功能说明 当K1000>C251时,Y0=ON,Y1=OFF,Y2=OFF; 当K1000≤C251≤K2000时,Y0=OFF,Y1=ON,Y2=OFF; 当C251>K2000时,Y0=OFF,Yl=OFF,Y2=ON。 HSZ指令是32位专用指令,所以必须以DHSZ指令输入。此外Y0、Y1、Y2的动作仅仅是在计数器C251有脉冲信号输入,其当前值从999~1000或1999~2000变化时,输出Y0、Y1、Y2才有变化。因此在图5-5所示中,若没有脉冲输入,即使X0=ON时,给C251传送K3000,即C251=K3000,输出Y2也不会变为“ON”。
图5-5 脉冲输入指令功能说明 5.2.3 高速计数器置位指令HSCS(FNC53) (1)指令格式 该指令的指令名称、助记符、功能号、操作数及程序步长见表5-3。 表5-3 高速计数器置位指令表
(2)指令说明 图5-6所示为高速计数器置位指令功能说明。X0为1时,高速计数器C255的当前值由99变为100,或由101变为100,Y0立即置“1”。该指令仅有32位指令操作,即DHSCS操作。
图5-6 高速计数器置位指令功能说明 5.2.4 速度检测指令SPD(FNC56) (1)指令格式 该指令的指令名称、助记符、功能号、操作数及程序步长见表5-4。 表5-4 速度检测指令表
(2)指令说明 速度检测指令是用来检测在给定时间内编码器脉冲个数的指令。当执行条件满足时,执行速度检测指令,[S1.]指定输入点,[S2.]指定计数时间,单位为ms。[D.]共有3个单元指定存放计数结果。其中D0存放计数个数,D1存放计数当前值,D2存放剩余时间。 通过测定,转速N 即可利用下述公式求出。
5.2.5 边沿信号指令PLS、PLF (1)指令格式 该组指令的功能、电路表示和可编程元件以及所占的程序步见表5-5。 表5-5 边沿信号指令表
(2)指令说明 PLS用于将指令信号的上升沿进行微分,并将微分结果(接通一个扫描周期的脉冲)送到PLS指令后面所指定的目标编程元件中。在图5-7中,X0即为PLS指令所要进行微分的信号,M0为目标编程元件。 PLF用于将指令信号的下降沿进行微分,并将微分结果(接通一个扫描周期的脉冲)送到PLF指令后面所指定的目标编程元件中。在图5-7中,X1即为PLF指令所要进行微分的信号,M1为目标编程元件。
图5-7 PLS、PLF指令功能说明 5.2.6 缓冲寄存器(BFM)介绍 FX-4AD模拟量模块内部有一个数据缓冲寄存器(BFM)区,它由32个16位的寄存器组成,编号为BFM#0~#31,其内容与作用如表5-6所示。数据缓冲寄存器区中的内容可以通过PLC的FROM和TO指令来读、写。 表5-6 FX-4AD缓冲寄存器(BFM)的分配
5.2.7 BFM写入指令TO(FNC79) (1)指令格式 该指令的指令名称、助记符、功能号、操作数和程序步长见表5-7。 表5-7 特殊功能模块数据写入指令表
(2)指令说明 该指令为PLC向特殊功能模块缓冲器BFM写入数据的指令。当条件满足时,将PLC指定的传送源数据送至特殊功能模块中指定的BFM号中,传送字数在指令中给定。 m 1 表示特殊功能模块号,m 1 =0~7。 m 2 表示缓冲器首元件号,m 2 =0~31。 n 表示待传送数据的字数,n =1~16(16位),M =1~32(32位)。 FROM和TO指令是特殊功能模块编程必须使用的指令。 TOP为脉冲执行型指令。当进行32位数据写入时,采用DTO指令。 5.2.8 BFM读出指令FROM(FNC78) (1)指令格式 该指令的指令名称、助记符、功能号、操作数和程序步长见表5-8。 表5-8 特殊功能模块数据读出指令表
(2)指令说明 该指令为特殊功能模块缓冲存储器数据读出指令。当执行条件满足时,通过FROM指令将编号为m 1 的特殊功能模块从模块缓冲存储器(BFM)编号为m 2 开始的n 个数据读入PLC,并存入[D.]指定元件中的n 个数据寄存器中。 m 1 表示特殊功能模块号,m 1 =0~7。 m 2 表示缓冲寄存器(BFM)号,m 2 =0~32767。 n 表示待传送数据的字节数,n =1~32767。 接在FX 2N 基本单元右边扩展总线上的功能模块(例如模拟量输入单元、模拟量输出单元、高速计数器单元等),从最靠近基本单元那个开始,顺次编号0~7。 FROMP为脉冲执行型指令。当进行32位数据读出时,采用DFROM指令。 5.2.9 减法、除法、乘法指令SUB(FNC21)、DIV(FNC23)、MUL(FNC22) (1)指令格式 这3个指令的指令名称、助记符、功能号、操作数及程序步长见表5-9。 表5-9 减法指令、除法指令、乘法指令表
(2)指令说明 ① 减法指令(FNC21)。 减法指令SUB将[S1.]指定的元件中的数减去[S2.]指定的元件中的数,将结果送到[D.]指定的目标元件。图5-8中的X1由“OFF”变为“ON”时,执行(D0)-2→(D0)。因运算结果送入存放源操作数的D0,故必须使用脉冲执行方式(即在指令后面加P)。
图5-8 算术运算指令 ② 乘法指令(FNC22)。 16位乘法指令MUL将源元件中的二进制数相乘,结果(32位)送入指定的目标元件。图5-8中的X2为“ON”时,执行(D0)×(D2)→(D5、D4),乘积的低位字送到D4,高位字送到D5。32位乘法的结果为64位,只能用两个字节分别监视运算结果的高32位和低32位。目标元件(例如KnM)的位数如果小于运算结果的位数,只能保存结果的低位。 ③ 除法指令(FNC23)。 除法指令DIV用[S1.]除以[S2.],商送到目标元件,余数送到[D.]的下一个元件。如图5-8中的X3为“ON”时,执行32位除法运算,(D7、D6)/(D9、D8),商送到D3、D2,余数送到D5、D4。如果除数只有一个字(假设放到D8中),32位除法运算之前应先将除数的高位字D9清零。 若除数为零则出错,不执行该指令。若位元件被指定为目标元件,不能获得余数,商和余数的最高位为符号位。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |