你现在位置:首页>技术论文>经验技巧>其他PLC>正文
OpenPLC的内存组织
日期:2008-10-28 22:42:59 来源:本站整理  
点击: 作者:
点击【】放大字体.
内存是PLC的最核心的部件,位于OpenPLC控制器的CPU模块中,是所有的程序、顺序指令存储和执行的地方,也是存储数据的地方。有的PLC有专门的内存模块,但由于计算机技术的发展,在现有的OpenPLC采用了足够大的内存单元,因此不需要单独的内存模块。本文将介绍V80等OpenPLC的内存的在CPU模块的组织原理和方法。
WW.W_PLCJS_COM-PLC-技.术_网

1 内存按可寻址程度的分类
WWW.PLCJS.COM——可编程控制器技术门户

    OpenPLC的特点之一就是,存放控制程序的内存可以被重新改动或重新编程。如果按照用户对内存的访问权限来说,也就是内存的可寻址的程度来分类的话,内存可以分为三类:
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

1.    第一部分的内存是用户不能访问的,用来存放OpenPLC的专用操作系统程序和数据,与OpenPLC一起提供给用户使用的。
WWW_PLC※JS_COM-PmLC-技.术_网

2.    第二个区域,是用来存储用户程序和特殊的组态数据,只能用编程器(编程软件)来改变,在OpenPLC处于运行模式时,这个区域的内存通常是不能改变的。通常,在用户程序的内部是不能对该区域的内存进行寻址的。即便可以寻址,也只能读取数据,也不能改写。
——可——编——程——控-制-器-技——术——门——户

3.    第三部分的内存是完全可寻址的,也就是说用户程序的指令可以对其进行读写。输出映射表当然必须是可寻址的,有的PLC允许用户改写内存的输入映射区的内容,(直到扫描周期的输入数据将用户的改动覆盖),另外,可寻址的内存是存储工作数据的,包括计数器、定时器的数值和其它数值。有部分PLC的组态内存是可寻址的,因此,PLC可以被编程改变其工作特点(在运行时)。
P.L.C.技.术.网——可编程控制器技术门户

WW.W_PLCJS_COM-PLC-技.术_网

除了CPU模块的内存外,有些I/O模块也包含一些数据内存,可以由用户程序直接进行寻址。CPU的数据内存芯片可以是标准的动态RAM类型,这些内存在掉电后数据就会丢失。许多PLC是采用后备电池的方式来维持DRAM中的数据在掉电后不丢失的,也有采用电容来储存足够的电量防止短期的掉电。OpenPLC是采用闪存(FLASH MEMORY)作为内存芯片,不需要电池和电容也可以保全数据。
WWcW_PLCJS_COM-PLC-技.术_网

在掉电后不丢失数据的内存叫做固定内存或保持内存,尽管现在PLC内部全部采用固定内存来保存数据在成本上也是可行的,但不少PLC制造商依然还是将部分的内存设计为非固定内存。当PLC刚刚上电或者从编程模式切换到运行模式时,OpenPLC将这个区域的内存全部清除,这个初始化的过程将在第九章详细再介绍。
plcjs.技.术_网

OpenPLC的编程单元有一个数据监视屏的功能,程序员或OpenPLC操作员可以利用这个功能来监视数据内存的内容,即使在OpenPLC运行时也可以。当扫描周期控制一些数据时,如用户程序改写输入映像表和内存的地址时,程序使用的其它的数据可以通过数据监视器来改写,即使用户程序在运行也是一样。用户程序的表现可以在程序员修正工作数据时进行动态调整。
plcjs.技.术_网

2 用户内存与应用内存
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

所有PLC的内存可以看作一个大的二维面阵,每个面阵的单元是一位。整个内存的图象如下图所示: 
WWW_P※LCJS_COM-PLC-)技.术_网

——可——编——程——控-制-器-技——术——门——户

图4.1 工业可编程控制器的内存的空间分配(请参考德维森网站技术文章:www.techwayson.com )
WWW_PLCJS@_COM%-PLC-技.术_网

内存可以分为两个区域:用户内存和应用内存。前者是储存梯形图的程序,为可变内存;后者为固定内存,存储用户程序需要运行的信息,如开关量输入和输出的状态,计数器或定时器的预设值和累计值,数量值,顺序模型、内部I/O继电器状态等等。
WWW_P※LCJS_CO※M-PLC-技-.术_网

用户内存
plcjs.技.术_网

用户程序区是用来存储控制逻辑的。OpenPLC的控制机器或过程的所有的指令都存储在该区域。处理器的执行软件语言,代表每个OpenPLC指令,也将指令存放在用户程序区。当OpenPLC执行程序时,处理器将用户程序内存区域的信息进行解释,并控制数据表中与真实或外部I/O对应的相应的数据位,处理器对执行程序的执行完成了这个对用户程序的解释过程。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

用户程序内存区的最大量通常代表OpenPLC的规模。在中型以上的OpenPLC,用户程序区通常是可变的,可以根据数据表的大小来进行变动。对于小型和微型OpenPLC,用户程序区域通常是固定的。用户程序内存的数量与控制程序的指令数量直接成正比。可以根据I/O和控制功能来对用户程序内存的区域进行预估。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

用户程序占了整个内存的大部分空间,通常在75%以上。比如,16KB内存的OpenPLC通常有12KB以上给梯形图用的。    所有内存的地址通常是用8进制数给出的,每个内存的一个字节是16位(也有8位和32位的)。 用户程序存储用户编程的指令,也由几个部分构成。
WWW_P※LCJS_CO※M-PLC-技-.术_网

    对于存储内存来说,也称为执行内存,是一系列永久存储的程序的集合,这部分通常认为是属于OpenPLC本身的。它的程序指挥所有的系统活动,如控制程序的执行、与外设的通讯等。这部分内存,除了I/O数据表部分外,用户是不能访问的,只能由控制程序来访问。它又可以分为五个部分:
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

第一部分是输入状态区域,这里存储实际世界的开关量的输入状态,其大小应该等于该OpenPLC可以控制的最大数量的开关量所占用的字节数,比如,开关量最大为2048点,则占用256K, 
WWW_PLC※JS_COM-PmLC-技.术_网

第二部分的输出状态映像区域是准备激活外部真实世界的输出量的状态。其大小也是取决于OpenPLC可以控制的最大的开关量字节数。
——可——编——程——控-制-器-技——术——门——户

    定时器状态、累计值和预设值,保存在第三个区域。该区域的大小根据定时器的数量和大小而定。
plcjs.技.术_网

计数器的状态、累计值和预设值在第四个区域内。该区域根据计数器的数量和每个计数器的大小而定。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    第五个区域保存数据系统转换的值,通常是模拟量值。模拟量最大如果考虑是256点,则占用512K字节(按每个模拟量2个字节计)作为模拟量的输入输出区域。通常,模拟量的内存不限区间,可以提供较大的空间保证有足够的模拟量可以接入。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

    其它功能可以继续在内存的底部继续存储。该区间根据逻辑功能和算法的复杂程度而确定。
WW.W_PLCJS_COM-PLC-技.术_网

    此外,还要考虑数据的存储、和中间变量的存储以及复杂算法所需要的额外的内存,另外,还要考虑扩展。通常,内存的数量通常在上述考虑的基础上要留出50%的余量。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

应用内存
plcjs.技.术_网

应用内存提供编程指令,以及完成控制功能所需要用到的数据。下图给出OpenPLC中该区域的典型的分布图:
WWW_P※LCJS_COM-PLC-)技.术_网

图4.2 工业控制器应用内存的分配(请参考: www.techwayson.com )
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

每种型号的OpenPLC都有一个最大的应用内存区域的上限值,取决于控制器的规模。从图4.2可以看到,应用内存又可以分为两个区域,即数据表区域和程序指令区域。程序指令区域是存放用户程序用到的指令和常数的;数据表则包括三个部分:输入表、输出表和存储表。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

输入表:
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

输入表是一个阵列,存储数字量输入。与OpenPLC可采集的最大位数的输入点对应。输入模块的地址也在该区域。地址通常由模块的地址和模块内部的通道号构成,如13007(8进制),可能表示模块的地址为130,通道号为07。输入表的数据每次在扫描周期的读入时进行刷新。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

输出表:
WWW.PLCJS.COM——可编程控制器技术门户

输出表的最大数量对应于OpenPLC可控制的最大的数字输出点。只有在控制程序扫描周期的输出部分执行时,该表的数据才被送到实际的输出模块上去。
WWW_P※LCJS_COM-PLC-)技.术_网

存储区域:
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

存储区域分为两部分,一部分是内部的位存储,一部分是寄存器和指令存储。内部位存储包括内部的输出点,内部线圈,内部继电器等内部数据。这些内部数据是供控制程序的梯形逻辑进行输出、连锁用的。该部分数据不直接向外部电路输出控制,因为他们不在输出数据表中,因而不与外部电路有任何直接对应关系。

本新闻共2页,当前在第11 2  
WWW_P※LCJS_CO※M-PLC-技-.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行