『7x24小时有问必答』
1. Bool(位)类型
| 属性 | 说明 |
| 数据位 | Bool只可能是 0 / 1 |
| 数据大小| 1位 |
| X、Y点 | 8进制 |
  输入/输出区定义
输入区 X点:X0位、X1位、X2位...
输出区 Y点:Y0位、Y1位、Y2位...
> PLC对位操作:PLC可以直接对单个位(Bit)进行读写操作。
  2. Word(字)类型
|属性 | 说明 |
| 值的范围 | 0 ~ 65535 |
| 数据大小 | 16位 |
  X输入点与Word的关系
16个X点合成一个字(Word)
例如:X10、X12、X13、X14、X15、X16、X17、X0、X1、X2、X3、X4、X5、X6、X7、X11 组成一个16位输入字
理论上可表示为 DX0
> 注意:在三菱FX5U中**不允许使用 DX0,只能使用D区寄存器(D0, D1, D2)。
> 使用D区时,D0、D1...的大小都是 16位。
  3. D寄存器的位结构(D0拆解)
D0作为16位寄存器,可以拆解为16个独立的位(Bit)进行操作:
位编号:D0.15 D0.14 D0.13 D0.12 D0.11 D0.10 D0.9   D0.8 | D0.7   D0.6   D0.5   D0.4   D0.3   D0.2   D0.1   D0.0   所有就是D0,其实这样单独列出来就是二进制   D0也可以显示10进制或者16进制
可以对D0中的任意一位进行独立操作
可转化为16进制进行查看和计算
  4. DWord(双字)类型
| 属性 | 说明 |
| 值的范围 | 0 ~ 4294967295 |
| 数据大小 | 32位 |
存储方式:
当数据类型选择DWord时,写D0实际上包括 D0和D1(两个连续的16位寄存器)
D0为低16位,D1为高16位
  5. INT(整数)类型
| 属性 | 说明 |
| 值的范围| -32768 ~ +32767 |
| 数据大小 | 16位 |
  符号位说明
当数据为整数(INT)时:
D0.15位(最高位)表示符号位
   `1` 表示负号(-)
   `0` 表示正号(+)
  位结构图 示
位功能:D0.15 D0.14 D0.13 D0.12 D0.11 D0.10 D0.9   D0.8 | D0.7   D0.6   D0.5   D0.4   D0.3   D0.2   D0.1   D0.0
  6. DINT(双整数)类型
| 属性 | 说明 |
| 值的范围 | -2147483648 ~ +2147483647 |
| 数据大小 | 32位 |
> DINT使用两个连续的16位寄存器(如D0和D1)存储,最高位(第31位)为符号位。
  7. REAL(单精度实数/浮点数)类型
| 属性 | 说明 |
| 定义 | 有小数点的数 |
| 值的范围| -2^128 ~ -2^-126,0,2^-126 ~ 2^128 |
| 数据大小 | 32位 |
存储特点:
浮点数的存储方法与DWord存储方法不一样
结构比较复杂(包括符号位、指数位、尾数位),不要求掌握具体存储细节
  8. 数据存储 详解
  8.1 正数存储示例(数字10)
规定大小:16位
  十进制10的存储过程:
1. 十进制 10 转成二进制:`00000000 00001010`
2. 在寄存器中的位分布:
位编号: D0.15 D0.14 D0.13 D0.12 D0.11 D0.10 D0.9   D0.8 | D0.7   D0.6   D0.5   D0.4   D0.3   D0.2   D0.1   D0.0
二进制:    0       0       0       0       0       0       0       0    |    0       0       0       0       1       0       1       0
              [-------------------- 高位 --------------------]   [-------------------- 低位 --------------------]
说明:
  D0.15位为0,表示这是正数
其余位存储数值的二进制表示
  8.2 负数存储示例(数字-10)
规定大小:16位
  负数存储的核心原理:补码表示法
步骤1:将-10的绝对值(10)转换为二进制
10的二进制:`00000000 00001010`
步骤2:取反(0变1,1变0)
取反后:`11111111 11110101`
步骤3:加1
加1后:`11111111 11110110`
最终存储在寄存器中:
位编号: D0.15 D0.14 D0.13 D0.12 D0.11 D0.10 D0.9   D0.8 | D0.7   D0.6   D0.5   D0.4   D0.3   D0.2   D0.1   D0.0
二进制:    1       1       1       1       1       1       1       1    |    1       1       1       1       0       1       1       0
              [-------------------- 高位 --------------------]   [-------------------- 低位 --------------------]
验证:
  D0.15位为1,表示这是负数
将`11111111 11110110`转换为十进制:
先减1:`11111111 11110101`
再取反:`00000000 00001010` = 10
加上负号:-10
  9. 数据类型速查表
| 数据类型 | 数据大小 | 取值范围 | 符号位 |
| Bool | 1位 | 0 / 1 | 无 |
| Word | 16位 | 0 ~ 65535 | 无 |
| DWord | 32位 | 0 ~ 4294967295 | 无 |
| INT | 16位 | -32768 ~ +32767 | D0.15 |
| DINT | 32位 | -2147483648 ~ +2147483647 | 第31位 |
| REAL | 32位 | -2^128 ~ 2^128 | 有(浮点格式)|
  10. 关键要点总结
1. Bool类型:只有0和1两种状态,用于开关量控制
2. Word/DWord:无符号整数,用于计数、地址等
3. INT/DINT:有符号整数,最高位为符号位(补码存储)
4. REAL:浮点数,用于需要小数精度的场合
5. 负数存储:采用补码方式,便于计算机 进行加减运算
6.D寄存器:16位为基本单位,DWord和DINT占用连续两个寄存器
  11. 实际应用建议
开关量控制:使用Bool类型(X、Y、M点)
普通计数:使用Word类型(0~65535范围足够)
温度/压力等模拟量:使用INT或REAL类型
大数值计算:使用DINT或DWord类型
精确计算:使用REAL类型(注意浮点精度问题)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码