2字节十六进制浮点数 qt_PLC位,字节,字,双字之间的联系(学PLC必须会的)...

本文介绍了PLC编程中位、字节、字、双字的概念及其相互关系。通过举例说明了西门子PLC中如何表示和使用这些数据单位,包括它们的存储和表达方式。
摘要由CSDN通过智能技术生成

分布图:

0e49fdd1ee6257800c596d5dcf6424aa.png

位/字节/字/双字分布图

最小的存储单位,非0则1,表达两个状态。

X000就是一个位,Y000也是位。

字节有8个位,一个字节有256个状态。

字节

每8个位组成一个字节。

2个字节组成一个字,有16个位。

双字

2个字组成一个双字,有32个位。这样个双字可以表达2的32次方(429496729状态)。

  • 双整(32位又称双字)=2个整数(2*16位)
  • 整数(16位又称字)=2个字节(2*8位)
  • 字节(8位)=8个位

举个例子说明,以西门子为例:

VDO (双整) =VwO,Vw1 (整数) =VBO, VB1, VB2, VB3(字) =V0.0~V3.7(位)一共32个位所以称32位双整!

西门子表达比较特殊,理解如下:

例如:VB100 B表示1个字节=8个位

8个位为VB100.0--VB 100.7,一个字节是VB100

VW100 W表示2个字节=16个位=字

16个位为VB100.0--VB100.7,VB100.8--VB100.15

二个字节(字)是VB100, VB101.

VD100: D表示4个字节=32个位=双字

32个位为VB100.0-VB 100.7,VB100.8--VB100.15

VB100.16-- VB100.23,VB100.24--VB100.32。

4个字节(双字)是VB100, B101,VB102, VB103。

一个32位组成的双字,其0-31位共32位用VD10表示的话,

那么要表达0-15位组成的字,就是VW12;

要表达16-31位组成的字,就是VW10;

要表达0-7位组成的字节,就是VB13;

要表达8-15位组成的字节,就是 VB12;

要表达16-23位组成的字节,就是VB11;

要表达24-31位组成的字节,就是VB10。

西门子表达比较特殊,理解如下:实数,就是浮点数,可以理解为三菱PLC带小数点的数 据如 1.5 100.5整数,顾名思义就是没有小数点范围0-65535的双整数,范围0-4294967295浮点数,就是实数字符串可以理解为字母"ABCDEFH"。
将32十六进制浮点数转换为十进制浮点数的方法如下: 1. 将32十六进制浮点数分为三个部分:符号、指数和尾数。 2. 将符号转换为十进制数,如果符号为1,表示负数,将其乘以-1。 3. 将指数转换为十进制数。如果指数全为0或全为1,则表示特殊值,具体情况需要根据尾数来确定。如果指数不全为0或全为1,则需要减去一个偏移量(127),然后将结果转换为十进制数。 4. 将尾数转换为十进制数。尾数表示浮点数的小数部分,需要将其转换为二进制小数,然后乘以2的指数的值(如果指数为正数,则乘以2的指数的值;如果指数为负数,则除以2的指数的值),最后将结果转换为十进制数。 5. 将符号、指数和尾数的结果组合起来,得到最终的十进制浮点数。 例如,将32十六进制浮点数0x40490FDB转换为十进制浮点数的步骤如下: 1. 符号为0,表示正数;指数为0x049,尾数为0x0FDB。 2. 符号为0,不需要乘以-1。 3. 指数为0x049,需要减去偏移量127,得到0x049 - 127 = -78,然后将结果转换为十进制数,得到-78。 4. 尾数为0x0FDB,需要将其转换为二进制小数,得到0.11111011011011。由于指数为负数,所以需要除以2的78次方,得到0.0000000000000000000000000000000000000000000000000000000000000000112513。最后将其转换为十进制数,得到1.121513。 5. 将符号、指数和尾数的结果组合起来,得到最终的十进制浮点数,为1.121513 x 2^(-78)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值