算术运算指令共有32条,其中二进制数(BIN)算术运算指令和BCD算术运算指令各16条,这类指令规律性很强,因此,书中仅对其规律加以总结分析,掌握规律后,结合表7-36和表7-37,不难掌握这类指令。
表7-36 BIN(二进制)数据算术运算指令及操作数
(续)
表7-37 BCD算术运算指令及操作数
(续)
1.指令分类
按照进位制可分为二进制BIN算术运算指令和BCD码算术运算指令,各为16条指令,后者在指令中增加大写字母“B”以示区别。这两类指令除码制不同外,概念及格式上是一一对应的,甚至在指令功能编号上,均是相差20。对于同样的运算,在BIN码指令中,参与运算的是16位或32位二进制数,而在BCD码指令中,参与运算的是4位或8位BCD码数据,对应的也是16位或32位二进制数。如[F20+S,D]和[F40 B+S,D],前者表示将S和D中的16位二进制(BIN)数相加,结果送到D中去,后者表示将S和D中的4位BCD码数据相加,结果送到D中去。这两条指令在功能上十分类似,仅是操作数采用的码制不同,其规律性是显而易见的。
按照参与运算的数据字长(位数)可以分为单字(16bit)和双字(32bit)指令,后者在助记符中以大写字母“D”区别,在FP1的其他指令中也是采用这种方式。如[F25-S,D]和[F26 D-S,D],前者是16位的减法运算,可表示为(D)一(S)→(D),即将D寄存器中的数减去常数S或S寄存器中的数,然后将结果存到D寄存器中;后者为32位减法运算,这时虽然只有低位寄存器被指定,操作数寄存器的高位连续的寄存器就要自动参与计算,可以表示为(D+1,D)一(S+l,S)→(D+1,D),含义是将(D+1,D)两个连续寄存器中的32位数据减去常数S或(S+1,S)两个连续寄存器中的32位数据,结果存于(D+1,D)中。
按照运算规则可分为加、减、乘、除四则运算,以及加1、减1共6种基本运算。其中,加1和减1可以看做是加、减运算的特例,执行步数为3步,而普通加、减运算执行步数最少也为5步,因此,在有些程序中适当选用加1和减1指令可起到提高扫描速度的作用。
按照参与运算的操作数的多少可分为一操作数、二操作数和三操作数。一个操作数的情况仅见于加1和减1指令,类似于递增或递减计数器的功能。二操作数的情况仅用于加、减运算,以D表示被加数或被减数,以S表示加数或减数,同时运算结果直接存于D中。三操作数则分别用于加、减、乘、除四种运算,以S1表示被加(减、乘、除)数,以S2表示加(减、乘、除)数,运算结果存于D中。
2.操作数的数据范围
1)16位二进制数:-32768~32767或H8000~H7FFF。(www.xing528.com)
2)32位二进制数:-2147483648~2147483647或H80000000~H7FFFFFFF。
3)4位BCD码:0~9999。
4)8位BCD码:0~99999999。
3.运算标志
算术运算要影响标志继电器,包括特殊内部继电器R9008、R9009和R900B。这里仅对影响情况做简单概括,详细情况需要结合具体的指令,参考手册学习掌握。
1)R9008:错误标志。当有操作错误发生时,R9008接通一个扫描周期,并把发生错误的地址存入DT9018中。
2)R9009:进位、借位或溢出标志。当运算结果溢出或由移位指令将其置1时,R9009接通一个扫描周期。
3)R900B:0结果标志。当比较指令中比较结果相同,或是算术运算结果为0时,R900B接通一个扫描周期。
4.注意事项
算术运算一般都是一次性的,而PLC采用的是扫描执行方式,因此该类指令常常和微分指令(DF)联合使用。下面举例对算术指令加以说明。
例7-22 用算术运算指令完成下列算式,各步结果存放在DT0~DT6中要求X1闭合时开始运算,X0闭合时各单元清零,且清零优先。
解:使用二进制(BIN)运算指令实现时,梯形图如图7-28所示。同样的功能也可采用BCD码运算指令实现。
图7-28 算术运算指令综合示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。