首页 理论教育 算术指令:加、减、乘、除和整数转BCD

算术指令:加、减、乘、除和整数转BCD

时间:2023-06-15 理论教育 版权反馈
【摘要】:算术指令属于输出指令。大多数算术指令使用三个操作数:源A、源B和目标值。算术运算指令执行时,会根据运算结果对控制器中的系统标志位进行更新。表4-16 算术指令功能表1.加法指令ADD指令的梯形图符号表示为ADD指令将源A和源B的值相加,相加的结果和值存放到目的地址内。表4-17 算术标志位的变化7.整数转换成BCD码TOD指令的梯形图符号表示为TOD指令把16位整数值转换成BCD码。

算术指令:加、减、乘、除和整数转BCD

算术指令属于输出指令。当梯级条件为真时,执行指定的算术运算。大多数算术指令使用三个操作数:源A、源B和目标值。使用两个源值执行数学运算,将结果存储在目标值中,如果运算结果超出控制器的极限值,则置位上溢出或下溢出状态位。

算术运算指令执行时,会根据运算结果对控制器中的系统标志位进行更新。与算术运算相关的主要标志位有:进位标志位S:0/0、溢出标志位S:0/1、零标志位S:0/2和符号标志位S:0/3。算术指令主要功能见表4-16。

表4-16 算术指令功能表

978-7-111-47412-8-Chapter04-66.jpg

1.加法指令(ADD)

ADD指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-67.jpg

ADD指令将源A和源B的值相加,相加的结果和值存放到目的地址内。

分析图4-22所示梯形图程序,当按钮0由假变真时,执行一次加法指令,将N7:2与N7:4相加,结果放到N7:2中,如果结果大于32767,将发生溢出,S:0/1被置位。梯形图程序中,ONS指令是单触发指令,它使按钮0由假变真时,后面的输出指令只执行一次。如果去掉ONS指令,按钮0由假变真后,后面的输出指令在程序每次扫描时都会执行。

978-7-111-47412-8-Chapter04-68.jpg

图4-22 ADD加法指令应用举例

2.减法指令(SUB)

SUB指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-69.jpg

SUB指令使源A的值减去源B的值,计算结果值存放到目的地址内。

3.乘法指令(MUL)

MUL指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-70.jpg

MUL指令使源A的值乘以源B的值,计算结果存放到目的地址内。对于浮点数运算,运算MUL运算结果不影响算术寄存器S:13和S:14;如果是整数运算,则算术运算寄存器存储乘法计算的结果;在源A和源B两数相乘发生溢出时,目的地址内的数据是32767,但算术运算寄存器是32位,其中保持的结果是有效的。

例如:如果乘数是10000,被乘数是4,计算结果存放在整数地址N7:2内,运算结果等于40000,超出16位二进制数的最大值,此时N7:2中存放的结果是32767,如果S:2/14=0,则算术运算寄存器S:14、S:13中的结果是40000。由此可见,控制器发生溢出时,运算寄存器内的结果还是有效的。

4.除法指令(DIV)

DIV指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-71.jpg

DIV指令使源A的值除以源B的值,商四舍五入存放在目的地址内。不整除的商存放在算术运算寄存器的高位字S:14中,余数存放在算术运算寄存器的低位有效字S:13中。

例如:如果A数据是5,B数据是2,则目的寄存器中是3,且是S:14中为2,S:13中为5。

例如:如果除数是100,被除数是3,商四舍五入为33放入目的地址中;不整除的商存放在算术运算寄存器的高位字S:14中,余数1存放在算术运算寄存器的低位有效字S:13中。

5.二次方根(SQR)(www.xing528.com)

SQR指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-72.jpg

SQR指令计算源值绝对值的二次方根,结果四舍五入存放在目的地址内。SQR指令在计算负数的二次方根时不会出现溢出,所以在应用时首先使用比较指令检测源值是否为正数。

6.取反指令(NEG)

NEG指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-73.jpg

NEG指令将源数据的符号改变后存放到目的地址内。例如,如果源值是8,目的数据将是-8。该指令中的两个数据都必须是地址,不能是常数。

ADD、SUB、MUL、DIV、NEG指令执行时的结果对算术标志位的影响见表4-17。

表4-17 算术标志位的变化

978-7-111-47412-8-Chapter04-74.jpg

7.整数转换成BCD码(TOD)

TOD指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-75.jpg

TOD指令把16位整数值转换成BCD码。如果输入的整数值是负数,则转换其绝对值。

8.BCD码转换成整数(FRD)

FRD指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-76.jpg

FRD指令把BCD码转换成16位整数值。如果源数据不符合BCD码格式则发生处理器出错。

9.格雷码转换指令(GCD)

GCD指令的梯形图符号表示为

978-7-111-47412-8-Chapter04-77.jpg

GCD指令将格雷码源数转换为整数值,并将其放到目标地址中。如果该格雷码输入是负的(高位被设置),则目标被设置为32767,溢出标志位S:0/1被置位。一些编码器的输出信号是格雷码格式的数据,使用该指令可以将采集到的编码器信号转换为常用的整数值。

绝对式编码器可以精确测量旋转角度或转速,但绝对式编码器输出的信号是格雷码,PLC采集到格雷码信号后,需要进行格式转换,变成自然二进制后才能进行运算和处理。格雷码又叫循环二进制码或反射二进制码,是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数-模转换器转换成模拟信号,但某些情况,例如从00000011转换成00000100时,3个位都发生变化,使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。表4-18为几种自然二进制码与格雷码的对照表。

表4-18 二进制与格雷码对照表

978-7-111-47412-8-Chapter04-78.jpg

二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈