天天看点

超好理解|一文搞懂数值在CPU是如何存储的

导读

我们都知道PLC是一台工业微型计算机,因此所有的数据在PLC中都是以二进制数的形式存储,因此不同的数据类型所存储的数据不同,同时根据不同的数据,所能表示的二进制位也有所不同。

应用举例

下面通过一个例子充分理解数据的存储方式。

例:若V3.5=1,V1.0=1 VB2=10 VB0=5

求V0.1=?、V2.3=?、VB1=?、VB3=?、VW0=?、 VD0=?

1求V0.1的值

VB0有V0.0-V0.7八个位组成,其中V0.0为低位,V0.7为高位;根据已知条件VB0=5,因此把每个位以二进制格式展开后,再采用位权的方法以十进制的形式进行展开排列,此时便知道每个位的值是多少,VB0=5,则V0.0和V0.2为1。如图1-35所示得知V0.1=0。

超好理解|一文搞懂数值在CPU是如何存储的

图1-35 数据排列

2求V2.3的值

V2.3为VB2中的一个位,VB2有V2.0-V2.7八个位组成,根据已知条件VB2=10,因此把每个位以二进制格式展开后,再采用位权的方法以十进制的形式进行展开排列,此时便知道每个位的值是多少,VB0=10,则V2.0和V2.3为1。如图1-35所示得知V2.3=1。

3求VB1的值

VB1有V1.0-V1.7八个位组成,根据已知条件V1.0=1,因此把每个位以二进制格式展开后,再采用位权的方法以十进制的形式进行展开排列,此时便知道每个位的值是多少,V1.0=1,则只有V1.0一个位为1。如图1-36所示得知VB1=1。

超好理解|一文搞懂数值在CPU是如何存储的

图1-36 VB1数据排列

4求VB3的值

VB3有V3.0-V3.7八个位组成,根据已知条件V3.5=1,因此把每个位以二进制格式展开后,再采用位权的方法以十进制的形式进行展开排列,此时便知道每个位的值是多少,V3.5=1,则只有V3.5一个位为1。如图1-36所示得知VB3=32。

5求VW0的值

VW0有VB0和VB1两个字节组成,已知条件VB0=5、V1.0=1,根据上述的结果把每个字节中的每个位以二进制格式展开,再采用位权的方法以十进制的形式进行展开排列,此时便知道每个位的值各是多少,如图1-37所示得知VW0由1024+256+1组合,最终VW0=1281。

超好理解|一文搞懂数值在CPU是如何存储的

图1-37 VW0数据排列

注意:当涉及到多字节组合寻址时,遵循“高地址,低字节”的规律。因此VB0是高地址、低字节。

6求VD0的值

VD0有VB0、VB1、VB2、VB3四个字节组成,已知条件V3.5=1,V1.0=1 VB2=10 VB0=5,根据上述的结果把每个字节中的每个位以二进制格式展开,再进行4个二进制为一组进行8421BCD码换算成十进制数,如图1-38所示得知最终VD0=16#5010A20。

超好理解|一文搞懂数值在CPU是如何存储的

图1-37 VD0数据排列

总结

1、通过上面的示例我们能够发现,一个32位的存储器中会包含16位的字、8位的字节、以及一个BOOL位,因为在使用过程中需要特别注意地址的重叠。

2、当我们想导通某一个位或几个位时,写入对应字至存储器中就会有相应的输出。

3、在西门子的寻址方式中,遵循的是高地址低字节,比如VW0,VB0是低字节,但是属于高地址。

免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!

如何获取电气热门资料?

操作指引如下!

超好理解|一文搞懂数值在CPU是如何存储的

继续阅读