Wyświetlanie informacji o stanie realizacji produkcji w czasie rzeczywistym

0

Witam.
Mam do stworzenia system produkcyjny, który miałby, w czasie rzeczywistym, informować pracowników na maszynach oraz kierownika o stanie realizacji produkcji. Zastanawiam się właśnie jak ten aspekt ogarnąć. Czy dobrym rozwiązaniem jest odpytywać bazę danych tak często? Czy to trzeba będzie ogarnąć jakimś serwerem TCP? Może WebAPI? Jak wymienione rozwiązania mają się do wydajności? Jeśli będzie, na przykład, 15 stanowisk produkcyjnych i jeden kierownik to takie częste "uderzanie" w kierunku bazy, serwera, API może być zabójcze. Stanowiska produkcyjne są od siebie zależne. Jeśli stanowisko A ma spóźnienie to B powinno wiedzieć o tym, że będzie miało kolejny (zaplanowany) etap później i może w tym czasie robić coś innego o czym decyduje kierownik, który również powinien widzieć opóźnienia i przeorganizować zaplanowanie zadania.

Doświadczenie największe mam w WinFormsach + DevExpress, więc część użytkowa byłaby w tej technologii.

1

Jaką ilość zapytań na minutę uważasz za zabójczą i do jakiej bazy?

4

Działaj na zdarzeniach i każdy klient niech subskrybuje się przez SignalR do tego co go interesuje

1

A może inaczej podejść do tematu. Nie walić w bazę zapytaniami co sekundę (swoją drogą - to co napisał @var też ma sens, bo Postgres na jakimkolwiek serwerze za więcej niz 2kpln powinien temat ogarnąć bez problemów), ale raczej pomyśleć o jakimś systemie zgłaszania zdarzeń.

W sensie - jest jakiś harmonogram. Jeśli stanowisko A ma opóźnienie, to wysyła informację do innych, że jest problem. Wiadomość odbierają te stanowiska, które są zależne od efektów pracy stanowiska A, a potem w oparciu o to, co dostaną, ponownie przeliczają swoje harmonogramy.

0

Informacja to jedno (baza danych np przez WebAPI).
Zdarzenia (eventy) to drugie (systemy kolejkowe). jest to powszechnie uznany niezabijający sposób na uzyskanie tego co chcesz

1

Ile tego tak naprawdę ma być i na czym to ma właściwie stać?

Czy dobrym rozwiązaniem jest odpytywać bazę danych tak często?

Tak, nie, nie wiem. Na pewno lepiej nie wystawiać bazy "gdzieś" i uderzać do niej zewsząd :P

Zależy od tego, co będziesz trzymać w bazie i jak to ogólnie ma wyglądać - ile danych, jak duże dane, jak często, czy dostępy będą do przypadkowych danych, czy może odczytujesz tylko najnowsze, czy jak. Jeśli odczytujesz stosunkowo mało danych, to prawdopodobnie zmieszczą się w cache bazy, jeśli to będzie duża baza i przypadkowe dostępy, to przeszukiwanie dysku będzie sporo kosztować. I tak dalej.

1

Ja bym chyba nie szedł w stronę podpinania wszystkich stanowisk do kolejki w taki sposób żeby one informowały siebie nawzajem o opóźnieniach tylko w taki sposób, żeby w centrum stała aplikacja działająca jako element synchronizujący oraz służący jako źródło danych.

Stanowisko produkcyjne mogłoby wysyłać eventy o rozpoczęciu i zakończeniu pracy a w osobnym procesie realizowałbym informowanie o stanie produkcji, który pobierałbym co jakiś czas z API

0

Faktycznie o najważniejszym nie napisałem.

  1. System musi być dostosowany do Comarch Optima, więc ogranicza mnie to do MS SQL Server.
  2. "Wczytywane" były by dokumenty, w których pozycje były by produktem wynikowym. Ten produkt ma swoją recepturę, w której są składniki (materiał) i usługi (maszyna).
  3. Ilość dokumentów jest zależna od ilości zamówień przekazanych do realizacji. Ciężko określić. Można założyć, że średnio 20 na dzień i każdy z nich może mieć po kilka pozycji, a te pozycję mogą mieć po kilka usług (maszyn).
  4. Usługi na recepturze są w określonej kolejności. Na przykład: wypalanie -> gięcie -> wycinanie -> malowanie. Czyli dany składnik najpierw pójdzie na maszynę do wypalenia i tam spędzi jakiś określony czas.
  5. Pracownik na swoim stanowisku naciska START i od tego momentu liczony jest czas pracy na tej maszynie, który powinien się pokazać kierownikowi.
  6. Jeśli pracownik z punktu 5. będzie miał spóźnienie, to kolejny etap (gięcie) będzie opóźnione i o tym powinien być poinformowany pracownik przy maszynie do gięcia, albo kierownik, również widząc to opóźnienie, powinien przeorganizować plan działania, aby nie było luk w produkcji.
1

Chyba najrozsądniejszym rozwiązaniem będzie aplikacja centralna (serwer) w liczbie sztuk instancji 1, która jako jedyna ma połączenie z bazą danych, posiadająca:

  • WebApi jako źródło danych od maszyn o czasach pracy, maszyny będą strzelać pod endpointy z informacją o swoich czasach (chyba że maszyny od razu piszą do bazy danych? potrzebne info),
  • Jakiś message broker do systemu zdarzeń o czym wspominano wyżej (RabbitMQ?).

Oprócz tego aplikacje klienckie (dla operatorów maszyn i kierowników) korzystające z wymienionych wyżej kanałów komunikacji.

0

Słyszałem o czymś takim jak RabbitMQ ale jakoś nie miałem możliwości skorzystania i nie bardzo wiem jakie zastosowanie ma w tym przypadku. To za pomocą RabbitMQ będzie przechodzić synchronizacja/komunikacja pomiędzy aplikacjami?

0

Rabbit jest fajny ale wymaga Erlanga. Kolejna rzecz do instalacji i pilnowania.
Ja niedawno użyłem Mosquito (ale to nie to samo).
Co prawda do niezbyt ważnych operacji ale jestem zadowolony

Każda aplikacja może wysyłać coś do Rabbita do jakiejś kolejki i każda aplikacja może nasluchiwac tych kolejek, plus trochę innych bajerów.

Jaka branża tej produkcji?
Wystarczają Ci dane z Optimy do produkcji?

0

No właśnie "królik" ma swoje wymagania, co wstępnie nie jest problemem, ponieważ zainstaluje się go w jednym miejscu (na serwerze) i finito. Problemem jest brak doświadczenia w tego typu projektach.

Branża tutaj akurat nie ma znaczenia, ponieważ ja wszystko mam w Optimie, a jak nie mam to powiem, że chce żeby mieć. Projektowanie, wycena, czas produkcji jest określony w oprogramowaniu wydawanym przez producenta maszyn i na tej podstawie tworzone są zlecenia, które klient końcowy potwierdza. Do Optimy wpadają gotowe dane (Rezerwacja odbiorcy), na podstawie których mam zamiar opierać cały system. Właśnie ten typ dokumentu ma pozycje, które są rozbijane na składniki (z receptury) w skład, w których wchodzi maszyna jako usługa przygotowania (obróbka).

Spodziewałem się, że powinna być "centralka", która będzie wysyłać stan całego zlecenia (składającego się z usług = maszyn). Po głębszej analizie doszedłem do wniosku, że to nie ma znaczenia czy będzie centralka, czy nie, ponieważ poszczególne maszyny muszą poinformować centralkę o swoim stanie, a to wiąże się z wpisem w bazie. Czy tylko mnie się wydaje, że to będzie tyle samo uderzeń do bazy danych, indywidualnie, przez każdego klienta (maszynę) co jakby miała to zrobić centralka na tej samej podstawie 🤔

14 maszyn -> 14 połączeń SQL o swoim stanie == 14 maszyn -> "centralka" -> 1 połączenie SQL o stanie 14 maszyn

0

Cześć,

  1. To co chcesz zrobić to chcesz napisać MES'a (soft do końcówek gdzie operatorzy raportują wykonywanie zleceń) + SCADA (soft do monitorowania maszyn itp.).
  2. Dodatkowo mam pytanie czy masz doświadczenie w pracy z API Comarchowym bo jest to trochę specyficzne ;-)
  3. Czy może patrzyłeś na rozwiązania już gotowe? Produkcja .Net 2.0 jest zintegrowana z Optimą i pewnie ma większość funkcji które potrzebujesz.

Co do samego rozwiązania to z mojej praktyki (pisanie aplikacji produkcyjnych dla Comarcha) mogę zasugerować takie rozwiązanie że warto sobie napisać proxy connector na serwerze jako API na serwisie windowsowym, i potem na końcówkach (klientach) odpytywać odpowiednimi zapytaniami przez API poprzez jakieś MQ (rabbit, kafka itp.).

Co do obciążenia serwera pytanie czy SQL jest express czy nie? Jak często te 14 stanowisk planuje aktualizować swoje dane (jak długie są operacje procesowe?).

0
  1. Możliwe. Ciężko to nazwać. Mam wytyczne od klienta i tak muszę zrobić.
  2. Mam doświadczenie. Od czterech lat piszę dodatkowe oprogramowanie pod Comarch Optima. Z tego firma żyje (między innymi).
  3. Są gotowe rozwiązania, ale w niektórych aspektach mają braki, a w niektórych aspektach tych funkcji jest za dużo i nikt nigdy z nich nie skorzysta. Z drugiej strony biznesowo dla nas jest lepiej, ponieważ kasa jest dużo większa za pisanie od zera, na specjalne zlecenie. Ewentualnie później dopisywać funkcje w ramach potrzeby niż polegać na firmach trzecich, ich supporcie i mieć z tego tylko marne grosze za usługi pośrednictwa.

Oprogramowanie samo w sobie jest najmniej skomplikowane, ponieważ ja już mam wszystko podane na tacy w postaci dokumentu. Cały "system" planowania polegałby tylko na rozbiciu tego na odpowiednie części i reszta się już "zrobi" sama. Najtrudniejszym elementem, dla mnie, jest stan całego systemu w czasie rzeczywistym. Działanie oprogramowania do produkcji, w taki sposób w jaki mam to zrobić, jest bardzo zdradliwe, ponieważ przez brak doświadczenia w RabbitMQ i pisaniu tego typu rzeczy mogę wygenerować masę błędów, które później mogą przełożyć się na zatrzymanie produkcji.

0

RO z Optimy nijak się ma do produkcji, planowania, optymalizacjo planu (jesli ma byc jakas), MRP cze MES.
Jeśli rozbijesz RO na operację dla maszyn wg jakiejś receptury czy ogólnie technologii to "maszyny" mogą wysyłać do Rabbita stan, początek i koniec operacji. Jakis serwis to nasluchuje z Rabbita i coś z tymi komunikatami robi. Pokazuje jakoś. Choćby jakiś Gantt.

Dalej polecam Mosquitto. Bardzo prosty.
Ponawiam pytanie o branżę z czystej ciekawości.

0

W kwestii RO to są ustalenia jakie uzgodniliśmy z klientem. Faktura Pro Forma jest ofertą, w której jest pełna wycena i czas wykonania produktu. Klient ją zatwierdza i z FPF robi się RO. Na tym RO produkt ma recepturę, w której są składniki (materiał) oraz usługi (maszyny). Trzeba jeszcze tylko ustalić czy jesteśmy w stanie ogarnąć atrybutem na usłudze czas trwania usługi i na tej podstawie wygenerować cały plan, a kierownik będzie widział wszystkie maszyny (usługi) i ewentualnie zmieniał/poprawiał zlecenia. Do wyświetlenia stanów całego systemu posłuży kontrolka z DevExpressa - Scheduler/Gantt View. Coś mniej wiecej takiego DevExpress - Gantt View

Ponawiam pytanie o branżę z czystej ciekawości.

Ogólnie to jest to obróbka stali.

Ja wiem, że Optima nie nadaje się do produkcji. Dlatego musimy napisać swoje rozwiązanie, które z pomocą Optimy będzie działać. Jesteśmy partnerem Comarch i klient korzysta już jakiś czas z Optimy. Tak jak już pisałem, nie martwię się Optimą, ponieważ generowanie dokumentów, zamykanie, zatwierdzanie, rozliczanie, MM, PWP, RW i atrybuty mam opanowane.

2

Ja bym wyniósł całą produkcję poza Optime. Zaimportowac RO do wlqsnego systemu i na koniec produkcji dodac w Optimie RW PW i jakies MMW. Niedawno nawet zastepowalismy moduł produkcyjny XLa bo jest cienki. Delikatnie mówiąc.
No ale to poważna dezycja i duzo pracy.

0

No tak, to też było omawiane i zdecydowanie potrzebujemy własnej bazy albo chociaż własnych tabel. Co w dalszym ciągu nie zmienia faktu, że omawiamy tutaj przetwarzanie danych, które dla mnie są najmniejszym problemem ;-)

1

Ale odpowiedzi już chyba padły. Albo jakieś własne serwisy komunikacyjne albo jakieś MQ.
Dla 15 stanowisk, nawet jak będziesz aktualizował/sprawdzał stan produkcji co 1 s to nie ma to znaczenia dla bazy. Maszyny co 1 s mogą wysyłać update do bazy co robią a kierownik może co 1 s sprawdzać stan wszystkich maszyn i rysować Gantta. Nawet aplikacja kierownika może nasłuchiwać kolejki MQ zmiany statusu maszyny i jak się coś zmieni to wtedy, zdarzeniowo, przerysować. Dla takiej ilości maszyn nie ma to znaczenia. Sama maszyna też raczej nie będzie zmieniać stanu bardzo często bo zakładam, że jedna operacja będzie miała czas w minutach.

0

Ok, czyli podsumowując. Czy potrzebuję pośrednika w postaci centralki, który będzie to wszystko ściągał/wysyłał z maszyn i kierownika i wpisywał/pobierał do bazy, czy mogę uderzać bezpośrednio do bazy z 15 urządzeń? Plan jest taki, aby maszyny wysyłały swój stan też co sekundę. Czyli... Pracownik dostaje zlecenie, naciska guzik START i leci sobie licznik (z czasem podanym na dokumencie RO). Informacja o tym, że maszyna teraz pracuje powinna być widoczna u kierownika i myślałem, aby ten licznik też był widoczny (u kierownika), co do sekundy.

0

Ja bym zrobił na początku update do bazy. Podmianka na centralkę w przyszłości, jeśli będzie potrzebna, to podmianka 2-3 klas.
Odczyt dla kierownika co 1 s nie ma sensu. Nie zauważy sekundowych zmian a jego reakcja i tak nic nie zmieni w ciągu np przykład 10 s.
Licznik to się powinien liczyć od aktualna godzina minus godzina uruchomienia operacji a nie od sekundowych strzałów z maszyny. Maszyna przy uruchomieniu operacji powinna zapisać datę i godzinę uruchomienia operacji.

Z UDP to poszalałeś. To samo, na znacznie wyższym poziomie, da Ci Rabbit lub Mosquitto.

1
AdamWox napisał(a):

W kwestii RO to są ustalenia jakie uzgodniliśmy z klientem. Faktura Pro Forma jest ofertą, w której jest pełna wycena i czas wykonania produktu.

Założę się że tam nie ma pełnej wyceny, tylko uproszczona.
Upraszczacie zmienność produkcji, tj. że daną operację można wykonać na maszynie A lub B, ale na A będzie trwała o 20% krócej, ale na B będzie wymagała dodatkowego osprzętu.
Itd. itp.

Klient ją zatwierdza i z FPF robi się RO. Na tym RO produkt ma recepturę, w której są składniki (materiał) oraz usługi (maszyny). Trzeba jeszcze tylko ustalić czy jesteśmy w stanie ogarnąć atrybutem na usłudze czas trwania usługi i na tej podstawie wygenerować cały plan, a kierownik będzie widział wszystkie maszyny (usługi) i ewentualnie zmieniał/poprawiał zlecenia.

Czas trwania usługi zależy od minimum kilku zmiennych, a niektóre z nich mogą się zmienić w trakcie realizacji danej operacji zlecenia.
I tylko jednej z wielu operacji technologicznych dla całego zlecenia.

A sprawa się komplikuje, jeżeli operacji jest więcej - przy obórce stali jest ich więcej.
Poza tym, prawie zawsze jest też kooperacja, która wywraca cały misterny plan do góry nogami.

Nie piszesz o operacjach, bo ich na razie nie widzisz?

Do wyświetlenia stanów całego systemu posłuży kontrolka z DevExpressa - Scheduler/Gantt View. Coś mniej wiecej takiego DevExpress - Gantt View

To się nie nadaje do harmonogramowania produkcji, ponieważ jest zwyczajnie za słabe.
Wiem, bo to przerabiałem lata temu i skończyło się na napisaniu własnego Gantta.
Ale do samego wyświetlania stanu realizacji może wystarczyć, pod warunkiem że będziesz miał odpowiedni informacje.
A z tego co widzę, to na razie nie wiesz, czego potrzebujesz...

Tylko, że to wszystko psu na budę.
Klient będzie chciał mieć (założę się że tak będzie, prędzej czy później) wpływ na ten harmonogram, a nie tylko patrzeć na niego.

Ponawiam pytanie o branżę z czystej ciekawości.

Ogólnie to jest to obróbka stali.

Mam gotowy system do zarządzania produkcją, harmonogramowania, analityki produkcji, CMMS, KJ, meldunków (MES) - wszystko działa w czasie rzeczywistym włącznie z korektą harmonogramu produkcji i przeliczeniem operacji zależnych. I nie tylko.
Również dla obróbki stali i również w najbardziej wrednej jej mutacji, czyli produkcji jednostkowej, gdzie firma robi de-facto w 90% prototyp, a oferta na wyrób gotowy to kompletna kalkulacja technologiczno-handlowo-poprodukcyjna z możliwością obliczenia CTP.

Poproście o prezentację, to może po prostu napiszecie łącznik pomiędzy Optimą a systemem produkcyjnym zapewniającym dwukierunkową komunikację :)

Ja wiem, że Optima nie nadaje się do produkcji. Dlatego musimy napisać swoje rozwiązanie, które z pomocą Optimy będzie działać. Jesteśmy partnerem Comarch i klient korzysta już jakiś czas z Optimy. Tak jak już pisałem, nie martwię się Optimą, ponieważ generowanie dokumentów, zamykanie, zatwierdzanie, rozliczanie, MM, PWP, RW i atrybuty mam opanowane.

Sorry, ale mam wrażenie że będziecie mieli z tym ogromną ilość problemów, których nie jesteście jeszcze świadomi.
Produkcja to nie jest handel, magazyn czy księgowość. Tam jest wszystko proste i oczywiste
.
Produkcja jest wredna, zmienna i skomplikowana. Ogromna ilość wyjątków od reguły o ogarnięcia.
Jeden błąd na etapie koncepcji może zaważyć, czy w ogóle da się danego rozwiązania używać.

Żeby zrobić to dobrze, trzeba się na tym znać - i to lepiej niż klient. Na tym, czyli na zarządzaniu produkcją.

0

@wloochacz: czyli chcesz powiedzieć, że mamy się za to nie zabierać, ponieważ na podstawie ogólnikowych informacji wyszedłeś z założenia, że się nie znamy i nie poradzimy sobie z tym, a już tym bardziej powinniśmy rozumieć produkcję, a nie klienta dla którego to piszemy? 🤔 Też tak robisz, że jak zleceniodawca (właściciel firmy) mówi ci jak system ma działać to go poprawiasz, że źle mówi, bo ty wiesz lepiej jak produkcja powinna wyglądać na podstawie doświadczenia?

Problem polega na tym, że nie pisze tutaj wszystkiego, ponieważ nie chce rozwiązać problemu ogarniania i rozumienia produkcji tylko chce rozwiązać problem komunikacji całego systemu. Bez względu jaka produkcja, jaki system, jakie zmienne pytam o technologie informowania użytkowników o stanie realizacji w czasie rzeczywistym.

Uważam, że to co napisał @jacek.placek na temat niepotrzebnego odświeżania stanu co 1 sek. ma sens. Kierownik nie zawsze siedzi przed komputerem, nie wpatruje się w monitor przez 8 godzin. A z tego można wywnioskować, że nie potrzeba "szaleństw".
Pracownik również nie powinien widzieć swojego stanu pracy, żeby go nie kusić. System upraszcza się do guzików "start", "stop".

0

Start i Stop to początek. Potem dojdzie raportowanie materiałów, jakieś wypełnianie kwestionariuszy jakościowych, podgląd do specyfikacji itp.

Temat rzeka system można rozwijać o następne funkcjonalności przez lat ;-) Co ciekawe z mojego doświadczenia najgorsze jest nauczenie ludzi wciskania Start i Stop, więc sugeruję jak pozwala park maszynowy na czytanie różnych danych z urządzeń o próbę spinania to co się dzieje na maszynie i potem raportowanie i analityka.

2
AdamWox napisał(a):

@wloochacz: czyli chcesz powiedzieć, że mamy się za to nie zabierać, ponieważ na podstawie ogólnikowych informacji wyszedłeś z założenia, że się nie znamy i nie poradzimy sobie z tym, a już tym bardziej powinniśmy rozumieć produkcję, a nie klienta dla którego to piszemy? 🤔

Tak dokładnie; na podstawie tego co piszesz, mam wrażenie że nie do końca rozumiesz z czym się mierzysz.
Po prostu.
Ale spokojnie, w końcu się dowiesz.

Poza tym padło słowo klucz GANTT.
Diagram Gantta determinuje harmonogram.
A harmonogram na produkcji determinuje operacje technologiczne i normatywy czasowe dla operacji, ponieważ bez tego nie masz danych aby ten harmonogram w ogóle narysować, a co dopiero nim zarządzać...
I to póki co jest minimum i to tylko na etapie harmonogramowania.

Ty masz mierzyć postęp realizacji, a to z kolei wymaga kontekstu powyżej z zestawieniem rzeczywistych danych z hali produkcyjnej.
I to musisz zrobić na poziomie konkretnej operacji (a wiec konkretnej maszyn/gniada produkcyjnego), a potem agregować w górę do zlecenia produkcyjnego i być może jeszcze wyżej, do zamówienia.

Też tak robisz, że jak zleceniodawca (właściciel firmy) mówi ci jak system ma działać to go poprawiasz, że źle mówi, bo ty wiesz lepiej jak produkcja powinna wyglądać na podstawie doświadczenia?

Oczywiście.
Więcej - właśnie tego ode mnie się oczekuje. Czasem jest i tak, że nie realizuję jakiegoś wymagania zgodnie z życzeniem, ponieważ w danym kontekście jest ono z czapy.
Tak naprawdę klient ma to dokładnie w nosie, jak to jest zrobione - on ma pewne oczekiwania i wyobrażenia.
Te drugie są czasem sprzeczne z tymi pierwszymi...
A jedynego czego jestem pewien na pewno, to tego, że wymagania się zmienią.
Zatem trzeba to projektować tak, aby dało się to rozwijać i zmieniać - nic na sztywno, żadnego wiązania drutem, żadnych uproszczeń, które zemszczą się okrutnie w przyszłości.

Tylko raz miałem sytuację, gdzie szefowa UR stwierdziła, ze "nie interesuje mnie to, co ma Pan do powiedzenia na bazie Pańskich doświadczeń".
Ale jej prezes od razu dodał "a mnie bardzo interesuje, proszę kontynuować".
Zajmuję się tym tematem na poważnie od dawna i możesz mi wierzyć, że wiem o czym mówię.
Poza tym mam takie cholerne szczęście, że trafiają mi się tematy trudne lub bardzo trudne.
Co w pewien sposób może skazić mój osąd, nie wykluczam tego...

Zresztą, to chyba nie jest dobre miejsce na takie dyskusje.
Ponadto raczej za szeroko napisałem, ponieważ za mało wiem o Twoich wymaganiach.
Mógłbym pewnie pomóc, ale musiałbym rozmawiać z produkcją, a nie z programistami.

Ale tak z ciekawości to Ci powiem, że to co chce Twój klient (i dużo, dużo więcej), bazując na tym co napisałeś wcześniej, jest do zrobienia za ok. 10 tyś zł.
Jest w PL taki gotowy system rozwijany od dekad za śmieszne pieniądze i robi robotę. Wydajność bierze nie tylko z guzika start/stop, ale przede wszystkim z monitorowania sygnałów maszyny.
I tak, da się go podłączyć również do maszyn CNC - np. centr obróbczych, czy elektrodrążarek.
I nie, nie jest to mój system :)

Problem polega na tym, że nie pisze tutaj wszystkiego, ponieważ nie chce rozwiązać problemu ogarniania i rozumienia produkcji tylko chce rozwiązać problem komunikacji całego systemu.

Tylko, że to jest hmm... podstawa bez której nie bardzo da się dostarczyć wymagania podstawowe.
No i nie zdefiniowałeś co to znaczy w czasie rzeczywistym.
Bo dla Ciebie to może oznaczać system czasu rzeczywistego.

Ale dla szefa produkcji, to będą realne informacje z produkcji z dopuszczalnym opóźnieniem do np. pół godziny.
Dla kogoś, kto dostaje raporty produkcji po (powiedzmy) tygodniu i to raczej na pewno niekompletne i niewiarygodne, jest to i tak rewolucja w jakości danych.
Za dużo widziałem dużych i bardzo dużych fabryk prowadzonych dosłownie na zeszycie, aby nie wiedzieć o czym piszę.
Oraz za dużo widziałem produkcji prowadzonych w systemach klasy Optima, aby nie wiedzieć co Cię czeka.
Optima nie posiada TPP (bo wybacz, ale receptura/kompletacja wykorzystywana do generowania RW po przyjęciu PW z produkcji, to nie jest TPP.
Ale i Optima nie jest ERP, mimo że tak się nazywa.)

Zwróć uwagę, że te wszystkie proste systemy zarządzają produkcją w oparciu o magazyn.
Ale Ty masz chyba inne wymagania, bo gdyby były tak proste, to wystarczyłoby monitorować PW z produkcji i tyle.
Też byś dostał postęp realizacji zlecenia.

Bez względu jaka produkcja, jaki system, jakie zmienne pytam o technologie informowania użytkowników o stanie realizacji w czasie rzeczywistym.

Dostałeś odpowiedź; kolejka komunikatów i system reaktywny. Nie pasywny.
Skoro to .NET to SignalR, a jeśli nie chcesz pisać serwera to Mosquitto da radę aż nadto, zwłaszcza że od wersji 1.5.4 działa również natywnie z kanałem WebSocket i również pod Windows. A z kolei WS, daje nam możliwość konsumpcji komunikatów również z weba, co bywa mocno przydatne. No i jest jeszcze bardzo popularny RabbitMQ albo rozwiązania chmurowe - do wyboru do koloru.
Tylko to nie jest żadna odpowiedź, bo to jak wysłać to powiadomienie to najmniejszy problem.
Natomiast skąd te dane wziąć i jak je przetwarzać, to zupełnie inna para kaloszy.

Uważam, że to co napisał @jacek.placek na temat niepotrzebnego odświeżania stanu co 1 sek. ma sens. Kierownik nie zawsze siedzi przed komputerem, nie wpatruje się w monitor przez 8 godzin. A z tego można wywnioskować, że nie potrzeba "szaleństw".

Dlatego dla takiej osoby lepszym rozwiązaniem są komunikaty o sytuacjach wyjątkowych (powiadomienia również na telefonie, różnie - ja korzystam ze Slacka, maila, SMS - różnie) oraz system, dzięki któremu łatwo i szybko sprawdzi co się dzieje i dlaczego. Lepszym, ponieważ nie gapi się w to cały dzień, a powinien wiedzieć o sytuacjach wyjątkowych.
Ponadto taki dashboard i tak jest potrzeby, ponieważ mimo tego ze nie wgapia się w to, to będzie chciał jednym spojrzeniem zobaczyć i dowiedzieć się "co w tej chwili dzieje się na produkcji".

Na cóż, zakładasz że tylko kierownik będzie to oglądał (bo pewnie tak Ci powiedział).
A ja się założę, że nie tylko on, ale również inne osoby w firmie i to w różnych agregacjach danych.
Ale to może kiedyś, poza tym znowu uprzedzam przyszłe wymagania...

Pracownik również nie powinien widzieć swojego stanu pracy, żeby go nie kusić. System upraszcza się do guzików "start", "stop".

Hmm... mam absolutnie inne zdanie na ten temat.
Moim klientom guziki start/stop przestały wystarczać po kilku tygodniach.
I nie wyobrażam sobie, aby gdziekolwiek było inaczej, kiedy dowiedzą się że może być inaczej.

Ale powiedz - padło pytanie "a czy ten system pokaże mi OEE"? :)

0

Wow :-) zamknąłeś się w tej swojej bańce produkcyjnej i uważasz, że wszędzie jest albo będzie tak jak twoje doświadczenie mówi. Jaki to ma związek z technologią kolejkowania komunikatów, o którą pytam w tym wątku? Skoro już dostałem odpowiedź to po co ten cały esej? Wiem z czym się mierze i wcale nie jest tak jak piszesz, ale domyślam się, że i tak wiesz lepiej.

PS.
Nie, nie padło pytanie o OEE, TPM czy TPP, ponieważ to nie jest projekt systemu do encyklopedycznej produkcji jaką ty znasz i mi tu wciskasz, że taka będzie ;-)

2

@wloochacz: Ale tak czasem (często?) jest jak pisze @AdamWox. Jeden z moich klientów miał kiedyś aplikację do wklepywania zamówień i drukowania papierowych zleceń produkcyjnych. Ja dostałem jedno wymaganie. Zrobić to samo co jest plus komunikację z maszynami, żeby nie trzeba było wbijać do maszyny z jej panela danych zamówienia (jakieś wymiary i sztuki). Wymieniliśmy sterowniki w maszynach i była komunikacja po sieci, automatyczne raportowanie, rozliczanie produkcji, identyfikacja itp. A potem w ciągu 6 lat dochodziły kolejne funkcje w produkcji, logistyce, magazynie, zamówieniach, planowaniu...
Drugi miał Optimę i wszystko na papierach (zeszyty z zamówieniami itp) i to całkiem niedawno, ze 3 lata temu. Trzeci miał XL-a a i tak trzeba było sporo zmienić czy uporządkować w procesach produkcyjnych. Wszyscy z tej samej branży. Przychody od 30 do ponad 100 mln rocznie.
Czasem to musi trwać te kilka lat i rozwijać się po kawałku. Operatorzy i kierownictwo musi się przyzwyczaić i nauczyć.

0

Dokładnie. Dojrzałość organizacji do systemu też trochę czasu zajmuje :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1