数据处理指令包含批复位,编、译码指令及平均值计算指令等。相对于FNC10~FNC39的基本应用指令,FNC40~FNC49指令则能够进行更加复杂的处理或作为满足特殊用途的指令。这一类指令除ANS指令外均可采用连续和脉冲两种执行方式。
1.成批复位ZRST(FNC40)
成批复位ZRST是在两个指定的软元件之间执行成批复位,两个软元件必须为同类型元件。如图8-60所示。指令可以复位的软元件有:Y、M、S、T、C、D、R。
图8-60 区间复位指令应用例
使用ZRST指令注意事项:
1)[D1·]和[D2·]指定的应为同类元件。[D1·]指定的元件号应小于等于[D2·]指定的元件号。如[D1·]号>[D2·]号,则只有[D1·]指定的1点元件被复位。
2)虽然ZRST是16bit指令处理,[D1·]、[D2·]也可同时指定32bit计数器。但[D1·][D2·]中一个指定16bit计数器、另一个指定32bit计数器是不允许的。如图8-61所示。
图8-61 使用注意例
图8-62 解码指令示例
2.译码DECO FNC41
译码指令是将数字数据中数值转换成1点ON的指令,根据ON位的位置可以将位编号读成数值。译码指令示例如图8-62所示,指令执行情况如图8-63所示。指令中操作数说明见表8-5。
图8-63 示例指令执行情况
表8-5 指令中操作数说明
注:操作数n的取值范围为1~8,n=0时指令不处理。对于源操作数为n位,目标操作数为2n位。
图8-63中,因为源D10中的b1、b2、b3位为1,结果得到的数据为14(8+4+2),所以译码结果为M14位为1。
指令使用要点如下:
1)如果源中的位全部为“0”时,则目标中bit0=1。
2)[D]指定的目标是Y、M、S时,n的取值范围1≤n≤8,[D]的最大取值范围为28=256点。
3)[D·]指定的目标是T、C或D,n的取值范围1≤n≤4。[D]的最大取值范围为24=16点。
4)当执行条件OFF时,指令不执行。译码输出会保持之前的ON/OFF状态。
【例8-7】用功能指令组成1个八位选择开关。如图8-64所示。
图8-64 八位选择开关
3.编码ENCO FNC42
编码指令是求出数据中ON位的位置指令。编码指令应用示例如图8-65所示。指令中操作数说明见表8-6。
表8-6 指令中操作数说明
注:操作数n的取值范围为1~8,n=0时指令不处理。对于源操作数为2n位,目标操作数为n位。
图8-65 编码指令应用示例
指令使用技巧:
1)若[S·]指定的源是T、C、D、V或Z,应使n≤4。且其数据源为2n位(最大16位数据)。
2)若[S·]指定的源是X、Y、M、S,应使1≤n≤8。且其数据源为2n位。最大256位数据。
3)若指定源中为“1”的bit不止一处,则只有最高bit的“1”有效。若指定源中所有bit均为0,则出错。
4)如果源中最低位为1,则目标全部为0。(www.xing528.com)
5)当执行条件OFF时,指令不执行。编码输出中被置1的元件,即使在执行条件变为OFF后仍保持其状态到下一次执行该指令。
【例8-8】大数优先动作程序设计:当输入继电器X7~X0中有n个同时动作时,编号较大的优先。如图8-66所示,当X5、X3、X0同时动作时,则最大编码的输入继电器X5的有效,对应的M5=1。
图8-66 大数优先动作程序
4.ON总数SUM(FNC43)
SUM指令是计算指定源软元件的数据中有多少个为“1”(ON),并将结果送到目标中。ON总数指令应用如图8-67所示,指令中操作数对象软元件见表8-7。
图8-67中D10=K21847按二进制位分配后其中“1”的总数为9个,存入D20中(D20中的b0和b3位为1,所以D20=8+1=9)。
表8-7 操作数对象软元件
若[S]中没有为“1”的bit,则零标志M8020置1。指令条件OFF时不执行指令,但已动作的ON位数的输出会保持之前的ON/OFF的状态。
图8-67 ON总数指令应用
【例8-9】用4个开关分别在4个不同的地点控制一盏灯。如图8-68所示。
图8-68 4个开关分别在4个不同的地点控制一只灯
5.ON位判别BON(FNC44)
BON指令是检查软元件指定位的位置为ON还是OFF的指令。
BON指令应用如图8-69所示,若D20中的第15bit为ON,则M20变为ON。即使X0变为OFF,M20亦保持不变。
图8-69 ON位判别指令应用
6.平均值MEAN FNC45
MEAN指令是求数据的平均值指令。n个源数据的平均值送到指定目标中。平均值是指n个源数据的代数和被n除所得的商,余数略去。若元件超出范围,n的值会自动缩小以取允许范围内元件的平均值。平均值指令如图8-70所示。
图8-70 求平均值指令
若指定的n值超出1~64的范围,则出错。
7.报警器置位ANS FNC46/报警器复位ANR FNC47(略)
ANS是对信号报警器用的状态(S900~S999)进行置位用的指令。ANR是对信号报警器(S900~S999)中已经ON的最小编号进行复位。指令表现形式如图8-71所示。
图8-71中,如果X10接通时间超过15s(判定时间m=150×ms),S900就会置位,如果X10接通时间不到15s时,X10断开,定时器会自动复位。
图8-71 ANS/ANR指令表形式
如果X12接通,把置位的报警状态S900复位,如果有多个状态动作,复位编号最新的状态。
ANR指令要求用脉冲执行!
ANS指令在使用的时候还会用到以下相关软元件,见表8-8。
表8-8 ANS指令使用相关软元件
【例8-10】综合使用编程示例,如图8-72所示。
图8-72 报警指令使用示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。