plc位、字节、字、双字、有符号、无符号的关系

以下内容由深圳市综科智控科技开发有限公司编辑整理 2021/08/18

前言:很多同学在PLC开发过程中,因为数据类型选择错误而出现得到的数据和期望的数据不一致的情况,例如:我们在读取模拟量采集读数的时候,可能会发现数据小于32767时都是对的,但是一旦大于这个值就变成了负数;还有些时候,PLC在和第三方采集器通信时,会出现接收的数据顺序和发送方数据存在高低位颠倒的情况,这是怎么回事呢,让我们来一起来解开这里的谜团。

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

字节:每8个位组成一个字节。这样一个字节可以表达2的8次方(256)个状态,大于256个状态怎么表示?那就字。

字: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而已。

plc位、字节、字、双字、有符号、无符号数据类型的关系相关推荐

  1. java 无符号转有符号_java有符号无符号的转换

    数据处理中常常遇到基本数据类型的操作,java都是有符号的数据,而与下位机通信中常常遇到无符号的比如uint8, uint16,uint32等等 1.为了完成这个功能还专门采用ByteBuffer的方 ...

  2. 警告warningC4018有符号/无符号不匹配

    C++警告 warning C4018: "<": 有符号/无符号不匹配 警告代码如下: for (int i = 0; i<matchePoints.size(); ...

  3. 猪宝宝问题(有符号 无符号类型 整形提升)

    问题描述: int main() {unsigned = 1;//无符号signed char y = -1;//有符号if (x > y)printf("x>y\n" ...

  4. 解决警告——有符号 无符号不匹配

    转:https://blog.csdn.net/lxw907304340/article/details/47399207 解决警告--warning C4018: "<": ...

  5. LinuxC64位操作系统下数据类型大小及字、字节、双字

    字长(字) 字长:同一时间处理二进制位数 字长通常为16.32.64位,与计算机位数相同 1字 = 2字节 = 16位 字节 1字节 = 8位二进制 1字节分配一个存储地址 双字 1双字 = 2字 = ...

  6. 字节字双字地址的区别

    字节:一个字节等于8位,[7:0]. 字:相邻的两字节组成一个字,表示一个无符号数,字为16位,[15:0]. 双字:相邻的两个字组成一个双字,可以表示一个无符号数,双字为32位,[31:0].

  7. 计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算...

    部分转载自:https://blog.csdn.net/kebi007/article/details/89741960 一.负数的二进制位表示法 原码:一个整数按照绝对值的大小转换成的二进制数,称为 ...

  8. 负数在计算机中的表示+有符号无符号的区别+负数按位运算

    部分转载自:https://blog.csdn.net/kebi007/article/details/89741960 一.负数的二进制位表示法 原码:一个整数按照绝对值的大小转换成的二进制数,称为 ...

  9. 【MIPS汇编】ADDI,ADDIU,ADD,ADDU的区别、有符号无符号的谬误

    ADDI.ADDIU:加立即数,区别在于是否检测溢出. Format: ADDI rt, rs, immediate To add a constant to a 32-bit integer. If ...

  10. PLC位,字节,字,双字对应关系

最新文章

  1. typescript调用javascript URI.js
  2. YOLOF 速度和效果均超过YOLOv4的检测模型
  3. windows 10配置VS+MPI编程环境
  4. 谷歌数据中心采用机器人销毁硬盘驱动器
  5. 手机抓包app_Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢
  6. Product Long text - children usage
  7. LeetCode 26. Remove Duplicates from Sorted Array
  8. mysql 两个数相加_LeetCode 01两数之和02两数相加
  9. cms的html调用,工作笔记三,phpcms几中HTML标签的调用
  10. matplotlib交互模式与pycharm单独Figure设置
  11. HDU1175(dfs)
  12. 从 AVFrame 中取出帧(YUV)保存为 Mat 格式
  13. 组合数学+概率,期望+生成函数一文全精通
  14. 深入Android系统(一)Build系统
  15. mysql怎么初始化自增值_MySql中重新设置AUTO_INCREMENT自增值方法
  16. win11延迟高 win11有延迟如何解决?
  17. javascript 简繁转换
  18. Win11安卓子系统(WSA)怎么卸载?
  19. 模式识别的概念、方法及应用
  20. Ant Design中的表格中key的处理

热门文章

  1. 7-18 斐波那契数列 (10 分)
  2. Python中的 for-else 语法
  3. oracle11grac listener,oracle11g rac listener offline
  4. Java源码解析库对比:javaparser、qdox、spoon
  5. Meetme遇到的问题
  6. Hbase中的Column Family
  7. python:XML处理模块
  8. mysql foreignkey设置_mysql学习问题-Foreign key constraint is incorrectly formed
  9. libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)
  10. final 和 abstract