Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obliczenie czasu pracy przy kilku projektach jednocześnie.
grzecho83
post
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ń.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzecho83
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 31.10.2011

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 5.06.2020, 16:45:49 ) *
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 03:20