Guía de integración de Ignition de Inductive Automation

Prev Next

Guía de integración de Ignition + Tulip

Esta guía le explica cómo integrar la plataforma Ignition con el software de fabricación Tulip. Aprenderá a intercambiar datos entre ambas plataformas y a ofrecer una vista unificada de la aplicación mediante la integración de una aplicación en la otra.

La guía ofrece información detallada sobre cómo integrar estas dos plataformas para ofrecer una experiencia fluida a los operadores.

Ejecutar Tulip en Ignition Perspective

Tanto Ignition Perspective como Tulip son aplicaciones web nativas en HTML. Las aplicaciones de Tulip pueden ejecutarse directamente en Ignition Perspective mediante marcos en línea (iframe).

Añadir el nombre de host o la IP de Ignition a la lista de dominios permitidos de Tulip

Tulip no permite la incrustación en un iframe sin un permiso explícito mediante la inclusión del nombre de host o la dirección IP en la lista de permitidos.

  1. Inicia sesión en tu cuenta de Tulip y ve a la configuración de tu cuenta.image.png
  2. Selecciona «Lista de dominios permitidos».image.png
  3. Añade la URL de tu servidor Ignition. La URL puede ser un nombre de host DNS o una dirección IP. Asegúrate de indicar el número de puerto si es distinto de 443.image.png

Nota: Tulip requiere que la URL incluya HTTPS. Deberás configurar SSL/TLS en tu servidor Ignition. Para obtener instrucciones, haz clic aquí.

Añade el marco en línea a tu proyecto de Perspective

  1. Abre Ignition Designer y selecciona tu proyecto de perspectiva.
  2. Abre la vista de Perspective en la que quieras incrustar Tulip.
  3. Arrastra el componente «Marco en línea» a tu vista.image.png
  4. Selecciona el componente «Inline Frame» y consulta el panel de propiedades situado a la derecha de la pantalla.image.png
  5. Establece el valor de «src» en la URL del reproductor de Tulip. La URL tiene el siguiente formato:

https://<tu-instancia>.tulip.co/player?appId=<tu-id-de-aplicación>

El ID de la aplicación se puede encontrar abriendo la aplicación deseada en tu instancia de Tulip y consultando la URL que se muestra en el navegador. La URL tendrá el siguiente formato

https://<tu-instancia>.tulip.co/w/<tu-id-de-aplicación>/process/....

Si no quieres iniciar una aplicación concreta, puedes establecer la URL de la siguiente manera:

https://<tu-instancia>.tulip.co/player

Registrar una interfaz

El reproductor de Tulip requiere que inicies sesión y registres el dispositivo para poder utilizar la aplicación.image.png

  1. Inicia sesión con tus credenciales de Tulip.
  2. Asigna un nombre a la interfaz.image.png
  3. Asigna la interfaz a una emisora nueva o a una ya existente.image.png
  4. Inicia sesión con tu ID de tarjeta.image.png
  5. Debes asignar tus aplicaciones a la estación recién creada.

Tendrás que repetir este proceso para cada cliente de Perspective en el que quieras utilizar el reproductor Tulip.

Extra: Utiliza el mismo proveedor de identidad para Ignition y Tulip

Tanto Ignition como Tulip requieren que los usuarios inicien sesión para acceder a las aplicaciones. Un proveedor de identidad (IdP) permite a los usuarios iniciar sesión en ambos sistemas utilizando las mismas credenciales. Esto garantiza un inicio de sesión seguro y es compatible con el inicio de sesión único (SSO) y la autenticación de dos factores (2FA).

Actualmente, Tulip solo es compatible con proveedores de identidad que admitan SAML. Ignition es compatible tanto con SAML como con OpenID Connect. Si tu proveedor de identidad es SAML, puedes configurar ambos sistemas para que utilicen el mismo IdP y aproveches al máximo el SSO.

  1. Sigue las instrucciones que se indican aquí para configurar SAML para Tulip.
  2. Sigue las instrucciones que se indican aquí para configurar SAML para Ignition.

Intercambio de datos entre Ignition y Tulip

Ignition y Tulip pueden intercambiar datos automáticamente a través de OPC-UA, MQTT y REST. El intercambio de datos es fundamental para que cada aplicación disponga del contexto y los datos que necesita para realizar su trabajo.

OPC-UA

Ignition actúa tanto como servidor como cliente OPC-UA. Como servidor OPC-UA, Ignition puede exponer a Tulip los datos de todos los dispositivos conectados y de todas las etiquetas configuradas. Por motivos de seguridad, este método requiere que Tulip se ejecute en las propias instalaciones, cerca de Ignition.

El servidor OPC-UA de Ignition viene instalado y en ejecución de forma predeterminada. Puede encontrar más información sobre el servidor OPC-UA aquí. La URL predeterminada tiene el siguiente formato:

opc.tcp://<nombre de host o IP>:62541

Método 1: Utilizar un host de conector de dispositivo periférico

Configura tu dispositivo Tulip Edge y conéctalo a la misma red que la HMI. Accede a https://<tu-instancia>.tulip.co/machine_data_sources. También puede acceder a esta página yendo a «Shop Floor» > «Máquinas» y seleccionando «Fuentes de datos» en el panel lateral izquierdo. Seleccione el botón «Crear fuente de datos de máquina». Rellena los siguientes campos: Nombre: <nombre deseado de la fuente de datos>Se ejecuta en: <tu dispositivo periférico>Tipo: OPC UA URL del agente: <nombre de host o IP>:62541

Rellene las opciones de seguridad para que coincidan con las del servidor OPC-UA en Ignition. Seleccione «Probar» para verificar la conexión y, a continuación, «Guardar». Consulte Cómo añadir y configurar máquinas para conectar la fuente de datos de Ignition a una máquina en Tulip.

Método 2: Uso de un host de conector local (OPCH)

Configura un OPCH en la HMI. Consulta la «Descripción general de los hosts de conector locales» para obtener instrucciones sobre cómo configurar un host de conector local (OPCH).

Acceda a https://<su-instancia>.tulip.co/machine_data_sources. También puede acceder a esta página yendo a «Taller» > «Máquinas» y seleccionando «Fuentes de datos» en el panel lateral izquierdo.

Seleccione el botón «Crear fuente de datos de máquina». Rellene los siguientes campos: Nombre: <nombre deseado de la fuente de datos>Se ejecuta en: <su OPCH>Tipo: OPC UA URL del agente: <nombre de host o IP>:62541

Rellena las opciones de seguridad para que coincidan con las del servidor OPC-UA en Ignition.

Seleccione «Probar» para verificar la conexión y, a continuación, «Guardar». Consulte «Cómo añadir y configurar máquinas» para conectar la fuente de datos de Ignition a una máquina en Tulip.

Exponer las etiquetas configuradas en Ignition

Por defecto, el servidor OPC-UA de Ignition solo expone los datos de los dispositivos configurados. Si deseas exponer las etiquetas configuradas a través de OPC-UA, sigue estas instrucciones.

  1. Inicie sesión en la sección de configuración de Ignition Gateway.
  2. Haga clic en OPC UA > Configuración del servidor.image.png
  3. Haz clic en «Mostrar propiedades avanzadas»
  4. Marque la casilla «Mostrar proveedores de etiquetas» y pulse «Guardar cambios».image.png
  5. Tendrá que reiniciar el módulo OPC-UA. Seleccione «Módulos» en el menú y pulse el botón «Reiniciar» situado junto al módulo OPC-UA.image.png

¡Ya está! Ahora puedes ver todas tus etiquetas en Tulip.

MQTT

MQTT es un protocolo de publicación/suscripción que permite a los dispositivos periféricos de la red publicar información en un broker. Los clientes se conectan a este broker, que a su vez actúa como intermediario en la comunicación entre los dos dispositivos. Cada aplicación puede suscribirse, o registrarse, a temas concretos. Cuando otro cliente publica un mensaje en un tema al que se ha suscrito, el broker reenvía el mensaje a cualquier cliente que se haya suscrito.

MQTT facilita el intercambio de datos entre Ignition y Tulip y es el método de integración recomendado.

Configurar un broker MQTT

En primer lugar, debe configurar un broker MQTT con el que puedan comunicarse tanto Ignition como Tulip. Existen muchas opciones:

  • Módulo MQTT Distributor para Ignition: este módulo proporciona un broker MQTT integrado en Ignition. Se puede implementar MQTT Distributor en las propias instalaciones o en la nube. Viene de serie con Ignition Cloud Edition; se adquiere e instala por separado para la versión estándar de Ignition en las propias instalaciones. https://cirrus-link.com/mqtt-software-for-iiot-scadahttps://inductiveautomation.com/ignition/cloud-edition
  • Broker MQTT Chariot de Cirrus Link: Chariot es un potente broker MQTT que se puede implementar en AWS o Azure. https://cirrus-link.com/mqtt-broker-iiot-mqtt-servers/
  • HiveMQ: un broker MQTT escalable, ya sea como broker local o como broker SaaS en la nube. https://www.hivemq.com/
  • Mosquitto: un broker MQTT de código abierto que se puede implementar en cualquier lugar. https://mosquitto.org/

Una vez implementado el servidor MQTT, necesitarás conocer el nombre de host o la dirección IP, el puerto y las credenciales de conexión tanto para Ignition como para Tulip.

Conectar Ignition al broker MQTT

Ignition ofrece dos módulos para trabajar con MQTT: MQTT Transmission y MQTT Engine.

MQTT Transmission permite publicar datos de etiquetas desde Ignition al bróker MQTT. Necesitarás MQTT Transmission para proporcionar datos de etiquetas a Tulip. MQTT Engine permite suscribirse a datos procedentes del bróker MQTT y crear etiquetas en Ignition. Necesitarás MQTT Engine para suscribirte a los datos procedentes de Tulip.

  1. En primer lugar, hay que instalar los módulos adecuados en Ignition. Descarga los módulos desde la página de descargas.
  2. Instala los módulos en la página de configuración de la pasarela de Ignition, en Sistema > Módulos.image.png
  3. Una vez instalados, configura la conexión con el servidor MQTT de la misma manera. Para MQTT Transmission, haz clic en «MQTT Transmission» > «Configuración» y, para MQTT Engine, haz clic en «MQTT Engine» > «Configuración».image.png
  4. Haz clic en la pestaña «Servidores».image.png
  5. Haz clic en «Crear nuevo servidor MQTT».
  6. Introduce la misma información de conexión y las mismas credenciales. Para una conexión sin TLS, la URL tiene el siguiente formato:

tcp://MQTTSERVERHOSTNAME:1883

Para una conexión TLS, la URL tiene el siguiente formato:

ssl://NOMBRE_DE_HOST_DEL_SERVIDOR_MQTT:8883

  1. Asegúrate de seleccionar un conjunto de servidores. Utiliza «Conjunto predeterminado» por defecto.image.png
  2. Haz clic en «Crear nuevo servidor MQTT» y comprueba la conexión. En el motor MQTT debería aparecer «Conectado». En cuanto a la transmisión MQTT, no sabremos el estado hasta que especifiquemos un transmisor. Consulta la sección siguiente.

Configurar Ignition para recibir datos JSON a través de MQTT

Tulip solo admite JSON sobre MQTT. Los módulos del motor MQTT de Ignition admiten tanto JSON como Sparkplug. Para JSON, debemos configurar un espacio de nombres personalizado para los datos JSON.

  1. Inicia sesión en la página de configuración de la pasarela de Ignition.
  2. Selecciona «MQTT Engine» > «Configuración».
  3. Selecciona la pestaña Espacios de nombres.
  4. Selecciona la pestaña «Personalizado» y haz clic en «Crear nuevo espacio de nombres personalizado…».image.png
  5. Introduce un nombre.
  6. Introduce una lista, separada por comas, de los temas a los que Ignition se suscribirá. Por ejemplo, si quieres suscribirte a cualquier tema que empiece por «Tulip», utiliza «Tulip/#».image.png
  7. Pulsa «Guardar cambios».
  8. A medida que se publique información, las etiquetas aparecerán automáticamente en el proveedor de etiquetas MQTT Engine. Abre tu diseñador y selecciona el proveedor de etiquetas MQTT Engine en el navegador de etiquetas.

image.png

  1. Ahora puedes utilizar esas etiquetas en cualquier parte de Ignition.

Configurar Ignition para enviar datos JSON a MQTT

El módulo de transmisión MQTT de Ignition puede publicar datos de etiquetas o cualquier otro tipo de datos a un broker MQTT a través de Sparkplug o JSON. Dado que Tulip solo admite JSON, hay dos formas en las que Ignition puede publicar datos JSON: el transmisor UNS o una función de script.

Transmisor UNS

El transmisor UNS es un agente que supervisa las etiquetas y las publica como mensajes MQTT con una carga útil JSON en un servidor MQTT. Se trata de una nueva función del módulo de transmisión MQTT.

El transmisor UNS:

  • publica un único mensaje de datos por cada etiqueta cuando cambia el valor «QualifiedValue» de la etiqueta
  • publica un único mensaje de propiedades por cada etiqueta cada vez que se establece una conexión con el cliente
  • publica las etiquetas de hoja de las UDT de Ignition, y la estructura de la UDT (es decir, el propio nombre de la UDT y las carpetas que contiene) se convierten en tokens de tema.

https://docs.chariot.io/display/CLD80/MT%3A+Configuration#MT:Configuration-unstransmitter

  1. Inicia sesión en la página de configuración de Ignition Gateway.
  2. Haga clic en «MQTT Transmitter» > «Settings».
  3. Seleccione la pestaña «Transmisores UNS».
  4. Haz clic en «Crear nueva configuración…»image.png
  5. Asigna un nombre al transmisor.
  6. Especifica el proveedor de etiquetas desde el que deseas publicar. Si tienes etiquetas en varios proveedores, tendrás que configurar varios transmisores UNS. Si tus etiquetas se encuentran en el proveedor predeterminado, escribe «default».
  7. Especifica la ruta de la carpeta raíz desde la que deseas publicar las etiquetas. Déjalo en blanco para escuchar y publicar todas las etiquetas del proveedor. Si especificas una ruta, puedes seleccionar una carpeta o etiqueta concreta desde la que deseas publicar.
  8. Selecciona tu conjunto de servidores, normalmente «Predeterminado».

image.png

  1. Haz clic en «Crear nueva configuración» para crear el nuevo transmisor.
  2. Puede comprobar que Ignition está enviando datos para el transmisor volviendo a la pestaña «Servidores» y verificando la columna «Conectados». Si ve «1 de 1» o «2 de 2», el transmisor está funcionando. Puede tener más de un transmisor para Sparkplug y UNS. Si ve «1 de 2», solo uno de los transmisores no está funcionando. Puede utilizar un cliente MQTT de terceros para comprobar el estado. Por ejemplo, aquí tiene una captura de pantalla de MQTT Explorer:

image.png

Fíjate en que el espacio de nombres del tema comienza por unsAv1.0. Lo que viene a continuación lo puedes controlar tú. Sin embargo, el nodo raíz se puede modificar o eliminar mediante la configuración. Ponte en contacto con el servicio de asistencia de Cirrus Link para obtener más detalles.

Función de scripting

La otra forma de publicar datos en un broker MQTT utilizando MQTT Transmission es a través de la función de scripting proporcionada. Esto resulta muy útil, ya que permite publicar cualquier cosa en cualquier tema. La función es:

system.cirruslink.transmission.publish(mqttServerName, topic, payload, qos, retained)

Puede llamar a esta función en cualquier lugar de Ignition, como en pantallas, scripts de temporizador, scripts de cambio de etiqueta, etc. Se recomienda añadir un script de cambio de etiqueta a las etiquetas individuales que desee publicar en un broker. Por ejemplo, veamos cómo se puede añadir un script de cambio de etiqueta a una etiqueta individual.

  1. En primer lugar, debemos indicar a MQTT Transmission que permita la publicación a través de un script. Inicia sesión en la página de configuración de Ignition Gateway.
  2. Haga clic en «MQTT Engine» > «Configuración».
  3. Selecciona la pestaña «Conjuntos».
  4. Edita tu conjunto de servidores, probablemente «Predeterminado».
  5. Muestra las propiedades avanzadas y marca la casilla «Habilitar/deshabilitar cliente RPC».image.png
  6. Guarda los cambios. Si utilizas un conjunto de servidores diferente o varios conjuntos de servidores, asegúrate de habilitar esta opción en cada uno de los que desees utilizar para publicar mediante scripts.
  7. Abre Ignition Designer.
  8. Busca la etiqueta que quieras publicar en el navegador de etiquetas.
  9. Haz clic con el botón derecho y edita la etiqueta.
  10. Selecciona «Scripting» y, a continuación, «Cambio de valor».image.png
  11. Introduce la siguiente línea de código:

system.cirruslink.transmission.publish(“Chariot SCADA”, “Tulip/Realistic0”, str(currentValue.value), 0, True)

Asegúrate de introducir el nombre del broker MQTT configurado en MQTT Transmission.image.png

Establece el tema como prefieras. La carga útil puede ser cualquier cosa, aunque normalmente es simplemente el valor actual.

  1. Guarda los cambios. Comprueba el nuevo valor en MQTT Explorer.image.png

REST

Una API REST, también conocida como API RESTful, es una interfaz sencilla y uniforme que se utiliza para poner a disposición datos, contenidos, algoritmos, medios y otros recursos digitales a través de direcciones URL web. Las API REST son las más comunes en la web hoy en día. Tulip incluye API REST integradas para gestionar usuarios, estaciones, máquinas, tablas y mucho más. Ignition puede interactuar fácilmente con estas API REST para intercambiar datos.

Para obtener más información sobre las API REST de Tulip, haz clic aquí.

Veamos dos ejemplos: cómo notificar un nuevo valor para un atributo de una máquina y cómo consultar una tabla de Tulip.

Notificar un atributo de una máquina:::(Info) (Feature rename)
Prior to r383, Service Accounts were called "API Tokens".
:::

Consulta aquí la documentación específica de la API. Podemos llamar a esta API en Ignition mediante scripts.

Debes configurar una cuenta de servicio en tu cuenta de Tulip. Sigue estas instrucciones. Asegúrate de tener definidos los siguientes ámbitos:attributes:report. 2. Anota la clave de API y el secreto, ya que los utilizaremos en el script de Ignition. 3. A continuación, debemos asignar el atributo de la máquina a la API de Tulip para recuperar el ID de la máquina y el ID del atributo. Ve a «Shop Floor» > «Máquinas». 4. Selecciona tu máquina. 5. Selecciona la pestaña «Configuración». 6. Haz clic en el atributo sin asignar y asígnalo a la API de Tulip. 7. Anota el «machineId» y el «attributeId».image.png

  1. Ahora abre Ignition Designer y selecciona tu proyecto.
  2. En «Scripting», añade una nueva biblioteca de proyecto llamada «Tulip».

image.png

  1. Edita el recurso y añade lo siguiente:

def reportMachineAttribute(machineId, attributeId, value): data = { "attributes": [ { "machineId":machineId, "attributeId":attributeId, "value":value } ] } url = "%s%s" % (TULIP\_URL, "/attributes/report") system.net.httpPost(url=url, postData=system.util.jsonEncode(data), contentType="application/json", username=API\_KEY, password=SECRET)```Sustituye el nombre de tu instancia, la clave API y el secreto en las variables.

1. Guarda el proyecto. Ahora puedes llamar a esta función desde cualquier lugar de Ignition.

`Tulip.reportMachineAttribute("5nsbB5uA4KTN7EiPB", "EqgrjTbKEJHcS6jHc", 15)`

Sustituye el ID de la máquina y el ID del atributo por los tuyos y especifica el valor.

1. Si deseas utilizar la función de scripting en un script de cambio de etiqueta, primero deberás indicar a Ignition qué proyecto asociar para el scripting de etiquetas. Inicia sesión en la página de configuración de Ignition Gateway y selecciona Sistema > Configuración de la pasarela en el menú.
2. Establece la propiedad «Proyecto de scripts de la pasarela» con el nombre del proyecto que contiene la función de scripting de Tulip y guarda los cambios.![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28949%29.png){height="" width=""}
3. A continuación, busca la etiqueta que deseas publicar en el explorador de etiquetas.
4. Haga clic con el botón derecho y edite la etiqueta.
5. Seleccione «Scripting» y, a continuación, «Value Change».![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28950%29.png){height="" width=""}
6. Introduce la siguiente línea de código:

`Tulip.reportMachineAttribute("5nsbB5uA4KTN7EiPB", "EqgrjTbKEJHcS6jHc", currentValue.value)`

Asegúrate de sustituir el ID de la máquina y el ID del atributo por los tuyos.

1. Guarda los cambios. Comprueba tu cuenta de Tulip para ver cómo se actualizan los nuevos valores a medida que cambia la etiqueta.![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28951%29.png){height="" width=""}
2. ¡Ya está! Puedes llamar a esa función desde cualquier lugar, especialmente desde una pantalla de perspectiva si alguien está introduciendo el valor manualmente.

#### Consultar una tabla de Tulip en una vista de perspectiva

1. Sigue las instrucciones del ejemplo anterior para obtener la clave y el secreto de la API de Tulip.
2. Abre Ignition Designer y selecciona tu proyecto.
3. Abre una vista de perspectiva en la que quieras ver la información.
4. Arrastra un componente «Tabla» a la vista.
5. Vincula la propiedad «data» de la tabla a un enlace HTTP.

![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28952%29.png){height="" width=""}

1. Establece la URL de la siguiente manera:

`”https://<tu-instancia>.tulip.co/api/v3/tables/<id-tabla/registros”`

Mantén las comillas, ya que la URL es una expresión. Sustituye «tu-instancia» y el identificador de la tabla.

1. Establece el tipo de autenticación en «Básica» e introduce el valor de autenticación como una expresión. Deberías ver un mensaje de éxito y una vista previa de los resultados en la parte inferior.

![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28953%29.png){height="" width=""}

1. Pulsa Aceptar y configura la tabla en Perspective. También puedes crear una función de script como en el ejemplo anterior para utilizarla en todo Ignition.![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28954%29.png){height="" width=""}