1.区间复位指令
区间复位指令zrst(p)的编号为fnc40。它是将指定范围内的同类元件成批复位。如图1所示,当m8002由off→on时,位元件m500~m599成批复位,字元件c235~c255也成批复位。
图1 区间复位指令的使用
使用区间复位指令时应注意:
1)[d1.]和[d2.]可取y、m、s、t、c、d,且应为同类元件,同时[d1]的元件号应小于[d2]指定的元件号,若[d1]的元件号大于[d2]元件号,则只有[d1]指定元件被复位。
2)zrst指令只有16位处理,占5个程序步,但[d1.][d2.]也可以指定32位计数器。
2.译码和编码指令
(1)译码指令deco deco(p) 指令的编号为fnc41。如图2所示,n=3 则表示[s.]源操作数为3位,即为x0、x1、x2。其状态为二进制数,当值为011时相当于十进制3,则由目标操作数m7~m0组成的8位二进制数的第三位m3被置1,其余各位为0。如果为000则m0被置1。用译码指令可通过[d.]中的数值来控制元件的on/off。
图2 译码指令的使用
使用译码指令时应注意:
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个程序步。
(2)编码指令enco enco(p)指令的编号为fnc42。如图3所示,当x1有效时执行编码指令,将[s.]中最高位的1(m3)所在位数(4)放入目标元件d10中,即把011放入d10的低3位。
图3 编码指令的使用
使用编码指令时应注意:
1)源操作数是字元件时,可以是t、c、d、v和z;源操作数是位元件,可以是x、y、m和s。目标元件可取t、c、d、v和z。编码指令为16位指令,占7个程序步。
2)操作数为字元件时应使用n≦4,为位元件时则n=1~8,n=0时不作处理。
3)若指定源操作数中有多个1,则只有最高位的1有效。
3. on位数统计和on位判别指令
(1)on位数统计指令sum (d)sum(p)指令的编号为fnc43。该指令是用来统计指定元件中1的个数。如图4所示,当x0有效时执行sum指令,将源操作数d0中1的个数送入目标操作数[d2中,若d0中没有1,则零标志m8020将置1。
图4 on位数统计和on位判别指令的使用
使用sum指令时应注意:
1)源操作数可取所有数据类型,目标操作数可取kny,knm,kns,t,c,d,v和z。
2)16位运算时占5个程序步,32位运算则占9个程序步。
(2)on位判别指令bon (d)bon(p)指令的编号为fnc44。它的功能是检测指定元件中的指定位是否为1。如图3-56所示,当x1为有效时,执行bon指令,由k4决定检测的是源操作数d10的第4位,当检测结果为1时,则目标操作数m0=1,否则m0=0。
使用bon指令时应注意:
1)源操作数可取所有数据类型,目标操作数可取y、m和s。
2)进行16位运算,占7程序步,n=0~15;32位运算时则占13个程序步,n=0~31。
4.平均值指令
平均值指令(d)mean(p)的编号为fnc45。其作用是将n个源数据的平均值送到指定目标(余数省略),若程序中指定的n值超出1~64的范围将会出错。
5.报警器置位与复位指令
报警器置位指令ans(p)和报警器复位指令anr(p)的编号分别为fnc46 和fnc47。如图5所示,若x0和x1同时为on时超过1s,则s900置1;当x0或x1变为off,虽定时器复位,但s900仍保持1不变;若在1s内x0或x1再次变为off则定时器复位。当x2接通时,则将s900~s999之间被置1的报警器复位。若有多于1个的报警器被置1,则元件号最低的那个报警器被复位。
图5 报警器置位与复位指令的使用
使用报警器置位与复位指令时应注意:
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所示,当x0有效时,则将存放在d45中的数开平方,结果存放在d123中(结果只取整数)。
图6 二进制平方根指令的使用
使用sqr指令时应注意:
1)源操作数可取k、h、d,数据需大于0,目标操作数为d。
2)16位运算占5个程序步,32位运算占9个程序步。
7.二进制整数→二进制浮点数转换指令
二进制整数→二进制浮点数转换指令(d)flt(p)的编号为fnc49。如图7所示,当x1有效时,将存入d10中的数据转换成浮点数并存入d12中。
图7 二进制整数→二进制浮点数转换指令的使用
使用flt指令时应注意:
1)源和目标操作数均为d。
2)16位操作占5个程序步,32位占9个程序步。