------------------------------------------------- ----------METHODE: lade_erstes_Teil_vorschruppen_vordrehen var n:integer n:= 4 if ?.name = "P3" then if current.Tabelle[1,"P3"] = false then current.Tabelle[1,"P3"] := true waituntil current.Z = -3 and ?.anzahlBEs > 0 prio 1 if ?.BE(1).leer = false then ?.BE(1).inhalt.umlagern(vorschruppen_Vordrehen); current.Z := 0; else ?.BE(1).umlagern(P4); end current.Tabelle[1,"P3"] := false end elseif ?.name = "P8" if current.Tabelle[1,"P8"] = false then current.Tabelle[1,"P8"] := true waituntil current.Z = -8 and ?.anzahlBEs > 0 prio 2 if ?.BE(1).leer = false then ?.BE(1).inhalt.umlagern(vorschruppen_Vordrehen); current.Z := 0; else ?.BE(1).umlagern(P9); end current.Tabelle[1,"P8"] := false end end; ---------------------------------------------- ----------METHODE Brocker_Flächen_Vorfräsen.Flächen_vorfräsen param obj: object, -- Importer typ: integer -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter) if typ = 3 then switch obj.name case "P9" if current.Tabelle[1,"P9"] = false then current.Tabelle[1,"P9"] := true waituntil current.P11.leer AND current.Messen_Flächen_vorfräsen.leer AND current.P9.voll prio 1 ?.standardImportDurchführen(P9, 3) current.Tabelle[1,"P9"] := false end case "P11" if current.Tabelle[1,"P11"] = false then current.Tabelle[1,"P11"] := true waituntil current.Flächen_vorfräsen.leer AND Messen_Flächen_vorfräsen.leer prio 2 ?.standardImportDurchführen(P11, 3) current.Tabelle[1,"P11"] := false end case "Flächen_vorfräsen" if current.Tabelle[1,"Flächen_vorfräsen"] = false then current.Tabelle[1,"Flächen_vorfräsen"] := true waituntil current.Messen_Flächen_vorfräsen.leer prio 3 ?.standardImportDurchführen(Flächen_vorfräsen, 3) current.Tabelle[1,"Flächen_vorfräsen"] := false end else ?.standardImportDurchführen (obj, 3) end; else ?.standardImportDurchführen(obj, 2) end; ------------------------------------------ --------------METHODE: lade_vorschruppen_vordrehen --n.r Start if current.Z < 0 then waituntil current.Z = 0 prio 1 end --n.r END --teil in die Kiste umlagern if @.attribut=false then if @.umlagern(P4.BE(P4.AnzahlBEs)) = false then //stelle leere Box hin print "_____________ERROR 12343 ______________" end --current.Inhalt_P4:=Inhalt_P4+1 --n.r if current.P4.BE(P4.AnzahlBEs).voll then //leere Box auf P4 current.P3.inhalt.umlagern(P4) current.Inhalt_P4 := 50 --setze Zähler P4 auf =50 --n.r //n.r START current.Z := current.Z +1; if current.Z = 4 then //nimm das andere current.Z := -8; --print "neue BOX P8: ", ereignisverwalter.Zeit else --Print " ###Umlagern P3 gleiche Box= " , P3.inhalt.umlagern(P4); //nimm das gleiche waituntil current.P3.anzahlBes > 0 prio 1; if current.P3.Inhalt.leer then waituntil current.P3.anzahlBEs = 0 prio 1; waituntil current.P3.AnzahlBes > 0 prio 1; end current.P3.Inhalt.Inhalt.umlagern(?) --print "gleiche BOX P3: ", ereignisverwalter.Zeit end //n.r END else --da sind noch Teile current.P3.inhalt.inhalt.umlagern(vorschruppen_Vordrehen); --print "nehme aus BOX P3: ", ereignisverwalter.Zeit end; elseif @.attribut=true then @.umlagern (P9.BE(P9.AnzahlBEs)); current.Inhalt_P9:=current.Inhalt_P9+1 --n.r if current.P9.BE(P9.AnzahlBEs).voll then current.P8.inhalt.umlagern(P9); current.Inhalt_P9 := 0 --setze Zähler P9 auf =0 --n.r //n.r START current.Z := current.Z +1; if current.Z = 4 then //nimm das andere current.Z := -3; --print "neue BOX P3: ", ereignisverwalter.Zeit else //nimm das gleiche --Print " ###Umlagern P8 gleiche Box= " ,P8.inhalt.umlagern(P9); waituntil current.P8.anzahlBes > 0 prio 2; if current.P8.Inhalt.leer then waituntil current.P8.anzahlBEs = 0 prio 1; waituntil current.P8.AnzahlBes > 0 prio 1; end current.P8.Inhalt.Inhalt.umlagern(?) --print "gleiche BOX P8: ", ereignisverwalter.Zeit end //n.r END else -- da sind noch Teile current.P8.inhalt.inhalt.umlagern(vorschruppen_Vordrehen); --print "lade_vorschluppen_vordrehen aus P8: ", ereignisverwalter.Zeit end; else PRINT "__________________________ERROR________________________________" end; if Zähler_Vorschruppen_Vordrehen < 701 then -- < 700 then Zähler_Vorschruppen_Vordrehen:=Zähler_Vorschruppen_Vordrehen+1 else --Zähler_Vorschruppen_Vordrehen:=1; Zähler_Vorschruppen_Vordrehen:=0; end; --------------------------------------------- -------------------METHODE Init current.Tabelle.löschen({1,1}..{*,*}) var inte: integer; inte:= 0; for inte := 1 to 14 loop current.Tabelle[1,inte]:= false; next print "***********************************" repeat .BEs.Teil.erzeugen(P1) until current.P1.voll repeat .BEs.Teil.erzeugen(P6) until current.P6.voll repeat .BEs.Teil.erzeugen(P11) until current.P11.voll .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) .BEs.Teil.erzeugen(P12) erzeugeWagenklein(.BEs.Wagen_klein,.BEs.Teil, erzeugeWagen_Vorschruppen) erzeugeWagenklein_attribut_true(.BEs.Wagen_klein,.BEs.Teil1, erzeugeWagen_Vordrehen) erzeugeWagenklein_attribut_true(.BEs.Wagen_klein,.BEs.Teil1, erzeugeWagen_Vordrehen) erzeugeWagenklein_attribut_true(.BEs.Wagen_klein,.BEs.Teil1, erzeugeWagen_Vordrehen) erzeugeWagenklein_attribut_true(.BEs.Wagen_klein,.BEs.Teil1, erzeugeWagen_Vordrehen) .BEs.Wagen_klein.erzeugen(P4) .BEs.Wagen_klein.erzeugen(P9) ---------------------------------------------------- --------------METHODE Eingang_P5 if current.P4.AnzahlBEs > 0 then if current.P4.BE(current.P4.AnzahlBEs).anzahlBEs = 50 then Inhalt_P4 := 50; else Inhalt_P4 := 0 end else Inhalt_P4 := 0 end ----------------------------------------------- -------------METHODE Eingang_P9 --Inhalt_P9 := 0 ----------------------------------------------- ------------METHODE Brocker_Tieflochbohren.Tieflochbohren param obj: object, -- Importer typ: integer -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter) --print "++++++++++++++++Brocker " , obj.name , " (", typ, ")" , " " , Ereignisverwalter.Zeit if typ = 3 then switch obj.name case "P1" if current.Tabelle[1,"P1"] = false then current.Tabelle[1,"P1"] := true waituntil current.Tieflochbohren.leer prio 4; current.Tabelle[1,"P1"] := false ?.standardImportDurchführen(obj, typ) end case "Tieflochbohren" if current.Tabelle[1,"Tieflochbohren"] = false then current.Tabelle[1,"Tieflochbohren"] := true waituntil current.P2.leer prio 2 current.Tabelle[1,"Tieflochbohren"] := false ?.standardImportDurchführen(obj, typ) end case "Quelle_Teil" if current.Tabelle[1,"Quelle_Teil"] = false then current.Tabelle[1,"Quelle_Teil"] := true waituntil current.P1.leer prio 3; current.Tabelle[1,"Quelle_Teil"] := false ?.standardImportDurchführen(obj, typ) end case "Montagestation" if current.Tabelle[1,"Montagestation"] = false then current.Tabelle[1,"Montagestation"] := true waituntil current.P3.leer prio 1; current.Tabelle[1,"Montagestation"] := false ?.standardImportDurchführen(obj, typ) end case "P4" if current.Tabelle[1,"P4"] = false then current.Tabelle[1,"P4"] := true waituntil Inhalt_P4 = 50 prio 5; current.Tabelle[1,"P4"] := false ?.standardImportDurchführen(obj, typ) end case "P6" if current.Tabelle[1,"P6"] = false then current.Tabelle[1,"P6"] := true waituntil current.Ofen.leer AND current.P6.voll prio 5; current.Tabelle[1,"P6"] := false ?.standardImportDurchführen(obj, typ) end else ?.standardImportDurchführen(obj, 3) end --print "---------------Brocker " , obj.name , " (", typ, ")" , " " , Ereignisverwalter.Zeit else ?.standardImportDurchführen(obj, typ) end ----------------------------------------------------- ----------------METHODE Broker_Zentrieren_AS_BS.Zentrieren_AS_BS param obj: object, -- Importer typ: integer -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter) if typ = 3 then switch obj.name case "P12" if current.Tabelle[1,"P12"] = false then current.Tabelle[1,"P12"] := true waituntil current.Zentrieren_AS_BS.leer AND Bedingung = false AND current.Messen_Zentrieren_AS_BS.leer prio 1 ?.standardImportDurchführen(P12, 3) current.Tabelle[1,"P12"] := false end case "Zentrieren_AS_BS" if current.Tabelle[1,"Zentrieren_AS_BS"] = false then current.Tabelle[1,"Zentrieren_AS_BS"] := true waituntil current.Messen_Zentrieren_AS_BS.leer prio 2 ?.standardImportDurchführen(Zentrieren_AS_BS, 3) current.Tabelle[1,"Zentrieren_AS_BS"] := false end case "P13" if current.Tabelle[1,"P13"] = false then current.Tabelle[1,"P13"] := true waituntil current.Zentrieren_AS_BS.leer AND Bedingung = true AND current.Messen_Zentrieren_AS_BS.leer prio 3 ?.standardImportDurchführen(P13, 3) current.Tabelle[1,"P13"] := false end else ?.standardImportDurchführen(obj, 3) end else --typ 2 ?.standardImportDurchführen(obj, 2) end ------------------------------------------------------ -----------------------