PLC编程存储地址都有哪些?寻址方式和编程技巧如何?
PLC的硬件主要由CPU、存储器、电源、I/O单元以及外部接口等部分组成,如图1所示。

图1 PLC组成
物理存储器
PLC使用的物理存储器有随机存取存储器(RAM)、只读存储器(ROM)、可电擦除可编程只读存储器(EEPROM)。CPU可以读、写随机存取存储器(RAM)。电源中断后,存储的信息将会丢失。RAM工作速度快,读写方便,价格便宜。只读存储器(ROM)的内容只能读出、不能写入。电源断电后,仍能保存存储器的内容。ROM一般用来存放PLC的操作系统。可以用编程装置对可电擦除可编程只读存储器(EEPROM)进行编程,其兼有ROM非易失性和RAM随机存取的优点,但是写入数据时间比RAM长得多,用来存放用户程序和断电时需要保存的重要数据。
1.系统程序存储器
系统程序存储器用来存放系统管理、用户指令解释等系统程序,由PLC制造厂家编写并在出厂时固化在ROM、EPROM或E2PROM中,用户不能进行修改。系统存储器是存放操作系统程序的,它使PLC具有基本的功能。
2.用户程序存储器
用户存储器是存放用户程序和数据的,它使PLC能完成用户的控制要求。用户程序存储器分为装载存储器和工作存储器。
装载存储器是非易失的,一般是EPROM、E2PROM或Flash存储器。下载用户程序是下载到PLC的装载存储器中,CPU运行用户程序时,将所有与执行相关的程序自动复制到工作存储器中,
装载存储器用于非易失性地存储用户程序、数据和组态。项目被下载到CPU后,首先存储在装载存储器中。每个CPU都具有内部装载存储器。该内部装载存储器的大小取决于所使用的CPU。该内部装载存储器也可以用外部存储卡来替代。如果未插入存储卡,CPU将使用内部装载存储器;如果插入了存储卡,CPU将使用该存储卡作为装载存储器。但是,可使用的外部装载存储器大小不能超过内部装载存储器的大小,即使插入的存储卡有更多空闲空间。该非易失性存储区能够在断电后继续保持数据。
对于S7-300/400系列 PLC,符号表、注释不能下载,仍然保存在编程设备中,而对于S7-1200 PLC,符号表、注释可以下载到装载存储器。
工作存储器是高速存取的RAM,工作存储器是易失性存储器(RAM),用于执行用户程序时存储用户项目的某些内容。CPU 会将一些项目内容从装载存储器复制到工作存储器中。存在易失性存储区的数据在断电后丢失,而在恢复供电时由CPU 恢复。
数据存储器也称为系统存储器,系统存储器是CPU为用户程序提供的存储组件,被划分为若干个地址区域。使用指令可以在相应地地址区内对数据直接进行寻址。系统存储器用于存放用户程序的操作数据,CPU的存储器分为不同的地址区,地址区包括过程映像输入区(I)、过程映像输出区(Q)、位存储区(M)、数据块(DB)、临时存储区(L)和诊断缓冲区等。存储区的地址区如表1所示。
表1 系统存储区的地址区

存储区的保持性如表2所示。只能强制外设输入和外设输出(表2)。在执行用户程序之前,强制值被用于输入映像存储区。在处理程序时,使用的是输入点的强制值。在写外设输出点时,强制值被送入输出映像存储区,输出值被强制覆盖。强制值在外设输出点输出,并被用于控制过程。
表2 存储区的保持性

寻址
二进制数的1位(bit)只有0和1两种不同的取值,可用来表示开关量(或称数字量)的两种不同的状态,如触点的断开和接通,线圈的通电和断电等。如果该位为1,则表示梯形图中对应的编程元件的线圈“通电”,其常开触点接通,常闭触点断开,反之相反。位数据的数据类型为BOOL(布尔)型。
8位二进制数组成1个字节(Byte),其中的第0位为最低位(LSB)、第7位为最高位(MSB)。两个字节组成1个字(Word),两个字组成1个双字(Double Word) 。如图2所示。

图2 数据构成
寻址是一个计算机术语,通俗的讲就是根据数据存放单元的地址找到该数据,或者是根据一个指定的地址将一个数据存放到该处。
1.存储器的地址表示格式
每个存储单元都有唯一的地址标识,用户程序根据地址就可以对存储单元的内容进行读、写。绝对地址由区标示符、位数标示符和数据的起始地址三个元素组成。
区标识符:I(输入映像存储区),Q(输出映像存储区), M(位存储区),
PI(外部输入),PQ(外部输出),T(定时器),C(计数器),
DB(数据块),L(临时局部数据存储器);
位数标识符有:X(位),B(字节),W(字、2字节),D(双字、4字节),
没有位数标识符的也是表示操作数的位数是1位。
数据的起始地址:如字节3或字3。
由于PLC物理存储器是以字节为单位,所以总是以字节单位来确定存储单元。
存储区位地址:其标识参数包括字节号与位号,用“点”分开。如图I6.7表示地址是存储单元IB6字节(字节号6)的第7号位。如图3所示。

图3 字节与位
存储区字地址或双字地址:它占存储区连续的2个字节或4个字节,标识参数总是用字或双字最低的字节号为基准标记,如图4所示。
存储区字节地址(MB):MB0、MB1、MB2、MB3
存储区字地址(MW):MW0(含MB0、MB1)
存储区双字地址(MD):MD0(含MB0、MB1、MB2、MB3)

图4 地址标识:字节、字、双字
不同区域中的位、字节、字、双字表示如图5所示。

图5 不同区域中的地址表示
字节与位,字和双字中的最高有效字节和最低有效字节,如图6所示。需要特别指出的是,图6中,MD100的最高有效字节为MB100,最低有效字节为MB103。要注意位置。最高有效位为M100.7,最低有效位为M103.0。

图6 位、字节、字、双字
(1)输入/输出映像存储(I/Q)区
I是数字量输入模块的输入信号状态,在每次循环扫描开始时,系统将它们存入过程映像区中的输入表(Process Image Input,PII)中,即每一循环扫描周期刷新一次,该区多用于开关量的输入信号。在循环扫描中,用户程序执行计算输出值,并将它们存入过程映像的输出表(Process Image Output,PIQ)。在循环扫描结束后,将过程映像输出表的内容写入数字量输出模块,通过输出模块将输出信号送给外部负载。用户程序访问PLC的输入(I)和输出(Q)地址区时,不是去读写数字信号模块中的信号状态,而是访问CPU中的输入/输出映像存储区。
I和Q可以以位(bit)、字节、字或双字为单位进行访问,例如I0.0、QB0、IW1和QD2。访问他们并不是访问输入\输出模块,而是访问存储器中的区域,所以叫映像。
(2)内部存储器标志位(M)存储器区
内部存储器标志位简称位存储器,用来保存控制逻辑的中间操作结果或其他控制信息。虽然名为“位存储器”,表示按位存取,但是也可以按字节、字或双字来存取,如M0.0、MB11、MW23、MD26。当按位存取时,它的作用相当于中间继电器。
(3)定时器(T)存储器区
定时器相当于继电器系统中的时间继电器。定时器(T)存储器区给定时器分配的字用于存储时间基值和时间值(0~999)。时间值可以用二进制或BCD码方式读取。
(4)计数器(C)存储器区
计数器用来累计其计数脉冲上升沿的次数,有加计数器、减计数器和加减计数器。计数器(C)存储器区给计数器分配的字用于存储计数当前值(0~999)。计数值可以用二进制或BCD码方式读取。
(5)数据块(DB)存储器
数据块存储器用于存储各种类型的数据,期中包括操作的中间状态或FB的控制信息参数,以及一些指令(如计数器和定时器)所需的数据结构。
可以按位、字节、字或双字访问数据块存储器。DB为数据块,DBX是数据块中的数据位,DBB,DBW和DBD分别是数据块中的数据字节,数据字和数据双字。在访问数据块中的数据时,应指明数据块的名称,如DB2.DBX0.0、DB1.DBB2、DB23.DBW2、DB0.DBD1。
(6)外设I/O区(PI/PQ)
外设输入(PI)和外设输出(PQ)区是立即刷新的外设输入输出存储区,允许直接访问本地的分布式的输入模块和输出模块。通过PI和PQ,可不经过过程映像区直接访问输入\输出模块,即不受扫描周期的约束。
可以按位、字节(PIB或PQB)、字(PIW或PQW)或双字(PID或PQD)存取。在I/O点的地址或符号地址的后面附加“:P”,可以立即访问外设输入或外设输出,如I0.3:P、IW4:P、Q0.3:P。
(7)临时局部数据存储器(L堆栈)
临时存储器用于存储代码块被处理时使用的临时数据,类似于M存储器,二者的区别主要是M存储器是全局的,而临时存储器是局部的,只能在生成它的代码块内使用
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
