触点比较指令和比较指令的应用非常的广泛,一般的程序就有这2个指令的其中一条。我将说说他们的不同之处和应用方法。 触点比较的指令格式为:LD<> D0 D2这条指令的指令的含义是当数据寄存器D0里面的值不等于数据寄存器D2里值的时候导通。 LD<= D0 D2这条指令的含义是数据寄存器D0里面的值小于或者等于数据寄存器D2里面的值导通。 LD>= D0 D2这条指令的含义是数据寄存器D0里面的值大于或者等于数据寄存器D2里面的值导通。 LD= D0 D2这条指令的含义是数据寄存器D0里面的值等于数据寄存器D2里面的值导通。 什么LD表示在左母线开始,如果是串联LD的地方则为AND,并联则为OR。需注意的是这条指令可以是16位和32位运算,但不能位脉冲执行型。 比较指令CMP的应用: 这条指令格式为 CMP D0 D2 M0 他的含义是把D0和D2做比较,然后通过M0,M1,M2这3个输出,当D0里面的数据大于D2里面的数据则MO导通。当D0里面的数据等于D2里面的数据则M1导通。当D0里面的数据小于D2里面的数据则M2导通。这条指令可以为16位和32位运算也可以是脉冲执行型。如果是32位运算则DCMP D0 D2 M0. 如果为32位脉冲执行型则DCMP D0 D2 M0,须注意的是32位运算的时候占用的数据寄存器是4个数据寄存器,他们是D0.D1.D2.D3因为一个数据寄存器是16位连续2个数据寄存器才是32位。一旦作32位运算他会自动占用D0.D1.D2.D3这4个数据寄存器,因此特别注意不要在其他程序里不要向这4个数据寄存器里面写入数据,否则会出现未知的错误。还有一点注意的是脉冲执行型,如果是脉冲执行型则当执行条件满足时只执行这条指令1次,如果是连续执行型则每个扫描周期都执行所以必须注意。 |