PLC数据存储方式.ppt
- 格式:ppt
- 大小:639.52 KB
- 文档页数:28
PLC的数据存储结构在我们西门子PLC当中主要有,我们的I区,Q区,M 区,T区(定时器),C区(计数器)。
还有的就是V存储区(它是PLC内部数据存储区,也是按8进制分配如:v0.0-v0.7 .v1.0-v1.7)现在来看一下它们的结构。
1.位(BOOL\BITE)对于位它只存在‘0’和‘1’两种状态表现形式,类似于开关。
0代表断开,1代表接通。
如:M0.0,Q0.0,I0.0,…都是位的一种。
现在来看一下I0.0的位,当I0.0为‘0’时如下图:现在再来看一下I0.0为‘1’时如下图:同理,我们的M0.0,Q0.0,I0.0,都是这样的。
这就是位状态结构。
2.字节(BYTE)1个字节=8个位如:QB0,QB1IB0,IB1MB0,MB1VB0,VB1如何解释上面这句1个字节=8个位如图:1是一个I0.0的位转换为2进制就是一个‘0’那么在2里是不是发现,当写入的地址是IB0时我们的二进制里显示了8个‘0’,也就是说有8个位。
同理QB0,QB1IB0,IB1MB0,MB1VB0,VB1都是一样的含有8个位。
我们可以往VB0里写入数值比如说写入30如下图:数据范围字节:有符号-128-127无符号0-2553.字(WORD)1个字=2个字节=16个位如:QW0,QW2,QW4VW0,VW2,VW4MW0,MW2,MW4QW0/ \QB0 QB1/ \ / \Q0.7-Q0.0 Q1.7- Q1.0这个就是我们一个分配图、Q1.7-Q1.0,为低位,Q0.7-Q0.0,为高位。
记住这个格式。
数据范围:字有符号-32768-32767无符号0-655354.双字(DWORD)1个双字=2个字=4个字节=32位如下图:QD0/ \QW0 QW2/ \ / \ QB0 QB1 QB2 QB3/ \ / \Q0.7-Q0.0 Q1.7- Q1.0如上图所示,有些人就问为什么是QW0,QW2.为什么不写QW1!!注意看下面是不是有QB0和QB1.那么我如果在写QW1是不是QW1含QB1和QB2那么是不是QB1和QB1重复了。
位是计算机存储数据的最小单位。
用来存储二进制数的 1 和 0。
8位二进制数组成一个字节(Byte),其中第0位为最低位(LSB),第7位为最高位(MSB)。
1.位、字节、字与双字S7-200 PLC的数据存储方式IB0IB1IB2IB3IB4IB5IB6IB7IB8IB9IB10IB11IB12IB13IB14IB15位位是计算机存储数据的最小单位。
用来存储二进制数的 1 和 0。
8位二进制数组成一个字节(Byte),其中第0位为最低位(LSB),第7位为最高位(MSB)。
1.位、字节、字与双字S7-200 PLC的数据存储方式1 0 0 0 1 1 0 1一个字节(B)7 6 5 4 3 2 1 0LSBMSB位(bit)S7-200 PLC的数据存储方式位存储单元的地址由字节地址和位地址组成。
例如:IB3——I3.0~I3.7I3.5—— I为区域标示符, 表示输入继电器,字节地址为 3,位地址为 5IB0IB1IB2IB3IB4IB5IB6IB7IB8IB9IB10IB11IB12IB13IB14IB15I3.5相邻的两个字节组成一个字(Word)。
如QW0是由QB0和QB1组成的一个字。
相邻的两个字组成一个双字(Double Word)。
即一个双字由相邻的4个字节组成。
如双字VD100由VB100~VB103组成。
S7-200 PLC的数据存储方式15 QB0 8 7 QB1 031 VB100 VB101 VB102 VB103 0字QW0MSB(15) LSB(0)双字VD100MSB(31) LSB(0)W•寻址方式:直接寻址、间接寻址。
•位寻址:输入继电器(I)、输出继电器(Q)、位存储器(M)、特殊存储器(SM)、局部变量存储器(L)、变量存储器(V)、顺序控制继电器(S),如 I3.5。
•特殊器件寻址定时器(T)、计数器(C)、高速计数器(HC)、(编号寻址):累加器(AC),如T37,C20。
三菱PLC⾥类似数组的数据存储⽅式实现功能:数据先进的先出,⽐如将1、2、3依次存⼊D0、D1、D2,⽬前D0(1)、D1(2)、D2(3),取第⼀次数据D1之后D0(2)、D1(3)、D2(0),取第⼆次数据D1之后D0(3)、D1(0)、D2(0),即把数据寄存器D变成了⼀维数组。
⼀、组合⼀些基础的指令实现
⾸先需要了解⼀下变址寄存器(V、Z)、简单的流程控制指令(call、fend、P、sret)、逻辑运算指令(inc)、特殊软元件(M8000、M8002)
1、主程序
2、⼦程序存数据
3、⼦程序取数据
后⾯查看⼿册,发现了⼀个更⽅便的指令来实现,归类到移位指令的FIFO(file in file out)
⼆、FIFO指令实现
先看看这个指令的例⼦:
这个更加简单,K相当于定义数组长度,把D200的值存到D1(从D1开始依次往后),D0为当前“数组”的数据个数;D300是取数据的。
如有什么错误,不吝赐教。