![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 31.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, nie wiem czy dobry dział ale nie znalazłem niczego stricte pod algorytmy.
Zrobiłem system do zarządzania produkcją który między innymi oblicza czas pracy poszczególnych podzespołów produktu. Kiedy operator maszyny pobiera konkretne zlecenie w bazie danych zapisuję czas start, kiedy kończy zapisuje czas stop. I w bazie na tej podstawie jest zapisywany czas pracy, który jest sumowany z wszystkich procesów każdego podzespołu produktu. Przy laserze zaczynają się schody. Na tym stanowisku operator pobiera często po kilka, kilkanaście zleceń, układa wszystko na arkuszu i wycina. Gdyby wszystkie pobierał razem, i kończył razem to dało by się łatwo policzyć. Niestety praca wygląda mniej więcej tak: Pobieram zlecenie A -1000 szt - 8:00 Pobieram zlecenie B -120 szt - 8:00 Pobieram zlecenie C -500 szt - 10:00 Kończę zlecenie B - 11:00 Pobieram zlecenie D - 10 szt - 12:00 Kończę zlecenie A,C,D - 14:00 (w dużym uproszczeniu) Czy są macie pomysł na algorytmy, które policzyły by mniej więcej ile czasu zostało poświęcone na konkretne zlecenie? Dokładnie się nie da, ale chodzi tu o oszacowanie obciążenia maszyny przy przyjmowaniu kolejnych zleceń. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 31.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Możesz podejść, tak, że czasookres, który przypada na zlecenie, dzielić przez tyle i ile zleceń jest w danym momencie. Czyli założenie takie, że jeśli od 10:00 do 11:00 wykonywał 2 zlecenia, to na każde poświęcił 30 minut, a jeśli trzy, to 20 minut. Wtedy średnie czasy możesz sumować. Tak właśnie myślałem żeby to zrobić. Na wszystkich pozostałych stanowiskach jest tak jak pisałeś, przychodzi zlecenie C wtedy operator odkłada zlecenie A, czas jest zapisywany w bazie podczas odłożenia a potem może znowu je pobrać i licznik pracuje na nowo. To się sprawdza gdy pracownik nie pracuje jednocześnie przy kilku zleceniach. Tu przy laserze jest inaczej. Bo pracownik przygotowuje program pod wszystkie zlecenia jednocześnie. Kiedy puści laser wszystkie są cięte jednocześnie. Jeśli w między czasie dojdzie coś pilnego to nie zawsze przerywa pracę. Podczas pracy lasera przygotowuje program na zadanie D ale licznik z poprzednimi dalej leci. Myślałem żeby wszystkie pola czas_start i czas_stop z danego dnia wrzucić do jednej tabeli. [czas][stop/start][id_procesu] - z grubsza taki format posortować według kolumny [czas] a potem za pomocą pętli przelecieć po całej tabeli. Jeśli mamy czas start to licznik zleceń zwiększamy o 1, jeśli stop to zmniejszamy. W każdej iteracji do aktualnych zleceń dodajemy okres między czasami podzielony przez ilość zleceń. @Pyton_000 - chyba nie do końca rozumiesz mój problem, może piszę nieprecyzyjnie, ale serio, do zwykłego dodawania nie potrzebuję pomocy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 03:20 |