- Stampa
Gestione degli stati della macchina e dei conteggi dei pezzi con Edge IO e Node-RED
Gestione degli stati della macchina e dei conteggi dei pezzi con Edge IO e Node-RED
Imparate a utilizzare il flusso Node-RED per la visibilità della macchina con l'Edge IO.
Questo articolo descrive il flusso di lavoro per collegare un sensore di rottura e un sensore di corrente a un Edge IO per gestire lo stato e il conteggio dei pezzi in Tulip. Questo utilizza un flusso di libreria Tulip Node-RED che può essere importato sul dispositivo edge del cliente.
Alla fine di questo articolo, avrete il seguente flusso all'interno di Node-RED per inviare i dati dai vostri sensori collegati a una macchina all'interno di Tulip.
È necessario completare i seguenti passaggi:
- Impostazione dell'hardware: Cablare l'Edge IO
- Impostazione della macchina: Creare una macchina in Tulip
- Impostazione di Node-RED: Importare, modificare e distribuire un flusso Node-RED dalla libreria Tulip.
Sono necessari
Un Edge IO registrato nel vostro account Tulip
Sensore corrente: CR3111-3000 un altro trasformatore di corrente simile
- Una resistenza di carico di dimensioni corrette per il trasformatore di corrente, consigliata da 100 ohm se si tratta del CR3111-3000 (vedere Impostazione hardware per il dimensionamento)
- Raggio di rottura
- Cacciavite a testa piatta da 3,5 mm
1. Configurazione dell'hardware - Cablaggio dell'IO bordo
Questo flusso di lavoro presuppone l'utilizzo di un trasformatore di corrente e di un break beam collegato a un Edge IO.
Calcolo della dimensione della resistenza di carico: Se si utilizza il CR3111-3000, si consiglia un resistore da 100 ohm. Se si utilizza una pinza amperometrica diversa, è possibile calcolare la dimensione massima consentita del resistore(R_burden
) dal rapporto di spire effettivo(T_e
) e dalla corrente massima da misurare(I_max
) come segue: R_burden = 3,12 * T_e / I_max
. Il resistore può essere più piccolo della dimensione massima consentita; ciò ridurrà la risoluzione del sensore.
Collegare la pinza amperometrica (CR3111-3000) e il raggio di rottura all'Edge IO come segue:
Pinza amperometrica
- Misurare la corrente CA attraverso il cavo di alimentazione nella macchina.
- Collegare il resistore tra i due fili della pinza amperometrica come illustrato.
- Collegare un filo al terminale ADC differenziale [+] e un filo al terminale ADC differenziale [-].
- Raggio di rottura
- Creazione della parte di cattura
- Collegare il filo marrone (+24V) al terminale +24V dell'ADC SAR
- Collegare il filo blu (gnd) al terminale di terra del banco di ingresso digitale
- Collegare il filo nero (out) al pin 1 del banco di ingresso digitale
Inoltre, assicurarsi di aver alimentato il dispositivo e di averlo collegato alla rete inserendo un cavo Ethernet nella porta WAN.
2. Impostazione della macchina - Creazione di una macchina in Tulipano
Per inviare i dati del raggio di rottura e del sensore di corrente a Tulip, configuriamo innanzitutto una macchina che utilizza l'API di Tulip come sorgente di dati. Per una panoramica approfondita, consultare la sezione Impostazione di una nuova macchina dell'articolo Come usare l'API degli attributi della macchina.
In questo esempio, abbiamo creato una macchina con due attributi:
- Current (float) - rappresenta la corrente restituita dal sensore.
- Part Count (int) - segnale proveniente dal raggio di rottura che indica il completamento di un pezzo.
È necessario annotare i valori attributeId e
machineId
da passare nel flusso Node-RED.
È inoltre possibile impostare un Tipo di macchina da assegnare alla macchina se si intende utilizzare il sensore di corrente per modificare aspetti quali lo stato della macchina o eseguire conteggi basati sulle uscite del sensore. Se ciò è di interesse, consultare la sezione Come impostare i tipi di macchina.
3. Configurazione di Node-RED
Aprire l'Edge Device Portal sull'Edge IO collegato al raggio di rottura e ai sensori di corrente. Avviare l'editor Node-RED utilizzando le seguenti credenziali:
- Nome utente: admin
- Password: password dell'Edge IO
Per iniziare a utilizzare Node-RED su Edge IO, consultare le informazioni qui.
3a. Importazione del flusso di libreria
Per importare il flusso della libreria, seguire i passaggi del documento Importare i flussi di Tulip Node-RED. Il flusso da importare è machine_visibility.json e l'importazione crea la scheda Machine Visibility with Current Clamp and Breakbeam nell'editor.
3b. Panoramica del flusso
Questo flusso è composto da due flussi di lavoro separati:
Contatore pezzi
Il primo percorso consiste nel monitorare il conteggio dei pezzi tramite un sensore a raggio di rottura. Questo flusso è composto da quattro nodi funzionali:
Pin di monitoraggio
- Scopo: definire i pin GPIO dell'Edge IO da monitorare tramite la proprietà enabled pin.
- Filtro per pinUp
- Scopo: Dal payload del messaggio, determinare se l'evento sul pin monitorato è vero.
- Incremento del numero di parti
- Scopo: Incrementa il numero di parti della variabile di flusso sull'evento pin vero.
- Attributo della macchina Tulipano: Conteggio parti
- Scopo: inviare il payload (partCount) a Tulip tramite API.
Monitoraggio della corrente RMS
Il secondo percorso consiste nel monitorare un sensore di corrente collegato all'ingresso dell'ADC (convertitore analogico-digitale). Questo flusso è composto da sei nodi funzionali.
Letture ADC differenziali
- Scopo: Assegnare il profilo di configurazione analogica all'ingresso ADC.
- Filtrare le letture 1/5
- Scopo: Estrarre ogni quinta misura (5 secondi) da passare a Tulip.
- Passaggio del messaggio
- Scopo: Azzerare il conteggio delle letture per ogni quinto messaggio.
- Abbandona messaggio e incremento
- Scopo: Per tutte le altre letture, incrementare di 1 il conteggio delle letture.
- CR-3111 Scala
- Scopo: scalare la misura del sensore in base alle specifiche del produttore.
- Attributo macchina Tulipano: Corrente RMS
- Scopo: inviare il payload (partCount) a Tulip tramite API.
Ci sono anche quattro nodi opzionali che sono disabilitati per impostazione predefinita, ma possono essere abilitati per avere uno stato della macchina determinato da Node-RED. Si noti che è anche possibile utilizzare i Trigger macchina all'interno di Tulip per eseguire questa stessa logica.
La corrente è > 100mA?
- Scopo: Verificare se il valore della corrente è superiore a 100 mA.
- Stato = ON
- Scopo: Impostare il carico utile su ON se la corrente è superiore a 100 mA.
- Stato = OFF
- Scopo: impostare il carico utile su OFF se la corrente è inferiore o uguale a 100 mA.
- Attributo della macchina Tulipano: Stato
- Scopo: inviare il carico utile (stato) a Tulip tramite API.
3c. Modifica del flusso
Per terminare l'impostazione di questo flusso, le informazioni sul dispositivo per l'attributo macchina Tulip: Part Count e Tulip Machine Attribute: RMS Current devono essere incluse con i campi
attributeId e
machineId
della macchina impostata in precedenza.
A seconda del sensore utilizzato, è possibile modificare anche il nodo CR-3111 Scaling per riflettere il rapporto di spire del trasformatore di corrente.
3d. Distribuzione del flusso
Una volta costruito il flusso Node-RED e aggiunti i parametri necessari, è possibile distribuire il flusso e iniziare a vedere i dati del raggio di rottura e dei sensori di corrente in uscita su Tulip.
Selezionando l'opzione Messaggio di debug sul lato destro dell'editor di Node-RED, si potranno vedere le risposte e i corrispondenti codici di stato dell'API di Tulip.
Per ottenere maggiori informazioni sui codici di stato, si prega di navigare nella documentazione dell'API nella propria istanza di Tulip (ad esempio, .tulip.co/apidocs). In particolare, fare riferimento alla documentazione dell'endpoint POST /attributes/report
.
A questo punto sarà possibile vedere i dati anche in Tulip, navigando nella scheda di configurazione della macchina.
Dettagli tecnici del flusso Nodo-RED
Di seguito è riportato un riepilogo dettagliato dei nodi e dei loro parametri di configurazione predefiniti importati con il file machine_visibility.json.
Parte Contatore
Pin di monitoraggio
Scopo: definire i pin GPIO dell'Edge IO da monitorare tramite la proprietà enabled pin.
Tipo di nodo: Ingresso digitale
Proprietà predefinite:
- Modalità di esecuzione -
Continua
- Frequenza di aggiornamento -
1 secondo
- Pin abilitati -
1
- Filtro per pinUp
- Modalità di esecuzione -
Scopo: Dal payload del messaggio, determinare se l'evento sul pin monitorato è vero.
Tipo di nodo: Interruttore
Proprietà predefinite:
- Proprietà -
msg.payload
- Regole -
è vero
- Incremento del numero di parti
- Proprietà -
Scopo: Incrementa il numero di parti della variabile di flusso sull'evento pin true.
Tipo di nodo: Modifica
Proprietà predefinite:
Regole:
- Imposta
flow.partCount
all'espressione$flowContext('partCount') + 1
- Impostare
msg.payload
aflow.partCount
- Attributo della macchina Tulipano: Conteggio parti
- Imposta
Scopo: Inviare il carico utile (partCount) a Tulip tramite API.
Tipo di nodo: Attributo macchina
Proprietà predefinite:
- Device Info* -
{"attributeId":"", "machineId":""}
- Fonte dell'attributo -
msg.payload
- Device Info* -
Monitoraggio della corrente RMS
Letture ADC differenziali
Scopo: assegnare il profilo di configurazione analogica all'ingresso ADC.
Tipo di nodo: Analogico ad alta velocità
Proprietà predefinite:
Configurazione analogica -
ADC differenziale RMS @ 1kHZ
- Selezionare l'ADC da configurare -
ADC differenziale
- Uscite abilitate -
RMS
- Dimensione buffer -
1000
- Frequenza di campionamento (Hz) -
1000
+ Tipo di dati -RMS
+ Modalità di uscita -Continua
+ Frequenza di aggiornamento (secondi) -1
- Filtro 1/5 letture
- Selezionare l'ADC da configurare -
Scopo: Estrarre ogni quinta misura (5 secondi) da passare a Tulip.
Tipo di nodo: Interruttore
Proprietà predefinite:
Proprietà -
flow.numReadings
Regole:
== 4
altrimenti
- Passare il messaggio
Scopo: Azzerare il conteggio delle letture per ogni quinto messaggio.
Tipo di nodo: Cambia
Proprietà predefinite:
Regole:
- Imposta
flow.numReadings
su0
- Eliminare il messaggio e incrementare
- Imposta
Scopo: Per tutte le altre letture, incrementare di 1 il conteggio delle letture.
Tipo di nodo: Cambia
Proprietà predefinite:
Regole:
- Imposta
flow.numReadings
all'espressione$flowContext('numReadings') + 1
- CR-3111 Scala
- Imposta
Scopo: scalare la misura del sensore in base alle specifiche del produttore.
Tipo di nodo: Modello di flusso secondario
Proprietà predefinite:
- Proprietà -
dati
- Scala* -
3000
- Offset -
0
- Attributo della macchina Tulipano: Corrente RMS
- Proprietà -
Scopo: inviare il carico utile (partCount) a Tulip tramite API.
Tipo di nodo: Attributo macchina
Proprietà predefinite:
- Device Info* -
{"attributeId":"", "machineId":""}
- Fonte dell'attributo -
msg.data[0]
- Device Info* -
Flusso secondario per il calcolo dello stato della macchina
La corrente è > 100mA?
Scopo: Verificare se il valore della corrente è superiore a 100 mA.
Tipo di nodo: Interruttore
Proprietà predefinite:
Proprietà -
msg.data[0]
Regole:
> 0.1
altrimenti
- Stato = ON
Scopo: impostare il carico utile su ON se la corrente è superiore a 100 mA.
Tipo di nodo: Modifica
Proprietà predefinite:
Regole:
- Imposta
msg.payload
suON
- Stato = OFF
- Imposta
Scopo: Impostare il carico utile su OFF se la corrente è inferiore o uguale a 100 mA.
Tipo di nodo: Modifica
Proprietà predefinite:
Regole:
- Imposta
msg.payload
suOFF
- Attributo della macchina Tulipano: Stato
- Imposta
Scopo: Inviare il payload (stato) a Tulip tramite API.
Tipo di nodo: Attributo macchina
Proprietà predefinite:
- Device Info* -
{"attributeId":"", "machineId":""}
- Fonte dell'attributo -
msg.payload
- Device Info* -
* I parametri devono essere aggiornati affinché il flusso funzioni correttamente. Il valore di scala del sensore corrente deve essere modificato secondo le raccomandazioni del produttore.
Ulteriori letture
- Documentazione di Node-RED
- Collegamento di un sensore 4-20 mA con Edge IO e Node-RED
- Collegamento di un oscilloscopio analogico con Edge IO e Node-RED
Avete trovato quello che cercavate?
Potete anche andare su community.tulip.co per porre la vostra domanda o vedere se altri hanno affrontato una domanda simile!