home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1988
/
02
/
projekt2.pro
< prev
next >
Wrap
Text File
|
1987-11-23
|
3KB
|
89 lines
"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);