Zarządzanie stanami maszyny i liczbą części za pomocą Edge IO i Node-RED
  • 04 Nov 2023
  • 7 Minuty do przeczytania
  • Współtwórcy

Zarządzanie stanami maszyny i liczbą części za pomocą Edge IO i Node-RED


Article Summary

Zarządzanie stanami maszyny i liczbą części za pomocą Edge IO i Node-RED

Dowiedz się, jak korzystać z przepływu widoczności maszyny Node-RED z Edge IO

W tym artykule omówiono przepływ pracy umożliwiający podłączenie czujnika wiązki zrywającej i czujnika prądu do Edge IO w celu zarządzania stanem i zliczania części w systemie Tulip. Wykorzystuje to przepływ biblioteki Tulip Node-RED, który można zaimportować do urządzenia brzegowego klienta.

Pod koniec tego artykułu będziesz mieć następujący przepływ w Node-RED, aby wysyłać dane z podłączonych czujników do maszyny w Tulip.

Będziesz musiał wykonać następujące kroki:

  1. Konfiguracja sprzętu: Podłączenie Edge IO
  2. Konfiguracja maszyny: Utwórz maszynę w Tulip
  3. Konfiguracja Node-RED: Importowanie, edytowanie i wdrażanie przepływu Node-RED z biblioteki Tulip.

Potrzebne będą następujące elementy:

  • Edge IO zarejestrowany na koncie Tulip

  • Czujnik prądu: CR3111-3000 inny podobny przekładnik prądowy

    • Rezystor obciążenia o prawidłowym rozmiarze dla przekładnika prądowego, zalecany 100-omowy w przypadku CR3111-3000 (patrz Konfiguracja sprzętu w celu dobrania rozmiaru)
    • Wiązka przerywająca
    • Śrubokręt płaski 3,5 mm

1. Konfiguracja sprzętu - podłączenie Edge IO

Ta procedura zakłada, że będziesz używać przekładnika prądowego i wiązki wyłączającej podłączonej do Edge IO.

Obliczanie rozmiaru rezystora obciążenia: W przypadku korzystania z CR3111-3000 zalecamy rezystor 100 omów. Jeśli używany jest inny zacisk prądowy, można obliczyć maksymalny dozwolony rozmiar rezystora(R_burden) na podstawie efektywnego współczynnika zwojów(T_e) i maksymalnego prądu do pomiaru(I_max) w następujący sposób: R_burden = 3,12 * T_e / I_max. Rezystor może być mniejszy niż maksymalny dozwolony rozmiar rezystora; zmniejszy to rozdzielczość czujnika.

Podłącz cęg prądowy (CR3111-3000) i wiązkę przerwania do Edge IO w następujący sposób:

  • Cęgi prądowe

    • Pomiar prądu przemiennego przez kabel zasilający do urządzenia
    • Podłącz rezystor między dwoma przewodami cęgów prądowych, jak pokazano na rysunku.
    • Podłącz jeden przewód do zacisku ADC różnicowego [+] i jeden przewód do zacisku ADC różnicowego [-].
    • Przerwanie wiązki
    • Tworzenie części przechwytującej
    • Podłącz brązowy przewód (+24 V) do zacisku +24 V przetwornika SAR ADC.
    • Podłącz niebieski przewód (gnd) do zacisku uziemienia banku wejść cyfrowych.
    • Podłącz czarny przewód (out) do styku 1 banku wejść cyfrowych.

Ponadto upewnij się, że urządzenie jest zasilane i podłączone do sieci, podłączając kabel Ethernet do portu WAN.

2. Konfiguracja urządzenia - Utwórz urządzenie w Tulip

Aby wysłać dane z wiązki przerwania i czujnika prądu do Tulip, najpierw skonfigurujmy maszynę przy użyciu interfejsu API Tulip jako źródła danych. Zapoznaj się z sekcją Konfigurowanie nowej maszyny w artykule Jak korzystać z interfejsu API atrybutów maszyny, aby uzyskać szczegółowy przegląd.

W tym przykładzie utworzyliśmy Machine z dwoma atrybutami:

  1. Current (float) - reprezentuje prąd zwracany przez czujnik.
  2. Part Count (int) - sygnał z wiązki przerywającej wskazujący ukończenie części.

Będziesz chciał zanotować wartości attributeId i machineId, aby przekazać je do przepływu Node-RED.

Możesz także skonfigurować typ maszyny, aby przypisać go do maszyny, jeśli planujesz użyć bieżącego czujnika do zmiany aspektów, takich jak stan maszyny lub wykonać dowolne zliczenia na podstawie danych wyjściowych czujnika. Zapoznaj się z sekcją Jak skonfigurować typy maszyn, jeśli jest to interesujące.

3. Konfiguracja Node-RED

Otwórz Edge Device Portal na urządzeniu Edge IO podłączonym do wiązki przełamującej i czujników prądu. Uruchom Edytor Node-RED przy użyciu następujących poświadczeń:

  • Nazwa użytkownika: admin
  • Hasło: hasło Edge IO

Więcej informacji można znaleźć tutaj, aby rozpocząć pracę z Node-RED na Edge IO.

3a. Importowanie przepływu biblioteki

Aby zaimportować przepływ biblioteki, wykonaj kroki opisane w dokumencie Importowanie przepływów Tulip Node-RED. Przepływ do zaimportowania to machine_visibility.json, a zaimportowanie tworzy kartę Machine Visibility with Current Clamp and Breakbeam w edytorze.

3b. Przegląd przepływu

Ten przepływ składa się z dwóch oddzielnych strumieni roboczych:

Licznik części

Pierwsza ścieżka polega na monitorowaniu liczby części za pomocą czujnika wiązki łamiącej. Ten przepływ składa się z czterech węzłów funkcjonalnych:

  1. Monitor Pin

    • Cel: Zdefiniowanie pinów GPIO na Edge IO do monitorowania za pomocą właściwości enabled pin.
    • Filter for pinUp
    • Cel: Określenie na podstawie ładunku komunikatu, czy zdarzenie na monitorowanych pinach jest prawdziwe.
    • Increment Part Count
    • Cel: Zwiększenie liczby części zmiennej przepływu dla zdarzenia pin true.
    • Atrybut maszyny Tulip: Part Count
    • Cel: Wysłanie ładunku (partCount) do Tulip za pośrednictwem interfejsu API.

Monitorowanie prądu RMS

Druga ścieżka polega na monitorowaniu czujnika prądu podłączonego do wejścia ADC (przetwornika analogowo-cyfrowego). Ten przepływ składa się z sześciu węzłów funkcjonalnych.

  1. Odczyty różnicowe ADC

    • Cel: Przypisanie profilu konfiguracji analogowej do wejścia ADC.
    • Filtr 1/5 odczytów
    • Cel: Wyodrębnienie co piątego pomiaru (5 sekund) w celu przekazania do Tulip.
    • Przekazanie komunikatu
    • Cel: Zresetowanie liczby odczytów dla co piątego komunikatu z powrotem do zera.
    • Odrzuć komunikat i przyrost
    • Cel: W przypadku wszystkich pozostałych odczytów zwiększenie liczby odczytów o 1.
    • Skalowanie CR-3111
    • Cel: Skalowanie pomiaru czujnika w oparciu o specyfikacje producenta.
    • Atrybut urządzenia Tulip: RMS Current
    • Cel: Wysłanie ładunku (partCount) do Tulip za pośrednictwem interfejsu API.

Istnieją również cztery opcjonalne węzły, które są domyślnie wyłączone, ale można je włączyć, aby stan maszyny został określony przez Node-RED. Należy pamiętać, że możliwe jest również użycie wyzwalaczy maszynowych w Tulip do wykonania tej samej logiki.

  1. Is Current > 100mA?

    • Cel: Sprawdzenie, czy wartość prądu jest większa niż 100 mA.
    • State = ON
    • Cel: Ustaw ładunek na ON, jeśli prąd jest większy niż 100 mA.
    • State = OFF
    • Cel: Ustaw ładunek na OFF, jeśli prąd jest mniejszy lub równy 100 mA.
    • Atrybut maszyny Tulip: State
    • Cel: Wysłanie ładunku (stanu) do Tulip za pośrednictwem interfejsu API.

3c. Edycja przepływu

Aby zakończyć konfigurację tego przepływu, informacje o urządzeniu dla Tulip Machine Attribute: Part Count i Tulip Machine Attribute: RMS Current muszą być dołączone do pól attributeId i machineIdfieldz wcześniej skonfigurowanego urządzenia.

W zależności od używanego czujnika można dodatkowo edytować węzeł CR-3111 Scaling, aby odzwierciedlić współczynnik zwojów przekładnika prądowego.

3d. Wdrożenie przepływu

Po utworzeniu przepływu Node-RED i dodaniu niezbędnych parametrów można wdrożyć przepływ i rozpocząć wyświetlanie danych z wiązki przerywającej i czujników prądu na wyjściu Tulip.

Wybierając opcję Debug message po prawej stronie edytora Node-RED, powinieneś być w stanie zobaczyć odpowiedzi i odpowiadające im kody stanu z interfejsu API Tulip.

Aby uzyskać więcej informacji na temat kodów statusu, przejdź do dokumentacji API w swojej instancji Tulip (tj. .tulip.co/apidocs). W szczególności zapoznaj się z dokumentacją punktu końcowego POST /attributes/report.

Teraz będziesz mógł zobaczyć dane również w Tulip, przechodząc do zakładki konfiguracji Machine.

Szczegóły techniczne przepływu Node-RED

Poniżej znajduje się szczegółowe podsumowanie węzłów i ich domyślnych parametrów konfiguracyjnych zaimportowanych z plikiem machine_visibility.json.

Część Licznik

  1. Monitor Pin

    • Cel: Zdefiniowanie pinów GPIO na Edge IO do monitorowania poprzez właściwość enabled pin.

    • Typ węzła: Wejście cyfrowe

    • Domyślne właściwości:

      • Tryb pracy - ciągły
      • Częstotliwość odświeżania - 1 sekunda
      • Włączone piny - 1
      • Filtr dla pinUp
    • Cel: Określenie na podstawie ładunku komunikatu, czy zdarzenie na monitorowanych pinach jest prawdziwe.

    • Typ węzła: Switch

    • Domyślne właściwości:

      • Właściwość - msg.payload
      • Rules - is true
      • Increment Part Count
    • Cel: Zwiększa liczbę części zmiennej przepływu przy zdarzeniu pinu true.

    • Typ węzła: Zmiana

    • Domyślne właściwości:

      • Reguły:

        • Ustaw flow.partCount na wyrażenie $flowContext('partCount') + 1
        • Ustaw msg.payload na flow .partCount
        • Atrybut maszyny Tulip: Part Count
    • Cel: Wysłanie ładunku (partCount) do Tulip przez API.

    • Typ węzła: Atrybut maszyny

    • Domyślne właściwości:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Źródło atrybutu - msg.payload

Monitor RMS Current

  1. Różnicowe odczyty ADC

    • Cel: Przypisanie profilu konfiguracji analogowej do wejścia ADC.

    • Typ węzła: Szybki analog

    • Właściwości domyślne:

      • Analog Config - Differential ADC RMS @ 1kHZ

        • Wybierz ADC do konfiguracji - Różnicowy ADC
        • Włączone wyjścia - RMS
        • Rozmiar bufora - 1000
        • Częstotliwość próbkowania (Hz) - 1000+ Typ danych - RMS+ Tryb wyjścia - Ciągły+ Częstotliwość odświeżania (sekundy) - 1
        • Filtr 1/5 odczytów
    • Cel: Wyodrębnienie co piątego pomiaru (5 sekund) w celu przekazania do Tulip.

    • Typ węzła: Switch

    • Domyślne właściwości:

      • Właściwość - flow.numReadings

      • Reguły:

        • == 4
        • w przeciwnym razie
        • Przekaż wiadomość
    • Cel: Zresetowanie liczby odczytów dla co piątej wiadomości z powrotem do zera.

    • Typ węzła: Zmień

    • Domyślne właściwości:

      • Reguły:

        • Ustaw flow.numReadings na 0
        • Upuść wiadomość i przyrost
    • Cel: Dla wszystkich innych odczytów, zwiększ liczbę odczytów o 1.

    • Typ węzła: Zmiana

    • Właściwości domyślne:

      • Reguły:

        • Ustaw flow.numReadings na wyrażenie $flowContext('numReadings') + 1
        • CR-3111 Skalowanie
    • Cel: Skalowanie pomiaru czujnika na podstawie specyfikacji producenta.

    • Typ węzła: Szablon przepływu podrzędnego

    • Domyślne właściwości:

      • Właściwość - dane
      • Scale* - 3000
      • Przesunięcie - 0
      • Atrybut maszyny Tulip: RMS Current
    • Cel: Wysłanie ładunku (partCount) do Tulip za pośrednictwem interfejsu API.

    • Typ węzła: Atrybut maszyny

    • Domyślne właściwości:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Źródło atrybutu - msg.data[0]

Przepływ podrzędny do obliczania stanu urządzenia

  1. Is Current > 100mA?

    • Cel: Sprawdzenie, czy wartość prądu jest większa niż 100 mA.

    • Typ węzła: Switch

    • Domyślne właściwości:

      • Właściwość - msg.data[0]

      • Reguły:

        • > 0.1
        • w przeciwnym razie
        • State = ON
    • Cel: Ustaw ładunek na ON, jeśli prąd jest większy niż 100 mA.

    • Typ węzła: Zmiana

    • Domyślne właściwości:

      • Reguły:

        • Ustaw msg.payload na ON
        • State = OFF
    • Cel: Ustaw ładunek na OFF, jeśli prąd jest mniejszy lub równy 100 mA.

    • Typ węzła: Zmiana

    • Domyślne właściwości:

      • Reguły:

        • Ustaw msg.payload na OFF
        • Atrybut maszyny Tulip: Stan
    • Cel: Wysyłanie ładunku (stanu) do Tulip przez API.

    • Typ węzła: Atrybut maszyny

    • Domyślne właściwości:

      • Device Info* - {"attributeId":"", "machineId":""}
      • Źródło atrybutu - msg.payload

* Parametry muszą zostać zaktualizowane, aby przepływ działał prawidłowo. Wartość skali bieżącego czujnika powinna zostać zmodyfikowana zgodnie z zaleceniami producenta.

Więcej informacji


Czy znalazłeś to, czego szukałeś?

Możesz również udać się na stronę community.tulip.co, aby opublikować swoje pytanie lub sprawdzić, czy inni mieli do czynienia z podobnym pytaniem!


Czy ten artykuł był pomocny?