Verwaltung von Maschinenzuständen und Stückzahlen mit Edge IO und Node-RED
  • 04 Nov 2023
  • 7 Minuten zu lesen
  • Mitwirkende

Verwaltung von Maschinenzuständen und Stückzahlen mit Edge IO und Node-RED


Article Summary

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:

  1. Hardware-Einrichtung: Verkabelung des Edge IO
  2. Maschine einrichten: Erstellen Sie eine Maschine in Tulip
  3. 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:

  1. Strom (float) - stellt den vom Sensor zurückgegebenen Strom dar.
  2. 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:

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

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

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

  1. 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
    • 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
    • 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 auf flow.partCount setzen
        • Tulip Machine Attribut: Teilanzahl
    • Zweck: Senden der Nutzlast (partCount) an Tulip über API.

    • Knotentyp: Maschinen-Attribut

    • Standard-Eigenschaften:

      • Geräte-Info* - {"attributeId":"", "machineId":""}
      • Attribut Quelle - msg.payload

RMS-Strom überwachen

  1. 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
    • 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 auf 0 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
    • 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
    • Zweck: Senden der Nutzlast (partCount) an Tulip über API.

    • Knotentyp: Maschinenattribut

    • Standard-Eigenschaften:

      • Geräte-Info* - {"attributeId":"", "machineId":""}
      • Attribut Quelle - msg.data[0]

Subflow zur Berechnung des Maschinenzustands

  1. 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 auf ON 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 auf AUS 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

* 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


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!


War dieser Artikel hilfreich?