- Drucken
Verwaltung von Maschinenzuständen und Stückzahlen mit Edge IO und Node-RED
Verwaltung von Maschinenzuständen und Stückzahlen mit Edge IO und Node-RED
Erfahren Sie, wie Sie den Node-RED-Flow zur Maschinensichtbarkeit mit Ihrem Edge IO verwenden können
Dieser Artikel beschreibt den Arbeitsablauf für den Anschluss eines Lichtschrankensensors und eines Stromsensors an ein Edge IO, um den Zustand der Maschine zu verwalten und Teile in Tulip zu zählen. Dabei wird ein Tulip Node-RED-Bibliotheksablauf verwendet, der in ein Edge-Gerät eines Kunden importiert werden kann.
Am Ende dieses Artikels werden Sie den folgenden Ablauf in Node-RED haben, um Daten von Ihren angeschlossenen Sensoren an eine Maschine in Tulip zu senden.
Sie müssen die folgenden Schritte ausführen:
- Hardware-Einrichtung: Verkabelung des Edge IO
- Maschine einrichten: Erstellen Sie eine Maschine in Tulip
- Node-RED-Einrichtung: Importieren, Bearbeiten und Bereitstellen eines Node-RED Flusses aus der Tulip Bibliothek
Was Sie benötigen ist:
Einen Edge IO , der in Ihrem Tulip-Konto registriert ist
Einen aktuellen Sensor: CR3111-3000 oder einen ähnlichen Stromwandler
- Einen korrekt bemessenen Bürdenwiderstand für den Stromwandler, empfohlen 100 Ohm für den CR3111-3000 (siehe Hardware-Setup für die Bemessung)
- Sollbruchstelle
- 3,5-mm-Schraubendreher mit flachem Kopf
1. Hardware-Setup - Verdrahtung des Edge IO
Bei diesem Arbeitsablauf wird davon ausgegangen, dass Sie einen Stromwandler und einen Bremsbalken verwenden, der mit einem Edge IO verbunden ist.
Berechnen Sie die Größe des Bürdenwiderstands: Wenn Sie den CR3111-3000 verwenden, empfehlen wir einen 100-Ohm-Widerstand. Wenn Sie eine andere Stromzange verwenden, können Sie die maximal zulässige Widerstandsgröße(R_burden
) aus dem effektiven Windungsverhältnis(T_e
) und dem maximal zu messenden Strom(I_max
) wie folgt berechnen: R_burden = 3,12 * T_e / I_max
. Ihr Widerstand kann kleiner sein als die maximal zulässige Widerstandsgröße; dadurch wird die Auflösung des Sensors verringert.
Verdrahten Sie die Stromzange (CR3111-3000) und den Bremsbalken wie folgt mit dem Edge IO:
Stromzange
- Messen Sie den Wechselstrom durch das Netzkabel in Ihrer Maschine
- Bringen Sie einen Widerstand zwischen den beiden Drähten der Stromzange an (siehe Abbildung).
- Verbinden Sie einen Draht mit der Klemme Differential ADC [+] und einen Draht mit der Klemme Differential ADC [-].
- Strahl unterbrechen
- Erfassen der Teileerstellung
- Den braunen Draht (+24V) an die +24V-Klemme des SAR ADC anschließen
- Das blaue Kabel (gnd) an die Erdungsklemme der Digital Input Bank anschließen
- Verbinden Sie das schwarze Kabel (out) mit Pin 1 der Digital Input Bank
Vergewissern Sie sich außerdem, dass das Gerät mit Strom versorgt und mit dem Netzwerk verbunden ist, indem Sie ein Ethernet-Kabel an den WAN-Anschluss anschließen.
2. Maschineneinrichtung - Erstellen einer Maschine in Tulip
Um Daten vom Bremsbalken und dem Stromsensor an Tulip zu senden, richten wir zunächst einen Automaten mit der Tulip API als Datenquelle ein. Eine ausführliche Übersicht finden Sie im Abschnitt Einrichten einer neuen Maschine im Artikel Verwendung der Maschinenattribute-API.
In diesem Beispiel haben wir eine Maschine mit zwei Attributen erstellt:
- Strom (float) - stellt den vom Sensor zurückgegebenen Strom dar.
- Part Count (int) - Signal vom Bremsbalken, das die Fertigstellung eines Teils anzeigt.
Notieren Sie sich die Werte für attributeId und
machineId
, die Sie in den Node-RED-Ablauf einfügen möchten.
Sie können auch einen Maschinentyp einrichten, den Sie der Maschine zuweisen, wenn Sie den Stromsensor verwenden möchten, um Aspekte wie den Zustand der Maschine zu ändern oder Zählungen auf der Grundlage der Sensorausgaben durchzuführen. Wenn dies von Interesse ist, lesen Sie den Abschnitt Einrichten von Maschinentypen.
3. Node-RED-Einrichtung
Öffnen Sie das Edge Device Portal auf dem Edge IO, der mit dem Bremsbalken und den Stromsensoren verbunden ist. Starten Sie den Node-RED-Editor unter Verwendung der folgenden Anmeldeinformationen:
- Benutzername: admin
- Passwort: Ihr Edge IO-Passwort
Weitere Informationen zu den ersten Schritten mit Node-RED auf Edge IO finden Sie hier.
3a. Bibliotheksfluss importieren
Um den Bibliotheksfluss zu importieren, folgen Sie den Schritten in unserem Dokument Importieren von Tulip Node-RED Flows. Der zu importierende Fluss ist machine_visibility.json und der Import erzeugt die Registerkarte Maschinensichtbarkeit mit aktueller Klemme und Unterzug im Editor.
3b. Überblick über den Fluss
Dieser Fluss besteht aus zwei separaten Workstreams:
Teilezähler
Der erste Weg ist die Überwachung der Teileanzahl über einen Abreißsensor. Dieser Fluss besteht aus vier Funktionsknoten:
Pin überwachen
- Zweck: Definieren Sie den/die GPIO-Pin(s) am Edge IO, der/die über die Eigenschaft enabled pin überwacht werden soll(en).
- Filter für pinUp
- Zweck: Aus der Nutzlast der Nachricht bestimmen, ob das Ereignis auf dem/den überwachten Pin(s) wahr ist.
- Teilezählung inkrementieren
- Zweck: Inkrementieren der Flussvariable Part Count bei Pin-Ereignis true.
- Tulip Machine Attribut: Teilanzahl
- Zweck: Senden der Nutzlast (partCount) an Tulip über API.
RMS-Strom überwachen
Der zweite Pfad ist die Überwachung eines Stromsensors, der an den ADC-Eingang (Analog-Digital-Wandler) angeschlossen ist. Dieser Fluss besteht aus sechs Funktionsknoten.
Differenzielle ADC-Messwerte
- Zweck: Zuweisung des analogen Konfigurationsprofils an den ADC-Eingang.
- Filter 1/5 Messwerte
- Zweck: Extrahieren jeder fünften Messung (5 Sekunden) zur Weitergabe an Tulip.
- Nachricht weitergeben
- Zweck: Die Zählung der Messwerte für jede fünfte Meldung auf Null zurücksetzen.
- Meldung verwerfen & inkrementieren
- Zweck: Bei allen anderen Messwerten wird die Anzahl der Messwerte um 1 erhöht.
- CR-3111 Skalierung
- Zweck: Skalierung der Sensormessung gemäß den Spezifikationen des Herstellers.
- Tulip Machine Attribut: RMS-Strom
- Zweck: Senden der Nutzlast (partCount) an Tulip über API.
Es gibt auch vier optionale Knoten, die standardmäßig deaktiviert sind, aber aktiviert werden können, um einen von Node-RED bestimmten Maschinenstatus zu erhalten. Beachten Sie, dass es auch möglich ist, Maschinenauslöser innerhalb von Tulip zu verwenden, um die gleiche Logik auszuführen.
Ist Strom > 100mA?
- Zweck: Prüfen, ob der Stromwert größer als 100 mA ist.
- Zustand = EIN
- Zweck: Die Nutzlast auf EIN setzen, wenn der Strom größer als 100 mA ist.
- Zustand = AUS
- Zweck: Setzt die Nutzlast auf AUS, wenn der Strom kleiner oder gleich 100 mA ist.
- Tulip-Maschine Attribut: Zustand
- Zweck: Senden der Nutzlast (Status) an Tulip über API.
3c. Bearbeiten Sie den Fluss
Um die Einrichtung dieses Flusses abzuschließen, müssen die Geräteinformationen für das Tulip Machine Attribute: Part Count und Tulip Machine Attribute: RMS Current müssen mit den attributeId- und
machineIdf-Feldern
aus der zuvor eingerichteten Maschine eingefügt werden.
Je nach dem von Ihnen verwendeten Sensor können Sie zusätzlich den Knoten CR-3111 Skalierung bearbeiten, um das Windungsverhältnis Ihres Stromwandlers wiederzugeben.
3d. Einsetzen des Flusses
Nachdem Sie den Node-RED-Ablauf erstellt und die erforderlichen Parameter hinzugefügt haben, können Sie Ihren Ablauf einsetzen und die Daten von Ihrem Bremsbalken und den Stromsensoren an Tulip ausgeben lassen.
Wenn Sie die Option Debug-Meldung auf der rechten Seite des Node-RED Editors wählen, sollten Sie die Antworten und die entsprechenden Statuscodes der Tulip API sehen können.
Um mehr Informationen über die Statuscodes zu erhalten, navigieren Sie bitte zur API-Dokumentation in Ihrer Tulip-Instanz (d.h. .tulip.co/apidocs). Sehen Sie sich insbesondere die Dokumentation des Endpunkts POST /attributes/report
an.
Jetzt können Sie die Daten auch in Tulip sehen, indem Sie zur Registerkarte Konfiguration der Maschine navigieren.
Technische Details des Node-RED Flusses
Im Folgenden finden Sie eine detaillierte Zusammenfassung der Knoten und ihrer Standardkonfigurationsparameter, die mit der Datei machine_visibility.json importiert wurden.
Teil Zähler
Monitor-Pin
Zweck: Definieren Sie den/die GPIO-Pin(s) am Edge IO, der/die über die Eigenschaft enabled pin überwacht werden soll(en).
Knotentyp: Digitaler Eingang
Standard-Eigenschaften:
- Betriebsmodus -
Kontinuierlich
- Aktualisierungsrate -
1 Sekunde
- Aktivierte Pins -
1
- Filter für pinUp
- Betriebsmodus -
Zweck: Aus der Nutzlast der Nachricht bestimmen, ob das Ereignis auf dem/den überwachten Pin(s) wahr ist.
Knotentyp: Schalter
Standard-Eigenschaften:
- Eigenschaft -
msg.payload
- Regeln -
ist wahr
- Teilezählung erhöhen
- Eigenschaft -
Zweck: Erhöhen der Teilanzahl der Flussvariablen bei Pin-Ereignis true.
Knotentyp: Ändern
Standard-Eigenschaften:
Regeln:
- setze
flow.partCount
auf Ausdruck$flowContext('partCount') + 1
msg.payload
aufflow.partCount
setzen- Tulip Machine Attribut: Teilanzahl
- setze
Zweck: Senden der Nutzlast (partCount) an Tulip über API.
Knotentyp: Maschinen-Attribut
Standard-Eigenschaften:
- Geräte-Info* -
{"attributeId":"", "machineId":""}
- Attribut Quelle -
msg.payload
- Geräte-Info* -
RMS-Strom überwachen
Differenzielle ADC-Messwerte
Zweck: Zuweisung des analogen Konfigurationsprofils an den ADC-Eingang.
Knotentyp: Hochgeschwindigkeitsanalog
Standard-Eigenschaften:
Analog Config - Differenzieller
ADC RMS @ 1kHZ
- ADC zum Konfigurieren auswählen - Differential
ADC
- Aktivierte Ausgänge -
RMS
- Puffergröße -
1000
- Abtastfrequenz (Hz) -
1000
+ Datentyp -RMS
+ Ausgabemodus -Kontinuierlich
+ Aktualisierungsrate (Sekunden) -1
- Filter 1/5 Messwerte
- ADC zum Konfigurieren auswählen - Differential
Zweck: Extrahieren jeder fünften Messung (5 Sekunden) zur Weitergabe an Tulip.
Typ des Knotens: Schalter
Standard-Eigenschaften:
Eigenschaft -
flow.numReadings
Regeln:
== 4
sonst
- Nachricht weitergeben
Zweck: Zurücksetzen der Zählung der Messwerte für jede fünfte Nachricht auf Null.
Typ des Knotens: Ändern
Standard-Eigenschaften:
Regeln:
flow.numReadings
auf0
setzen- Nachricht verwerfen & inkrementieren
Zweck: Für alle anderen Lesungen wird die Anzahl der Lesungen um 1 erhöht.
Knotentyp: Ändern
Standard-Eigenschaften:
Regeln:
- setze
flow.numReadings
auf Ausdruck$flowContext('numReadings') + 1
- CR-3111 Skalierung
- setze
Zweck: Skalierung der Sensormessung auf der Grundlage der Herstellerspezifikationen.
Knotentyp: Subflow-Vorlage
Standard-Eigenschaften:
- Eigenschaft -
Daten
- Skalierung* -
3000
- Versatz -
0
- Tulip Machine Attribut: RMS Strom
- Eigenschaft -
Zweck: Senden der Nutzlast (partCount) an Tulip über API.
Knotentyp: Maschinenattribut
Standard-Eigenschaften:
- Geräte-Info* -
{"attributeId":"", "machineId":""}
- Attribut Quelle -
msg.data[0]
- Geräte-Info* -
Subflow zur Berechnung des Maschinenzustands
Ist Strom > 100mA?
Zweck: Prüfen, ob der Stromwert größer als 100 mA ist.
Knotentyp: Schalter
Standard-Eigenschaften:
Eigenschaft -
msg.data[0]
Regeln:
> 0.1
sonst
- Zustand = ON
Zweck: Setzen der Nutzlast auf EIN, wenn der Strom größer als 100 mA ist.
Knotentyp: Ändern
Standard-Eigenschaften:
Regeln:
msg.payload
aufON
setzen- Zustand = AUS
Zweck: Setzen der Nutzlast auf AUS, wenn der Strom kleiner oder gleich 100 mA ist.
Knotentyp: Ändern
Standard-Eigenschaften:
Regeln:
msg.payload
aufAUS
setzen- Tulip Maschine Attribut: Zustand
Zweck: Senden der Nutzlast (Status) an Tulip über API.
Knotentyp: Maschinen-Attribut
Standard-Eigenschaften:
- Geräte-Info* -
{"attributeId":"", "machineId":""}
- Attribut Quelle -
msg.payload
- Geräte-Info* -
* Die Parameter müssen aktualisiert werden, damit der Fluss ordnungsgemäß funktioniert. Der Skalenwert des Stromsensors sollte gemäß der Empfehlung des Herstellers geändert werden.
Weitere Lektüre
- Node-REDs Dokumentation
- Anschließen eines 4-20-mA-Sensors mit Edge IO und Node-RED
- Anschließen eines analogen Oszilloskops mit Edge IO und Node-RED
Haben Sie gefunden, wonach Sie gesucht haben?
Sie können auch zu community.tulip.co gehen und Ihre Frage stellen oder sehen, ob andere eine ähnliche Frage hatten!