- Impresión
Gestión de estados de máquina y recuentos de piezas con Edge IO y Node-RED
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:
- Configuración del Hardware: Cablear el Edge IO
- Configuración de la Máquina: Crear una máquina en Tulip
- 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:
- Current (float) - representa la corriente regresada por el sensor.
- 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:
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.
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.
¿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
machineIdf
de 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
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
- Modo de ejecución -
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
- Propiedad -
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
- Establecer
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
- Device Info* -
Monitor RMS Current
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
- Seleccionar ADC a Configurar -
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
a0
- Dejar mensaje e incrementar
- Poner
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
- Establecer
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
- Propiedad -
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]
- Device Info* -
Subflujo para calcular el estado de la máquina
¿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
enON
- Estado = OFF
- Poner
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
enOFF
- Atributo de la máquina Tulip: Estado
- Poner
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
- Device Info* -
* 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
- Documentación de Node-RED
- Conexión de un Sensor de 4-20 mA con Edge IO y Node-RED
- Conexión de un Osciloscopio Analógico con Edge IO y Node-RED
¿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.