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

  1. "PROGRAMM 2"
  2.  
  3. "Ressourcen"
  4.  
  5. Maschine(Rollenschneider,RS1,1000,700,15) ->;
  6. Maschine(Rollenschneider,RS2,320,80,5) ->;
  7. Maschine(Blockschneider,BS1,3000,2500,15) ->;
  8. Maschine(Praegemaschine,PM,100,60,10) ->;
  9. Maschine(Schweissautomat,SA1,280,100,15) ->;
  10. Maschine(Schweissautomat,SA2,190,80,10) ->;
  11. Maschine(Schweissautomat,SA3,80,35,10) ->;
  12. Maschine(Nietmaschine,NM1,360,180,5) ->;
  13. Maschine(Nietmaschine,NM2,240,90,5) ->;
  14.  
  15. "Arbeitsgaenge"
  16.  
  17. Arbeitsgaenge(Ringbuch-Typ1,S-TZ,<Rollenschneider,mul(S-TZ,2)>.
  18.      <Blockschneider,mul(S-TZ,2)>.<Praegemaschine,S-TZ>.
  19.      <Schweissautomat,S-TZ>.<Nietmaschine,S-TZ>.
  20.      nil) ->;
  21. Arbeitsgaenge(Ringbuch-Typ2,S-TZ,<Rollenschneider,mul(S-TZ,2)>.
  22.     <Blockschneider,mul(S-TZ,2)>.<Schweissautomat,S-TZ>.
  23.     <Nietmaschine,S-TZ>.nil) ->;
  24.  
  25. "zu erledigende Auftraege"
  26.  
  27. Auftraege(<xx111,Ringbuch-Typ2,100,480>.<xx112,Ringbuch-Typ1,
  28.         100,360>.<xx113,Ringbuch-Typ2,120,430>.
  29.         <xx114,Ringbuch-Typ1,200,480>.nil) ->;
  30.  
  31. "Produktionsplanung"
  32.  
  33. Produktionsplan(P-lan) ->
  34.    Auftraege(L-iste)
  35.    Maschinenplan(L-iste,nil,P-lan);
  36.  
  37. Maschinenplan(L-iste,nil,P-lan) ->
  38.    Masch-plan(1,L-iste,nil,P-lan)
  39.    Berechnung(1,P-lan);
  40.  
  41. Masch-plan(v,nil,P-lan,P-lan) ->;
  42. Masch-plan(v,<n-r,P-rodukt,S-TZ,T-ermin>.r-est,P-lan1,P-lan) ->
  43.    Arbeitsgaenge(P-rodukt,S-TZ,A-rbeitsgaenge)
  44.    Auftragsplanung(v,T-ermin,n-r,A-rbeitsgaenge,P-lan1,P-lan2)
  45.    Masch-plan(v,r-est,P-lan2,P-lan);
  46.  
  47. Auftragsplanung(v,T-ermin,n-r,<F-unktion,S-TZ>.A-rbeitsgaenge,
  48.         P-lan1,P-lan) ->
  49.    Maschine(F-unktion,N-ame,A-Z,N-Z,U-Z)
  50.    Einsortieren(v,v-n,<n-r,N-ame,S-TZ,N-Z,U-Z,T-ermin>,
  51.         P-lan1,P-lan2)
  52.    Auftragsplanung(v-n,T-ermin,n-r,A-rbeitsgaenge,P-lan2,P-lan);
  53. Auftragsplanung(v,T-ermin,n-r,nil,P-lan,P-lan) ->;
  54.  
  55. entferne(x,x.y,y) ->;
  56. entferne(x,y.z,y.z1) -> entferne(x,z,z1);
  57.  
  58. Einsortieren(v,E-nde,<n-r,M-aschine,S-TZ,N-Z,U-Z,T-ermin>,nil,
  59.     <M-aschine,U-Z,<n-r,v,S-TZ,N-Z,B-eginn,E-nde,T-ermin>.nil>.nil) ->;
  60. Einsortieren(v,E-nde,<n-r,M-aschine,S-TZ,N-Z,U-Z,T-ermin>,
  61.     <M-aschine,U-Z,l>.r,<M-aschine,U-Z,<n-r,v,S-TZ,N-Z,B-eginn,
  62.     E-nde,T-ermin>.l>.r) ->
  63.    /;
  64. Einsortieren(v,v-n,t,y.r,y.e-rg) -> Einsortieren(v,v-n,t,r,e-rg);
  65.  
  66. plane-M-Belegung(<M-aschine,U-Z,l>,S-tart) ->
  67.    entferne(<n-r,v,S-TZ,N-Z,B-eginn,E-nde,T-ermin>,l,l')
  68.    freeze(S-tart,freeze(v,
  69.           berechne(S-tart,v,S-TZ,N-Z,U-Z,T-ermin,B-eginn,E-nde)))
  70.    plane-M-Belegung(<M-aschine,U-Z,l'>,E-nde);
  71. plane-M-Belegung(<M-aschine,U-Z,nil>,S-tart) ->;
  72.  
  73. Berechnung(v,nil) ->;
  74. Berechnung(v,p.P-lan) ->
  75.    plane-M-Belegung(p,v)
  76.    Berechnung(v,P-lan);
  77.  
  78. berechne(S-tart,v,S-TZ,N-Z,U-Z,T-ermin,B-eginn,E-nde) ->
  79.    val(add(S-tart,U-Z),S-tart1)
  80.    val(inf(S-tart1,T-ermin),1)
  81.    val(if(inf(S-tart1,v),v,S-tart1),B-eginn)
  82.    val(inf(sub(B-eginn,if(inf(S-tart1,v),S-tart1,v)),60),1)
  83.    val(add(B-eginn,trunc(mul(div(+6.0e+1,float(N-Z)),
  84.          float(S-TZ)))),E-nde)
  85.    val(inf(E-nde,T-ermin),1);
  86.  
  87. "Hilfspraedikat zur Listenumkehrung"
  88.  
  89. reverse(x.y,z,z1) -> reverse(y,x.z,z1);