Tipos de datos Avanzados y UDT en TIA Portal

 Los tipos de datos son un concepto vital en la programación de PLC que nos ayudan a diferenciar entre los diversos parámetros con los que tratamos en el mundo industrial. Los tipos de datos avanzados se pueden crear utilizando combinaciones de otros tipos de datos PLC primarios como estructura. Esto ayuda con la reutilización y la eficiencia y acelera la programación.

Veremos algunos tipos de datos avanzados utilizados en la programación de PLC de Siemens. Aprenderemos cómo usarlos, cómo aplicarlos a proyectos del mundo real y cómo personalizarlos en Siemens TIA Portal.

Arrays

Una etiqueta del tipo de datos ARRAY representa una estructura que consta de un número fijo de componentes del mismo tipo de datos. Las limitaciones del índice se definen entre corchetes y el tipo de datos se define después de la palabra clave "of" al crear una etiqueta ARRAY. Las limitaciones de ARRAY se pueden establecer estáticamente con enteros, constantes globales y locales, como parámetros de bloque formales, o dinámicamente con ARRAY [*]. El límite bajo debe ser igual o inferior al límite alto. Un ARRAY puede tener hasta seis dimensiones, cada una con su propio conjunto de límites separados por una coma.

Direccionamiento de Arrays

Los índices fijos o variables se utilizan para abordar los componentes de ARRAY. Los componentes de la etiqueta ARRAY se pueden considerar como etiquetas del mismo tipo de datos.

Vamos a crear una matriz que consiste en diez enteros, diez reales y diez booleanos.

Abra TIA Portal, cree un nuevo bloque de datos y personalice la matriz como se muestra en la imagen a continuación.


Los límites para crear matrices se describen a continuación.


Tipo de datos Struct

El tipo de datos STRUCT representa una estructura de datos con un número definido de componentes de distintos tipos de datos. Una estructura puede tener componentes de los tipos de datos STRUCT o ARRAY. Los datos se pueden agrupar de acuerdo con el sistema de control de procesos y los parámetros se pueden transferir como una sola unidad de datos utilizando estructuras.

Una etiqueta STRUCT siempre comienza en un bloque no optimizado en un límite de palabras, en un byte par. Los componentes individuales se ubican en la memoria en la secuencia en la que fueron declarados. Las etiquetas STRUCT ocupan memoria hasta que se alcanza el siguiente límite de palabras. Una estructura anidada es una subestructura de otra estructura. Es posible anidar hasta 8 edificios de profundidad. La sección "InOut" permite una profundidad máxima de anidamiento de 9 estructuras.

Creación de estructuras

Escenario de control

Tenemos una planta de lubricación con tres tanques para almacenar el aceite lubricante después del procesamiento. El sistema consta de entradas y salidas. Para cada uno de los tanques, estas son las siguientes señales.


Cree el STRUCT como se muestra en la imagen de abajo


Como podemos ver en la imagen anterior, los diferentes tipos de datos están contenidos en el tipo de datos STRUCT.

Para crear otros parámetros del tanque, simplemente copie un parámetro del tanque, péguelo y cambie el nombre.


Uso de tipos definidos por el usuario (UDT)

Al generar bloques de datos, puede designar tipos de datos PLC como un tipo. Puede crear varios bloques de datos basados en este tipo, todos los cuales tienen la misma estructura de datos. Estos bloques de datos se pueden personalizar cambiando los valores reales para la tarea adecuada. Creación de un tipo de datos PLC para un depósito de planta lubricante, por ejemplo. Este tipo de datos se puede asignar posteriormente a muchos bloques de datos, cada uno de los cuales contiene una cantidad diferente de datos.

Creación de tipos definidos por el usuario (UDT)

Comencemos creando un nuevo tipo de datos PLC. En el árbol del proyecto, navegue hasta el tipo de datos del PLC y cree uno nuevo.


Cree las siguientes etiquetas como se muestra en la siguiente imagen


Después de crear esto, el UDT se puede exportar e importar a otro proyecto de PLC. Una práctica común es guardarlos como bibliotecas para su reutilización.

Podemos continuar creando un bloque de datos para nuestros tres tanques y usar el UDT. Elimine el acceso de bloque optimizado.


Cada uno de los tres tanques puede usar el mismo UDT para sus IO (tome nota del tipo de datos). En lugar de crear diferentes etiquetas para todas las etiquetas, un simple UDT ha resuelto este problema. Usemos el UDT en un programa simple.

Prueba del UDT

Crearemos una función que contendrá algunos cálculos para nuestra planta de lubricación. Cree una nueva función con los siguientes parámetros. Cree los parámetros como un parámetro interno local para la función.


Aquí, hemos creado lámparas como salidas para advertencia, una válvula de salida para descarga y temperatura que incluye temperatura ambiente y presión en la unidad PSI.

Observe que el parámetro de operación Tank que utiliza nuestro UDT creado está bajo el tipo INOUT. Esto se debe a que nuestro UDT comprende parámetros de entrada y salida.


La Network uno se utiliza para verificar el nivel de condición alto-alto de cada tanque.


La Network dos se utiliza para verificar el nivel de condición bajo-bajo de cada tanque.


La Network tres tiene cálculos para la presión de Barg a PSI y la temperatura de Fahrenheit a Celsius.

También muestra el control para activar la válvula de salida a través de la broca de descarga.

Al arrastrar la función desde el árbol del proyecto hasta el área de programación de OB1, se muestra lo siguiente


Complete el etiquetado del FC como se muestra en la imagen a continuación


La operación del tanque toma los parámetros DB del tanque uno para los controles del tanque.

La lámpara roja M2.0 se etiquetará con una lámpara física igual que la lámpara ámbar M2.1

Temp_to_cel toma la salida convertida a temperatura

Pressure_to_PSI toma la presión convertida

El valor de salida es la válvula física para descargar el líquido.

Replique lo mismo para el tanque dos y tres cambiando los parámetros a su respectivo número de base de datos del tanque.



Compile y descargue el programa en PLCSIM.

Pruebas del programa

Ahora, para las pruebas, edite algunos parámetros de los tanques individuales en la base de datos.


Podemos ver los diferentes estados de los tanques. Echemos un vistazo a los Networks.




Podemos ver que la válvula de salida del tanque uno y el tanque tres se abren mientras que dos están cerradas. También podemos convertir las válvulas de temperatura y presión para todos los tanques. Podemos ver que la luz roja del tanque dos está encendida debido a la activación del sensor High-High.

Esto también se puede hacer creando las etiquetas para los diferentes tanques, pero eso sería más engorroso; UDT lo ha simplificado. Además, si se agregarán más tanques en el futuro, solo sería cuestión de crear un parámetro de tanque DB con el UDT.

Descargue el programa en el simulador.

En la pantalla Extender a descarga, seleccione Siemens PLCSIM Virtual Adapter como interfaz PG/PC y, a continuación, busque. Después de localizar el dispositivo PLC, cargue el programa.

Diferencia entre STRUCT y UDT

A primera vista, un STRUCT y un UDT tienen muchas similitudes, pero hay algunas diferencias entre ellos, como se destaca a continuación.


Conclusión

El ahorro de tiempo es una de las ventajas de UDT, ya que ayuda en la reutilización del código; Ayuda a que el ciclo de vida del proyecto sea más eficiente. Una vez que se ha creado un UDT, se puede multiplicar en el programa y transferir como una biblioteca a otro proyecto. Una buena práctica para UDT es que solo se deben definir las etiquetas necesarias para evitar el desperdicio de memoria PLC.


¡Únete a nuestra comunidad de Discord para programadores de PLC! 🤖👨‍💻 Aquí puedes encontrar ayuda, consejos, recursos y mucho más sobre la programación de PLC. 📚💻 Únete a nuestro chat general para hablar sobre automatización y PLCs, o explora nuestra galería de proyectos y actividades para obtener inspiración. 📸💡 También ofrecemos lecciones rápidas, ejercicios, recursos descargables y bots para interactuar 🤖 ¡No esperes más, únete hoy mismo y forma parte de nuestra comunidad de programadores de PLC! 🎉👥  PROGRAMACION DE PLC


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