Gantt Diagramme / Ablauf von Fertigungsaufträge

Du hast eine Idee für ein Projekt?
Antworten
Sabine81
User
Beiträge: 1
Registriert: Freitag 10. Januar 2025, 11:26

Hallo zusammen,

ich bin noch relativ neu in Python. Einfache Gui Anwendungen in Qt oder Flet bekomme ich schon sehr gut hin.

Als nächstes Projekt soll ich eine Art Auftragssteuerung für eine Fertigung erstellen.
Das erfassen, bearbeiten und speichern der Aufträge in SQL funktioniert bereits.

Mein Problem ist nun die Aufträge zeitlich einzugliedern, z.B.:


Auftrag A hat eine Fertigungsdauer von 9 Stunden
Auftrag B ... 3 Stunden
Auftrag C ...18 Stunden

Der Arbeitstag hat 8 Stunden, es wird von Montag bis Freitag gearbeitet.


Wie bekomme ich es nun hin, dass die Endzeiten des Auftrag richtig berechnet werden, so dass ich die Startzeit für den Folgeauftrag erhalte usw....


Für jeden Tipp bin ich dankbar.



Liebe Grüße
Sirius3
User
Beiträge: 18106
Registriert: Sonntag 21. Oktober 2012, 17:20

Was bedeutet eine Fertigungsdauer von 18 Stunden? Dass der Arbeiter das Teil in die Maschine einlegt und nach 18 Stunden ist es fertig, oder dass der Arbeiter 18 Stunden lang ohne Pinkelpause daran herumschraubt?

Ist Dein Problem, einen Algorithmus zu entwickeln oder ist das Problem, den Algorithmus in Python umzusetzen?
Was hast Du schon überlegt?
Benutzeravatar
noisefloor
User
Beiträge: 3986
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Wenn die Fertigung strikt linear ist, ist das doch eine relativ einfach Addition unter Berücksichtigung der Arbeitszeit.

Also wenn Auftrag A 9h dauert und jeder Arbeitstag 8h hat und um 8 Uhr beginnt, dann wäre das Teil A um 17 Uhr fertig. Der Arbeitstag endet aber um 16 Uhr, also ist das Teil am nächsten Tag um 9 Uhr fertig. Wenn es wirklich so einfach ist, lässt sich das relativ leicht in Code umsetzen.

Wenn jetzt in irgendeiner Form Optimierung dazu kommt, d.h. möglichst wenig Überträge von Tag X auf X+1 oder auf keine Fall einen Übertrag von Freitag auf den kommenden Montag oder Restriktionen beim Umsortieren von Aufträgen, dann wird es deutlich komplexer.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13754
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mal den VIC-20 angeworfen und das ganze für eine Arbeitswoche von Mo bis Fr, jeweils 8 Stunden von 8 Uhr morgens, mit einer einstündigen Mittagspause in BASIC geschrieben:

Code: Alles auswählen

10 T$="MODIMIDOFR"
100 W=1:T=0:S=0:READ N
110 FOR I=1 TO N
120 : READ AN$,AS
130 : PRINT "AUFTRAG ";AN$
140 : PRINT "VON ";
150 : GOSUB 900
160 : S=S+AS
170 : J=INT(S/8)
180 : S=S-J*8:T=T+J
190 : J=INT(T/5)
200 : T=T-J*5:W=W+J
210 : PRINT "BIS ";
220 : GOSUB 900
230 : PRINT
240 NEXT:END
250 :
900 REM ZEITPUNKT AUSGEBEN
910 REM (WOCHE,TAG,STUNDE)
920 PRINT "W";MID$(STR$(W),2);
930 PRINT " ";
940 PRINT MID$(T$,T*2+1,2);
950 PRINT S+8-(S>=4);"UHR"
960 RETURN
970 :
9000 REM # AUFTRAEGE
9010 DATA 3
9020 REM NAME,DAUER (H)
9030 DATA "A",9
9040 DATA "B",3
9050 DATA "C",18
Testlauf:

Code: Alles auswählen

RUN
AUFTRAG A
VON W1 MO 8 UHR
BIS W1 DI 9 UHR

AUFTRAG B
VON W1 DI 9 UHR
BIS W1 DI 13 UHR

AUFTRAG C
VON W1 DI 13 UHR
BIS W1 DO 15 UHR


READY.
“The city's central computer told you? R2D2, you know better than to trust a strange computer!” — C3PO
geraldfo
User
Beiträge: 67
Registriert: Samstag 28. Januar 2023, 20:19
Wohnort: Nähe Wien

@Sabine81:
Feiertage und andere Schließtage (Betriebsurlaub) werden eine Rolle spielen.
Du wirst in deiner Anwendung einen Kalender brauchen.

Werden fallweise Überstunden gemacht?

Soll die Anwendung multiuserfähig werden?

Schönes Wochenende!
Benutzeravatar
grubenfox
User
Beiträge: 564
Registriert: Freitag 2. Dezember 2022, 15:49

und um möglicherweise gleich im Bereich "Lineare Optimierung" zu landen: wieviele Fertigungsaufträge können denn parallel bearbeitet werden? Immer nur einer zur Zeit oder mehrere?
Antworten