home *** CD-ROM | disk | FTP | other *** search
- "PROGRAMM 2"
-
- "Ressourcen"
-
- Maschine(Rollenschneider,RS1,1000,700,15) ->;
- Maschine(Rollenschneider,RS2,320,80,5) ->;
- Maschine(Blockschneider,BS1,3000,2500,15) ->;
- Maschine(Praegemaschine,PM,100,60,10) ->;
- Maschine(Schweissautomat,SA1,280,100,15) ->;
- Maschine(Schweissautomat,SA2,190,80,10) ->;
- Maschine(Schweissautomat,SA3,80,35,10) ->;
- Maschine(Nietmaschine,NM1,360,180,5) ->;
- Maschine(Nietmaschine,NM2,240,90,5) ->;
-
- "Arbeitsgaenge"
-
- Arbeitsgaenge(Ringbuch-Typ1,S-TZ,<Rollenschneider,mul(S-TZ,2)>.
- <Blockschneider,mul(S-TZ,2)>.<Praegemaschine,S-TZ>.
- <Schweissautomat,S-TZ>.<Nietmaschine,S-TZ>.
- nil) ->;
- Arbeitsgaenge(Ringbuch-Typ2,S-TZ,<Rollenschneider,mul(S-TZ,2)>.
- <Blockschneider,mul(S-TZ,2)>.<Schweissautomat,S-TZ>.
- <Nietmaschine,S-TZ>.nil) ->;
-
- "zu erledigende Auftraege"
-
- Auftraege(<xx111,Ringbuch-Typ2,100,480>.<xx112,Ringbuch-Typ1,
- 100,360>.<xx113,Ringbuch-Typ2,120,430>.
- <xx114,Ringbuch-Typ1,200,480>.nil) ->;
-
- "Produktionsplanung"
-
- Produktionsplan(P-lan) ->
- Auftraege(L-iste)
- Maschinenplan(L-iste,nil,P-lan);
-
- Maschinenplan(L-iste,nil,P-lan) ->
- Masch-plan(1,L-iste,nil,P-lan)
- Berechnung(1,P-lan);
-
- Masch-plan(v,nil,P-lan,P-lan) ->;
- Masch-plan(v,<n-r,P-rodukt,S-TZ,T-ermin>.r-est,P-lan1,P-lan) ->
- Arbeitsgaenge(P-rodukt,S-TZ,A-rbeitsgaenge)
- Auftragsplanung(v,T-ermin,n-r,A-rbeitsgaenge,P-lan1,P-lan2)
- Masch-plan(v,r-est,P-lan2,P-lan);
-
- Auftragsplanung(v,T-ermin,n-r,<F-unktion,S-TZ>.A-rbeitsgaenge,
- P-lan1,P-lan) ->
- Maschine(F-unktion,N-ame,A-Z,N-Z,U-Z)
- Einsortieren(v,v-n,<n-r,N-ame,S-TZ,N-Z,U-Z,T-ermin>,
- P-lan1,P-lan2)
- Auftragsplanung(v-n,T-ermin,n-r,A-rbeitsgaenge,P-lan2,P-lan);
- Auftragsplanung(v,T-ermin,n-r,nil,P-lan,P-lan) ->;
-
- entferne(x,x.y,y) ->;
- entferne(x,y.z,y.z1) -> entferne(x,z,z1);
-
- Einsortieren(v,E-nde,<n-r,M-aschine,S-TZ,N-Z,U-Z,T-ermin>,nil,
- <M-aschine,U-Z,<n-r,v,S-TZ,N-Z,B-eginn,E-nde,T-ermin>.nil>.nil) ->;
- Einsortieren(v,E-nde,<n-r,M-aschine,S-TZ,N-Z,U-Z,T-ermin>,
- <M-aschine,U-Z,l>.r,<M-aschine,U-Z,<n-r,v,S-TZ,N-Z,B-eginn,
- E-nde,T-ermin>.l>.r) ->
- /;
- Einsortieren(v,v-n,t,y.r,y.e-rg) -> Einsortieren(v,v-n,t,r,e-rg);
-
- plane-M-Belegung(<M-aschine,U-Z,l>,S-tart) ->
- entferne(<n-r,v,S-TZ,N-Z,B-eginn,E-nde,T-ermin>,l,l')
- freeze(S-tart,freeze(v,
- berechne(S-tart,v,S-TZ,N-Z,U-Z,T-ermin,B-eginn,E-nde)))
- plane-M-Belegung(<M-aschine,U-Z,l'>,E-nde);
- plane-M-Belegung(<M-aschine,U-Z,nil>,S-tart) ->;
-
- Berechnung(v,nil) ->;
- Berechnung(v,p.P-lan) ->
- plane-M-Belegung(p,v)
- Berechnung(v,P-lan);
-
- berechne(S-tart,v,S-TZ,N-Z,U-Z,T-ermin,B-eginn,E-nde) ->
- val(add(S-tart,U-Z),S-tart1)
- val(inf(S-tart1,T-ermin),1)
- val(if(inf(S-tart1,v),v,S-tart1),B-eginn)
- val(inf(sub(B-eginn,if(inf(S-tart1,v),S-tart1,v)),60),1)
- val(add(B-eginn,trunc(mul(div(+6.0e+1,float(N-Z)),
- float(S-TZ)))),E-nde)
- val(inf(E-nde,T-ermin),1);
-
- "Hilfspraedikat zur Listenumkehrung"
-
- reverse(x.y,z,z1) -> reverse(y,x.z,z1);