La memoria del S7-1200

 La memoria de usuario


La CPU dispone tres zonas de memoria en donde se almacena el programa de usuario, los datos y la configuración. Se puede hablar de tres tipos de memoria: memoria de carga, memoria de trabajo y memoria remanente.

La memoria de carga : esta memoria es distinta dependiendo de la CPU escogida (1211,1212 y 1214), permite almacenar de forma no volátil el programa de usuario, los datos y la configuración. El programa de usuario se carga primero en esta área de la CPU. 

 Por otra banda, esta memoria puede ser sustituida por una Memory Card (previamente configurada para este fín) en el caso de estar instalada. Ojo, aunque la SD insertada disponga de más memoria que la CPU, el tamaño para trabajar con ella no puede ser mayor que la de la propia CPU.


La memoria de trabajo: también esta memoria es distinta dependiendo de la CPU escogida (1211,1212 y 1214). Ofrece un almacenamiento volátil, esta área se pierde si se desconecta la alimentación. 

 Almacena las partes del programa de usuario que son relevantes para la ejecución del programa, la CPU copia elementos del proyecto desde la memoria de carga a la memoria de trabajo.

 

La memoria remanente: esta puede almacenar datos de forma no volátil de la memoria de trabajo, el número de datos está limitado. Cuando se produce un corte de alimentación o una caída de tensión, la CPU al arrancar restaurará nuevamente esos valores. Para que realice esta función debe estar previamente configurada para ello.

Para saber el uso de la memoria, en el proyecto actual debe estar establecida la conexión online. En el TIA PORTAL podemos realizarlo de muchos modos, a continuación explico dos:

#      Desde el “Árbol del proyecto>[CPU o nombre]>Online y diagnóstico”:

1.Seleccionamos “Online y diagnóstico”, haciendo doble clic.

2.Expandiremos la pestaña “Diagnóstico”

3.Para acabar, seleccionaremos “Memoria”.

Llegando a la siguiente visualización de pantalla, he cargado un programa cualquiera en dicha CPU:


La “memoria de carga” y la “memoria de trabajo” de la CPU, limitan el tamaño del programa de usuario, los datos y la configuración.
 

Otra parte de la memoria : “la memoria imagen de proceso”

La memoria contiene elementos que la CPU pone a disposición del programa de usuario, una de ellas se le denomina la “memoria de imagen de proceso”.

La memoria de imagen de proceso, está orientada al trabajo con las variables de entrada “I” y variables de salida “Q”. Esta área se actualizará cíclicamente, aunque la CPU consultará esta zona de memoria antes de ejecutar el OB de ciclo. A continuación se visualizan dos imágenes explicativas:

Sin utilizar la memoria imagen

Utilizando la memoria imagen

Estas imágenes también podrían haber sido las de las salidas “Q”.

Estructura en la memoria


La CPU es quien estructura y direcciona las áreas o zonas de memoria, ofreciendo opciones para almacenar los datos en la ejecución del programa. 

A lo hora de empezar a pensar en la programación, cuando empezamos a tener una posible solución del planteamiento del problema, deberemos elegir qué tipo de variables utilizaremos, sean entradas “I” y salidas “Q”, marcas “M” y datos locales. Al mismo tiempo cómo vamos a estructurarlo, si ponemos o necesitamos una o más funciones…Con todo, muchas veces dependerá de cómo estructures el programa y las funciones que necesite. Las instrucciones del programa se insertan en bloques lógicos, llamados “bloques de organización OB”, “bloques de función FB” y  ”funciones FC”, una manera rápida de estructurar nuestro programa total podría ser el siguiente:



La CPU  organiza los bloques de memoria, como:

•OBs: estos definen la estructura del programa principal, denominando al OB1 como el ‘main’. Hay OBs con funciones predefinidas, aunque también se pueden crear con funciones específicas.

Abriendo la pestaña de “Bloques de programa” en el “Árbol de proyecto”, si clicamos dos veces en “Agregar nuevo bloque” y seleccionamos “Bloque de programación” visualizaremos estructuras predefinidas:


Como mero comentario y referencia al TIA PORTAL, observamos cómo este hace  una distinción con los colores, distinguiendo: para los OBs el violeta, para los FB el azul y para los FC verde, variando además también la figura para el DB de datos.

• FBs y FCs: contienen código de programa específico para realizar alguna función. Pueden tener parámetros de entrada y salida, compartiendo datos con un bloque que lo llama. La diferencia entre un FB y un FC, es que un FB tiene asociado o utiliza un bloque de datos ‘DB’ (denominado  ‘DB instancia’) que guardará valores o estados que podrán ser utilizados por otros bloques de programa. Los números van del 1 al 65535.

• DBs: la función que realizan es guardar datos que pueden ser utilizados por otros, los números van del 1 al 65535. Pueden definirse de tal forma que todos los bloques accedan a ellos, son los que se denominan DBs globales, o por el contrario que sólo estén asignados a un FB, denominándose DBs instancia. Los datos almacenados en este bloque de datos, no son borrados al finalizar la ejecución del bloque lógico asociado.


Si tenemos la duda de a quién pertenece un bloque u otro, o si está asociado o no al FB, deberemos mirar en ‘Atributos’. Para ello realizamos lo siguiente:


1.Clicamos con el botón derecho en el bloque de duda, por ejemplo DB1.

2.Seleccionamos ‘Propiedades’.

3.Visualizamos ‘Atributos’.


Si está seleccionado, es que pertence a un DB instancia, asociado a un FB. Por el contrario, si no lo estuviese sería un DB global.



Comentarios

Lo más leído del Blog

Explicación del Estado de la CPU y errores de LED Siemens S7 300

Introducción al PLC

Instrucciones de Bit