布尔量、字节、字、双字型、长字型在PLC编程中的应用和理解。这些内容我们是经常会用到的,所以需要狠熟悉!那么接下来我们拿时间累加器来举个栗子:
如上图所示,如果想将时间累加器Q0.5接通
需要I0.4接通、M5000.1处于关断的状态(FLASE)、3s的延时,这三个条件满足才可以。
那么相对应的数据类型我们可以看到:
I0.4、M5000.1、Q0.5都属于Bool变量(点位状态要么开,要么关),
T#3s那里填写的变量属于TIME、LTIME数据类型的时间变量
注:【time默认毫秒,ltime默认纳秒(1500支持)】
如果错误的将输入引脚PT填写为bool变量格式或者其他,就会像下图一样,程序会报错long是几个字节,变量格式无法与指令的数据类型相匹配。所以,在编写程序的时候一定要注意。
小知识:
如果不知道西门子程序块的引脚应该填写什么格式可以按F1,会弹出帮助文件,介绍各管脚的应用!你可以试一试哦!
关于位数据类型主要有布尔型(Bool)、字节型(Byte)、字型(Word)和双字型( DWord),对于S7-1500PLC,还支持长字型( LWord),而S7-300/400PLC仅支持前4种。
在位存储类型中,只表示各个位的状态是0(Flase)或1(Ture)。
其实可以理解成在内存里面存放的全是二进制代码。
而内存里面我们可以想象有很多“小格子”,每个“格子”中只能存放一个 0 或 1。
一个“小格子”就是一位,所以“位”要么是 0,要么是 1,不可能有比位更小的单位。
有的朋友可能会有这几个问题:
那么字节和位是什么关系呢?
8 个“小格子”就是一字节,即一字节等于 8 位。
那么为什么硬件所能访问的最小单位是字节,而不是位呢?
因为硬件是通过地址总线访问内存的,而地址是以字节为单位进行分配的,所以地址总线只能精确到字节。
那如何控制到它的某一位呢?
这个只能通过“位运算符”,即通过软件的方式来控制。
字节换算
常见的存储单位主要有bit(位)、B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)。它们之间主要有如下换算关系:
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
其中 B 是 Byte 的缩写。
比如计算机的内存是 4GB,那么它能存放多少个 0 或 1(即能存放多少位)呢?
答案是:4×1024×1024×1024×8 位。这就是 4GB 内存条所能存储的数据。
小常识:
比如你买了一个 500GB 的硬盘,但是真正显示出来的肯定没有 500GB。那么这是为什么呢?因为计量单位不一样!在买硬盘或 U 盘的时候,卖家所说的,包括包装盒上写的都是以 1000 为单位的,而计算机是以 1024 为单位的。
回归正题:
在PLC中
1位(Bit)= Bool
一个字节(Byte ,等于8位)=Byte
一个字(Word ,等于16位)= Word
一个双字(DoubleWord,32位)=DWord
长字型( Long Wordlong是几个字节,64位)=LWord
注意:一位Bool数据类型不能直接赋常数值。
通过以上的讲解想必大家对各数据类型都有更加深刻的认识了吧?
那么在PLC编写程序的时候你们就可以大展宏图了,加油!
●物流行业文章请看