Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Tabellenabfrage in Waituntil-Bedingung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Tabellenabfrage in Waituntil-Bedingung (1666 mal gelesen)
VS-Simulator
Mitglied
Doktorand


Sehen Sie sich das Profil von VS-Simulator an!   Senden Sie eine Private Message an VS-Simulator  Schreiben Sie einen Gästebucheintrag für VS-Simulator

Beiträge: 75
Registriert: 20.02.2008

Plant Simulation 8.2

erstellt am: 27. Apr. 2009 11:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

hat jemand von Euch eine Idee, wie man innerhalb einer Waituntil-Bedingung den Wert einer Tabelle abfragen kann?

Ich habe das Problem, dass in eine Tabellenzelle ein Wert geschrieben werden soll, sobald eine andere Zelle den Wert 0 erreicht. Waituntil lässt jedoch leider die Abfrage von Tabellen nicht zu und den abzufragenden Zellwert in eine Varaible zu übergeben ist nicht so einfach, da dieser Vorgang in über 130 Fällen parallel passiert und man so noch enorm viele Variablen erstellen müsste.

Hoffe jemand von Euch hat eine Idee!!

Danke und beste Grüße
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Homer Simpson
Mitglied



Sehen Sie sich das Profil von Homer Simpson an!   Senden Sie eine Private Message an Homer Simpson  Schreiben Sie einen Gästebucheintrag für Homer Simpson

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 27. Apr. 2009 12:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für VS-Simulator 10 Unities + Antwort hilfreich

Es geht mittels eines Tricks:
Code:
while Tabelle[1,1] /= 0 loop
    Tabelle.Geaendert := false;
    stopuntil Tabelle.Geaendert prio 1;
end;

[Diese Nachricht wurde von Homer Simpson am 27. Apr. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

VS-Simulator
Mitglied
Doktorand


Sehen Sie sich das Profil von VS-Simulator an!   Senden Sie eine Private Message an VS-Simulator  Schreiben Sie einen Gästebucheintrag für VS-Simulator

Beiträge: 75
Registriert: 20.02.2008

Plant Simulation 8.2

erstellt am: 27. Apr. 2009 14:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke!

Kann es hier aber nicht Probleme geben, wenn diese Abfrage mit sehr vielen unterschiedlichen Tabellenzeilen gleichzeitig abläuft, dass sich dann die Abfrage stopuntil Tabelle.Geaendert... der unterschiedlichen Tabellenzellen gegnseitig beeinflusst?

Wenn zum Beispiel folgendes passiert:
while Tabelle[3,1] /= 0 loop
              Tabelle.Geaendert := false;
              stopuntil Tabelle.Geaendert prio 1;
end;

Gleichzeitig würde aber auch
while Tabelle[3,2] /= 0 loop
              Tabelle.Geaendert := false;
              stopuntil Tabelle.Geaendert prio 1;
end; ablaufen und hier würde sich die Tabelle ändern.
Würde dann nicht die erste Bedingung ebenfalls mit berücksichtigt werden?

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Homer Simpson
Mitglied



Sehen Sie sich das Profil von Homer Simpson an!   Senden Sie eine Private Message an Homer Simpson  Schreiben Sie einen Gästebucheintrag für Homer Simpson

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 27. Apr. 2009 16:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für VS-Simulator 10 Unities + Antwort hilfreich

Nein, es funktioniert auch in diesem Fall.

Die umgebende while-Schleife wird nur verlassen, wenn die Bedingung tatsächlich erfüllt ist. Wenn sich eine andere Zelle ändert, so wird die Methode zwar kurz aufgeweckt, aber da die Schleife nicht verlassen wird, wird die Methode sofort wieder suspendiert.

Es ist aber wichtig, dass man stopuntil und nicht waituntil verwendet. Wenn zwei Methoden gleichzeitig warten, und sich dann die Tabelle ändert, so wird zuerst eine der Methoden aufgeweckt werden (abhängig von prio). Ist die Bedingung nicht erfüllt, wird die Schleife nicht verlassen und die Zuweisung (Tabelle.Geaendert := false) erneut ausgeführt. Würde nun die zweite Methode mittels waituntil warten, würde sie jetzt nicht mehr aufgeweckt werden. Bei stopuntil ist aber garantiert, dass die Methode auf jeden Fall aufgeweckt wird, selbst wenn die Bedingung zu diesem Zeitpunkt schon nicht mehr erfüllt ist.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

VS-Simulator
Mitglied
Doktorand


Sehen Sie sich das Profil von VS-Simulator an!   Senden Sie eine Private Message an VS-Simulator  Schreiben Sie einen Gästebucheintrag für VS-Simulator

Beiträge: 75
Registriert: 20.02.2008

Plant Simulation 8.2

erstellt am: 05. Mai. 2009 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Super! Vielen Dank!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz