Hoy vamos a hablar de un concepto muy utilizado en la programación como son los array en TIA Portal.
No es algo que uses siempre, el 100% del tiempo, pero sí es algo habitual que hay que dominar.
Contenido
¿Qué es un array en TIA Portal?
Bueno, más que en TIA Portal, en general.
En una definición de andar por casa de array en plc podríamos decir que un array es una variable que es un listado de valores o variables a los que le asignamos un índice para poder acceder al contenido.
Como ves, es como un conjunto de cajitas numeradas (0,1, 2…) donde cada cajita contiene el valor o información para dicha posición de la cajita.
Luego la forma de acceder a dicha información será haciendo referencia al número de cajita.
El uso de arrays en programación PLC es fundamental para almacenar datos que requieren cierta estructura y organización, como datos de sensores, actuadores o cualquier información que se necesite manipular de forma conjunta. Los arrays permiten un acceso eficiente a los elementos almacenados, lo que facilita el desarrollo de lógicas más complejas y la optimización del código.
Una definición más académica de array (matriz) de datos es la siguiente:
En informática, una matriz es una estructura de datos que consiste en una colección de elementos (valores o variables), del mismo tipo y tamaño de memoria, cada uno identificado por al menos un índice o clave de matriz.
Es una frase sencilla, pero que tiene su miga:
- es una estructura de datos, es decir, siempre hablamos sobre datos y no sobre flujo de programa y el hecho de que sea una estructura hace que no sea sea lo que podríamos denominar una variable compleja, que a diferencia de una variable simple va a tener partes diferenciadas dentro de su contenido.
- colección de elementos, es decir, vamos a tener un listado de valores (o variables) dentro de él. Lo que hemos llamado cajitas en la definición de andar por casa.
- del mismo tipo y tamaño de memoria, es decir, todos tienen que se de la misma tipología (enteros, bool, timers…) y por tanto, cada uno de ellos tienen el mismo tamaño dentro de la memoria. Esto es importante porque no vamos a poder mezclar tipologías dentro del array. Ojo, sí podremos crear un array de Struct TIA Portal, donde cada estructura tenga enteros y reales, por ejemplo. Pero el array sería de tipo estructura, por lo que mantiene la coherencia.
- cada uno identificado por al menos un índice o clave de matriz, es decir, están indexados y vamos a poder referirnos a cada posición del array mediante un número, o varios números, lo que implica que una matriz podrá ser de diferentes dimensiones: matrices de doble entrada, en 3D…
¿Cómo hacer un array en TIA Portal?
La idea fundamental es almacenar información en cada cajita para posteriormente recuperar la información de dicha cajita mediante lo que denominaríamos recorrer un array en TIA Portal.
Los array solo se pueden declarar dentro de un DB. No es posible realizarlo con marcas.
A la hora de declarar el array, tan solo deberás usar la palabra reservada ARRAY dentro de la declaración de la variable.
Luego tendremos que dar el rango del array. Por ejemplo declararemos:
- Array[1..10] para índices entre 1 y 10
- Arrau[3..18] para índices que vayan entre 3 y 18
- Array[-10..10] para índices que vayan entre -10 y 10
Pero también podrás declarar array en TIA Portal que tengan más de una dimensión:
- Array[1..10, 30..45] para crear matrices TIA Portal con índice1 entre 1 y 10 y indice2 entre 30 y 45
- Array[1..3,1..10,1..100] para índice1 entre 1 y 3, índice2 entre 1 y 10 e índice3 entre 1 y 100
Posteriormente haremos referencia a una posición de dicho array simplemente haciendo referencia a la posición de la cajita:
- NombreDB.NombreVariableArray[5]
- NombreDB.NombreVariableArray[5,6]
También vas a poder acceder a la información de forma indirecta usando variables:
- NombreDB.NombreVariableArray[#indice] siendo #indice la que contendrá la posición a leer del array.
Ejemplos de array TIA Portal
Uso de arrays en domótica, automatización y robótica
- Control de iluminación: Mediante el uso de un array, es posible almacenar y controlar el estado de múltiples luces en un sistema de domótica. Cada elemento del array puede representar una luz específica y su estado (encendido/apagado).
- Monitoreo de sensores: En sistemas de automatización, se pueden utilizar arrays para almacenar lecturas de sensores, por ejemplo, temperatura, presión o nivel. Cada posición del array guarda la información correspondiente a un sensor específico.
- Control de movimientos: En aplicaciones robóticas, los arrays son útiles para almacenar coordenadas de movimiento, velocidades o estados de actuadores. Esto permite realizar secuencias de movimientos precisos y controlados.
Ejemplos de uso de array en TIA Portal en la industria
- Sistema de gestión de inventario: Un array puede utilizarse para almacenar y rastrear la cantidad de productos en un almacén, asignando una posición del array a cada producto y controlando su stock.
- Control de procesos industriales: En aplicaciones industriales, los arrays pueden ser utilizados para monitorear y controlar múltiples variables de un proceso, como presiones, temperaturas, velocidades, entre otros.
- Manejo de recetas en la industria alimentaria: Con el uso de arrays, es posible almacenar recetas de productos alimentarios y acceder a la información necesaria para la producción de cada producto en particular.
Estos son solo ejemplos de las infinitas posibilidades de uso de los arrays en TIA Portal. La flexibilidad y versatilidad de esta herramienta ofrece soluciones eficientes a una amplia variedad de aplicaciones en el ámbito de la automatización industrial.
Ejemplos de uso de arrays en TIA Portal en el blog
Durante estos años hemos hecho innumerables ejemplos en los que hemos usado un array en TIA Portal, pero vamos a repasar algunos de ellos como ejemplo.
- Arranque de motores en el que mediante un array de multi instancias, programamos el arranque de los motores.
- FIFO y LIFO en TIA Portal en el que introducimos datos y los recuperamos del FIFO/LIFO en función de las necesidades.
- El caso de los caracteres booleanos en el que usamos un array de arrays para resolver el problema.
- Deshacer y rehacer en TIA Portal para usarlo en tus HMI de Siemens emulando lo que puedes hacer con las aplicaciones de Windows. Te puede ser útil en editores como en el que se muestra en el ejemplo.
Ni que decir tiene que hay más ejemplo de arrays en TIA Portal dentro del blog, pero estos solo son unos ejemplos muy diferentes unos respecto a otros ya que nada tiene que ver el arranque de motores con un FIFO o con usarlo con el hacer/rehacer para un HMI.
Como verás en los ejemplos, el uso de arrays es muy útil cuando tienes información homogénea y que puedes indexar para que de una forma sencilla puedas referirte a dichos valores simplemente con un índice.
El uso como digo es independiente del proyecto. Lo vas a ver en cualquier tipo de máquina o línea. La única característica es que quieres guardar información que posteriormente vas a recorrer.
¿Qué te parecen los array en TIA Portal?
Supongo que lo tienes claro, pero he creído que podía ser importante darle un pequeño barniz nuevamente. Siempre está bien echar un vistazo a conceptos básicos en el blog, porque a veces hay lectores que no tienen las cosas demasiado claras.
Espero que con esta entrada quede un poco más claro lo que es un array, independientemente de que sea para TIA Portal o para Step 7 clásico, ya que se comportan básicamente igual.
Recuerda que todos los ejemplos resueltos, y muchos más los tienes a tu disposición en el curso TIA Portal de la serie S7-1200.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
2 Comentarios
Una tuve que controlar varios variadores de frecuencia y fue cuando entendi el sentido de STRUCT.
Me cree una estructura de datos: frecuencia deseada, frecuencia real, consumo, en run,… donde las variables, como bien mencionas, podian ser de diferentes tipos, booleanas enteras, etc….
Y como tenia mas de un variador solo tenia que crear un array de «variadores» con la estructura dentro. Una vez hecho, fue super facil a la hora de programar y si tienes que agregar algun variador mas
no hay problema.
Tus publicaciones ayudan mucho. A veces a recordar y otras a descubrir. Gracias
Muy bueno inge!!! Se lo extrañaba por acá con su sabiduría!!