首页 理论教育 如何使用累加器指令传送和操作数据?

如何使用累加器指令传送和操作数据?

时间:2023-06-17 理论教育 版权反馈
【摘要】:对累加器1、2进行数据的装载和传送,使用L、T就可以完成;对累加器3、4进行操作,必须使用累加器指令。累加器指令见表6-30。

如何使用累加器指令传送和操作数据?

累加器指令对累加器1(ACCU1)、累加器2(ACCU2)、累加器3(ACCU3)、累加器4(ACCU4)进行操作,并且只适合STL编程语言。S7-300 CPU只有累加器1和累加器2,S7-400 CPU具有4个累加器,累计器3、4的使用减少了中间运算变量的使用。对累加器1、2进行数据的装载和传送,使用L、T就可以完成;对累加器3、4进行操作,必须使用累加器指令。累加器指令见表6-30。

在前面已经介绍了累加器的使用,一个累加器占用32位,如果装载一个16位的字或整数数据,只占用累加器的低16位或低“字”,如果装载一个32位的双字、双整数、浮点数据,则将累加器占满,在下面示例程序说明中,ACCU N(1~4)表示累加器N,ACCU N—L表示累计器N的低16位。

1.TAK指令

TAK指令交换累加器1、2的内容,指令的使用参考下面的示例程序,示例程序中将两个值进行比较,然后使用值大的变量减值小的变量。

6-30 累加器指令

978-7-111-28718-6-Chapter06-105.jpg

978-7-111-28718-6-Chapter06-106.jpg

2.PUSH指令

PUSH指令在S7-300系列PLC CPU中使用时,将累加器1的值复制到累加器2中,累加器1中的值不变,指令在S7-400系列PLC CPU中使用时,将累加器3的值复制到累加器4中,将累加器2的值复制到累加器3中,将累加器1的值复制到累加器2中,累加器1中的值不变。

PUSH指令执行前后累加器中值的变化如下:

978-7-111-28718-6-Chapter06-107.jpg

指令的使用参考下面的示例程序:

978-7-111-28718-6-Chapter06-108.jpg

978-7-111-28718-6-Chapter06-109.jpg

3.POP指令

POP指令与PUSH指令复制的方向相反,在S7-300系列PLC CPU中使用时,将累加器2的值复制到累加器1中,累加器2中的值不变;指令在S7-400系列PLC CPU中使用时,将累加器2的值复制到累加器1中,将累加器3的值复制到累加器2中,将累加器4的值复制到累加器3中,累加器4中的值不变。POP指令执行前后累加器中值的变化如下:

978-7-111-28718-6-Chapter06-110.jpg

指令的使用参考下面的示例程序:

978-7-111-28718-6-Chapter06-111.jpg

4.ENT指令

ENT指令将累加器3的值复制到累加器4中,将累加器2的值复制到累加器3中,如果直接在L指令前使用,将运算的中间结果存储于ACCU3中。指令的使用参考下面的示例程序:(www.xing528.com)

978-7-111-28718-6-Chapter06-112.jpg

5.LEAVE指令

与ENT指令复制的方向相反,将累加器3的值复制到累加器2中,将累加器4的值复制到累加器3中,累加器1、4中的值不变。

6.INC与DEC指令

INC指令将累加器1低8位(ACCU 1-L-L)中存储的值加1(8位的整数值),DEC指令将累加器1低8位(ACCU 1-L-L)中存储的值减1(8位的整数值),累加器1中其他位保持不变,由于指令只对累加器1低8位进行操作,最大增减值为255。指令的使用参考下面的示例程序:

978-7-111-28718-6-Chapter06-113.jpg

7.+AR1与+AR2指令

+AR1指令将累加器1中的值装载到地址寄存器1中,+AR2指令将累加器1中的值装载到地址寄存器2中,指令后面可以直接定义地址指针,例如+AR1P#10.0,将P#10.0装载到地址寄存器1中,指令的使用参考下面的示例程序:

978-7-111-28718-6-Chapter06-114.jpg

8.CAW与CAD指令

CAW指令将累加器1低字中包含的两个字节相互转换,CAD指令将累加器1中包含的4个字节相互转换。

CAW指令执行前后累加器1中值的变化如下:

978-7-111-28718-6-Chapter06-115.jpg

CAD指令执行前后累加器1中值的变化如下:

978-7-111-28718-6-Chapter06-116.jpg

指令的使用参考下面的示例程序:

978-7-111-28718-6-Chapter06-117.jpg

978-7-111-28718-6-Chapter06-118.jpg

9.NOP 0、NOP 1与BLD指令

NOP 0、NOP 1、BLD指令用于LAD、FBD编程语言的显示,当LAD、FBD编程语言转换为STL编程语言时自动产生空指令,无实际意义。

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

我要反馈