在之前的文章介绍了三菱FX5UPLC的数据传送指令(点击蓝字即可跳转),包括常用的和5U新增的指令,这一次就介绍一下比较运算指令吧,同样的会介绍常用的和新增的比较运算指令。
比较运算指令包括触点比较指令、比较指令CMP、区间比较指令ZCP、块数据比较指令BKCMP,其中BKCMP就是FX5UPLC新增的指令,下面我们分别介绍一下吧。
1、触点比较指令
触点比较指令是将s1中指定的软元件的BIN16位数据与s2中指定的软元件的BIN16位数据通过常开触点处理进行比较运算。包括有LD/AND/OR,即可以取单触点形式,可以是串联触点形式,或者是并联触点形式。
对于FX5UPLC的指令,跟FX3UPLC的指令区别在于,FX5U指令可以支持无符号数的处理,而FX3U不支持。所以大部分的指令中,如果指令旁边是带(_U),则说明该指令是处理无符号数的。16位无符号数是0~65535,32位无符号数是0~42949697295。
2、比较指令CMP
比较指令ZCP是比较s1中指定的软元件的BIN16位数据与s2中指定的软元件的BIN16位数据,根据结果(大于、等于,小于),(d)、(d)+1、(d)+2中的其中一个位将变为ON。
我们看下图的程序会比较容易理解,CMPD0 D2M0就是比较D0和D2的值的大小,当D0>D2时,是M0接通,使Y0输出为ON,当D0=D2时,是M1接通,使Y1输出为ON,当D0<D2时,是M2接通,使Y2输出为ON。
3、区间比较指令ZCP
区间比较指令ZCP将s1中数据与s2、s3中的数据分别进行比较,并根据比较结果(s3<s1,s1<=s3<=s2,s3>s2)置终址位元件d,d+1,d+2其中一个位为ON。
我们看下图的程序,比如做温度控制中的高温和低温报警,就可以利用ZCP指令。ZCPK30 K150 D0M10,就是当D0<30℃时,使Y0每隔1秒闪烁一次提示低温异常,当30℃<=D0<=150℃时,Y1点亮表示温度正常,当D0>150℃时,使Y2每隔1秒闪烁一次提示高温异常。
4、块数据比较指令BKCMP
块数据比较指令BKCMP是将s1中指定的软元件开始的n点的BIN16位数据与s2中指定的软元件开始的n点的BIN16位数据进行比较,将运算结果存储到d中指定的软元件中。比如BKCMP=D0 D10 M0D20,其中D20是软元件地址的个数,如果写入的是4,即D0~D3与D10~D13进行数据比较,如果满足比较条件则使对应的M0~M3输出为ON。