System IoT MES ma możliwość integracji z maszynami poprzez protokół MQTT. Bieżący rozdział opisuje dostępne sygnały obsługiwane przez system.
Integracja z maszynami
Poniższa grafika przedstawia uproszczony schemat wymiany informacji między systemami w przykładowym wdrożeniu. Informacje z parku maszynowego są rejestrowane na operacjach produkcyjnych w Comarch IoT MES. Aktualizacja informacji o postępie operacji jest następnie przekazywana do zintegrowanego systemu ERP.

Comarch IoT MES obsługuje informacje przychodzące poprzez protokół MQTT. W celu przeniesienia sygnałów z protokołów stosowanych w przemyśle (przykładowo OPC UA, IO-Link, Profinet) należy zastosować odpowiednie urządzenie, bądź oprogramowanie typu IoT Gateway. Pozwala ono na wysłanie odczytanych informacji w formie wiadomości MQTT.

Dostępne sygnały
Comarch IoT MES umożliwia odczyt 4 typów sygnałów, które są odpowiednio interpretowane w aplikacji:
- deklaracja wyrobu OK
- deklaracja wyrobu NOK
- deklaracja przestoju
- wartość pomiaru odczytanego przez czujnik
Ten zestaw informacji zapewnia główne informacje konieczne do wyliczenia wskaźnika OEE stanowiska pracy (OEE składa się z 3 elementów – Dostępność, Wydajność, Jakość). Informacja o deklaracji wyrobu jest składową wydajności maszyny. Wiadomość o tym czy wyrobu są prawidłowe lub wadliwe wpływa na wskaźnik jakości. Odczyt danych o przestojach pozwala na wypracowanie dostępności maszyny.
Wiadomości MQTT
Wiadomość MQTT zawiera m.in. informacje związane z adresowaniem wiadomości oraz treść samej wiadomości. Przykładowo: -h address -p 1883 -u username -t topic -P password -m {message}
W ramach tego opisu omówiona zostanie sama treść wiadomości (message). W każdym z przypadków komunikat musi zawierać swój unikalny identyfikator (ID).
Deklaracja wyrobu OK
- ID – unikalny numer komunikatu;
- type – typ wiadomości;
- scope – kod maszyny na jaką wysyłamy wiadomość;
- amount – ilość zadeklarowanych wyrobów;
- value – przestrzeń na informacje z etykiety sztuki (opcjonalne)
Po odebraniu komunikatu w systemie powstaje deklaracja wyrobu jak na obrazku poniżej.

Deklaracja wyrobu NOK
Identycznie jak w przypadku deklaracji wyrobu OK:
- ID – unikalny numer komunikatu;
- type – typ wiadomości;
- scope – kod maszyny na jaką wysyłamy wiadomość;
- amount – ilość zadeklarowanych wyrobów;
- value – przestrzeń na informacje z etykiety sztuki (opcjonalne)
Po odebraniu komunikatu w systemie powstaje deklaracja wyrobu jak na obrazku poniżej.

Deklaracja wyrobu OK z kodem partii
Parametr value musi zawierać informację zgodną z konfiguracją trybu skanowania.
Przykładowa konfiguracja trybu skanowania:
{
„pattern”: „^SN_(\\S+)_(\\S+)_(\\S+)$”,
„materialLotCodeTransformation”: „$2_$3”,
„operationsRequestCodeTransformation”: „$1”
}
]
„operationsRequestCodeTransformation”: „$1” definiuje, że pierwszy z elementów odczytanego kodu informuje o tym, z jakiego zlecenia operacja ma zostać wybrana (na stanowisku pracy nie może być więcej niż 1 operacja z danego zlecenia).
„materialLotCodeTransformation”: „$2_$3” definiuje, jaki kod partii zostanie nadany deklaracji.
Wiadomość zawierająca parametr value:

Deklaracja przestoju
- ID – unikalny numer komunikatu;
- type – typ wiadomości;
- scope – kod maszyny na jaką wysyłamy wiadomość;
- amount – stan pracy maszyny. 1 – praca, 0 – przestój;
Po odebraniu przykładowego komunikatu w systemie rozpoczyna się przestój.

Aby zakończyć przestój należy przesłać komunikat z wartością 1.
Wartość pomiaru odczytanego przez czujnik
„type”:”QUALITY_CONTROL_VALUE”,”scope”:”kod_urządzenia”,”value”:”30.5″}
- ID – unikalny numer komunikatu;
- type – typ wiadomości;
- scope – kod urządzenia z jakiego pochodzi pomiar;
- value – wartość odczytanego pomiaru (zapisana jako STRING);
Po zakończeniu pomiaru i wysłaniu wyniku należy wywołać odczytanie zarejestrowanej wartości wskazanym poniżej przyciskiem.

Po pomyślnym odczycie, wartość jest wpisana do czynności kontroli.
