Gestión de estados de máquina y recuentos de piezas con Edge IO y Node-RED
  • 04 Nov 2023
  • 9 Minutos para leer
  • Colaboradores

Gestión de estados de máquina y recuentos de piezas con Edge IO y Node-RED


Resumen del artículo

Gestión de estados de máquina y recuentos de piezas con Edge IO y Node-RED

Aprenda a utilizar el flujo de visibilidad de máquina Node-RED con su Edge IO

Este artículo cubre el flujo de trabajo para conectar un sensor de haz de rotura y un sensor de corriente a un Edge IO para gestionar el estado y el recuento de piezas en Tulip. Esto utiliza un flujo de biblioteca Tulip Node-RED que puede ser importado en el dispositivo de borde de un cliente.

Al final de este artículo, usted tendrá el siguiente flujo dentro de Node-RED para enviar datos de sus sensores conectados a una máquina dentro de Tulip.

Usted tendrá que completar los siguientes pasos:

  1. Configuración del Hardware: Cablear el Edge IO
  2. Configuración de la Máquina: Crear una máquina en Tulip
  3. Configuración de Node-RED: Importar, editar y desplegar un flujo Node-RED desde la biblioteca de Tulip.

Lo que necesitarás es

  • Un Edge IO registrado en tu cuenta de Tulip

  • Sensor actual: CR3111-3000 otro transformador de corriente similar

    • Una resistencia de carga de tamaño correcto para el transformador de corriente, recomendado 100-ohm si el CR3111-3000 (ver Configuración de Hardware para el tamaño)
    • Viga de rotura
    • Destornillador plano de 3,5 mm

1. Configuración del Hardware - Cableado del Edge IO

Este flujo de trabajo asume que utilizará un transformador de corriente y un haz de ruptura conectado a un Edge IO.

Calcular el tamaño de la resistencia de carga: Si utiliza el CR3111-3000, recomendamos una resistencia de 100 ohmios. Si utiliza una pinza amperimétrica diferente, puede calcular el tamaño máximo permitido de la resistencia(R_burden) a partir de la relación de vueltas efectiva(T_e) y la corriente máxima a medir(I_max) de la siguiente manera: R_burden = 3,12 * T_e / I_max. Su resistencia puede ser más pequeña que el tamaño máximo de resistencia permitido; esto reducirá la resolución de su sensor.

Conecte la pinza de corriente (CR3111-3000) y el haz de ruptura a su Edge IO de la siguiente manera:

  • Pinza amperimétrica

    • Medición de la corriente alterna a través del cable de alimentación a su máquina
    • Conecte una resistencia entre los dos cables de la pinza de corriente como se muestra.
    • Conecte un cable al terminal [+] del ADC diferencial y otro al terminal [-] del ADC diferencial.
    • Haz de rotura
    • Creación de la pieza de captura
    • Conecta el cable marrón (+24V) al terminal +24V del SAR ADC
    • Conecta el cable azul (gnd) al terminal de tierra del banco de Entrada Digital
    • Conecta el cable negro (out) al Pin 1 del banco de Entrada Digital

Además, asegúrate de que has alimentado el dispositivo y lo has conectado a tu red enchufando un cable ethernet en el puerto WAN.

2. Configuración de la máquina - Crear una máquina en Tulip

Para enviar los datos de la viga de ruptura y el sensor de corriente a Tulip, primero vamos a configurar una máquina utilizando la API de Tulip como su fuente de datos. Refiérase a la sección Configurando una nueva Máquina del artículo Como Usar el API de Atributos de Máquina para una visión general en profundidad.

En este ejemplo, hemos creado una Máquina con dos atributos:

  1. Current (float) - representa la corriente regresada por el sensor.
  2. Part Count (int) - señal de la viga de ruptura indicando la finalización de una parte.

Usted querrá anotar sus valores attributeIdy machineId para pasarlos al flujo Node-RED.

Usted también puede configurar un Tipo de Máquina para asignar a la Máquina si usted planea utilizar el sensor actual para cambiar aspectos como el estado de la máquina o realizar cualquier conteo basado en las salidas del sensor. Refiérase a Cómo Config urar Tipos de Máquina si esto es de interés.

3. Configuración de Node-RED

Abra el Portal de Dispositivos Edge en el Edge IO conectado a la viga de rotura y a los sensores de corriente. Inicie el Editor Node-RED utilizando las siguientes credenciales:

  • Nombre de usuario: admin
  • Contraseña: Su contraseña de Edge IO

Ver más información aquí para empezar con Node-RED en Edge IO.

3a. Importar flujo de biblioteca

Para importar el flujo de la biblioteca, sigue los pasos de nuestro documento Importando Flujos Tulip Node-RED. El flujo a importar es machine_visibility.json y al importarlo se crea la pestaña Machine Visibility with Current Clamp and Breakbeam en el editor.

3b. Visión general del flujo

Este flujo se compone de dos flujos de trabajo separados:

Contador de piezas

La primera ruta es monitorizar el recuento de piezas a través de un sensor de haz de rotura. Este flujo se compone de cuatro nodos funcionales:

  1. Pin Monitor

    • Propósito: Definir el pin(s) GPIO en el Edge IO para monitorear a través de la propiedad de pin habilitado.
    • Filtro para pinUp
    • Propósito: A partir de la carga útil del mensaje, determinar si el evento en el pin(s) monitorizado es verdadero.
    • Incrementar recuento de piezas
    • Propósito: Incrementar el conteo de partes de la variable de flujo en el evento pin true.
    • Atributo de la máquina Tulip: Part Count
    • Propósito: Enviar la carga útil (partCount) a Tulip vía API.

Monitorizar Corriente RMS

La segunda ruta consiste en monitorizar un sensor de corriente conectado a la entrada del ADC (convertidor analógico-digital). Este flujo se compone de seis nodos funcionales.

  1. Lecturas diferenciales ADC

    • Propósito: Asignar el perfil de configuración analógica a la entrada ADC.
    • Filtrar 1/5 lecturas
    • Propósito: Extraer cada quinta medición (5 segundos) para pasarla a Tulip.
    • Pasar mensaje
    • Finalidad: Poner a cero el recuento de lecturas de cada quinto mensaje.
    • Dejar mensaje e incrementar
    • Finalidad: Para todas las demás lecturas, incrementar el recuento de lecturas en 1.
    • Escala CR-3111
    • Finalidad: Escalar la medida del sensor según las especificaciones del fabricante.
    • Atributo de la Máquina Tulipán: Corriente RMS
    • Propósito: Enviar la carga útil (partCount) a Tulip vía API.

También hay cuatro nodos opcionales que están deshabilitados por defecto pero que pueden ser habilitados para tener un estado de máquina determinado por Node-RED. Tenga en cuenta que también es posible utilizar Machine Triggers dentro de Tulip para ejecutar esta misma lógica.

  1. ¿Es la Corriente > 100mA?

    • Propósito: Verificar si el valor de corriente es mayor a 100 mA.
    • Estado = ON
    • Propósito: Poner la carga en ON si la corriente es mayor de 100 mA.
    • Estado = OFF
    • Finalidad: Poner la carga útil en OFF si la corriente es inferior o igual a 100 mA.
    • Atributo de la máquina Tulip: Estado
    • Finalidad: Enviar la carga útil (estado) a Tulip vía API.

3c. Editar el flujo

Para terminar de configurar este flujo, la información del dispositivo para el Tulip Machine Attribute : Part Count y Tulip Machine Attribute: RMS Current deben ser incluidos con los campos attributeId y machineIdfde la máquina configurada anteriormente.

Dependiendo del sensor que utilice, puede editar adicionalmente el nodo CR-3111 Scaling para reflejar la relación de vueltas de su transformador actual.

3d. Despliegue del flujo

Con el flujo Node-RED construido y los parámetros necesarios añadidos, puede desplegar su flujo y empezar a ver los datos de su haz de rotura y la salida de los sensores de corriente a Tulip.

Seleccionando la opción Mensaje de depuración en la parte derecha del Editor Node-RED, podrás ver las respuestas y los códigos de estado correspondientes de la API de Tulip.

Para obtener más información sobre los códigos de estado, por favor, navega a la documentación de la API en tu instancia de Tulip (es decir, .tulip.co/apidocs). En concreto, consulta la documentación del punto final POST /attributes/report.

Ahora también podrás ver los datos en Tulip, navegando a la pestaña de configuración de la Máquina.

Detalles técnicos del flujo Node-RED

A continuación se muestra un resumen detallado de los nodos y sus parámetros de configuración por defecto importados con el archivo machine_visibility.json.

Contador de piezas

  1. Pin Monitor

    • Propósito: Definir el pin(s) GPIO en el Edge IO para monitorear a través de la propiedad de pin habilitado.

    • Tipo de nodo: Entrada digital

    • Propiedades por defecto:

      • Modo de ejecución - Continuo
      • Frecuencia de actualización - 1 segundo
      • Pines habilitados - 1
      • Filtro para pinUp
    • Propósito: A partir de la carga útil del mensaje, determinar si el evento en el(los) pin(s) monitorizado(s) es verdadero.

    • Tipo de nodo: Conmutador

    • Propiedades por defecto:

      • Propiedad - msg.payload
      • Reglas - es verdadero
      • Incrementar número de partes
    • Propósito: Incrementar el conteo de partes de la variable de flujo en el evento pin true.

    • Tipo de nodo: Cambiar

    • Propiedades por defecto:

      • Reglas:

        • Establecer flow.partCount a la expresión $flowContext('partCount') + 1
        • Establecer msg.payload a flow. partCount
        • Atributo de la máquina Tulip: Part Count
    • Propósito: Enviar la carga útil (partCount) a Tulip vía API.

    • Tipo de nodo: Atributo de máquina

    • Propiedades por defecto:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Atributo Fuente - msg.payload

Monitor RMS Current

  1. Lecturas ADC diferenciales

    • Propósito: Asignar el perfil de configuración analógica a la entrada ADC.

    • Tipo de nodo: Analógico de alta velocidad

    • Propiedades por defecto:

      • Config Analógica - ADC Diferencial RMS @ 1kHZ

        • Seleccionar ADC a Configurar - ADC Diferencial
        • Salidas habilitadas - RMS
        • Tamaño del buffer - 1000
        • Frecuencia de muestreo (Hz) - 1000+ Tipo de datos - RMS+ Modo de salida - Continuo+ Frecuencia de actualización (segundos) - 1
        • Filtrar 1/5 lecturas
    • Propósito: Extraer cada quinta medición (5 segundos) para pasarla a Tulip.

    • Tipo de nodo: Interruptor

    • Propiedades por defecto:

      • Propiedad - flow.numReadings

      • Reglas:

        • == 4
        • de lo contrario
        • Pasar mensaje
    • Finalidad: Poner a cero el recuento de lecturas de cada cinco mensajes.

    • Tipo de nodo: Cambiar

    • Propiedades por defecto:

      • Reglas:

        • Poner flow.numReadings a 0
        • Dejar mensaje e incrementar
    • Finalidad: Para todas las demás lecturas, incrementar el recuento de lecturas en 1.

    • Tipo de nodo: Cambiar

    • Propiedades por defecto:

      • Reglas:

        • Establecer flow.numReadings a la expresión $flowContext('numReadings') + 1
        • Escala CR-3111
    • Propósito: Escalar la medida del sensor basándose en las especificaciones del fabricante.

    • Tipo de nodo: Plantilla de subflujo

    • Propiedades por defecto:

      • Propiedad - datos
      • Escala* - 3000
      • Desplazamiento - 0
      • Atributo de la máquina Tulip: Corriente RMS
    • Propósito: Enviar la carga útil (partCount) a Tulip vía API.

    • Tipo de nodo: Atributo de máquina

    • Propiedades por defecto:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Fuente del atributo - msg.data[0]

Subflujo para calcular el estado de la máquina

  1. ¿Es la corriente > 100mA?

    • Propósito: Comprobar si el valor de corriente es superior a 100 mA.

    • Tipo de nodo: Interruptor

    • Propiedades por defecto:

      • Propiedad - msg.data[0]

      • Reglas:

        • > 0.1
        • en caso contrario
        • Estado = ON
    • Propósito: Poner la carga en ON si la corriente es superior a 100 mA.

    • Tipo de nodo: Cambiar

    • Propiedades por defecto:

      • Reglas:

        • Poner msg.payload en ON
        • Estado = OFF
    • Propósito: Poner payload en OFF si la corriente es menor o igual a 100 mA.

    • Tipo de nodo: Cambiar

    • Propiedades por defecto:

      • Reglas:

        • Poner msg.payload en OFF
        • Atributo de la máquina Tulip: Estado
    • Propósito: Enviar la carga útil (estado) a Tulip vía API.

    • Tipo de nodo: Atributo de máquina

    • Propiedades por defecto:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Atributo Fuente - msg.payload

* Los parámetros deben actualizarse para que el flujo funcione correctamente. El valor de escala del sensor actual debe modificarse según la recomendación del fabricante.

Lecturas Adicionales


¿Ha encontrado lo que buscaba?

También puedes dirigirte a community.tulip.co para publicar tu pregunta o ver si otras personas se han enfrentado a una pregunta similar.


¿Te ha sido útil este artículo?