Jak wykorzystać dane ze sterowników PLC do analityki OEE i predykcyjnego utrzymania ruchu

0
16
4/5 - (1 vote)

Z tego artykuły dowiesz się:

Dlaczego sterownik PLC jest najlepszym źródłem danych dla OEE i predykcji awarii

PLC jako „źródło prawdy” o stanie maszyny

Sterownik PLC widzi to, czego nie widzi żaden raport Excel ani system ERP: stany czujników, sygnały z napędów, rzeczywiste czasy cykli, liczniki sztuk i wszystkie warunki logiczne, które decydują, czy maszyna pracuje, czy stoi. Z punktu widzenia analityki OEE i predykcyjnego utrzymania ruchu PLC jest najbliżej fizycznego procesu, a każdy jego bit czy rejestr niesie bardziej wiarygodną informację niż ręcznie wprowadzony status przestoju.

To właśnie w PLC definiowane są sekwencje start/stop, wzbudzane są alarmy bezpieczeństwa, zliczane produkty OK/NOK, kontrolowane są czasy zadane i rzeczywiste. Jeśli OEE ma odzwierciedlać prawdziwą efektywność, musi opierać się na sygnałach, które faktycznie triggerują zachowania maszyny, a nie na opisach post factum. PLC jest tutaj „źródłem prawdy” – nie dlatego, że jest nieomylny, ale dlatego, że to jego logika steruje linią.

W predykcyjnym utrzymaniu ruchu dane z PLC pozwalają dostrzec zmiany, które wyprzedzają awarie: wydłużające się czasy ruchów, rosnącą liczbę restartów, coraz częstsze falowe zatrzymania na tych samych stacjach. Odczytując te sygnały w czasie rzeczywistym, można podejmować decyzje serwisowe zanim problem zamieni się w przestój całej linii.

PLC, HMI, napędy i IoT – które źródło ma największą wartość dla OEE

W nowoczesnej fabryce danych jest dużo: panele HMI, serwonapędy, falowniki, czujniki IoT, rejestratory warunków środowiskowych. Dla OEE i predykcji kluczowe jest jednak to, które źródło najlepiej łączy informację o procesie z informacją o stanie maszyny. W większości przypadków jest to właśnie sterownik PLC, ponieważ:

  • konsoliduje sygnały z czujników i napędów w jeden spójny model stanu maszyny,
  • posiada logikę opisującą, co jest „normalnym” a co „błędnym” stanem,
  • zawiera liczniki cykli i produkcji powiązane z konkretnymi trybami pracy.

Dane z paneli HMI są zwykle pochodną danych z PLC – tam widać to, co PLC udostępnia do wizualizacji i operator wprowadza ustawienia. Panel jest świetnym źródłem informacji o zmianie receptury, przyczynach przestoju wybranych przez operatora czy parametrach zadanych, ale podstawą obiektywnego pomiaru OEE i predykcji pozostaje logika PLC.

Sterowniki napędów dostarczają zaawansowanych danych diagnostycznych (prądy, momenty, błędy), lecz bez kontekstu procesu trudno z nich zbudować OEE. Sensowny model powstaje dopiero po połączeniu: stan napędu + sekwencja w PLC + informacja o produkcie i cyklu.

Czujniki IoT poza sterownikiem (np. wibrometr na łożysku, czujnik temperatury w szafie) są doskonałym uzupełnieniem dla predykcji awarii, jednak bez zestawienia ich z sygnałami PLC trudno określić, czy mierzony stan jest normalny (np. większe drgania przy wysokim obciążeniu) czy jest to odchyłka. Mit, że do predykcji wystarczy „zasypać maszynę czujnikami IoT”, pęka w zderzeniu z praktyką – bez podpięcia do logiki sterowania takie punktowe dane są słabo użyteczne biznesowo.

Excel i ręczne raportowanie OEE – mit efektywnego podejścia

Popularne jest przekonanie, że do OEE wystarczy arkusz kalkulacyjny i dyscyplina raportowania: operator wpisuje godziny start/stop, liczbę wyprodukowanych sztuk, liczbę braków i przyczyny przestojów. Brzmi tanio i prosto, ale w praktyce tworzy kilka fundamentalnych problemów:

  • błędy ludzkie – pomyłki w liczbach, zaokrąglanie czasów, „dopisywanie historii” po zmianie, gdy nie było czasu na bieżący zapis,
  • brak granularności – nie da się z dokładnością do sekund odtworzyć krótkich przestojów, mikro-zatrzymań, oscylacji prędkości,
  • opóźnienia – dane dostępne są po zmianie, po tygodniu, czasem raz w miesiącu, więc reakcja na problemy jest spóźniona,
  • brak korelacji – arkusz nie pokaże, jak zmiana konkretnego parametru w recepturze wpłynęła na jakość czy stabilność pracy.

Rzeczywistość jest taka, że ręczne OEE nadaje się co najwyżej do wstępnego rozeznania, a nie do optymalizacji na poważnie. Dopiero wykorzystanie danych z PLC pozwala:

  • automatycznie zliczać sztuki OK/NOK bez udziału operatora,
  • precyzyjnie mierzyć czasy pracy, postojów i mikro-zatrzymań,
  • powiązać konkretne zdarzenia (alarm, brak materiału, błąd czujnika) z rzeczywistymi przestojami,
  • analizować trendy w dłuższym okresie bez żmudnego ręcznego przepisywania.

Mit: „Excel wystarczy, dopóki nie będziemy bardzo zaawansowani” zderza się z prostym faktem – firmy, które za późno przechodzą na automatyczne zbieranie danych z PLC, tracą lata historii, na której mogłyby trenować modele predykcyjne i podejmować lepsze decyzje inwestycyjne.

Jakie decyzje strategiczne można oprzeć na danych z PLC

Surowe dane ze sterowników PLC, po odpowiednim przetworzeniu, stają się fundamentem nie tylko dla wskaźnika OEE, ale dla serii decyzji na poziomie planowania produkcji, serwisu i inwestycji.

Na poziomie planowania produkcji dostęp do rzetelnych danych o rzeczywistej wydajności maszyn pozwala korygować normy czasowe, lepiej planować zmiany i przezbrojenia, a także przewidywać, kiedy linia faktycznie wykona plan. Zamiast bazować na uśrednionych normach z katalogu, planista dysponuje informacją, że dana maszyna przy aktualnym miksie produktów realnie pracuje np. 85% nominalnej prędkości.

Na poziomie serwisu i utrzymania ruchu historia alarmów, restartów, czasów cykli czy wzrostów obciążeń pozwala tworzyć listy krytycznych komponentów, harmonogramować wymiany w oparciu o rzeczywisty stan, a nie tylko o kalendarz. OEE, rozbite na przyczyny strat, ujawnia, czy większy wpływ na straty mają awarie, przezbrojenia, czy braki operatorów – a to bezpośrednio kieruje budżet serwisowy i szkoleniowy.

Na poziomie inwestycji dane z PLC dostarczają twardych argumentów: które maszyny są wąskim gardłem, gdzie faktycznie występują najdłuższe przestoje, który typ wyposażenia generuje najwięcej nieplanowanych zatrzymań. Zamiast ogólnego wrażenia „ta linia jest problematyczna”, można wykazać, że np. konkretna stacja pakowania generuje 40% przestojów całej linii, co uzasadnia modernizację lub wymianę.

Podstawy OEE i predykcyjnego utrzymania ruchu w języku automatyka

OEE rozbite na sygnały z maszyny

OEE (Overall Equipment Effectiveness) to iloczyn trzech składników: dostępności, wydajności i jakości. Te pojęcia brzmią abstrakcyjnie, dopóki nie przełoży się ich na konkretne sygnały z PLC.

Dostępność to stosunek czasu, w którym maszyna faktycznie pracuje produkcyjnie, do czasu planowanego. Z perspektywy PLC oznacza to rozróżnienie stanów: RUN (produkcja), IDLE (bezczynność przy gotowości technicznej), AWARIA, PRZEZBROJENIE, PRZERWA PLANOWA. Konieczny jest więc zestaw bitów i timerów, które pozwolą z dokładnością do sekund zmierzyć, ile czasu maszyna była w stanie PRODUKCJA w zadanym horyzoncie.

Wydajność to relacja między rzeczywistą prędkością produkcji a prędkością nominalną. Z punktu widzenia PLC kluczowe są sygnały zliczające cykle lub sztuki oraz informacja o czasie cyklu zadanym i rzeczywistym. Wydajność wprost wynika z tego, jak często pojawia się impuls „sztuka OK” w stosunku do teoretycznego maksymalnego tempa.

Jakość to udział sztuk dobrych w stosunku do wszystkich wyprodukowanych. Po stronie PLC wystarczy rzetelnie rozdzielić liczniki: sztuki OK vs sztuki NOK, najlepiej na końcu procesu (po wszystkich kontrolach). W bardziej zaawansowanych systemach sygnały z wcześniejszych kontrolerów jakości (np. wizyjnych) też są logowane, aby analizować, gdzie w procesie powstają braki.

Co faktycznie trzeba zmierzyć w PLC, aby policzyć OEE bez „dopisywania historii”

Aby OEE było wiarygodne, nie może wymagać ręcznego „dopisywania” czasów przestojów czy liczby sztuk. Minimalny zestaw informacji, który musi być dostępny w PLC lub nadbudowany nad istniejącą logiką, obejmuje:

  • stan pracy maszyny – bit lub kod, który jednoznacznie rozróżnia co najmniej: RUN, STOP, AWARIA, PRZEZBROJENIE, OCZEKIWANIE NA MATERIAŁ,
  • znacznik czasu zmian stanu – niekoniecznie w samym PLC, ale dane muszą być odczytywane z wystarczającą częstotliwością, by odtworzyć czasy przebywania w danym stanie,
  • licznik sztuk całkowity – rosnący licznik impulsów produkcyjnych (anulowanie nie jest dobrą praktyką; lepiej logować różnicę),
  • licznik sztuk NOK – oddzielny licznik braków, najlepiej z możliwością przypisania przyczyny (choćby na poziomie stacji),
  • informacja o recepturze/produkcie – identyfikator wariantu produkcji, aby nie mieszać w analizie różnych produktów o innych cyklach i wymaganiach,
  • informacja o trybie – AUTO/MANUAL, SETUP/PROD, aby odróżnić ruchy serwisowe i nastawcze od właściwej produkcji.

Jeśli te dane są konsekwentnie dostępne i rejestrowane, nie ma potrzeby „dopisywania historii” po zmianie. Operator może jedynie uzupełnić przyczynę przestoju na wyższym poziomie (np. w MES), ale to, kiedy i jak długo przestój trwał, wynika automatycznie z danych PLC.

Prewencyjne vs predykcyjne utrzymanie ruchu – rola danych z PLC

Utrzymanie ruchu prewencyjne opiera się na kalendarzu: po określonej liczbie godzin pracy lub raz na kwartał dana część jest inspekcjonowana lub wymieniana. Wymaga to oczywiście danych z PLC – choćby liczby cykli lub godzin pracy maszyny – ale decyzje są ustalone z góry i nie biorą pod uwagę rzeczywistego stanu komponentów.

Utrzymanie ruchu predykcyjne próbuje odpowiedzieć na pytanie: kiedy ta konkretna część faktycznie zaczyna się degradować. Tutaj kluczowe stają się dodatkowe dane z PLC i powiązanych systemów:

  • wydłużające się czasy dojazdów siłowników i osi,
  • rośnie liczba powtórnych cykli lub korekt pozycji,
  • zwiększająca się ilość błędów pozycjonowania, mimo braku zmian w recepturach,
  • wzrost prądów napędów (jeżeli napęd raportuje takie dane do PLC lub SCADA),
  • narastająca liczba krótkich, samoistnie ustępujących alarmów.

Na tej bazie można zbudować algorytmy, które wykryją wzorce typowe dla zbliżającej się awarii – nie na podstawie jednej wartości przekraczającej próg, ale na podstawie trendów. Przejście z prewencji na predykcję zaczyna się więc od systematycznego zbierania czasów, liczników i kodów błędów z PLC, a dopiero później od wprowadzania bardziej zaawansowanych czujników i uczenia maszynowego.

Jak dane z PLC zamieniają się w wskaźniki, alarmy i trendy degradacji

Ścieżka od bitów w sterowniku do użytecznych wskaźników i alarmów przebiega w kilku krokach. Po pierwsze, sygnały z PLC są mapowane na ustandaryzowane tagi (np. Machine01.Status, Machine01.Count_OK, Machine01.AlarmCode). Następnie dane te są agregowane w czasie (np. liczenie różnicy stanu licznika co minutę, sumowanie czasu w stanie RUN/STOP).

Na tej bazie można wyliczać bieżący OEE na poziomie maszyny i OEE na poziomie linii, generować alarmy wczesnego ostrzegania (np. „czas cyklu przekroczył wartość referencyjną o 20% przez ostatnie 15 minut”) oraz budować trendy degradacji (np. rosnący średni czas ruchu danej osi w funkcji liczby cykli od ostatniego serwisu).

Mit głosi, że predykcyjne utrzymanie ruchu wymaga od razu zaawansowanej sztucznej inteligencji. W praktyce duży efekt dają już proste reguły i analiza trendów z danych PLC: wzrost o określony procent w zadanym oknie czasowym, kumulacja krótkich przestojów, rosnąca liczba błędów. Dopiero na tym fundamencie ma sens sięganie po algorytmy ML trenowane na dłuższej historii danych.

Jakie dane z PLC są naprawdę potrzebne do OEE i predykcji (i czego nie logować)

Minimalny zestaw sygnałów dla OEE

Dla wielu zakładów wyzwaniem jest nie tylko „skąd brać dane”, ale które dane wybierać. Zbyt ubogi zestaw uniemożliwi policzenie OEE i rozbicie go na przyczyny strat, zbyt rozbudowany utopi projekt w danych. Minimalny, ale praktyczny zestaw sygnałów z PLC dla OEE obejmuje:

  • status pracy w postaci jednego, spójnego kodu stanu (np. READY, RUN, FAULT, CHANGEOVER, NO_MATERIAL, NO_OPERATOR),
  • liczniki sztuk – co najmniej: sztuki OK, sztuki NOK, sztuki całkowite, najlepiej na końcu linii lub gniazda,
  • identyfikator zlecenia/produktu – numer zlecenia, wariant receptury lub kod produktu,
  • tryb pracy – AUTO/MANUAL/SETUP, pozwalający odfiltrować ruchy serwisowe od produkcji,
  • znacznik cyklu – impuls „cykl zakończony” lub „sztuka wyprodukowana”, który jest podstawą do wyznaczania wydajności.

Mit mówi, że żeby policzyć OEE, trzeba wyciągnąć z PLC „wszystko, co się da”. W praktyce lepiej mieć pięć dobrze zdefiniowanych, stabilnych sygnałów niż pięćdziesiąt przypadkowych bitów, których nikt na zmianie nie rozumie. OEE nie wymaga znajomości każdej krańcówki – potrzebuje spójnej informacji o stanie maszyny i przepływie sztuk.

Dodatkowe sygnały pod predykcję – kiedy mają sens

Predykcyjne utrzymanie ruchu korzysta z większej liczby danych, ale to nie znaczy, że trzeba podłączyć każdy możliwy sygnał. Dodatkowe logowanie ma sens wtedy, gdy wiemy, jaką degradację chcemy obserwować i jak użyjemy danych. Typowy, rozsądny pakiet rozszerzający obejmuje:

  • czasy trwania faz cyklu – np. czas zamknięcia formy, czas ruchu osi, czas docisku,
  • liczniki powtórzeń – liczba retrajów, ponownych dojazdów, potwierdzeń czujników,
  • kluczowe wartości procesowe – ciśnienia, temperatury, prądy napędów, momenty, pozycje,
  • kody alarmów i ich częstotliwość – nie tylko „czy był alarm”, ale jaki i ile razy,
  • czasy narastania i opadania sygnałów – przy krytycznych czujnikach i zaworach szybkich.

Rzeczywistość szybko weryfikuje wszechobecny mit: „dodajmy wibracje i AI załatwi resztę”. W wielu układach dużo prościej i taniej wychwycić degradację z rosnącego czasu ruchu siłownika i zwiększonej liczby retrajów niż z akcelerometru za kilka tysięcy. Surowy sygnał z czujnika drgań bez kontekstu z PLC (cykl, obciążenie, tryb) jest po prostu szumem.

Czego nie ma sensu logować z PLC

Przy projektowaniu zbierania danych kluczowe jest także to, czego świadomie nie zbierać. Na listę kandydatów do odrzucenia najczęściej trafiają:

  • surowe stany wszystkich czujników binarnych, które nie wnoszą dodatkowej informacji ponad to, co daje status maszyny i licznik cykli,
  • szczegółowe przebiegi sygnałów krok po kroku (np. każda faza sekwencji sterownika krokowego), jeśli nie służą diagnostyce konkretnego problemu,
  • ciągłe logowanie wszystkich analogów w maksymalnej rozdzielczości, bez powiązania z cyklem – tysiące punktów na sekundę tylko po to, by potem je uśredniać,
  • tymczasowe wartości robocze z programów PLC (timery pomocnicze, liczniki techniczne), które nie mają jasnego znaczenia procesowego,
  • dane, których nikt nie planuje oglądać – jeżeli w projekcie nie ma odbiorcy ani reguły użycia danego sygnału, lepiej go na razie nie wysyłać.

Jeżeli wątpisz, czy dany sygnał logować – zadaj proste pytanie: jaką decyzję podejmę inaczej, mając ten sygnał w historii? Jeśli odpowiedź brzmi „żadną” albo „może kiedyś ktoś coś z tym zrobi”, to dobry kandydat do wyrzucenia. Rzeczywistość szybko obala mit, że „więcej danych = lepsza analityka”. Powyżej pewnego poziomu ilość zmienia się w szum, który utrudnia znalezienie prostych, oczywistych zależności między zachowaniem maszyny a jej awariami.

Rozsądna praktyka to fazowanie projektu. Na początku zbierz wąski, dobrze opisany zestaw sygnałów i sprawdź, czy na jego podstawie da się policzyć OEE, rozbić przestoje na główne kategorie i wychwycić kilka typowych wzorców degradacji. Dopiero gdy te podstawy działają, można rozszerzać zakres logowania o kolejne analogi, dodatkowe timery i kody błędów. Taki podejściowy rozwój danych jest tańszy niż jednorazowy „big bang”, po którym połowy sygnałów nikt nie użyje.

Dobrym filtrem jest też spojrzenie na koszty po całym łańcuchu: każda dodatkowa zmienna to nie tylko miejsce w bazie, ale też obciążenie sieci, większa złożoność modeli danych, dłuższe zapytania i bardziej skomplikowane ekrany w systemie raportowym. Jeden zakład, który logował „dla pewności” wszystkie analogi co 100 ms, po roku miał bazę tak ociężałą, że zwykły raport OEE liczył się kilka minut. Po przejściu na logowanie po-cyklowe i kilku prostych agregacjach liczba danych spadła, a jakość wniosków wzrosła.

Mit głosi, że porządne predykcyjne utrzymanie ruchu musi zaczynać się od wielkich projektów Big Data i „data lake’ów bez ograniczeń”. W praktyce najlepiej działają systemy, które startują skromnie: od kilku przemyślanych sygnałów z PLC, spójnego nazewnictwa i prostych reguł, stopniowo dokładanych wraz ze wzrostem zaufania do danych. PLC jest tu nie tyle magicznym źródłem „wszystkiego”, ile precyzyjnym miernikiem tego, co naprawdę liczy się dla OEE i niezawodności.

Laptop z panelem analitycznym OEE i wykresami z danych ze sterowników PLC
Źródło: Pexels | Autor: Negative Space

Projektowanie architektury zbierania danych z PLC pod OEE i predykcję

Od „kabelka do SCADY” do świadomej architektury danych

W wielu zakładach historia wygląda podobnie: do istniejącej sieci sterowników ktoś „doczepia” serwer OPC, parę skryptów i arkusz kalkulacyjny. Na początku to działa, ale po kilku miesiącach nikt nie wie, które dane są referencyjne, a które testowe, skąd biorą się rozbieżności między raportem z SCADY a systemem MES i dlaczego niektóre maszyny „znikają” z wykresów OEE.

Architektura pod OEE i predykcję musi być zaprojektowana tak samo świadomie, jak linia produkcyjna: z określonymi rolami dla poszczególnych poziomów, buforowaniem, redundancją i czytelnym przepływem informacji. Inaczej skończy się na manualnych poprawkach w Excelu i podejrzeniu, że „system kłamie”.

Typowe poziomy architektury – od maszyny do chmury

Praktyczny model, który sprawdza się w większości zakładów, opiera się na kilku jasnych poziomach:

  • Poziom 0–1 (field + sterownik) – czujniki, napędy, HMI i PLC. Tutaj powstają surowe sygnały, liczniki, timery i kody błędów. Logika produkcyjna i bezpieczeństwo pozostają lokalne.
  • Poziom 2 (maszyna/kompaktowy edge) – lokalny serwer OPC UA, gateway IIoT lub moduł edge, który zbiera dane z PLC, standaryzuje je (nazwy, jednostki) i buforuje na wypadek przerwy w łączności.
  • Poziom 3 (zakładowy system OEE/MES) – tu następuje korelacja danych z PLC z informacjami o zleceniach, zmianach, operatorach. To ten poziom jest zwykle źródłem „oficjalnego” OEE.
  • Poziom 4 (centralna analityka / chmura) – dłuższa historia, modele predykcyjne, analizy porównawcze między zakładami, budowa modeli ML.

Mit mówi, że wystarczy „podłączyć PLC do chmury” i problem z głowy. Rzeczywistość jest taka, że bez porządnej warstwy pośredniej (edge/gateway), która czyści, agreguje i buforuje dane, nawet najdroższa platforma chmurowa zostanie zalana niespójnym strumieniem przypadkowych tagów.

Gateway / edge jako tłumacz między światem PLC a analityką

Gateway (sprzętowy lub programowy) pełni kluczową rolę: z jednej strony rozumie protokoły przemysłowe (OPC UA, Modbus TCP, Profinet z opcją read-only, Ethernet/IP), z drugiej – publikuje dane w formatach przyjaznych dla IT (MQTT, HTTP, AMQP, bazy time-series). Dobrze zaprojektowany gateway powinien:

  • mieć konfigurację mapowania tagów zamiast twardego kodowania nazw w skryptach,
  • umożliwiać lokalne agregacje (np. uśrednianie analogów po cyklu, zliczanie sztuk na minutę),
  • wspierać buforowanie offline – gdy znika łączność z serwerem, dane są lokalnie kolejkowane,
  • mieć kontrolowane obciążenie PLC (czytanie z rozsądnym okresem, subskrypcje, a nie przepytywanie co 100 ms).

W praktyce bramki często stają się cichym miejscem awarii całego systemu OEE: aktualizacje robi się ad hoc, ktoś zmienia mapowanie tagów bez dokumentacji, a potem nikt nie wie, czy „Count_OK” to wartość z PLC, czy wynik skryptu korekcyjnego. Stąd krytyczne jest jasne rozdzielenie: co jest źródłem prawdy (PLC), a co tylko warstwą transportową i przetwarzającą.

Bezpieczna integracja – jak nie „uwalić” produkcji przez system OEE

Sterownik PLC nie jest serwerem plików ani bazą danych. Wszelka integracja pod OEE i predykcję musi respektować fakt, że priorytetem jest sterowanie procesem, a dopiero potem analityka. Kilka praktycznych zasad, które chronią przed nieprzyjemnymi niespodziankami:

  • tylko odczyt – systemy OEE / predykcji nie powinny mieć możliwości zapisu do krytycznych obszarów PLC (receptury, nastawy, flagi bezpieczeństwa),
  • izolacja sieciowa – osobny VLAN dla warstwy sterowania i osobny dla IT/analityki, połączone kontrolowanymi punktami (firewall, router przemysłowy),
  • ograniczenie częstotliwości odczytu – nie ma sensu czytać liczników sztuk co 50 ms, jeżeli cykl produkcyjny trwa kilka sekund,
  • separacja „zegarów” – PLC pracuje swoim cyklem scan, a gateway swoim okresem odczytu; nie trzeba ich na siłę synchronizować co do milisekundy.

Mit brzmi: „im częściej czytamy dane z PLC, tym dokładniejsza analityka”. W rzeczywistości powyżej pewnej częstotliwości otrzymuje się tylko więcej tej samej informacji, obciążając niepotrzebnie sieć i CPU sterownika, a nie zwiększając jakości wniosków.

Wybór bazy danych pod OEE i predykcję

Do przechowywania danych z PLC pod OEE i predykcję stosuje się najczęściej trzy rodziny rozwiązań:

  • bazy relacyjne (SQL) – dobre do raportów, tabel przestojów, rozbicia OEE na zmiany, produkty, operatorów; gorzej radzą sobie z bardzo gęstymi szeregami czasowymi,
  • bazy time-series (InfluxDB, TimescaleDB, OSIsoft PI) – zoptymalizowane pod szybkie zapisy i odczyty szeregów czasowych, idealne dla danych cyklowych i analogowych,
  • data lake / obiekty w chmurze – archiwum długoterminowe, przydatne do trenowania modeli ML na wieloletnich danych.

Sprawdza się układ mieszany: dane operacyjne pod OEE i raportowanie dzienne w SQL, a pełne szeregi czasowe z analogów i timerów w bazie time-series. Nie ma sensu wciskać wszystkiego do jednej bazy „bo już ją mamy” – skończy się to albo brakiem wydajności, albo karkołomnymi zapytaniami.

Agregacja w czasie – po cyklu, po minucie, po zmianie

Nie każdy punkt danych z PLC musi trafić do bazy „1:1”. Dużo rozsądniej jest z góry zdefiniować kilka poziomów agregacji czasowej:

  • po-cyklowej – wartości liczone na koniec cyklu (czas cyklu, czasy faz, główne analogi),
  • po-minutowej – sztuki OK/NOK, czas RUN/STOP, liczba alarmów, tempo produkcji,
  • po-zmianowej / po-zleceniowej – OEE, struktura strat, średnie wartości procesowe.

Na poziomie surowym można trzymać tylko to, co rzeczywiście jest potrzebne do analizy szczegółowej (np. przy tworzeniu modelu predykcyjnego). Reszta może być od razu liczona i zapisywana w postaci zagregowanej. Znacznie ułatwia to pracę utrzymania ruchu i inżynierów procesu, którzy nie muszą co chwilę sięgać do „surowych logów”, aby zobaczyć prosty trend.

Synchronizacja czasu – bez spójnego zegara nie ma sensu liczyć OEE

Jeżeli każda maszyna żyje „własnym czasie”, a serwery zbierające dane jeszcze innym, raporty OEE będą wyglądały jak układanka puzzli z różnych pudełek. Problemy typu: „przestój w systemie widoczny o 10:05, a w PLC o 10:02” biorą się właśnie z braku spójnej synchronizacji.

Podstawowe wymagania to:

  • NTP dla całej infrastruktury – PLC (tam, gdzie to możliwe), gatewaye, serwery, bazy danych i systemy wizualizacji muszą korzystać z jednego źródła czasu,
  • logika znacznikowania zdarzeń – czy czas przypisujemy do początku zdarzenia (start przestoju), końca (koniec przestoju), czy całego przedziału (zdarzenia z czasem trwania),
  • obsługa zmian czasu (letni/zimowy) – najlepiej w ogóle używać czasu UTC w bazach, a lokalne strefy stosować dopiero na poziomie wizualizacji.

Bez spójnego czasu trudno rzetelnie łączyć wnioski z różnych źródeł: np. korelować alarm z PLC z wpisem w systemie CMMS czy z rejestracją partii materiału w MES.

Od tagów w PLC do wskaźników OEE – mapowanie, standaryzacja, nazewnictwo

Dlaczego samo „czytanie zmiennych” z PLC nie wystarczy

W programie PLC nazwy typu M1_Bit_123 czy DB10.DBW24 mogą być akceptowalne dla autora projektu, ale dla systemu OEE czy analityka danych są bezwartościowe. System analityczny potrzebuje wiedzieć, czy dany tag oznacza status pracy, licznik sztuk OK, kod alarmu, czy może pomocniczy timer.

Błędem jest próba „zaciągnięcia wszystkiego, co jest w PLC”, a następnie nadawania znaczeń już po stronie IT. Kończy się to miesiącami ręcznego dopasowywania i ciągłą niepewnością, czy dany tag na pewno oznacza to, co ktoś wpisał w Excelu. Znacznie lepsze efekty daje jasne zdefiniowanie warstwy semantycznej – czyli mapowania między surowymi zmiennymi z PLC a ustandaryzowanymi tagami biznesowymi.

Model informacyjny maszyny – szkielet pod standaryzację

Dobrym punktem wyjścia jest zdefiniowanie modelu maszyny, który opisuje minimalny zestaw informacji wymagany do obliczenia OEE i podstawowej predykcji. Dla każdej maszyny (lub klasy maszyn) określa się strukturę typu:

  • Machine.<ID>.Status – kod stanu (RUN/STOP/FAULT/SETUP itd.),
  • Machine.<ID>.Count.Total, .OK, .NOK,
  • Machine.<ID>.Mode – AUTO/MANUAL/SETUP,
  • Machine.<ID>.Order.Id, .Product.Code,
  • Machine.<ID>.Cycle.Done – impuls zakończenia cyklu,
  • Machine.<ID>.Downtime.Code (opcjonalnie, jeśli kody przestojów są w PLC),
  • Machine.<ID>.Alarm.Code, .Alarm.Active.

Taki model można rozwijać o kolejne warstwy (np. .Process.Temperature, .Axis1.CycleTime), ale szkielet bazowy pozostaje wspólny. Dzięki temu raporty OEE i algorytmy predykcyjne mogą być przenoszone między liniami i zakładami, zamiast być szyte na miarę dla każdego projektu z osobna.

Praktyczne zasady nazewnictwa tagów

Wbrew pozorom nazewnictwo tagów to nie „estetyka dla inżynierów”, tylko jeden z głównych czynników wpływających na koszty utrzymania systemu OEE i predykcji. Kilka prostych reguł robi ogromną różnicę:

  • maszyna na początku – identyfikator maszyny/linii jako pierwszy człon (M01., Line3.),
  • kategoria po środkuStatus, Count, Alarm, Process, Axis,
  • rodzaj wartości na końcu.Value, .Code, .Total, .OK, .NOK, .Mode,
  • bez językowego misz-maszu – unikanie mieszania polskiego i angielskiego w jednym modelu (np. CzasPrzestoju obok Downtime.Code),
  • spójne skróty – np. wszędzie Cnt albo wszędzie Count, nie oba naraz.

Mit podpowiada, że „ważne, żeby działało, a nazwy zawsze można zmienić później”. Doświadczenie pokazuje, że „później” oznacza często nigdy, a każdy kolejny projekt dorzuca swoje warianty, mnożąc chaos.

Mapowanie z PLC: gdzie kończy się logika sterowania, a zaczyna logika raportowa

Nie ma jednej słusznej odpowiedzi, czy liczniki, timery i kody przestojów powinny być liczone w PLC, czy w warstwie gatewaya/serwera. Da się jednak przyjąć kilka kryteriów podziału:

  • logika krytyczna dla bezpieczeństwa i poprawności cyklu – wyłącznie w PLC (sekwencje, interlocki, blokady),
  • liczniki technologiczne, od których zależy zachowanie maszyny (np. licznik cykli do automatycznego smarowania) – również w PLC,
  • liczniki i wskaźniki typowo raportowe, które nie wpływają na sterowanie (np. sumaryczny czas w trybie MANUAL) – mogą być liczone poza PLC, o ile surowe stany są dostępne,
  • kody przestojów i przyczyny – jeśli operator wybiera je na HMI, sensowniejsze jest liczenie ich w PLC i eksport gotowych kodów, niż odtwarzanie decyzji operatora po stronie IT.

Dobrze działa podejście, w którym minimalna logika raportowa siedzi w PLC (tak, aby system OEE nie musiał zgadywać stanu maszyny), a wszelkie agregacje, przeliczanie wskaźników, filtrowanie błędnych danych i łączenie z kontekstem produkcyjnym odbywa się wyżej. Mit mówi, że „jak wszystko policzymy w PLC, to IT nic nie zepsuje”; w praktyce kończy się to przeładowanym kodem sterownika, trudnym serwisem i brakiem elastyczności przy zmianie metodologii liczenia OEE czy progów dla predykcji.

Dobrym kompromisem jest generowanie w PLC czytelnych, niskopoziomowych sygnałów: Run, Stop, Fault, Setup, impulsy cyklu, surowe liczniki sztuk oraz ew. gotowe kody przestojów/alarmów. Na tej bazie warstwa pośrednia (gateway, serwer aplikacyjny, moduł w MES) wylicza już stany zagregowane: odcinki przestojów, czasy w trybach pracy, wydajność chwilową, bucketowanie po zmianie i zleceniu. Gdy zmieni się model OEE lub pojawią się nowe potrzeby analityczne, modyfikujemy tylko logikę na serwerze – bez dotykania programu PLC na produkcji.

Przy większych parkach maszynowych opłaca się wprowadzić centralny słownik tagów biznesowych i mapowań. Dla każdej maszyny definiuje się wtedy prostą tabelę: „adres PLC / nazwa wewnętrzna” → „standaryzowany tag OEE/predykcja” wraz z jednostką, typem danych i podstawową walidacją (np. zakres dopuszczalny). Dzięki temu przy rozbudowie linii czy zmianie sterownika wystarczy zaktualizować mapowanie, a raporty i algorytmy predykcyjne pozostają nietknięte. Rzeczywistość przeczy mitowi, że „to tylko kilka tagów, zrobimy ręcznie” – po dwóch latach takich „kilku tagów” robi się kilka tysięcy i nikt już nie panuje nad niespójnościami.

Na koniec liczy się prosta rzecz: przejrzysta ścieżka od bitu w PLC do wskaźnika na ekranie. Gdy wiadomo, który sygnał w sterowniku tworzy konkretny element OEE lub cechę w modelu predykcyjnym, diagnoza problemów i rozwój systemu przestają być loterią. Taki porządek w danych daje realną przewagę – zamiast kolejnych kolorowych dashboardów pojawia się możliwość spokojnego, powtarzalnego podejmowania decyzji opartego na tym, co maszyny faktycznie robią, a nie na tym, co „wydaje się” wynikać z przypadkowo zebranych tagów.

Standaryzacja stanów pracy i przestojów – bez tego OEE się rozjeżdża

Najlepszy model tagów niewiele da, jeśli każda maszyna inaczej rozumie „pracę”, „postój” czy „awarię”. Na jednej linii RUN oznacza faktyczne wytwarzanie sztuk, na innej – gotowość do pracy z pustym podajnikiem. Dla obliczania OEE to dwie różne rzeczywistości. Stąd potrzeba uśrednionego słownika stanów, który narzuca wspólny język ponad zróżnicowanymi logikami PLC.

Sprawdza się podejście, w którym stany w PLC są mapowane do ograniczonego zestawu kategorii OEE, np.:

  • Produkcja planowa – faktyczne wytwarzanie zgodnie ze zleceniem,
  • Przestój nieplanowy – awaria, brak materiału, brak operatora,
  • Przestój planowy – przezbrojenie, czyszczenie, przerwa,
  • Brak zapotrzebowania – maszyna sprawna, ale brak zlecenia.

Na tym poziomie powstaje „warstwa kanoniczna” – kilka-kilkanaście kodów, do których mapowane są wszystkie lokalne stany typu M1.Mode=SERVICE, M2.Status=WAITING_OPERATOR itd. Dzięki temu można rzetelnie porównywać linie i zakłady, mimo że wewnątrz każdy sterownik żyje własnym życiem.

Popularny mit: „nie da się ustandaryzować, bo każda maszyna jest inna”. Rzeczywistość: inna jest szczegółowa logika, ale na poziomie OEE te różnice i tak sprowadzają się do kilku głównych kategorii czasu. Gdy tego nie zrobimy, każdy raport będzie raportem tylko „dla tej jednej linii”, a słowo „benchmark” pozostanie hasłem marketingowym.

Łączenie danych procesowych z kontekstem produkcyjnym

Dane z PLC bez kontekstu produkcyjnego są jak wykres EKG bez wiedzy, czy pacjent właśnie biegnie po schodach, czy śpi. Ten sam rozkład temperatur, prądów silników czy czasów cyklu może oznaczać normalną pracę dla produktu A, a anomalię dla produktu B.

Minimalny kontekst, który warto spiąć z danymi PLC, to zazwyczaj:

  • zlecenie produkcyjne (ID, planowana ilość, termin),
  • produkt (kod, wariant, podstawowe parametry technologiczne),
  • zmiana i brygada (początek/koniec zmiany, identyfikator zespołu),
  • partie materiału (szczególnie przy procesach wrażliwych na jakość surowca).

Technicznie kontekst nie musi siedzieć w PLC. Często wygodniej przekazywać minimalny identyfikator (Order.Id, Product.Code) do sterownika i resztę łączyć po stronie MES/serwera, gdzie znajduje się bogatszy opis. Kluczem jest jednak spójny sposób „zszycia” danych: ta sama zmiana czasu i ten sam identyfikator zlecenia muszą oznaczać dokładnie to samo w PLC, MES i raporcie OEE.

Mit: „będziemy patrzeć tylko na czyste sygnały z PLC, to wystarczy do predykcji”. W praktyce, bez odniesienia do produktu i trybu pracy, modele predykcyjne wykrywają głównie… zmianę asortymentu albo zmianę operatora, a nie faktyczne symptomy awarii.

Granica między OEE a predykcją w danych – co liczyć jak i gdzie

OEE opiera się głównie na stanach i ilościach. Predykcja potrzebuje dodatkowo cech opisujących zachowanie procesu: trendów, odchyleń, korelacji między sygnałami. To inne perspektywy na tę samą rzeczywistość, ale nieco inne wymagania co do danych.

W warstwie OEE typowe przeliczenia to:

  • segmentacja osi czasu na odcinki pracy/przestojów,
  • agregacja czasów w trybach i kategoriach przestojów,
  • liczenie wydajności chwilowej i średniej,
  • obliczanie wskaźników dostępności, wydajności i jakości na poziomie zmiany, zlecenia, dnia.

Predykcja będzie korzystać z tych samych segmentów czasu, ale sięgnie głębiej w sygnały procesowe: prądy, wibracje, temperatury, pozycje osi, błędy regulatorów, liczbę restartów napędów czy histogramy czasów cyklu. Często nie ma sensu logować tych danych w maksymalnej rozdzielczości przez cały czas – wystarczy robić to w chwilach, gdy maszyna faktycznie pracuje, lub w oknach „diagnostycznych” (np. co któryś cykl).

Rozsądny kompromis to dwuwarstwowe podejście:

  • warstwa OEE – stabilna, dobrze udokumentowana, rzadko zmieniana (metodologia KPI, definicje stanów),
  • warstwa analityczna – elastyczna, nastawiona na eksperymenty (dodawanie nowych cech, zmiana częstotliwości próbkowania, testowanie algorytmów).

Gdy te warstwy są świadomie rozdzielone, nie ma paraliżu: zmiana modelu predykcyjnego nie wymaga przepisania sposobu liczenia OEE, a aktualizacja kategorii przestojów nie pociąga za sobą przebudowy całego pipeline’u data science.

Jak dokumentować mapowanie i model danych, żeby nie zgubić się po roku

Najczęstszy scenariusz: na starcie projektu wszyscy „mają wszystko w głowie”, mapowanie robi się w biegu, a opisy kończą w kilku rozjazdowych arkuszach Excela. Po roku nikt nie pamięta, czemu M3.Status=5 to akurat „czyszczenie awaryjne”, a nie „przezbrojenie na awaryjnej linii”.

Prostą barierą ochronną jest konsekwentne prowadzenie rejestru modelu danych, który obejmuje co najmniej:

  • listę wszystkich standaryzowanych tagów OEE/predykcja z opisem biznesowym,
  • mapowanie na adresy/zmienne PLC (włącznie z wersją programu lub datą ostatniej zmiany),
  • zakresy dopuszczalne, jednostki, typ danych,
  • historię zmian (kto, kiedy, co zmienił i dlaczego).

Forma jest drugorzędna – może to być repozytorium w GIT, narzędzie CMDB, dobrze zorganizowany arkusz czy moduł w MES. Ważne, żeby była jedna wersja prawdy i żeby inżynier automatyk przy zmianie w PLC miał obowiązek ją zaktualizować. Taka dyscyplina jest mniej efektowna niż nowy dashboard, ale to ona decyduje, czy system będzie żył pięć lat, czy rozpadnie się po pierwszej większej modernizacji linii.

Współpraca automatyka z IT i data scientist – kto za co odpowiada

Źródło wielu nieporozumień: automatyk oczekuje, że „IT samo sobie wykliknie dane z PLC”, IT zakłada, że „automatyk poda ładne API z gotowymi KPI”, a data scientist liczy na „dużo danych, to model się czegoś nauczy”. Tymczasem sukces takiego systemu wymaga dość precyzyjnego podziału ról.

Praktyczny model współpracy może wyglądać tak:

  • automatyk – odpowiada za semantykę i jakość sygnałów źródłowych; definiuje, co oznacza „RUN”, kiedy naliczany jest impuls cyklu, jak powstają kody błędów,
  • inżynier systemowy / IT OT – projektuje architekturę zbierania danych, wybiera protokoły, dba o bezpieczeństwo, czasy odpowiedzi i monitoring,
  • analityk danych / data scientist – projektuje cechy do predykcji, dobiera algorytmy, waliduje modele, interpretuje wyniki z perspektywy procesu,
  • właściciel procesu / utrzymanie ruchu – definiuje wymagania biznesowe: jakie przestoje chce redukować, jakie komponenty są krytyczne, jakie czasy reakcji mają realne znaczenie.

Mit mówi, że „wystarczy jeden mocny specjalista, który ogarnie i PLC, i sieć, i analitykę”. Rzeczywistość: złożoność tych obszarów jest już na tyle duża, że bardziej opłaca się zgrać kilka kompetencji niż szukać „jednorożca”. Warunkiem jest wspólny słownik pojęć i jasne, spisane założenia co do tego, jak interpretować dane z PLC w kontekście OEE i predykcji.

Małe kroki wdrożeniowe zamiast „rewolucji danych”

Na koniec istotny aspekt praktyczny: zakres wdrożenia. Łatwo ulec pokusie, by od razu objąć systemem OEE i predykcją cały zakład, z dziesiątkami linii i różnymi generacjami sterowników. Efekt bywa przewidywalny: projekt trwa latami, a użytkownicy czekają na pierwsze realne korzyści.

Znacznie skuteczniej sprawdza się podejście iteracyjne. Przykładowy scenariusz:

  1. Wybranie 1–2 maszyn krytycznych dla produkcji i częstych źródeł przestojów.
  2. Ustandaryzowanie modelu danych dla tych maszyn i wdrożenie pełnej ścieżki: od tagów PLC, przez bazę danych, po raport OEE.
  3. Dodanie ograniczonego zestawu sygnałów procesowych i prostego modelu predykcyjnego (np. wykrywanie wydłużania czasu cyklu przed awarią).
  4. Przegląd rezultatów po kilku miesiącach, korekta modelu, przeliczenie ROI.
  5. Rozszerzanie na kolejne maszyny według tego samego modelu, z drobnymi adaptacjami, a nie jako zupełnie nowe projekty.

Taki tryb działa jak bezpieczne pole testowe: pozwala oswoić zespół z nowym sposobem pracy z danymi, wychwycić błędy w modelu informacji i architekturze, zanim zostaną powielone na cały zakład. Co ważne – na każdym etapie to właśnie PLC pozostaje źródłem prawdy o stanie maszyny, a wszystkie warstwy nad nim są świadomie projektowane jako wymienialne: dają się rozwijać, wymieniać, skalować bez burzenia fundamentu w sterownikach.

Praktyczne strategie podnoszenia jakości danych z PLC

Analityka OEE i predykcja nie upadną na braku superzaawansowanych algorytmów, tylko na zwykłych błędach w danych: drgającym sygnale RUN, błędnych licznikach czy losowo zmieniających się kodach błędów. Zanim pojawi się pierwszy model ML, trzeba zadbać o to, by dane z PLC były stabilne i powtarzalne.

Stany pracy jako sygnał podstawowy – debouncing i histerezy

Stan pracy maszyny to fundament. Jeżeli sygnał RUN „klika” kilka razy w ciągu sekundy, każdy system nad nim zaczyna wariować. Dlatego na poziomie PLC opłaca się stosować proste mechanizmy wygładzania:

  • debouncing czasowy – zmiana stanu uznawana jest za ważną dopiero po utrzymaniu się przez określony czas (np. 1–3 s),
  • histereza na podstawie kilku sygnałów – stan „Praca” powstaje z kombinacji: silnik główny załączony, brak alarmu krytycznego, sygnał gotowości linii nadrzędnej.

Mit: „soft z góry sobie to odfiltruje, nie ma co komplikować PLC”. Rzeczywistość jest inna – im brudniejszy sygnał na sterowniku, tym więcej wyjątków w aplikacjach wyższych warstw, a każda poprawka mnoży złożoność po wszystkich systemach.

Standaryzacja kodów przestojów i alarmów

Kody przestojów są często największym bałaganem. Jeden automatyk dopisze kod „999 – inne”, drugi „1000 – test serwisu”, trzeci skopiuje listę z innej maszyny z inną semantyką. Potem w raporcie OEE pół przestojów ląduje w kategorii „pozostałe”.

Dobrą praktyką jest rozdzielenie dwóch warstw kodowania:

  • kody techniczne w PLC – szczegółowe, bliskie hardware’owi (np. „błąd enkodera osi X”),
  • kody biznesowe – agregujące techniczne przyczyny do kategorii OEE (awaria, brak materiału, oczekiwanie na operatora, planowany postój).

Mapowanie między tymi światami można zrealizować na dwa sposoby: albo już w PLC (tablica mapująca), albo w warstwie pośredniej (MES, middleware). Klucz w tym, by mapowanie było jedno i jawnie udokumentowane. Dla predykcji szczegółowy kod techniczny bywa bardzo cenny – umożliwia uczenie modeli na konkretnych awariach, nie na ogólnym „stoi”.

Stabilne liczniki części – resety, kierunki, korekty

Liczniki detali wyglądają banalnie, dopóki nie trzeba ich połączyć z raportem OEE. Typowe problemy:

  • reset przy każdym restarcie PLC,
  • brak rozróżnienia między ilością wyprodukowaną a dobrymi sztukami,
  • impulsy z czujnika liczone podwójnie przy cofaniu transportera.

Bezpieczniejszy model to:

  • licznik globalny w PLC – nigdy nie resetowany, rosnący całe życie maszyny,
  • licznik okresowy – kasowany na zlecenie/zmianę, służący operatorowi,
  • licznik odrzutów – osobny, z jasno zdefiniowanymi warunkami naliczenia (np. impuls „retract” na wyjściu sortera).

System OEE i moduły predykcyjne mogą używać różnic globalnego licznika między odczytami, co upraszcza obsługę restartów PLC i błędnych resetów. Aktualny stan zlecenia wynika wtedy z różnicowania po czasie, a nie z luźnej „liczby z ekranu HMI”.

Synchronizacja zegarów i stref czasowych

Bez wspólnego czasu cała analityka zaczyna się rozjeżdżać. Przestój widziany w PLC o 10:02, w MES o 10:07, a w bazie danych o 9:59 to klasyka zakładu bez NTP.

Minimum techniczne to:

  • centralny serwer czasu w sieci OT,
  • konfiguracja synchronizacji czasu w sterownikach (SIMATIC, ControlLogix, Beckhoff – każdy ma własny mechanizm, ale cel jest ten sam),
  • spójna obsługa czasu letniego/zimowego lub jego wyłączenie na rzecz stałej strefy (np. UTC) w warstwie zapisu danych.

Mit: „różnica minuty czy dwóch nic nie zmienia”. W logach predykcyjnych minuty są wiecznością, a próba korelacji drgań łożyska z awarią zapisaną pięć minut później kończy się błędnymi wnioskami.

Stanowisko analityka z wykresami na monitorze w nowoczesnym biurze
Źródło: Pexels | Autor: Kampus Production

Wybór technologii komunikacji między PLC a warstwą analityczną

Sam wybór protokołu nie rozwiązuje problemu danych, ale może go ułatwić – albo mocno utrudnić. Dodawanie predykcji do istniejącej instalacji rzadko wiąże się z wymianą sterowników, więc trzeba umieć wykorzystać to, co już jest, bez „dobijania” PLC nadmiernym ruchem sieciowym.

Klasyczne protokoły polowe vs. protokoły do akwizycji danych

Modbus TCP, Profinet, EtherNet/IP powstały głównie z myślą o sterowaniu w czasie rzeczywistym. Da się z nich czytać dane do OEE, ale trudno budować na nich masową telemetrię w zróżnicowanych środowiskach. Bardziej elastyczne są protokoły „świata IT/OT”:

  • OPC UA – standardowy interfejs serwer–klient, bogaty w opis semantyki (adres space, typy, jednostki),
  • MQTT – komunikacja publish–subscribe, dobrze sprawdza się przy strumieniowaniu zdarzeń i time series.

Przy maszynach różnych producentów często opłaca się wprowadzić warstwę pośrednią: gateway, który „rozmawia” z PLC ich natywnymi protokołami, a na zewnątrz udostępnia dane w jednolitym API (np. OPC UA + MQTT).

Push czy pull – kto inicjuje wymianę danych

Dwa typowe modele to:

  • pull – serwer/klient po stronie IT cyklicznie odpyta PLC lub gateway (np. OPC UA klient w serwerze czasu rzeczywistego),
  • push – to PLC lub edge gateway publikuje dane (np. MQTT publish, HTTP POST).

Pull jest prosty organizacyjnie, ale łatwo przeholować z częstotliwością i obciążeniem sterowników. Push daje lepszą kontrolę nad tym, kiedy i ile danych wychodzi z warstwy sterowania (np. publikacja tylko przy zmianie stanu lub co określony interwał). W projektach predykcyjnych rozwiązaniem hybrydowym bywa:

  • pull dla stabilnych, rzadko zmieniających się tagów OEE (stany, liczniki),
  • push dla intensywnych sygnałów procesowych (prądy, drgania), zwykle z poziomu urządzeń edge, nie bezpośrednio z PLC.

Bezpieczeństwo i segmentacja sieci OT

Podłączanie sterowników do analityki nie może odbywać się „na dziko”. Każde nowe połączenie to potencjalny wektor ataku lub niekontrolowanego obciążenia sieci produkcyjnej.

Przy projektowaniu architektury komunikacji warto zadbać o kilka zasad:

  • strefy i konduity – wydzielenie stref sterowania, DMZ OT, strefy IT; przepływ danych tylko przez kontrolowane punkty,
  • jednokierunkowe kanały tam, gdzie to możliwe – analityka czyta, ale nie ma dostępu do zapisu w PLC,
  • uwierzytelnianie i szyfrowanie – zwłaszcza w komunikacji między halą a serwerownią, w tym certyfikaty w OPC UA i TLS przy MQTT.

Rzeczywistość: często najgroźniejszym „atakiem” nie jest haker, tylko nadgorliwy skrypt, który zaczyna odpytywać wszystkie sterowniki co 100 ms, bo ktoś zostawił domyślne ustawienia w narzędziu integracyjnym.

Edge computing między PLC a chmurą danych

Nie każdy sygnał z PLC musi wylądować w centralnej bazie. Coraz częściej część przetwarzania przenosi się na poziom edge – komputery przemysłowe blisko linii, które odciążają sterowniki i sieć.

Rola urządzeń edge w Projekcie OEE i predykcji

Edge może pełnić kilka praktycznych funkcji:

  • buforowanie danych z PLC na wypadek przerwy w łączności z serwerem centralnym,
  • agregację i filtrację – zamianę surowych próbek na przetworzone cechy (np. RMS drgań, średni czas cyklu),
  • lokalne reguły – proste alarmy lub mikro-modele predykcyjne działające bezpośrednio przy linii.

Model, w którym PLC dostarcza stabilne sygnały podstawowe, a edge liczy część metryk, jest zwykle bardziej skalowalny niż próba „doczepienia” całej analityki do każdego sterownika osobno.

Jakie obliczenia warto przenieść na edge

Dla OEE większość logiki może pozostać w warstwie serwerowej. Dla predykcji sensownie jest jednak przerzucić na edge:

  • obliczanie statystyk okien czasowych (średnia, odchylenie, min/max),
  • wykrywanie przekroczeń granic dynamicznych (np. wzrost drgań o X% względem mediany z ostatnich dni),
  • ekstrakcję cech z sygnałów o wysokiej częstotliwości (FFT z wibracji, obwiednie prądu silnika).

Do warstwy centralnej trafiają wtedy już zagregowane dane, znacznie lżejsze, a dla większości analiz w zupełności wystarczające. Pełne sygnały „raw” warto archiwizować tylko w wybranych przypadkach – np. dla kilku krytycznych napędów – i okresowo rotować, żeby nie tonąć w terabajtach bezużytecznych próbek.

Łączenie OEE i predykcji z istniejącymi systemami MES/CMMS

Dane z PLC stają się naprawdę wartościowe dopiero wtedy, gdy są spięte z procesami zarządzania produkcją i utrzymaniem ruchu. W przeciwnym razie system OEE i moduł predykcji żyją własnym życiem, a decyzje nadal zapadają „na telefon”.

Automatyczne generowanie zgłoszeń serwisowych

Typowy, bardzo prosty, a skuteczny scenariusz to powiązanie zdarzeń z PLC z systemem CMMS:

  • awaria kluczowego napędu (konkretny kod błędu) automatycznie tworzy zgłoszenie z priorytetem i podpiętą historią danych z ostatnich minut,
  • model predykcyjny sygnalizuje, że prawdopodobieństwo awarii łożyska w ciągu najbliższych dni przekroczyło ustalony próg – CMMS tworzy zadanie inspekcji lub wymiany.

Rzeczywistość: najwięcej zysku nie daje „magiczna” predykcja, tylko uporządkowanie prostych, powtarzalnych zgłoszeń na podstawie obiektywnych danych z PLC, zamiast sms-ów i ustnych komunikatów.

OEE jako część workflow produkcyjnego, a nie osobny świat

Jeśli OEE ma realnie działać, musi być osadzone w procesach: planowaniu produkcji, rozliczaniu zleceń, spotkaniach operacyjnych. Dane z PLC są tylko paliwem. Żeby to zadziałało:

  • MES powinien przekazywać do PLC podstawowe identyfikatory (zlecenie, produkt), a w drugą stronę odbierać potwierdzone ilości i czasy,
  • system raportowy OEE musi korzystać z tych samych definicji czasu pracy i kategorii przestojów, co MES i CMMS,
  • korekty operatorów (np. zmiana kategorii przestoju) powinny być możliwe, ale śladowane – z zapisem kto i kiedy nadpisał klasyfikację zdarzenia wynikającą z PLC.

Mit: „jak pokażemy ładny dashboard, ludzie sami zaczną uczyć się na podstawie danych”. Bez zakotwiczenia w procedurach (np. codzienny przegląd TOP 5 przestojów na spotkaniu produkcyjnym) dashboard jest tylko ozdobą ściany.

Ekran laptopa z kodem i analizą danych z systemu sterowania PLC
Źródło: Pexels | Autor: Daniil Komov

Doświadczenia z wdrożeń – na czym potykają się projekty PLC+OEE+predykcja

W wielu zakładach widać powtarzające się schematy błędów. Większość nie wynika z braku technologii, tylko z mieszanki pośpiechu i niedoszacowania złożoności.

Zbyt szybkie wejście w „sztuczną inteligencję”

Częsty scenariusz: konkurs na najciekawsze PoC z AI, obietnica „przewidywania każdej awarii” i pierwsze wykresy anomalii w chmurze. Po kilku miesiącach nikt nie ufa wynikom, bo modele reagują na byle zmianę receptury lub operatora.

Prostsza, bardziej skuteczna droga to piramida:

  1. wiarygodne sygnały podstawowe (stany, czasy, ilości) z PLC,
  2. stabilne i akceptowane przez produkcję OEE,
  3. prosta analityka opisowa (trendy czasów cyklu, korelacje przyczyn przestojów),
  4. lokalne reguły predykcyjne (np. „jeśli czas cyklu rośnie o X% przez Y cykli z rzędu, zgłoś ostrzeżenie”),
  5. dopiero potem bardziej złożone modele ML.

Bez mocnego fundamentu każdy „sprytny” algorytm staje się generatorom fałszywych alarmów.

Niedoszacowanie prac po stronie PLC

Projekt budżetowany jest głównie pod kątem licencji, serwerów, konsultingu data science. Tymczasem na każdej linii trzeba:

  • ułożyć i wdrożyć nowy model stanów pracy,
  • dostosować kod błędów,
  • dodać lub przebudować liczniki, stany i timery,
  • przetestować obciążenie komunikacją (OPC, MQTT, Modbus) w warunkach zbliżonych do produkcyjnych,
  • uzgodnić z automatykami standard nazewnictwa i sposób wersjonowania zmian w programie.

Mit: „to tylko wyciągnięcie kilku tagów z istniejącego programu”. Rzeczywistość jest taka, że w wielu starszych liniach logika sterowania jest pisana pod jednego producenta i jedną recepturę. Gdy zaczyna się liczyć czasy, ilości i kody przyczyn dla kilkudziesięciu wariantów produktu, ujawniają się wszystkie skróty, które do tej pory „działały, więc nikt nie ruszał”.

Sporo projektów grzęźnie właśnie na etapie drobnych, ale licznych modyfikacji: dopisanie mapy błędów, doprecyzowanie warunków „produkcja / brak zapotrzebowania”, rozdzielenie przestojów technologicznych od awarii. Bez tego szyte na miarę dashboardy OEE pokazują liczby, które nie zgadzają się ani z odczuciami operatorów, ani z raportami z MES. Zaufanie spada, a wini się „system”, nie to, że w sterowniku jeden bit opisuje trzy różne sytuacje.

Brak właściciela definicji i spójności między liniami

Kolejny klasyk: każda linia ma „swoje” definicje stanów, własne kody przestojów i autorskie interpretacje, kiedy licznik sztuk ma tykać. Dla lokalnej ekipy to bywa wygodne, ale przy próbie porównania OEE między wydziałami wychodzi chaos. Dwie linie tej samej branży potrafią raportować skrajnie różne wskaźniki tylko dlatego, że jedna zalicza przezbrojenia do planowanych postojów, a druga do strat dostępności.

Konieczny jest jeden właściciel definicji – zwykle ktoś z pogranicza produkcji i UR, z mandatem, żeby powiedzieć: „tak wygląda słownik stanów i kodów dla całego zakładu”. Automatycy powinni dostać ten słownik jako wejście projektowe, a nie tworzyć go w biegu. Gdy na etapie wdrożenia kolejnej linii okazuje się, że brakuje kodów dla typowych przestojów lub inaczej rozumiemy „praca w ruchu jałowym”, cała analityka szybko zamienia się w zbiór lokalnych wyjątków.

Mit, który często się pojawia: „najpierw zróbmy, potem to ustandaryzujemy”. W praktyce rzadko jest „potem”. Pierwszy sposób modelowania stanów i przestojów zostaje na lata, bo każda zmiana oznacza korekty w PLC, interfejsach, raportach i szkoleniach dla operatorów. Lepiej poświęcić kilka tygodni na uzgodnienia i prostą dokumentację niż później przez lata tłumaczyć, dlaczego linia A ma OEE liczone inaczej niż linia B.

Ignorowanie perspektywy operatorów i słabego kontekstu danych

Nawet najlepiej zaprojektowany model danych z PLC nic nie da, jeśli operator przy pierwszym konflikcie między tym, co widzi na panelu, a tym, co pokazuje raport OEE, stwierdzi: „to się nie zgadza, olejcie to”. Główne źródło konfliktów to brak czytelnego kontekstu: linia „stoi”, bo czeka na materiał, ale w PLC widać tylko brak sygnału startu, więc system przypisuje postój do utrzymania ruchu.

Dobrym nawykiem jest łączenie danych z PLC z prostym interfejsem dla operatora, w którym może on doprecyzować przyczynę zdarzenia, ale w ramach ograniczonej, uzgodnionej listy. Zamiast dziesiątek wolnych pól tekstowych – kilka konkretnych wyborów, powiązanych z kodami w CMMS i słownikiem przestojów. To, co nie zostało zmapowane w PLC, można uzupełnić właśnie na tym poziomie, bez dorabiania kolejnych „flagi_1”, „flagi_2” w sterownikach.

Drugi element to prosty feedback loop: jeśli operator regularnie poprawia klasyfikację określonych zdarzeń („to nie była awaria, tylko brak materiału”), ktoś z zespołu projektu powinien to raz na jakiś czas przejrzeć i zaktualizować model w PLC lub słownik przyczyn. Inaczej panel operatorski zamieni się w „korektor błędów systemu”, a cały koncept automatycznego przypisywania przestojów przestaje mieć sens. Dobrym sygnałem, że idziemy w złą stronę, jest sytuacja, w której operatorzy klikają zawsze ten sam, „najbezpieczniejszy” kod, bo tylko tak da się domknąć zlecenie bez niepotrzebnych dyskusji.

Mit: „operatorzy będą oszukiwać, więc lepiej im nic nie dawać do wyboru, niech PLC decyduje”. Rzeczywistość: bez udziału ludzi model zawsze będzie ślepy na część realnych przyczyn – zwłaszcza tych organizacyjnych. Zamiast zakładać złą wolę, lepiej zbudować ramy, w których nie da się zbyt wiele namieszać: ograniczona lista kodów, jasne zasady ich użycia, szybkie wyjaśnianie sporów na gemba, a nie w mailach tydzień później. Tam, gdzie zespoły widzą, że ich doprecyzowania realnie wpływają na decyzje (np. zmiana planu przezbrojeń, inne okna serwisu), chętniej dbają o jakość wprowadzanych danych.

Pomaga też przejrzystość w prezentacji efektów. Jeżeli na tablicy OEE przy każdej linii pojawiają się trzy–cztery proste wskaźniki, które operator rozumie i jest w stanie połączyć z własnymi decyzjami z poprzedniej zmiany, zaufanie do systemu rośnie. Gdy zamiast tego widzi kilkanaście wykresów z procentami i „indeksami zdrowia maszyny”, łatwo o wrażenie, że to kolejna „zabawka dla biura”. W praktyce pojedynczy wykres rozkładu rzeczywistych przyczyn przestojów, oparty na danych z PLC i doprecyzowanych przez ludzi, potrafi zmienić dyskusję o priorytetach inwestycji w utrzymanie ruchu dużo bardziej niż najbardziej wyszukany model predykcyjny.

Na końcu sprowadza się to do jednego: PLC daje twarde, precyzyjne sygnały z maszyn, ale dopiero w połączeniu z dobrze przemyślanym modelem stanów, sensowną architekturą danych i zdrową współpracą produkcji z UR te sygnały zamieniają się w realne decyzje biznesowe. Tam, gdzie udaje się to połączyć, OEE przestaje być „kolejnym raportem”, a predykcyjne utrzymanie ruchu nie jest pokazem sztuczek z AI, tylko codziennym narzędziem do spokojniejszego, bardziej przewidywalnego prowadzenia produkcji.

Najważniejsze punkty

  • Sterownik PLC jest „źródłem prawdy” o maszynie, bo jako jedyny widzi realne stany czujników, napędów, liczniki sztuk, sekwencje start/stop i alarmy – dokładnie te sygnały, które faktycznie uruchamiają lub zatrzymują proces.
  • Dane z HMI, napędów czy czujników IoT mają sens dla OEE i predykcji dopiero wtedy, gdy są spięte z logiką PLC; sam napęd pokaże przeciążenie, ale dopiero powiązanie ze stanem cyklu w PLC mówi, czy to normalna praca, czy zapowiedź awarii.
  • Mit, że „wystarczy dużo czujników IoT”, upada w praktyce – punktowe pomiary drgań czy temperatur bez kontekstu procesu są biznesowo słabe, bo nie rozróżniają normalnego obciążenia od rzeczywistej anomalii.
  • Excel i ręczne raportowanie OEE dają co najwyżej poglądową statystykę: cierpią na błędy ludzkie, brak szczegółowości (mikroprzestoje, wahania prędkości), opóźnienia i brak możliwości korelacji zdarzeń z konkretnymi sygnałami z maszyny.
  • Automatyczne zbieranie danych z PLC pozwala precyzyjnie liczyć sztuki OK/NOK, mierzyć czasy pracy i postoju co do sekundy, przypinać alarmy i zdarzenia do realnych przestojów oraz budować długą, spójną historię dla analityki i modeli predykcyjnych.
  • Mit „Excel wystarczy, dopóki nie będziemy bardzo zaawansowani” kosztuje lata utraconej historii danych – firmy, które późno podpinają się do PLC, nie mają materiału do rzetelnej analizy trendów, uczenia modeli predykcyjnych ani obrony decyzji inwestycyjnych.
  • Źródła informacji

  • IEC 61131-3: Programmable controllers – Part 3: Programming languages. International Electrotechnical Commission (2013) – Standard języków programowania PLC i modelu sterownika
  • IEC 62264-1: Enterprise-control system integration – Part 1: Models and terminology. International Electrotechnical Commission (2013) – Model integracji ERP–MES–sterowanie, definicje danych produkcyjnych
  • ISO 22400-2: Automation systems and integration – Key performance indicators (KPIs) for manufacturing operations management – Part 2. International Organization for Standardization (2014) – Formalne definicje OEE i powiązanych wskaźników
  • Maintenance Engineering Handbook. McGraw-Hill (2014) – Podstawy utrzymania ruchu, RCM, CBM i predykcyjne strategie serwisowe
  • Predictive Maintenance in Dynamic Systems: Advanced Methods and Applications. Springer (2020) – Metody predykcyjnego utrzymania ruchu z wykorzystaniem danych z maszyn
  • Programmable Logic Controllers: Principles and Applications. Pearson (2015) – Architektura PLC, sygnały procesowe, integracja z systemami nadrzędnymi

Poprzedni artykułDigitalizacja dokumentacji maszyn: pierwszy krok do inteligentnej produkcji
Kacper Suwalski
Kacper Suwalski od lat zajmuje się automatyką przemysłową, ze szczególnym naciskiem na układy sterowania maszyn, konfigurację sterowników PLC i diagnostykę problemów pojawiających się w pracy linii technologicznych. Na Controls4You przygotowuje materiały oparte na dokumentacji technicznej, praktyce wdrożeniowej i analizie rzeczywistych przypadków usterek. Stawia na jasne wyjaśnienia, weryfikację parametrów oraz rozwiązania, które można zastosować w codziennej pracy utrzymania ruchu. Pisze odpowiedzialnie, oddzielając teorię od sprawdzonych metod i zwracając uwagę na bezpieczeństwo instalacji.