常用三菱PLC数据处理指令讲解
很多学员在刚接触三菱PLC之前可能接触的都是FANUC、西门子、海德汉等,对于三菱不怎么熟悉,有些指令数据看起来可能比较难理解。那么,现在我们就三菱使用频度较高的一些数据类处理指令再做一个详细的了解。
什么叫数据处理指令?
数据处理指令含批复位指令、编、译码指令及平均值计算等指令。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某一置 1 位的位码的编译。主要包含指令如下:
1、区间复位指令
区间复位指令ZRST也称成批复位指令,是将操作数D1~D2之间的同类位元件成批复位。指令格式如图(1)所示,在PLC上电后的第一个扫描周期内,利用M8002的初始化脉冲信号,给指定范围的数据寄存器、计数器及辅助继电器全部复位为零状态。
区间复位指令使用时应注意:目标操作数可以是Y、M、S、T、C、D,但是一般不能对32位软元件进行区间复位,但对于32位计数器C200-C234,也可以应用RAST指令进行复位。
2、编码指令
编码 ENCO(P)指令的编号为FNC42,编码指令的功能是根据2n个输入位的状态进行编码,将结果存放到目标元件中。通过控制软元件的输出,从而来操控某个地址里的数据。它是将源操作数为1的最高位位置存放到目标寄存器D中,只有16位运算。若指定的源元件中为1的位不止一个,则只有最高位的1有效。
当X1有效时执行编码指令,将[S.]中最高位的1(M3)所在位数(4)放入目标元件D10中,即把011放入D10的低3位。
编码指令的源操作数和目标操作数可以是位元件,也可以是字元件。当源的操作数是字元件时,可以是T、C、D、V和Z;源的操作数是位元件时,可以是X、Y、M和S。目标元件可取T、C、D、V和Z。编码指令为16位指令,占7个程序步。
3、译码指令
编码和译码他们的指令功能是相对的,编码指令是通过控制软元件的输出,从而来操控某个地址里的数据。而译码指令则和它完全相反,译码是通过改变某个地址的数据来控制软元件状态输出。
n=3则表示[S.]源操作数为3位,即X0、X1、X2。其状态为二进制数,当值为011时相当于十进制3,则由目标操作数M7 - M0组成的8位二进制数的第三位M3被置1,其余各位为0。如果为000,则M0被置1。用译码指令可通过[ D.]中的数值来控制元件的ON/OFF。
译码DECO (P)指令的编号为FNC41。功能是根据n位输入的状态对2n个输出进行译码。它是将目标元件的某一位置1,其他位置0,置1位的位置由操作数的十进制码决定。
4、ON位数统计与ON位判别指令
ON位数统计指令SUM (D) SUM(P)指令的编号为FNC43,该指令是用来统计指定元件中1的个数。而ON位判别指令BON (D)BON(P)指令的编号为FNC44。它的功能是检测指定元件中的指定位是否为1。
在操作ON位数统计指令时,当X0有效时执行SUM指令,将源操作数D0中1的个数送入目标操作数[D2中,若D0中没有1,则零标志M8020将置1。
在操作ON位判别指令时,当X1为有效时执行BON指令,由K4决定检测的是源操作数D10的第4位,当检测结果为1时,则目标操作数M0=1,否则M0=0。
SUM指令源操作数可取所有数据类型,目标操作数可取KnY,KnM,KnS,T,C,D,V和Z。16位运算时占5个程序步,32位运算则占9个程序步。
BON指令源操作数也可取所有数据类型,目标操作数可取Y、M和S。进行16位运算,占7程序步,n=0~15;32位运算时则占13个程序步,n=0~31。
5、平均值指令
平均值指令MEAN是将S中指定的n个源操作数据的平均值存入目标操作数D中,舍去余数,若程序中指定的n值超出1~64的范围将会出错。
平均值指令源操作数可取KnX、KnY 、KnM 、Kns 、T 、C 和D,目标操作数可取KnY 、KnM 、Kns 、T 、C 、D、V和Z,n=1~64。MEAN(P)只有16为操作数,占7个程序步。
6、报警器置位与复位指令
报警器置位指令ANS(P)和报警器复位指令ANR(P)的编号分别为FNC46 和FNC47。如果X0和X1同时为ON超过1S,那么S900置1;当X0或X1其中一项变为OFF,虽然定时器复位,但S900仍保持1不变;如果在1S内X0或X1再次变为OFF就是定时器复位。当X2接通时,则将S900~S999之间被置1的报警器复位。如果有多于1个的报警器被置1,则元件号最低的那个报警器被复位。
报警器置位指令ANS(Annunciator Set)的源操作数为T0~T199,目标操作数为S900~S999,n=1~32 767(定时器以100ms为单位设定)。报警器复位指令ANR(Annunciator Reset)无操作数。
7、二进制平方根指令
二进制平方根指令(D)SQR(P)的编号为FNC48。如图7所示,当X0有效时,则将存放在D45中的数开平方,结果存放在D123中(结果只取整数)。
SQR指令源操作数可取K、H、D,数据需大于0,目标操作数为D。16位运算占5个程序步,32位运算占9个程序步。
8、二进制整数→二进制浮点数转换指令
二进制整数→二进制浮点数转换指令(D)FLT(P)的编号为FNC49。当X1有效时,将存入D10中的数据转换成浮点数并存入D12中。
使用FLT指令时应注意:源和目标操作数均为D,16位操作占5个程序步,32位占9个程序步。