数据处理指令(FNC40~FNC49)见表6-10。
1.批复位指令
批复位指令或区间复位指令ZRST(P)的编号为FNC40,它将指定范围内的同类元件成批复位。批复位指令格式如图6-57所示。
表6-10 数据处理指令
使用区间复位指令时应注意:
1)[D1.]和[D2.]可取Y、M、S、T、C、D,且应为同类元件,同时[D1.]的元件号应小于[D2.]指定的元件号。若[D1.]的元件号大于[D2.]的元件号,则只有[D1.]指定元件被复位。
2)ZRST指令只有16位运算,占5个程序步,但[D1.]、[D2.]也可以指定32位计数器,见表6-11。
图6-57 批复位指令
表6-11 区间复位指令
【例6-24】 (见图6-58)
图6-58 区间复位指令
其他复位指令如图6-59所示。
图6-59 其他复位指令
2.译码和编码指令
1)译码指令DECO、DECO(P)指令的编号为FNC41。如图6-60所示,n=3表示[S.]源操作数为3位,即为X000、X001、X002。其状态为二进制数,当值为011时相当于十进制3,则由目标操作数M17~M10组成的8位二进制数的第三位M13被置1,其余各位为0。如果为000则M10被置1。用译码指令可通过[D.]中的数值来控制元件的ON/OFF。
源地址是1+2=3,因此从M10起第3位的M13变为1。源全部为0时,M10为1,如图6-61所示。
使用译码指令时应注意:
① 位源操作数可取X、T、M、S,位目标操作数可取Y、M、S,字源操作数可取K、H、T、C、D、V、Z,字目标操作数可取T、C、D。
② 若[D.]指定的目标元件是字元件T、C、D,则n≤4;若是位元件Y、M、S,则n=1~8。译码指令为16位指令,占7个程序步。
2)编码指令ENCO、ENCO(P)指令的编号为FNC42,如图6-62所示。
图6-60 译码指令
图6-61 译码指令使用
图6-62 编码指令使用
使用编码指令时应注意:
① 源操作数是字元件时,可以是T、C、D、V、Z;源操作数是位元件时,可以是X、Y、M、S。目标元件可取T、C、D、V、Z。编码指令为16位指令,占7个程序步。
② 操作数为字元件时应使用n≤4,为位元件时则n=1~8,n=0时不作处理。
③ 若指定源操作数中有多个1,则只有最高位的1有效。
3.ON位数统计和ON位判别指令
1)ON位数统计指令SUM、(D)SUM(P)指令的编号为FNC43,该指令用来统计指定元件中1的个数,如图6-63所示。
图6-63 ON位数统计指令
D0中1的个数存入D2中,无1时零位标志M8020会动作,如图6-64所示。
图6-64 ON位数统计指令执行结果
使用SUM指令时应注意:(www.xing528.com)
① 源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V、Z。
② 16位运算时占5个程序步,32位运算时则占9个程序步。
2)ON位判别指令BON(D)、BON(P)指令的编号为FNC44,它的功能是检测指定元件中的指定位是否为1。如图6-65所示,当X000有效时,执行BON指令,由K15决定检测的是源操作数D10的第15位;当检测结果为1时,则目标操作数M0=1,否则M0=0。
D10中的第15位为1(ON)时,M0动作;X000为OFF时M0不变化,如图6-66所示。
图6-65 ON位判别指令
图6-66 ON位判别指令执行结果
使用BON指令时应注意:
① 源操作数可取所有数据类型,目标操作数可取Y、M、S。
② 进行16位运算,占7程序步,n=0~15;32位运算时则占13个程序步,n=0~31。
4.平均值指令
平均值指令(D)MEAN(P)的编号为FNC45,其作用是将n个源数据的平均值送到指定目标(余数省略)。若程序中指定的n值超出1~64的范围,将会出错,如图6-67所示。
图6-67 平均值指令
5.报警器置位与复位指令
报警器置位指令ANS(P)和报警器复位指令ANR(P)的编号分别为FNC46和FNC47,报警器置位指令如图6-68所示。
如果X000和X001同时接通1s以上,则S900被置位;以后即使X000或X001为OFF时,S900仍保持动作状态。若不满1s,则X000或X001变为OFF时,报警器复位,如图6-69所示。
图6-68 报警器置位指令
图6-69 报警器复位指令
如果X003接通,则信号报警器S900~S999中正在动作的报警点被复位。如果同时有多个报警点动作,则复位最新的一个报警点。若将X003再次接通,则下一编号的状态被复位。若采用ANR指令,则在各扫描周期中按顺序复位。
使用报警器置位与复位指令时应注意:
1)ANS指令的源操作数为T0~T199,目标操作数为S900~S999,n=1~32767;ANR指令无操作数。
2)ANS指令为16位运算指令,占7个程序步;ANR指令为16位运算指令,占1个程序步。
3)ANR指令如果连续执行,则会按扫描周期依次逐个将报警器复位。
6.二进制数据开方运算指令
二进制平方根指令(D)SQR(P)的编号为FNC48,如图6-70所示。
使用SQR指令时应注意:
1)源操作数可取K、H、D,数据需大于0,目标操作数为D。
图6-70 二进制平方根指令
2)16位运算占5个程序步,32位运算占9个程序步。
7.二进制整数到二进制浮点数转换指令
二进制整数到二进制浮点数转换指令FLT、(D)FLT(P)的编号为FNC49,这个指令的逆变换指令是FNC129(INT),如图6-71所示。
图6-71 二进制整数到二进制浮点数转换指令
使用FLT指令时应注意:
1)源和目标操作数均为D。
2)16位运算占5个程序步,32位运算占9个程序步。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。