Gestione degli stati della macchina e dei conteggi dei pezzi con Edge IO e Node-RED
  • 04 Nov 2023
  • 8 Minuti da leggere
  • Contributori

Gestione degli stati della macchina e dei conteggi dei pezzi con Edge IO e Node-RED


Article Summary

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:

  1. Impostazione dell'hardware: Cablare l'Edge IO
  2. Impostazione della macchina: Creare una macchina in Tulip
  3. 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:

  1. Current (float) - rappresenta la corrente restituita dal sensore.
  2. 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:

  1. 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.

  1. 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.

  1. 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 machineIddella 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

  1. 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
    • 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
    • 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 a flow.partCount
        • Attributo della macchina Tulipano: Conteggio parti
    • 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

Monitoraggio della corrente RMS

  1. 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
    • 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 su 0
        • Eliminare il messaggio e incrementare
    • 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
    • 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
    • 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]

Flusso secondario per il calcolo dello stato della macchina

  1. 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 su ON
        • Stato = OFF
    • 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 su OFF
        • Attributo della macchina Tulipano: Stato
    • 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

* 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


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!


Questo articolo è stato utile?