北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章530 浏览8076787

看完这篇文章搞懂S7-300/400PLC的寄存器和累加器

有读者反馈说搞不清楚西门子S7-300/400PLC的寄存器和累加器有什么区别?今天这篇文章我们就来谈谈这个话题。

cover.jpg首先,我们说的寄存器和累加器,都是属于S7-300/400的CPU模块内部的组成部分。

寄存器,英文名称:Register,是CPU的高速存储单元,用来暂时存储CPU运算时所需要的指令、数据、地址等信息。CPU中有各种各样的寄存器,比如状态字寄存器,地址寄存器,数据块寄存器等等,而今天的主角:累加器,其实也是寄存器的一种。

累加器,英文名称:Accumulator,简写:ACCU,是用于处理字节、字或双字的寄存器,其长度为32位(4个字节)。在S7-300中有两个累加器,ACCU1和ACCU2;在S7-400中有四个累加器,ACCU1~ACCU4;绝大多数的语句表指令的执行都需要累加器的参与,将操作数放入到累加器,进行运算保存中间结果,然后再将运算结果从累加器传送到某个存储区。

说到这里,不得不说两个指令:装载(L)和传送(T);

装载(L)指令用来将一个字节,字或者双字装载到累加器1(ACCU1)中,而累加器1(ACCU1)中原来的数据,将保存到累加器2(ACCU2)中。如果使用两次装载指令,则累加器2ACCU2)中将存储第一次的操作数,比如下面这两条指令:

l.png

执行完第一条后,ACCU1的值为MW100的值;执行完第二条后,ACCU1的值为MW102的值,ACCU2的值为MW100的值;

传送(T)指令用来将累加器1(ACCU1)中的值保存到相应的存储区,比如下面的指令:

t.png

装载(L)指令将MW100的值装载到累加器1中(ACCU1)中,然后传送指令(T)将累加器1(ACCU1中的值保存到MW104中,从而实现了MW100值的复制功能。

本章小结:寄存器是CPU的高速存储单元,用来暂时存储CPU运算时所需要的指令、数据、地址等信息,CPU中有各种各样的寄存器;累加器是寄存器的一种,其主要功能是用来对操作数进行运算(保存中间结果)并处理运算的结果。

相关参考文章:

S7-1200硬件篇之读懂CPU的内部存储区

官网提供本文PDF版本下载:


已经过安全软件检测无毒,请您放心下载。

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论