1.计算机是怎么存储数据的?
计算机系统是一个二维的世界,我们看到的美景、视频、图片,还有听到的声音等信息,在计算机内部都是以“0”、“1”二进制形式存储的,最小的存储单元位通常位一个字节(8个比特位:8bit),1bit位就是存储元(晶体管构成门电路,门电路构成锁存器或触发器,锁存器或触发器构成存储元),存储元为高电平(+5V)的时候存储的状态就是二进制“1”,存储元为低电平(0V)的时候,存储的状态就是二进制“0”,无数的存储单元构成了存储区域,就能存储大量的数据了,这里我们可以把存储区域可以理解为一个居民小区。
一个字节存储单元
而根据CPU读写数据速度的不同,存储区域又可以划分为不同的存储区,相当于居民小区里有很多幢居民楼(进一步理解,可以将居民楼里的房间理解为存储元),距离小区门口近的居民楼,进出小区自然是又快又方便。同理,距离CPU路程越近的存储区,其数据的访问速度也会越快,这块存储区我们称为寄存器,也是价格最贵的一块存储区。
各种存储区域
2.1200数据存储区类型
PLC(可编程控制器)也是一个小型的计算机,它的CPU内部有用于PLC程序、数据和组态信息保存的装载存储器,有用于程序运行的工作存储器(相当于PC的运行内存RAM),有用于非易失性地存储限量的工作存储器值的保持性存储器。而用于用户程序在执行期间数据存储的地方称为数据存储区,这片存储区也是集成在CPU内部的,包括以下几大类:
表1:数据存储区划分
上表中的I、Q、M等为存储器的标识符(相当于居民楼的楼号,比如“21幢”);这里的“强制”,是指输入端子的外接的开关能越过I存储区直接作用于程序,而不是先将开关的状态复制到I存储区,再等到下一个扫描周期作用于程序的执行(不知道您理解了没,就好比一个人不做电梯,直接从10楼跳下来了,很暴躁)。同样的,对于Q存储区的强制物理输出点,就是程序运算的输出结果,直接作用到输出端子上,直接、立刻控制设备运行,而不先经过Q存储区等下一个周期再作用了,虽然PLC的一个扫描周期时间很短很短。“保持性”是指数据存储区存储的数据再掉电后不丢失,这个断电保存的区域大小可以自己设置,指示这个区域需要是连续的,且有上限。
3.西门子1200PLC寻址方式
上面说了,程序在执行的过程中需要读写数据,而读写数据的第一步就是寻址(址:数据的地址,PLC中所有能访问的数据都有地址,就像每个人都有一个身份证一样),寻址方式分为:按位寻址、按字节寻址,按字寻址和按双字寻址,在介绍寻址当时之前,先简单看下西门子1200PLC的数据类型,如下图:
表2:1200PLC数据类型
接下来以8个字节的M存储区为列,讲解寻址类型
(1)按位寻址
按位寻址
按位寻址就是一次访问一个存储元的存储值,上图黑色存储元在Byte2字节Bit2位处,那么对他的寻址(访问)方式就是M2.2,“M”表示存储器的标识符,第一个“2”表示字节号,第二个“2”表示位号。
(2)按字节寻址
按字节寻址
按字节寻址就是一次访问或者读写一个字节大小(8个bit位)的存储区,上图中绿色区域为Byte3,对他的寻址就是MB3,“M”表示存储器的标识符,“B”表示为按字(Byte)节寻址,“3”表示字节号。
(3)按字寻址
按字寻址
按双字寻址就是一次访问或者读写2个字节(16个bit位),上图中绿色和蓝色存储区的寻址方式分别位MW1和MW5,“M”表示存储器的标识符,“W”表示为按字(Word)寻址,“1”和“5”表示字节号。
(4)按双字寻址
按双字寻址
按双字寻址就是一次访问或者读写4个字节(32个bit位)的数据,上图中绿色和蓝色区域的寻址方式分别位MD0和MD4,“M”表示存储器的标识符,“D”表示为按双子(Double Word)寻址,“0”和“4”表示字节号。
4.寻址举例
输送带启停控制程序
上图书输送带启动控制梯形图,程序运行时,每个扫描周期都会对I和Q存储器寻址,比如,当IO.0寻址的值为“1”,则常开触点闭合,若此时急停按钮时闭合的(急停按钮一般用常一对闭触点),则输出线圈Q0.0闭合,Q存储器0字节0位这个存储元就被写入“1”,这个存储元的“1”值会在下一个扫描周期开始时将PLC的Q0.0这个输出端子接通,KM接触器线圈得电,主电路接通,电机工作。