Hay diferentes estructuras de bloques disponibles al programar un PLC, estos bloques incluyen FC de funciones, FB de bloques de funciones y DB de bloques de datos. Estos bloques son herramientas muy útiles que puede utilizar para diseñar mejor la lógica de su PLC y hacer que su código sea más legible y fácil de seguir y depurar.
En artículos anteriores, analizamos los FC y los FB. En este artículo, analizaremos los DB de bloques de datos, más específicamente el bloque de datos global.
Contenido:
- ¿Qué es un DB de bloques de datos?
- Tipos de bloques de datos.
- ¿Qué es un bloque de datos global?
- ¿Cómo crear un bloque de datos global?
- Cómo trabajar con bloques de datos globales.
- Ejemplo de simulación.
¿Qué es un bloque de datos?
Un DB de bloques de datos es un área de memoria que se utiliza para guardar los valores de los parámetros que se escriben durante la ejecución del programa de PLC.
A diferencia del bloque de código, el DB de bloques de datos contiene solo declaraciones de variables. No tiene redes ni instrucciones como un FC o un FB. La estructura de la base de datos se define por la cantidad de variables que haya declarado dentro del bloque de datos.
Tipos de bloques de datos en el PLC
Existen dos tipos de bloques de datos:
- Bloques de datos globales
- Bloques de datos de instancia
- Bloques de datos ARRAY
Bloques de datos globales
Como sugiere el nombre, el bloque de datos global se declara globalmente para toda la lógica del PLC. No se asigna a un bloque de código específico. Puede acceder a los valores de un bloque de datos global desde cualquier bloque de código en cualquier parte de la lógica del PLC. Un bloque de datos global contiene solo etiquetas estáticas.
La estructura del bloque de datos global se puede definir libremente. En la tabla de declaración de bloques de datos, declara los elementos de datos que se incluirán en el bloque de datos global.
Bloques de datos de instancia
El bloque de datos de instancia se asigna directamente a un bloque de función FB, ya sea que este bloque de función esté definido internamente en el PLC como temporizadores y contadores o bloques de función FB definidos por el usuario.
La estructura de un bloque de datos de instancia no se puede definir libremente, sino que está determinada por la interfaz del bloque de función. El bloque de datos de instancia contiene exactamente los parámetros y las variables del bloque que se declaran en la interfaz del bloque de función.
Sin embargo, puede definir valores específicos de la instancia en el bloque de datos de instancia; por ejemplo, valores iniciales para las variables declaradas.
Bloques de datos ARRAY
Disponibles solo para CPU S7-1500, los bloques de datos ARRAY son bloques de datos globales que constan de un ARRAY. Este ARRAY puede estar basado en cualquier tipo de datos.
Por ejemplo, es posible un ARRAY de un tipo de datos PLC (UDT). El DB no contiene otros elementos además del ARRAY. Debido a su estructura plana, los bloques de datos ARRAY facilitan el acceso a los elementos del ARRAY y su transferencia a los bloques llamados.
La sección “Operaciones de movimiento” de la tarjeta de tareas “Instrucciones” ofrece opciones para direccionar DB ARRAY.
En este artículo, hablaremos sobre el bloque de datos global y analizaremos los otros dos tipos en artículos separados.
¿Qué es el bloque de datos global?
Los bloques de datos se utilizan para almacenar datos del programa PLC. Esto significa que contienen datos variables que utiliza el programa de usuario. Los bloques de datos globales almacenan datos que pueden ser utilizados por todos los demás bloques.
El tamaño máximo de los bloques de datos varía según la CPU. Puede definir la estructura de los bloques de datos globales de la forma que desee.
También tiene la opción de utilizar tipos de datos PLC (UDT) como plantilla para crear bloques de datos globales.
Cada bloque de función FB, función FC u bloque de organización OB puede leer los datos de un bloque de datos global o puede escribir datos en un bloque de datos global. Estos datos permanecen en el bloque de datos incluso después de salir del bloque de datos. Consulte la imagen 1.
Imagen 1: Acceso al bloque de datos global
Como puede ver en la imagen anterior, se puede acceder a un bloque de datos global desde cualquier bloque de código dentro del programa PLC, mientras que al bloque de datos de instancia solo se puede acceder mediante el bloque de función asociado.
Creación de un bloque de datos global
Puede crear un bloque de datos global de la misma manera que crea una función FC o un bloque de función FB. Desde el botón Agregar un nuevo bloque al árbol de su proyecto. Vea la imagen 2.
Imagen 2: Creación de un bloque de datos global
Declaremos algunas variables dentro del bloque de datos global.
Para ello, haga clic en Agregar nuevo en la sección Nombre, escriba el nombre de la variable que desee y luego elija el tipo de datos de la variable. Vea la imagen 3.
Imagen 3: Declaración de variables en un bloque de datos global
Trabajar con un bloque de datos global
- Declarar una etiqueta.
Ya mostramos cómo declarar una etiqueta/variable en la imagen 3.
- Definir un valor inicial
El valor inicial de una etiqueta es un valor definido por usted, que la etiqueta asume después de iniciar la CPU. El valor debe coincidir con el tipo de datos de la etiqueta y no debe exceder el rango del tipo de datos. Vea la imagen 4.
La etiqueta toma el valor definido al iniciarse, siempre que no se haya declarado como retentiva.
Imagen 4: Definición del valor inicial de las etiquetas
Por lo tanto, si establezco el valor de inicio de Tank1Level en cualquier valor distinto de cero, este valor se aplicará la próxima vez que se reinicie el PLC. Ver imagen 5.
Imagen 5: Definición de un valor de inicio para las variables
- Retención de variables en bloques de datos globales
Para evitar la pérdida de datos en caso de corte de energía, puede marcar los datos como retentivos. Estos datos se almacenan en un área de memoria retentiva.
Las opciones para configurar la retención dependen del tipo de bloque de datos y del tipo de acceso al bloque que se configure. Ver imagen 6.
Imagen 6: Opción de retención en bloques de datos globales
Como puede ver en la imagen 6, la variable Tank2Level está configurada para que sea un valor retenido, lo que significa que incluso si el PLC se detuvo o hubo un corte de energía, Tank2Level tendrá los mismos datos almacenados cuando el PLC se vuelva a encender. No se restablecerá al valor inicial.
- Accesibilidad a/desde HMI
En un bloque de datos global, puede definir si una variable puede ser visible desde las tablas de etiquetas de HMI o no. También puede definir si esta variable puede leerse o escribirse desde la HMI. Consulte la imagen 7.
Imagen 7: Accesibilidad desde HMI
La configuración predeterminada para cualquier variable declarada en un bloque de datos global es que se puede acceder a ella, leerla y escribirla desde la HMI. Si desea deshabilitar esta función para una determinada variable, debe desmarcar la opción de accesibilidad para esa variable.
Simulación de ejemplo
Hasta ahora, creamos un bloque de datos global y declaramos algunas variables dentro.
Ahora intentaremos ejecutar una simulación del programa y ver si podemos comprender mejor qué es un bloque de datos global.
A continuación, se proporcionan dos simulaciones de PLC.
Prueba de los valores iniciales de una variable
Vea la siguiente animación que explica el valor inicial de una variable dentro de un bloque de datos global.
Animación 1
Explicación de la animación 1:
- Los valores iniciales de los parámetros de nivel del tanque son cero. Puede ver en el video que la pantalla de simulación los cambia.
- Cuando se reinicia el PLC, se apaga y se enciende nuevamente, verá que los valores se restablecerán a los valores iniciales, que son cero.
- Después de eso, los valores iniciales se cambiaron a 500, 32654 y -356 respectivamente, y cuando se reinicia el PLC, los valores se cambiaron a los nuevos valores iniciales.
- Observe que cuando cambiamos los valores iniciales, tuvimos que descargar nuestra lógica nuevamente al PLC; debe hacer eso cada vez que realice un cambio en su lógica.
Probar la opción de retención de variables en la base de datos global
Vea la siguiente animación que explica la opción de retención de una variable dentro de un bloque de datos global.
Animación 2
Explicación de la animación 2:
- En primer lugar, notará que la propiedad Retain de Tank2Level ahora está activa.
- En el video, puede ver que se están modificando los valores de los 3 tanques.
- Cuando se detiene el PLC y luego se reinicia, Tank1Level y Tank3Level se restablecen al valor inicial, que es 0, pero Tank2Level retiene su valor de -22938
Conclusión
Se puede acceder a un bloque de datos global desde cualquier lugar y mediante cualquier bloque que exista en el programa del PLC. Puede declarar tantas variables como desee dentro de una base de datos global.
La técnica recomendada es crear bloques de datos separados para las diferentes secciones de su lógica, para que sea muy fácil seguir su lógica. Por ejemplo, un bloque de datos separado para todas las variables que una HMI debe leer o escribir.