Distingue entre el área de memoria de la imagen de proceso, de las entradas y salidas, del área de marcas o temporal y conocer su implementación en el programa. Te enseño los tipos de memoria que existen en un PLC y para qué sirve cada una, además de mostrarte cómo ver la memoria que ocupa tu programa. Verás cómo funciona la memoria de un PLC Siemens S7-1200.
Este artículo pertenece al Curso de TIA Portal gratis. Al final del artículo encontrarás el acceso al Menú del Curso.
Qué área de memoria se puede encontrar en el proyecto del S7-1200.
En primer lugar, hay que saber que cuando ejecutas un programa dentro de TIA Portal y seleccionas un tipo de autómata para programarlo, cada modelo va a tener unas especificaciones de memoria. Es decir, que puede que elijas un PLC cuya memoria se te va a quedar corta porque tu proyecto va a ser muy extenso. Por ello, debes saber que un PLC tiene un área de memoria donde almacenar el programa, los datos utilizados y toda la configuración. asimismo, dentro del PLC encontrarás las siguientes áreas de memoria:
- Área de memoria de carga.
- Memoria de trabajo.
- Memoria remanente.
Memoria de carga
La memoria de carga es el área de memoria donde se va a guardar el programa que hemos hecho en TIA portal, los datos que hemos creado durante la ejecución y la configuración del proyecto.
Es más, cuando transferimos nuestro proyecto desde TIA Portal al PLC, el programa se almacena directamente en este trozo de memoria de carga.
Si el programa es muy extenso, quizás consumas toda esa memoria de carga y por tanto, no cabe el programa en el PLC. Por ello, puedes insertar una tarjeta de memoria (Memory Card de Siemens) con lo cual nos servirá también como memoria de carga. Como resultado, hemos ampliado nuestra memoria de carga con una Memory Card.
Si se quita la alimentación de la CPU, la memoria de carga no se borra, por lo tanto, cuando vuelva la conexión, el programa continuará dentro de nuestro PLC.
Memoria de trabajo
La memoria de trabajo de un PLC sirve para almacenar ciertos datos cuando se está ejecutando el programa de usuario. Por lo tanto, nos va a servir para que la ejecución de programa se realice más rápida, ya que el PLC podrá acceder más rápidamente a esos datos que tiene ahí guardados.
Si se quita la alimentación, esta área de memoria de trabajo se borra, por lo que, cuando vuelva la conexión, la CPU tendrá que volver a seleccionar esos datos que necesita para la memoria de trabajo.
Ciertamente, podemos ver qué cantidad de memoria de trabajo tiene cada bloque que hemos programado. Para ello, tenemos que seleccionar el bloque que queramos conocer y con el botón derecho y propiedades nos aparecerán todas sus características. Dentro de la opción de “Compilación” de ese bloque nos indicará la cantidad de memoria de carga y la cantidad de memoria de trabajo destinado a este bloque.
Memoria remanente
La memoria remanente es una parte de la memoria que conserva su valor cuando se desconecta la alimentación. Ciertamente, es una parte de la memoria de trabajo que puedes seleccionar manualmente para considerarla remanente y conserve su valor al desconectarse el PLC.
Cuando la alimentación al PLC se restablece, esos valores remanentes se vuelven a colocar en esas zonas de memoria de trabajo.
Ciertamente, si nunca seleccionas ninguna parte de un bloque como remanente, la cantidad de área remanente será 0, tal y como puedes ver en la imagen anterior. Debido a esto, se puede ver que la memoria remanente ocupada es cero. Por lo tanto, tu debes seleccionar qué datos quieres que sean remanentes, como, por ejemplo, dentro de un bloque DB, seleccionar esos datos como remanentes.
Cómo trabaja el proyecto con un área de memoria.
El programa que hemos hecho en TIA Portal lee y escribe en los datos almacenados de cada área de memoria. El programa utiliza estas direcciones para trabajar con la información almacenada en cada posición de esa memoria.
Descripción de cada área de memoria.
Memoria de imagen de proceso de las entradas.
La CPU copia el estado de las entradas físicas al área de memoria “I” al empezar un ciclo.
Para el forzado permanente de las entradas hay que añadir una “:P” a la variable. Por ejemplo: “Marcha:P”.
Memoria de imagen de proceso de salidas.
La CPU copia el estado de las salidas físicas al área de memoria “Q” al empezar un ciclo.
Para el forzado permanente de las entradas hay que añadir una “:P” a la variable. Por ejemplo: “Motor:P”.
Área de marcas
El programa lee y escribe los datos almacenados en la memoria M.
A la memoria M se puede acceder desde cualquier bloque dentro del proyecto y además se pueden configurar para guardarse estos datos con una remanencia para evitar que se borren cuando se quite la alimentación.
Área de memoria temporal.
Cuando se ejecuta el programa y se llama a un bloque, en el interior de ese bloque se crea una memoria temporal o local que solo se guarda durante la ejecución de ese bloque. Cuando el bloque finaliza, esa área de memoria se borra y se resigna a otro bloque.
Bloque de datos.
Los bloques de datos o DB se utilizan para guardar todo tipo de datos: parámetros de FB, estructuras, etc… se pueden configurar como lectura y escritura o solo lectura, con o sin remanencia, etc…
Los datos se almacenan en un área de memoria en el PLC.
Ciertamente, durante la programación de nuestro proyecto vamos a utilizar muchos datos y variables que nos van a servir para ir activando y desactivando procesos y secuencias. A todo este conjunto de datos siempre se le asignan unas direcciones concretas para poder identificarlas.
Es más, a cada dato que utilizamos le podemos dar un nombre específico que nos va a servir para identificar lo que va a hacer cada unos de esos datos. Debido a esto, todos estos datos se tienen que almacenar en varias áreas de memoria:
- Memoria global.
- Tabla de variables.
- Bloque de datos.
- Memoria temporal.
Área de Memoria global.
Dentro de este tipo de memoria global se comprenden los datos que se generan y pueden ser utilizados en todos los bloques del programa. Es decir, se puede crear un dato en un bloque y ese mismo dato lo vas a poder utilizar en otro bloque diferente, ya que lo has definido como global.
Dentro de esta área de memoria global del PLC te puedes encontrar:
- Entradas (I).
- Salidas (Q).
- Marcas (M).
Casi que mejor te lo explico dentro de TIA Portal y verás a lo que me refiero. Parece que, cuando te pones a programar, puedes entrar a un bloque cualquiera y puedes utilizar una entrada del PLC, o una salida del PLC o una marca auxiliar que tú mismo has creado. A esto nos referimos con memoria global, a la utilización de esas marcas o entradas o salidas.
Tabla de variables
Probablemente en una estructuración correcta de tu programa será necesario guardar o clasificar todos esos datos en tablas de variables. Por esta razón, en cada tabla de variable puedes crear los datos necesarios como datos de memoria globales y darles nombres para poder estructurarlo mejor.
Puedes crear diferentes tablas y de esa manera tener todas tus marcas o entradas todas ordenadas por tablas, lo cual te servirá para encontrar más fácilmente tus datos.
Área de memoria en Bloques de datos.
Otra opción que tenemos para almacenar nuestros datos es mediante un bloque DB, como hemos aclarado antes. Asimismo, se pueden diferenciar dos tipos diferente de DB:
- DB global.
- DB de instancia.
Dentro de un DB global se declaran datos que vas a poder utilizar en cualquier parte del programa, en cualquier otro bloque.
Mientras tanto, un DB de instancia siempre va asociado a un bloque FB en concreto y, por consiguiente, sus datos solamente podrán ser utilizados por ese bloque. Pero no te preocupes que esto ya lo estudiaremos mucho más adelante.
Memoria temporal.
Finalmente podemos hablar de otra zona de memoria que es temporal y es asignada dentro de cada bloque. La memoria temporal es definida dentro de un bloque, igual que cualquier otra variable, pero solamente puede ser utilizada dentro de ese bloque donde se ha definido. Es todo lo contrario a la memoria global, que se define y puede ser utilizada en cualquier bloque.
Memoria del PLC Siemens S7.
Por consiguiente, ya te he mostrado todo lo relacionado con la memoria de un PLC Siemens, los tipos de memoria que tiene una CPU y donde encontrar los datos de cada área de memoria de un PLC S7-1200.
Como consecuencia de esto, cada vez que vayas a hacer un proyecto en TIA Portal tienes que fijarte en las especificaciones de cada CPU y considerar la memoria de trabajo que tiene. Es más, puedes ver estas características cuando seleccionas esa CPU dentro de TIA Portal, si pinchas en “Configuración y dispositivos” y le pinchas en “Información de Hardware”.
En cambio, ya sabes que la mejor opción es ponerte Online con la CPU y ver qué tal va tu proyecto con la información en tiempo real de la memoria ocupada, tal y como puedes ver en las primeras imágenes de este artículo.
Espero que se te haya quedado claro este tema. Con el siguiente enlace accederás al siguiente artículo del Curso TIA Portal, donde te hablaré del direccionamiento de las entradas y salidas del PLC y cómo hay que utilizar esas direcciones. Es interesante y muy necesario conocer cómo hay que nombrar cada una de las entradas, así que no te lo pierdas:
Finalmente, he elaborado un vídeo donde te explico qué son las áreas de memoria en un PLC y cómo puedes encontrar las diferentes memorias en TIA Portal, navegando por el software y explicándote cómo seleccionar cada tipo de memoria. De esta forma, si te gusta más el formato vídeo, aquí lo tienes presente.
Este artículo pertenece al Curso TIA Portal gratis. Puedes acceder al Menú principal del curso con el siguiente enlace, donde encontrarás un guion con todos los temas y desde ahí acceder a cualquiera de los artículos. Fácil y rápido:
Por cierto, si puede ser, déjame un comentario y dime lo que piensas sobre el artículo: bueno o malo, si crees que le falta algo, si te ha ayudado, lo que sea. De esta manera, yo podré mejorarlo y nos servirá a todos. Te contestaré en menos de 24h. Muchas gracias.