Autor
|
Thema: Die maximale Anzahl suspendierter Methoden wurde überschritten (875 / mal gelesen)
|
Lele01 Mitglied
Beiträge: 41 Registriert: 06.03.2017
|
erstellt am: 09. Apr. 2017 00:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadine, in meiner Simulation habe ich folgende Importeranfragesteuerung geschrieben. Wie du mir erklärt hast, habe ich die Ausführung der Aufträge mit Hilfe von "waituntil" gesteuert. Anfangs hatte ich eine Losbearbeitung von 50 Teilen, da hat das ganze Programm einwandfrei funktioniert. Nun möchte ich eine Losgröße von 700 Teilen. Nach der Umstellung, wird mir nun die Fehlermeldung "Die maximale Anzahl suspendierter Methoden wurde überschritten" angezeigt. Mir ist klar, dass das Problem durch die vielen "waituntil" entsteht. Aber ich weiß nicht was ich jetzt machen kann um dieses Problem zu lösen, und trotzdem die richtige Reihenfolge der Abarbeitung der Aufträge beizubehalten. 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 "P1" waituntil current.Laser.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend AND Bedingung_2=false prio 1; case "Laser" if current.P2.voll then waituntil current.P2.leer else waituntil LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 2; end case "Quelle" waituntil current.P1.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 3; case "P2" waituntil current.P4.leer AND current.P5.leer prio 13; case "P10" waituntil current.P12.leer AND current.P13.leer prio 14; case "P4" waituntil current.LagersitzVorschleifen_Fertigschleifen_1.leer AND Bedingung_1 = false AND current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer AND current.P12.voll AND current.P13.voll prio 7; case "P5" waituntil current.LagersitzVorschleifen_Fertigschleifen_2.leer AND Bedingung_2 = false AND current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer AND current.P12.voll AND current.P13.voll prio 8; case "LagersitzVorschleifen_Fertigschleifen_1" waituntil current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer prio 9; case "LagersitzVorschleifen_Fertigschleifen_2" waituntil current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer prio 10; case "P12" waituntil current.LagersitzVorschleifen_Fertigschleifen_1.leer AND Bedingung_1 = true AND current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer AND current.P4.voll AND current.P5.voll prio 11; case "P13" waituntil current.LagersitzVorschleifen_Fertigschleifen_2.leer AND Bedingung_2 = true AND current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer AND current.P4.voll AND current.P5.voll prio 12; case "P14" waituntil current.Messen.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend AND Bedingung_2=true prio 4; case "Messen" waituntil LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 5; case "P15" waituntil current.P15.voll AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 6; end ?.standardImportDurchführen(obj, 3) end
Viele Grüße
Lele Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lele01 Mitglied
Beiträge: 41 Registriert: 06.03.2017
|
erstellt am: 09. Apr. 2017 01:03 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 09. Apr. 2017 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für Lele01
Moin, nicht jedes waituntil ist erforderlich. Harte Bedingungen wie z.B Variable können vorab mit "if" geprüft werden, sodass erst wenn diese erfüllt ist waituntil aktiv wird. vg Nadin ------------------ „Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten.“ Matthew Austern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lele01 Mitglied
Beiträge: 41 Registriert: 06.03.2017
|
erstellt am: 09. Apr. 2017 16:29 <-- editieren / zitieren --> Unities abgeben:
Ich habe das mal so umgeschrieben. Aber wenn ich eine Bedingung vorher abfrage, brauche ich doch im else-Zweig trotzdem ein "waituntil" oder mach ich was falsch? 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 "P1" if Bedingung_2 =false then -- Hier frage ich vorher die Bedingung "Bedingung_2 = falsch" ab waituntil current.Laser.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 1; else waituntil Bedingung_2 = false -- Wenn die Bedingung nicht erfüllt ist, möchte ich trotzdem nicht, dass er den StandardImport durchführt, sondern wartet, bis die Bedingung erfüllt ist end case "Laser" if current.P2.voll then waituntil current.P2.leer else waituntil LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 2; end; case "Quelle" waituntil current.P1.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 3; case "P2" waituntil current.P4.leer AND current.P5.leer prio 13; case "P10" waituntil current.P12.leer AND current.P13.leer prio 14; case "P4" if Bedingung_1 = false then waituntil current.LagersitzVorschleifen_Fertigschleifen_1.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer AND current.P12.voll AND current.P13.voll prio 7; else waituntil Bedingung_2 = false end; case "P5" if Bedingung_2 = false then waituntil current.LagersitzVorschleifen_Fertigschleifen_2.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer AND current.P12.voll AND current.P13.voll prio 8; else waituntil Bedingung_2 = false end; case "LagersitzVorschleifen_Fertigschleifen_1" waituntil current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer prio 9; case "LagersitzVorschleifen_Fertigschleifen_2" waituntil current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer prio 10; case "P12" if Bedingung_1 = true then waituntil current.LagersitzVorschleifen_Fertigschleifen_1.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer AND current.P4.voll AND current.P5.voll prio 11; else waituntil Bedingung_1 = true end; case "P13" if Bedingung_2 = true then waituntil current.LagersitzVorschleifen_Fertigschleifen_2.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_2.leer AND current.Messen_LagersitzVorschleifen_Fertigschleifen_1.leer AND current.P4.voll AND current.P5.voll prio 12; else waituntil Bedingung_2 = true end; case "P14" if Bedingung_2 = true then waituntil current.Messen.leer AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 4; else waituntil Bedingung_2 = true end; case "Messen" waituntil LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 5; case "P15" waituntil current.P15.voll AND LagersitzVorschleifen_Fertigschleifen_1.resArbeitend AND LagersitzVorschleifen_Fertigschleifen_2.resArbeitend prio 6; end ?.standardImportDurchführen(obj, 3) end
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|