Autor
|
Thema: Zielort im Fahrzeug wird einfach so gelöscht. (708 mal gelesen)
|
picoi Mitglied
Beiträge: 47 Registriert: 06.11.2009 Plant Simulation Version 8.1.3
|
erstellt am: 10. Mrz. 2010 17:05 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich lagere meine Fahrzeug von einer Einzelstation auf einen zweispurigen Weg (Spur B) um und übergebe meinem Fahrzeug einen Zielort. Dieser steht dann auch in der Eingabemaske vom Fahrzeug. Doch gehe ich nach der Übergabe des Zielortes einen Einzelschritt im Debugger weiter, steht kein Zielort mehr drin. Code:
Code:
is i : integer; tab_TAsFzg, tab_TAsFzgalt : table; fahrzeug_instanz, LE_instanz, tab_alleTAs, tab_MatImUmlauf : object; trAuftrag_ID : string; do --Daten einlesen. fahrzeug_instanz := @; tab_TAsFzg := current.~.StaplerQuelle.TAB_ErzeugteFahrzeuge["TRANSPORTAUFTRAEGE",fahrzeug_instanz]; tab_TAsFzgalt := tab_TAsFzg.kopieren({0,1}..{*,*}); tab_alleTAs := current.~.StaplerQuelle.TAB_Transportauftraege; tab_MatImUmlauf := root.Behaeltersteuerung.TAB_MaterialImUmlauf; --Übergibt Material an AMASenkeLG. for i := 1 to tab_TAsFzg.IndexYDim loop trAuftrag_ID := tab_TAsFzg["TRANSPORTAUFTRAG_ID",1]; --immer erste Zeile, weil diese nach Umlagerung des Materials entfernt wird. LE_instanz := tab_alleTAs["GEBINDE_INSTANZ",trAuftrag_ID]; if LE_instanz.umlagern(AMASenkeLG) then --dadurch wird Eingangssteuerung der AMASenkeLG ausgelöst. --Dokumentiert erledigten TA. root.m_dokuTA(trAuftrag_ID); --Dokumentiere Standort von Material tab_MatImUmlauf["STANDORT",LE_instanz] := LE_instanz.standort; --LE_instanz aus TAB_MaterialImUmlauf loeschen. tab_MatImUmlauf.entferneZeile(LE_instanz); else debug; --LE konnt nicht auf AMASenkeLG umgelagert werden. end; next; --Ändere Fahrzeugstatus root.m_aendereStatus(fahrzeug_instanz, "frei", tab_TAsFzgalt); if var_b_umlagernErlaubt = true then fahrzeug_instanz.umlagern(WegAMA.B); --Nur dann neues ZufallsZiel übergeben, wenn Fzg. keinen neuen TA (über Statusänderung "frei") bekommen hat. if tab_TAsFzg.IndexYDim <= 0 then fahrzeug_instanz.Zielort := root.m_getZufZiel(fahrzeug_instanz); else fahrzeug_instanz.Zielort := tab_TAsFzg["START_ID",1]; end; else var_o_FzgWartend := fahrzeug_instanz; end; --Prüft, ob TAs mit diesem Zielort als START_ID vorliegen, die den STATUS "nochZuVergeben" besitzen. end;
Eigentlich ist von dem Code nur die letzte If-Anweisung interessant zur Lösung des Rätsels. Denn mit fahrzeug_instanz.Zielort := root.m_getZufZiel(fahrzeug_instanz); übergebe ich den neuen Zielort. Nach Durchführung dieses Einzelschrittes ist der Zielort auch im Fahrzeug eingetragen. Danach führe ich eben noch einen Einzelschritt durch. Und danach ist der Zielort weg. ???? Hilfe! Gruß, picoi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tsx Mitglied
Beiträge: 103 Registriert: 06.03.2010
|
erstellt am: 11. Mrz. 2010 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für picoi
|
picoi Mitglied
Beiträge: 47 Registriert: 06.11.2009 Plant Simulation Version 8.1.3
|
erstellt am: 14. Mrz. 2010 16:28 <-- editieren / zitieren --> Unities abgeben:
Hab's gelöst. In der Funktion m_getZufZiel() übergebe ich bereits den Zielort an das Fahrzeug. Die Funktion liefert aber keinen Rückgabewert. D.h. mit der Zuweisung fahrzeug_instanz.Zielort := root.m_getZufZiel(fahrzeug_instanz); übergebe ich einen leeren Rückgabewert. Lösung: root.m_getZufZiel(fahrzeug_instanz); Es funzt!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|