plc位、字节、字、双字、有符号、⽆符号数据类型的关系
plc位、字节、字、双字、有符号、⽆符号数据类型的关系
前⾔:很多同学在PLC开发过程中,因为数据类型选择错误⽽出现得到的数据和期望的数据不⼀致的情况,例如:我们在读取模拟量采集读数的时候,可能会发现数据⼩于32767时都是对的,但是⼀旦⼤于这个值就变成了负数;还有些时候,PLC在和第三⽅采集器通信时,会出现接收的数据顺序和发送⽅数据存在⾼低位颠倒的情况,这是怎么回事呢,让我们来⼀起来解开这⾥的谜团。
位:最⼩的存储单位,⾮0则1,表达两个状态。
字节:每8个位组成⼀个字节。这样⼀个字节可以表达2的8次⽅(256)个状态,⼤于256个状态怎么表⽰?那就字。plc的组成
字:2个字节组成⼀个字,有16个位。这样⼀个字可以表达2的16次⽅(65536)个状态,⼤于65536个状态怎么表⽰? 那就⽤双字。
双字:2个字组成⼀个双字,有32个位。这样⼀个双字可以表达2的32次⽅(429496729状态)。
双整(32位⼜称双字)=2个整数(2*16位)
整数(16位⼜称字)=2个字节(2*8位)
字节(8位)=8个位
举个例⼦说明,以西门⼦为例:
VD0(双整)=VW0,VW1(整数)=VB0,VB1,VB2,VB3(字)=V0.0~V3.7(位)⼀共32个位所以称32位双整!
西门⼦表达⽐较特殊,理解如下:
例如:VB100 B表⽰1个字节=8个位
8个位为VB100.0--VB100.7, ⼀个字节是VB100。
VW100 W表⽰2个字节=16个位 =字 16个位为VB100.0--VB100.7,VB100.8--VB100.15,
⼆个字节(字)是VB100,VB101.
VD100 D表⽰4个字节=32个位=双字 32个位为VB100.0--VB100.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。
⽆符号整数⼗进制数值范围 0到65535
⼗六进制数值范围16#0000到16#FFFF
有符号整数⼗进制数值范围 -32768到+32767
⼗六进制数值范围16#8000到16#7FFF
1、⽆符号整数和有符号整数之分?
⼀个16位数,分为WORD数据类型与INT数据类型。前者⽆符号,后者为有符号。
通常情况下WORD⽤于逻辑运算,INT⽤于数学运算;即WORD与INT在⽤法上没有什么区别(WORD可做数学运算,INT也可作逻辑运算)。
2、如vw100我怎么让它成为⽆符号整数寄存器?
不是什么寄存器,寄存器的概念在此不做解释。vw100如果做为WORD数据类型就是⽆符号。
3、WORD数据类型与INT数据类型数据范围:
WORD数据:0-65535;
INT数据类型:-32768-+32767.。
4、如果数值超过65535怎么办呢?
同上所述,原理⼀样,只不过数类型变成DWORD和DINT⽽已。
以上内容由深圳市综科智控科技开发有限公司整理编辑:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论