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

科技   2025-01-30 18:02   四川  

更多精彩,点击关注“PLC狂人”

导读

 

我们都知道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是低字节,但是属于高地址。


文章来源:技成培训网原创,作者:眭相建;未经授权禁止转载,违者必究!留言处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的……

↓↓↓

扫码领工控全套资料包

手把手教你用博图V17编写一个PLC程序,新手也能看懂!

2025-01-07

【案例分享】基于FX3U的运料小车手动半自动全自动案例

2025-01-06

干货分享!博图库文件的新建、打开、归档和恢复~

2025-01-05

收藏 | 2024年精选工控技术文章汇总 ,干货来了!

2025-01-04

点分享

点收藏

点点赞

点在看

PLC狂人
垂直于PLC领域,专注PLC编程技术分享!涵盖:PLC、变频器、触摸屏、伺服驱动器、电工、机器人、视觉等知识!
 最新文章