Autor
|
Thema: 2 Methoden durch eine Ausgangssteuerung aufrufen (5480 mal gelesen)
|
stern11 Mitglied
Beiträge: 7 Registriert: 07.04.2011
|
erstellt am: 07. Apr. 2011 14:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin grade dabei mich in Plant Símulation einzuarbeiten. Eigentlich klappt es ganz gut, nur komm ich grad an einem Punkt nicht weiter. Ist es möglich bei einem Bauteil unter dem Punkt Ausgangssteuerung (Bauteil/Steuerungen/Ausgang) zwei Methoden einzutragen? Das besondere an meinem Prolem ist, dass die eine Methode aufgerufen werden soll sobald das Bauteil bereit ist, dass Obejekt zu verlassen (Bug) und die andere sobald es das Objekt verassen hat (heck). Danke für eure Tipps! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der simulant Mitglied
Beiträge: 71 Registriert: 28.02.2007 ----------- der simulant
|
erstellt am: 08. Apr. 2011 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für stern11
Hallo stern11, hier die Lösung Du trägst auf Deiner Station bei Ausgangssteurung wie gewohnt Deine Methode ein. Machst aber bei bug und heck einen Haken. Deine Methode sieht dann ungef. so aus if ?.name = deine_station.name then --bugsteuerung wird ausgelöst-das teil befindet sich noch auf der station --hier kommt Dein Methodentext für die Bugsteuerung elseif ?.name /= deine_station.name then -- hecksteurung - das teil hat Deine Station schon verlassen --hier kommt Dein Methodentext für die Hecksteuerung else debug; end; Erklärung: deine_station ist das object, mit der Ausgangssteuerung ? ist das aufrufende Obeject -- aber das kennst Du ja schon Gruß der simulant Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stern11 Mitglied
Beiträge: 7 Registriert: 07.04.2011
|
erstellt am: 08. Apr. 2011 10:08 <-- editieren / zitieren --> Unities abgeben:
Erst hats super funtkioniert aber jetzt gehts nicht mehr. Ich habs mir jetzt nochmal genauer angeschaut. Eine Frage hab ich zu deiner Methode und zwar zu der Zeile, die die Hecksteuerung aufruft: elseif ?.name /= deine_station.name Das wird ja nie zutreffen, weil der Name des aufrufenden Objektes sich ja nicht ändert. Es wird also immer die Bugsteuerung aktiviert. Oder stehe ich auf dem Schlauch?
[Diese Nachricht wurde von stern11 am 08. Apr. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stern11 Mitglied
Beiträge: 7 Registriert: 07.04.2011
|
erstellt am: 08. Apr. 2011 10:44 <-- editieren / zitieren --> Unities abgeben:
Das hier ist mein Methode, die ich nach deinem Tipp angepasst habe. Ich hoffe, dass ich jetzt keinen Übertragungsfehler gemacht habe. Also mein Objekt, dass die Methode aufruft heißt "AVO0765_6" In der Bugsteuerung wird abgeruft welche die nächste Sation im Arbeitsplan ist und das Be wird dementsprechend umgelagert. In der Hecksteurung soll der Eingang eines vorheringen Objektes (AVO0720_6) wieder entsperrt werden, damit wieder Teile nachkommen. Im Moment komme ich leider nicht weiter. Code:
is Arbeitsplan : table; NächsteStation : object; do if ?.name = AVO0765_6.name then --bugsteuerung then Arbeitsplan:=root.Arbeitsplan["Arbeitsschritte",@.Teiletyp]; if @.PositionArbeitsplan=Arbeitsplan.ydim then print "ende"; else NächsteStation:=Arbeitsplan["Arbeitsschritt",@.PositionArbeitsplan+1]; if @.umlagern(NächsteStation) then @.PositionArbeitsplan:=@.PositionArbeitsplan+1; end; end; elseif ?.name /= AVO0765_6.name then -- hecksteurung then AVO0720_6.einganggesperrt:=false; else debug; end; end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der simulant Mitglied
Beiträge: 71 Registriert: 28.02.2007 ----------- der simulant
|
erstellt am: 08. Apr. 2011 12:09 <-- editieren / zitieren --> Unities abgeben: Nur für stern11
Hallo stern11, sorry Hab in der Eile einen Fehler in meiner Methode if @.location.name = deine_station.name then --bugsteuerung wird ausgelöst-das teil befindet sich noch auf der station --hier kommt Dein Methodentext für die Bugsteuerung elseif @.location.name /= deine_station.name then -- hecksteurung - das teil hat Deine Station schon verlassen --hier kommt Dein Methodentext für die Hecksteuerung else debug; end; Erklärung: deine_station ist das object, mit der Ausgangssteuerung @.location ist das aufrufende entity mit seinem standort -- aber das kennst Du ja schon also nochmals sorry Gruß der simulant
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stern11 Mitglied
Beiträge: 7 Registriert: 07.04.2011
|
erstellt am: 12. Apr. 2011 10:33 <-- editieren / zitieren --> Unities abgeben:
|