Cursos
Clase #53 - Multiinstancia, Instancia Simple e Instancia de Parámetros en TIA Portal V18
Multiinstancia, Instancia Simple e Instancia de Parámetros en TIA Portal V18
💡 Importante: La multiinstancia es uno de los conceptos más potentes pero malentendidos de TIA Portal. Te recomiendo ver el video tutorial completo donde explico visualmente cómo se anidan los datos en memoria y cuándo usar cada tipo de llamada para ahorrar recursos.
👋 Introducción: ¿Cuántos DBs Necesitas Realmente?
Bienvenido a la Clase #53. En la clase anterior aprendiste qué es un Bloque de Datos (DB). Ahora, cuando llamas a un Bloque de Función (FB), TIA Portal te pregunta: "¿Qué DB de instancia quieres usar?". Aquí es donde muchos se confunden.
Existen tres formas de llamar a un FB, y elegir la correcta define la eficiencia de tu proyecto:
- Instancia Simple: El método clásico. Un FB = Un DB independiente.
- Instancia de Parámetros: Pasar un DB ya existente como argumento.
- Multiinstancia: Alojar varios FBs dentro de un único DB "padre".
En este artículo explicamos las diferencias arquitectónicas, pero la demostración de cómo se ve esto en la tabla de variables y en la memoria del CPU está exclusivamente en el video tutorial.
🎯 Lo que aprenderás en esta sesión
- Instancia Simple (Single Instance): Cuándo crear un DB nuevo por cada llamada.
- Instancia de Parámetros (Parameter Instance): Cómo reutilizar DBs globales o de otros bloques.
- Multiinstancia: La técnica avanzada para agrupar múltiples FBs idénticos en un solo DB.
- Ahorro de Memoria y Gestión: Impacto de cada método en el espacio de trabajo del PLC.
- Limitaciones y Reglas: Qué puedes y qué no puedes hacer con cada tipo de llamada.
⚙️ Conceptos Clave (Resumen Teórico)
1. Instancia Simple (La forma estándar)
Es la más común. Cada vez que arrastras un FB al editor, creas un nuevo DB (ej: IE_DB_Motor_1, IE_DB_Motor_2).
- Ventaja: Muy fácil de diagnosticar. Ves el DB separado en el árbol del proyecto.
- Desventaja: Si tienes 50 motores, tendrás 50 DBs pequeños dispersos. Puede ensuciar el proyecto.
2. Instancia de Parámetros (La forma flexible)
En lugar de crear un DB nuevo, le pasas al FB un DB que ya existe (puede ser un DB Global o el Instance DB de otro FB).
- Uso típico: Cuando quieres que un FB procese datos que viven en una estructura centralizada o cuando quieres que un FB "hijo" use los datos de un FB "padre".
- Requisito: El DB pasado como parámetro debe tener exactamente la misma estructura interna que la interfaz Static/InOut del FB.
3. Multiinstancia (La forma profesional compacta)
Permite llamar a varios FBs dentro de un mismo bloque "contenedor".
- Cómo funciona: Creas un FB "Padre" (que puede estar vacío o tener lógica propia). Dentro de sus variables locales declaras variables de tipo "otros FBs".
- Resultado: Todos esos FBs "hijos" comparten un único Instance DB (el del Padre).
- Ventaja: Orden extremo. En lugar de 10 DBs sueltos, tienes 1 solo DB estructurado jerárquicamente. Ahorra overhead de gestión de bloques.
⚠️ Concepto Crítico: La multiinstancia no ahorra memoria de código (el código del FB sigue estando una vez en la CPU), pero sí ahorra memoria de datos y simplifica enormemente la navegación en proyectos grandes. Además, tiene limitaciones: no todos los tipos de FBs son compatibles (ej: FBs con interfaces complejas o ciertos tipos de datos dinámicos).
4. Comparativa Rápida
Tipo | Gestión de DBs | Complejidad Visual | Uso Ideal |
|---|---|---|---|
Simple | Muchos DBs independientes | Baja (fácil de ver) | Proyectos pequeños o depuración inicial. |
Parámetros | Reutiliza DBs existentes | Media (requiere tracking) | Integración con estructuras globales o jerarquías. |
Multiinstancia | Un solo DB "Padre" | Alta (estructura anidada) | Máquinas modulares con muchos ejes/motores idénticos. |
✅ Checklist de Selección de Instancia
Antes de llamar a un FB:
- Evaluado si el proyecto es pequeño (usar Instancia Simple) o modular/grande (usar Multiinstancia).
- Verificado que la estructura de datos coincide si usas Instancia de Parámetros.
- Confirmado que el FB "hijo" es compatible con multiinstancia (sin interfaces excesivamente complejas).
- Planificada la nomenclatura para evitar confusión en llamadas anidadas.
- Considerado el impacto en el diagnóstico: ¿Será fácil encontrar el error en una estructura anidada?
🛑 Errores Comunes con Instancias
Usar Multiinstancia Sin Entenderla: Crear estructuras anidadas innecesarias que hacen imposible el diagnóstico para otros técnicos.
Confundir Instancia de Parámetros con Global: Intentar pasar un DB que no tiene la estructura exacta requerida por el FB.
Olvidar que la Multiinstancia Comparte DB: Si dos FBs hijos intentan acceder a la misma variable global por error, pueden interferir.
Sobrecargar el FB Padre: Poner demasiada lógica en el FB padre que contiene las multiinstancias, haciendo el ciclo lento.
No Inicializar Correctamente: Al usar multiinstancia, asegurar que todas las instancias hijas tengan sus valores iniciales definidos en el FB padre.
👉 MIRA EL VIDEO PARA VER CÓMO SE DECLARA UNA MULTIINSTANCIA DENTRO DE UN FB PADRE
¿Tu proyecto tiene cientos de DBs sueltos y es un caos?
La multiinstancia podría ser tu solución. En el video de esta clase (#53) te muestro cómo refactorizar un ejemplo simple usando esta técnica.
🔔 ¡Suscríbete y activa la campanita! En la Clase #55 volvemos a Factory IO con la escena Buffer Station. Aplicaremos lógica de contadores y temporizadores en un entorno de almacenamiento temporal. ¡No te pierdas el ejercicio práctico en el video!

Publicar un comentario
0 Comentarios