This document is written in Polish because one of our partners preferred to plan this feature in his native language.
However we can translate it on demand. Please add a task on our issue tracker if you would like to work on this document in English.
Issue: http://issues.qcadoo.org/browse/QCADOOMES-168
Initial discussion: http://forum.qcadoo.org/discussion/28/production-scheduling-problem
Wstęp
Stworzenie automatycznego harmonogramowania jest ciężkim zagadnieniem, szczególnie w sytuacji w której następuje rekurencja czynności na tym samym gnieździe produkcyjnym. Bardziej na początek potrzebne było by narzędzie które dbało by tylko o wykonalność zaplanowanych działań, tzn. tak naprawdę – czegoś w formie tego wykresu Gantta który w tej chwili jest stworzony dla każdej czynności ale z opcjami ręcznego „rozkładania klocków" będących czynnościami, a system powinien pilnować tylko aby czas początku operacji B nie był zapisany przed końcem operacji A i ustawił go w najwcześniejszym możliwym miejscu, przesuwając automatycznie wszystkie pozostałe operacje (z tego i innych zleceń) na osi czasu w prawo. To wymaga przeliczenia najwcześniejszych możliwych czasów rozpoczęcia wszystkich czynności znajdujących się na wykresie, Żeby harmonogram był czytelny poszczególne zlecenia musiały by mieć różne kolory. Z tego harmonogramu wynikał by czas realizacji zlecenia, jednak zadana musiała by być jeszcze wartość graniczna (tzn realny termin realizacji uzgodniony z klientem), którego przekroczenie kolorowało by dane zlecenie na czerwono (może być także zaznaczona pionowa linia na harmonogramie w kolorze danego zlecenia z numerem pisanym pionowo.
Założenia
- moduł powinien ręczne planowanie czasów wykonywania operacji w kontekście wielu zleceń produkcyjnych
- moduł powinien pilnować restrykcji dotyczących operacji w danym zleceniu produkcyjnym, czyli:
- normy czasowe,
- kolejność operacji,
- planowana data rozpoczęcia i zakończenia operacji.
- w firmie na raz w systemie może znajdować się do 100 zleceń, jednak budowanie harmonogramu na więcej niż 4-5 zmian produkcyjnych jest nierealne w naszym przypadku
- dobrze by było gdyby dało się dodać „pustą" czynność z możliwością dodania tytułu – przykładowo „wymiana oleju".
Koncepcje
- czy moduł powinien układać szczegółowy harmonogram na poziomie maszyn/stanowisk ?
- czy też tylko na poziomie poziomie operacji aby planista mógł rozeznać się czy dany plan jest wykonalny ?
Dwie koncepcje: (wybór pada raczej na moduł w duchu nr 1)
Podstawowy moduł z samymi zadaniamy
Jako że zadania co przydatnym bardzo ogólnym pojęciem dobrze by było posiadać oddzielny moduł do zadań jako podstawa modułu do planowania wykonywania operacji w zleceniach produkcyjnych.
Podstawowy moduł do harmonogramowania produkcji
Celem tego harmonogramu jest zaplanowanie pracy na wszystkich gniazdach produkcyjnych w odniesieniu do wprowadzonych do systemu zleceń. Widok dla poszczególnych stanowisk jest pochodną tego widoku. Widząc jakie zlecenia mają być wykonane planista może podejmować decyzje o kolejności wykonywania zleceń na każdym ze stanowisk, jednocześnie widząc konsekwencje swoich decyzji w przyszłości. Należało by wprowadzić instancję "zadanie" czyli operacja w konkretnym zleceniu (Zadanie1231(Spawanie;Zlecenie85)). Idealnie by było gdyby system potrafił podzielić długie zadania na kawałki tak, żeby pasowały do zmian produkcyjnych (zadanie trwające 14 godzin to 8 godzin dnia pierwszego oraz 6 godzin dnia drugiego przy pracy jedno-zmianowej). Docelowo taka organizacja zleceń pozwoli rozpisywać je na wydruku zlecenia na konkretne operacje, lub wydruki planu pracy dla konkretnych stanowisk pracy (niezależnie od pracownika który obsługuje to stanowisko).
Obciążenie poszczególnych stanowisk pracy nigdy nie jest równomierne. Z zasady staramy się obciążyć równomiernie pracowników (jeden pracownik może obsługiwać kilka stanowisk pracy jeśli czas operacji/przezbrojeń na to pozwala). Tak zbudowany harmonogram będzie generował dużo "pustych" pól, jednak to tak naprawdę ograniczona wydajność poszczególnych gniazd produkcyjnych lub technologiczne wymogi operacji decydują czy zlecenia uda się wykonać w terminie.
Kolejnym krokiem będzie weryfikacja czy taki plan jest wykonalny z punktu widzenia zasobów - jeśli na danej zmianie produkcyjnej nie ma pracownika który ma kompetencje "spawanie" to planu nie będzie się dało wykonać - ale to jest bardziej skomplikowane podejście i algorytm wymaga bazy danych kompetencji pracowników. Ostatnim - weryfikacja czy w magazynie są surowce niezbędne do wykonania poszczególnych operacji lub czy są zamówione i w drodze i mają szansę dotrzeć na czas.