数值在CPU存储的原理解析

处理器/DSP

892人已加入

描述

导读

我们都知道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。

存储器

图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。

存储器

图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。

存储器

图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。

存储器

图1-37 VD0数据排列

总结

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

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

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

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分