Gemelo digital

Tecnología de gemelo digital: guía completa de conceptos, arquitectura y datos en tiempo real

Una guía práctica de la tecnología de gemelo digital: qué es realmente un gemelo, los tipos principales, una arquitectura de referencia y cómo alimentar un modelo 3D en vivo con datos MQTT en tiempo real.

Ilustración de la tecnología de gemelo digital con un modelo 3D de fábrica que refleja datos de máquinas en vivo enviados por MQTT
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

La tecnología de gemelo digital conecta un activo físico con un modelo virtual que se mantiene sincronizado con él, para que puedas ver, analizar y, con el tiempo, predecir lo que está haciendo el objeto real. Esta guía explica los conceptos y los tipos de gemelos digitales, una arquitectura de referencia que funciona y cómo alimentar un modelo 3D en vivo con datos en tiempo real por MQTT, con código que puedes ejecutar hoy.

¿Qué es realmente un gemelo digital?

Un gemelo digital es una representación virtual de un objeto, proceso o sistema físico concreto que se actualiza continuamente con datos de su homólogo real. Las tres palabras que importan en esa definición son concreto, continuamente y actualiza.

  • Concreto: un gemelo representa la bomba número 3 de la línea 2, no "una bomba" en general. Un modelo CAD genérico es un diseño, no un gemelo.
  • Continuamente: el vínculo con el activo físico es permanente, no una importación puntual.
  • Actualiza: los datos fluyen automáticamente del activo al modelo, normalmente casi en tiempo real.

La distinción importa porque el término se estira a menudo para cubrir cualquier visualización 3D o cualquier simulación. Una simulación detallada de una cinta transportadora que funciona con entradas supuestas es valiosa, pero solo se convierte en gemelo cuando la alimentan la velocidad, la carga y los estados de fallo reales de esa cinta. El artículo gemelo digital vs simulación explora esa frontera en profundidad.

El concepto no es nuevo. Los ingenieros llevan mucho tiempo manteniendo réplicas físicas o modelos detallados de sistemas críticos para razonar sobre ellos. Lo que ha cambiado es el coste: los sensores baratos, la conectividad omnipresente, los protocolos de mensajería ligeros y el renderizado 3D en el navegador hacen práctico dar a equipos corrientes un homólogo virtual vivo.

Niveles de la tecnología de gemelo digital: modelo, sombra, gemelo

Una forma útil de clasificar la tecnología de gemelo digital es según la dirección del flujo de datos entre el lado físico y el digital.

Nivel Flujo de datos Qué hace Ejemplo típico
Modelo digital Ninguno automático Representación estática, actualizada a mano Modelo CAD, plano de distribución de planta
Sombra digital De lo físico a lo digital Refleja el estado en vivo para monitorización y análisis Vista 3D de una línea que muestra estados y temperaturas de las máquinas
Gemelo digital De lo físico a lo digital y de vuelta Refleja el estado y puede enviar comandos o setpoints Gemelo que ajusta el setpoint de una bomba tras la aprobación de un operario

La mayoría de los proyectos de éxito empiezan como sombras digitales, porque los datos en un solo sentido son más fáciles de proteger y validar. El paso bidireccional llega más tarde y requiere controles cuidadosos. Gemelo digital vs sombra digital explica por qué esa progresión es la opción segura por defecto.

Tipos de gemelos digitales

Los gemelos también se clasifican por su alcance. Cada alcance responde a preguntas distintas y necesita datos distintos.

  1. Gemelo de componente: una sola pieza, como un rodamiento, un motor o una válvula. Útil para la monitorización de estado de componentes críticos.
  2. Gemelo de activo: una máquina completa formada por componentes, como una máquina CNC o un brazo robótico, que combina sus datos en una sola vista.
  3. Gemelo de sistema o unidad: varios activos trabajando juntos, como una línea de producción, un sistema de climatización o una celda de envasado. Aquí es donde se hacen visibles los cuellos de botella y las interacciones.
  4. Gemelo de proceso: un proceso o una instalación completos, que combinan los datos de los equipos con las órdenes de producción, la calidad y la energía. Este nivel respalda decisiones de planificación y optimización.

Los alcances se anidan de forma natural, otra razón para empezar por algo pequeño: un gemelo de activo bien construido se convierte después en un bloque de construcción de un gemelo de línea. Para más detalle y ejemplos de cada alcance, lee tipos de gemelos digitales.

Dónde aportan valor los gemelos digitales

El valor de un gemelo procede de acortar la distancia entre "algo está pasando" y "la persona adecuada lo entiende". Entre las aplicaciones habituales están:

  • Monitorización remota: un ingeniero puede ver el estado de una línea en otro edificio u otro país sin desplazarse ni leer etiquetas en bruto.
  • Mantenimiento predictivo: combinar vibración, temperatura y horas de funcionamiento en el contexto del activo facilita detectar patrones de degradación. Consulta gemelo digital para mantenimiento predictivo.
  • Formación e incorporación: los nuevos operarios aprenden el equipo en un gemelo que se comporta como el real, sin riesgos.
  • Puesta en marcha y análisis de hipótesis: probar virtualmente un cambio de control o de distribución antes de aplicarlo.
  • Optimización energética: visualizar adónde va la energía, vinculada a la producción real.
  • Edificios e infraestructuras: ocupación, climatización y energía en un único modelo espacial, como en un gemelo digital de edificio.

Para la fabricación en concreto, el caso de uso del gemelo digital de fábrica muestra cómo se combinan estas aplicaciones en una planta real.

Una arquitectura de referencia para el gemelo digital

Elijas las herramientas que elijas, un gemelo que funcione tiene cinco bloques. Definir bien las fronteras entre ellos es lo que hace que un gemelo sea mantenible.

1. Activos físicos y sensores

Las máquinas, los PLC, los sensores y los contadores producen las señales en bruto: estados, temperaturas, velocidades, recuentos, alarmas. Los equipos más antiguos pueden necesitar sensores de retrofit.

2. Conectividad edge

Los gateways leen protocolos nativos como Modbus, OPC UA o interfaces del fabricante, convierten los valores en unidades de ingeniería y los publican como mensajes. Los microcontroladores como el ESP32 pueden publicar directamente en el caso de sensores sencillos.

3. Columna vertebral de mensajería en tiempo real

Aquí es donde MQTT brilla. Cada activo publica en un topic y cada consumidor, incluido el gemelo, se suscribe. Un broker desacopla el gemelo de los dispositivos: el modelo 3D no necesita saber hablar con un PLC, y el PLC no necesita saber que el gemelo existe. Dos funciones de MQTT encajan especialmente bien con los gemelos:

  • Los retained messages guardan el último valor de cada topic de estado, de modo que cuando se abre un gemelo muestra de inmediato el estado actual en lugar de esperar a la siguiente actualización. Estado del gemelo digital con retained messages MQTT es un tutorial completo sobre este patrón.
  • Los mensajes de Last Will permiten al broker anunciar que un dispositivo se ha desconectado, para que el gemelo pueda mostrar claramente los activos con datos obsoletos en lugar de presentar cifras congeladas como si estuvieran en vivo.

El broker es infraestructura crítica para el gemelo, por eso muchos equipos eligen un broker MQTT gestionado en lugar de operar uno por su cuenta.

4. Modelo y estado del gemelo

El propio gemelo contiene la jerarquía de activos, el estado actual de cada activo y las relaciones entre ellos. Puede ser tan sencillo como un objeto JSON indexado por topic o tan formal como un modelo descrito en DTDL o en la Asset Administration Shell. La guía de arquitectura de gemelo digital compara estos enfoques.

5. Aplicaciones y visualización

Los dashboards, las escenas 3D, la analítica y las alertas consumen el estado del gemelo. Una vista de gemelo digital 3D en el navegador construida con Three.js o Babylon.js es ya una opción realista para la mayoría de los equipos, como se muestra en cómo construir un gemelo digital con Three.js.

Datos en tiempo real: diseñar los topics para un gemelo

La estructura de topics determina lo fácil que le resulta al gemelo encontrar sus datos. Seguir la jerarquía ISA-95 la mantiene predecible:

acme/plant1/machining/line1/cnc1/state        (retained)  {"state":"RUNNING"}
acme/plant1/machining/line1/cnc1/telemetry               {"spindleTempC":41.2,"rpm":8000}
acme/plant1/utilities/tanks/tank1/level      (retained)  {"levelPct":63.5}
acme/plant1/utilities/pumps/pump1/command                {"setpointRpm":1450}

Cada objeto 3D de la escena corresponde a una ruta de este árbol, así que la vinculación es una búsqueda y no código a medida por dispositivo. ConnectMQ reconoce los topics ISA-95 y Unified Namespace y agrupa los dispositivos por esos niveles en su portal, lo que facilita comprobar que todos los activos que espera el gemelo están publicando de verdad. Si parte de tu planta usa Sparkplug B, ConnectMQ puede decodificarlo y republicarlo en topics ISA-95, de modo que el gemelo se suscribe a un único espacio de nombres coherente.

La latencia rara vez es el cuello de botella. Para la visualización, una o dos actualizaciones por segundo y por activo resultan en vivo para una persona. Lo que más importa es la coherencia: el gemelo debe mostrar la marca de tiempo de cada valor y marcar los datos como obsoletos cuando dejan de llegar actualizaciones. Latencia del gemelo digital en tiempo real explica de dónde procede realmente el retardo.

Práctica: construye un gemelo 3D en vivo alimentado por MQTT

El siguiente ejemplo construye un gemelo mínimo de un depósito de almacenamiento. Un script de Python hace el papel del depósito físico y publica su nivel, y una página del navegador renderiza un depósito 3D cuya altura de llenado sigue los datos en tiempo real. Ambos se conectan al área pública del servidor MQTT público gratuito broker.connectmq.com.

Paso 1: simula el activo físico

pip install "paho-mqtt>=2.0"
import json
import math
import sys
import time
import uuid

import paho.mqtt.client as mqtt

TWIN_ID = sys.argv[1] if len(sys.argv) > 1 else uuid.uuid4().hex[:8]
BASE = f"connectmq/demo/{TWIN_ID}/plant1/tank1"

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"tank-sim-{TWIN_ID}")
client.will_set(f"{BASE}/status", "offline", qos=1, retain=True)
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
client.publish(f"{BASE}/status", "online", qos=1, retain=True)
print(f"Twin ID: {TWIN_ID}  topic: {BASE}/level")

t = 0.0
while True:
    level = 50 + 40 * math.sin(t / 20)  # se llena y se vacía lentamente entre el 10 y el 90 por ciento
    payload = {"levelPct": round(level, 1), "ts": int(time.time() * 1000)}
    client.publish(f"{BASE}/level", json.dumps(payload), qos=1, retain=True)
    t += 1
    time.sleep(1)

Ejecútalo con python tank_sim.py y anota el ID de gemelo que imprime. El topic de nivel es retenido, así que el gemelo mostrará el último valor en cuanto se conecte.

Paso 2: renderiza el gemelo en el navegador

Crea un proyecto con un bundler como Vite (npm create vite@latest twin -- --template vanilla), instala las librerías con npm install three mqtt y sustituye main.js por el código siguiente. Asigna a TWIN_ID el valor que imprimió el simulador.

import * as THREE from "three";
import mqtt from "mqtt";

const TWIN_ID = "replace-with-your-twin-id";
const BASE = `connectmq/demo/${TWIN_ID}/plant1/tank1`;

// Configuración de la escena
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x1e2329);
const camera = new THREE.PerspectiveCamera(50, innerWidth / innerHeight, 0.1, 100);
camera.position.set(4, 3, 6);
camera.lookAt(0, 1, 0);
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(innerWidth, innerHeight);
document.body.appendChild(renderer.domElement);
scene.add(new THREE.AmbientLight(0xffffff, 0.6));
const sun = new THREE.DirectionalLight(0xffffff, 1.2);
sun.position.set(5, 8, 5);
scene.add(sun);

// Carcasa del depósito (transparente) y líquido (escalado según el nivel)
const HEIGHT = 2;
const shell = new THREE.Mesh(
  new THREE.CylinderGeometry(1, 1, HEIGHT, 48, 1, true),
  new THREE.MeshStandardMaterial({ color: 0x9aa4ae, transparent: true, opacity: 0.25, side: THREE.DoubleSide })
);
shell.position.y = HEIGHT / 2;
scene.add(shell);

const liquidGeometry = new THREE.CylinderGeometry(0.95, 0.95, HEIGHT, 48);
liquidGeometry.translate(0, HEIGHT / 2, 0); // pivote en la base para que al escalar se llene hacia arriba
const liquid = new THREE.Mesh(liquidGeometry, new THREE.MeshStandardMaterial({ color: 0x2f80ed }));
scene.add(liquid);

let targetLevel = 0;
let online = false;

// Conexión MQTT por WebSocket seguro
const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
  clientId: `twin-viewer-${Math.random().toString(16).slice(2, 10)}`,
  protocolVersion: 5,
});

client.on("connect", () => {
  client.subscribe(`${BASE}/#`, { qos: 1 });
});

client.on("message", (topic, payload) => {
  if (topic.endsWith("/level")) {
    const data = JSON.parse(payload.toString());
    targetLevel = Math.min(Math.max(data.levelPct / 100, 0.001), 1);
  } else if (topic.endsWith("/status")) {
    online = payload.toString() === "online";
    liquid.material.color.set(online ? 0x2f80ed : 0x6b7280); // gris cuando el activo está desconectado
  }
});

// Anima suavemente hacia el último nivel recibido
function animate() {
  liquid.scale.y += (targetLevel - liquid.scale.y) * 0.1;
  renderer.render(scene, camera);
  requestAnimationFrame(animate);
}
animate();

addEventListener("resize", () => {
  camera.aspect = innerWidth / innerHeight;
  camera.updateProjectionMatrix();
  renderer.setSize(innerWidth, innerHeight);
});

Arranca el servidor de desarrollo con npm run dev y abre la página. El líquido sube y baja con el depósito simulado. Detén el script de Python matándolo a la fuerza y, cuando expire el keepalive, el broker publicará el Last Will y el líquido se volverá gris, que es exactamente la señal de datos obsoletos que necesita un gemelo real.

El mismo patrón escala a toda una línea: una suscripción por ruta de activo y una tabla de búsqueda de topic a objeto 3D. Vincular datos IoT a un modelo 3D trata esa correspondencia para modelos GLTF importados con muchas piezas. La propia demo web del gemelo digital 3D de ConnectMQ usa este enfoque para animar una fábrica con una máquina CNC, un brazo robótico, un horno, un depósito, una cinta transportadora y una bomba por WebSocket seguro.

Recuerda que cualquiera puede leer el área pública de este servidor y que limita los topics a ocho niveles, así que úsala solo para datos simulados como estos. Los datos reales de planta deben ir a un broker privado con credenciales.

Una hoja de ruta práctica para tu primer gemelo digital

Usa esta lista para pasar de la idea a un gemelo que la gente use de verdad:

  1. Elige un activo con una pregunta real detrás. "¿Por qué salta esta bomba cada pocas semanas?" es mejor que "hagamos el gemelo de toda la planta".
  2. Decide el nivel. Empieza como sombra digital; añade comandos solo cuando la vista de monitorización goce de confianza.
  3. Enumera las señales que necesita el gemelo y confirma que cada una puede leerse de forma fiable.
  4. Define topics y payloads siguiendo ISA-95, con estado retenido y un topic de status por activo.
  5. Haz un prototipo con datos simulados en un broker público de pruebas para construir la visualización en paralelo al trabajo con los dispositivos.
  6. Conecta los dispositivos reales a un broker privado por TLS con credenciales por dispositivo.
  7. Añade contexto: umbrales, unidades, historial de mantenimiento e indicación de datos obsoletos.
  8. Mide el uso. Si los operarios y los ingenieros no abren el gemelo, averigua qué pregunta no responde.

La guía cómo construir un gemelo digital desarrolla cada paso, y el modelo de madurez del gemelo digital te ayuda a planificar lo que viene después del primer éxito.

Errores habituales que conviene evitar

  • Empezar por el modelo 3D. Una escena preciosa con datos poco fiables pierde la confianza enseguida. Asegura primero la canalización de datos.
  • Conexiones punto a punto con los dispositivos. Un gemelo que sondea cada dispositivo directamente no escala y crea una segunda integración para cada consumidor.
  • Ocultar la obsolescencia. Muestra siempre cuándo se actualizó un valor por última vez y marca los activos desconectados.
  • Control bidireccional demasiado pronto. Los comandos desde un gemelo necesitan autorización, confirmación y límites. Mantén las funciones de seguridad en el PLC, nunca en el gemelo.
  • Atarte al formato de modelo de un proveedor antes de conocer tus requisitos. Compara opciones en herramientas de gemelo digital de código abierto.

Ejecuta tu gemelo digital en ConnectMQ

Un gemelo digital es tan bueno como su flujo de datos en vivo. Crea una cuenta gratuita en app.connectmq.com con el plan Serverless, sin tarjeta de crédito, crea un broker y usa el nombre de usuario, la contraseña y el client ID generados para tus dispositivos y tu visor del gemelo. Los navegadores se conectan por WebSocket seguro en el puerto 8084 con la ruta /mqtt, y los dispositivos usan TLS en el puerto 8883. Cuando necesites más conexiones o un entorno aislado, pasa a un plan de broker MQTT en la nube sin cambiar tus topics ni tu código.

Preguntas frecuentes

¿Qué diferencia hay entre un gemelo digital y un modelo 3D?

Un modelo 3D es una representación estática. Solo pasa a formar parte de un gemelo digital cuando se vincula a un activo físico concreto y se actualiza continuamente con los datos en vivo de ese activo.

¿Por qué MQTT encaja bien con la tecnología de gemelo digital?

MQTT desacopla los dispositivos del gemelo mediante publicación/suscripción, los retained messages le dan al gemelo el estado actual en cuanto se abre y los mensajes de Last Will revelan los activos desconectados. Es lo bastante ligero para microcontroladores y funciona en navegadores sobre WebSocket.

¿Necesito una plataforma comercial para construir un gemelo digital?

No. Muchos gemelos eficaces se construyen con componentes abiertos: un broker MQTT, un pequeño modelo de estado y una librería 3D para el navegador como Three.js. Las plataformas comerciales añaden funciones de modelado e integración que importan sobre todo a gran escala.

¿Puede un gemelo digital controlar el activo físico?

Puede, si envía comandos de vuelta a través de la capa de mensajería, pero esto debe llegar después de que la vista de monitorización esté probada. Los comandos necesitan autorización y confirmación, y la lógica crítica para la seguridad debe permanecer en el PLC o el controlador.

¿Puedo probar el ejemplo 3D sin una cuenta?

Sí. El ejemplo usa el área pública de broker.connectmq.com, que acepta conexiones anónimas con cualquier client ID único y no vacío. Usa allí solo datos simulados o no sensibles, ya que cualquiera puede leer el área pública.

Artículos relacionados

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.