LabVIEWForum.de
Melder-VI gibt kein Timeout raus, wieso? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Melder-VI gibt kein Timeout raus, wieso? (/Thread-Melder-VI-gibt-kein-Timeout-raus-wieso)



Melder-VI gibt kein Timeout raus, wieso? - Matze - 21.02.2012 10:26

Hi zusammen,

ich verzweifle hier.
Im Programm habe ich mehrere Schleifen, die parallel ablaufen. Vor den Schleifen erzeuge ich einen Melder und reiche die Referenz in alle Schleifen. In einer einzigen Schleife sende ich Daten, die anderem empfangen diese.

Deaktiviere ich die Sendeschleife, dann bringen alle VIs "Wait on Notification" der Schleifen ein Timeout, nur bei einer Schleife ist das nicht der Fall (BD ist zu umfangreich, um es hier anzuhängen und vereinfacht kann ich das nicht reproduzieren).

In der Schleife, in der kein Timeout kommt, werden leere Daten empfangen, obwohl definitiv nichts gesendet wird. Die Schleife kommuniziert per Ethernet mit einem Gerät. Deaktiviere ich das VI "TCP Write", dann meldet mit das Melder-VI korrekt ein Timeout.
Aber das hat absolut nichts miteinander zu tun und globale/lokale Variablen verwende ich nicht.

Und in der einen Schleife ist dies bei allen Meldern so, wenn ich mehrere verwende.
Wenn ich als Timeout-Zeit "-1" angebe, wird auch nicht gewartet. Es ist, als ob irgendwas Daten an die Referenz sendet aber nur zu der einen Schleife.

Ich verstehe die Welt nicht mehr.
Was kann die Ursache sein?

Grüße


RE: Melder-VI gibt kein Timeout raus, wieso? - rasta - 21.02.2012 12:28

Hallo Matze,
ein Schuss ins Blaue
Eingang ignore previous -- Wait on Notification:

ignore previous indicates whether to ignore messages that LabVIEW sends to the notifier before it calls this function. If TRUE and the notifier contains a message before you call this function, this function waits until the notifier receives another message. If FALSE (default) and the notifier contains a message before you call this function, this function continues to execute.

Gruß
Ralf


RE: Melder-VI gibt kein Timeout raus, wieso? - Matze - 21.02.2012 15:06

Hallo Ralf,

nein das hat damit nichts zu tun. Der EIngang sagt im Endeffekt ja nur aus, ob eine bereits gesendete, aber noch nicht ausgelesene Meldung gelesen werden soll oder ob auf eine neue gewartet werden soll. Dennoch danke.

Ich glaube das Problem war folgendes:
Am Fehlereingang von "Wait on Notification" lag ein Fehler an. Dann verhält sich das VI so, wie es sich meiner Meinung nach nicht verhalten darf, aber es ist leider so. Ich habe nun die Melder-Fehlereingänge mit Konstanten versehen, damit diese korrekt arbeiten. Seit dem geht's.


RE: Melder-VI gibt kein Timeout raus, wieso? - GerdW - 21.02.2012 22:11

Hallo Matze,

Zitat:Am Fehlereingang von "Wait on Notification" lag ein Fehler an. Dann verhält sich das VI so, wie es sich meiner Meinung nach nicht verhalten darf, aber es ist leider so.
So ziemlich alle Funktionen mit ErrorIn/Out verhalten sich so, dass bei einem Error am Eingang die eigentliche Funktion übersprungen wird. (Ausnahmen sind die Close-Funktionen, die Referenzen etc. auch bei einem Fehler schließen.)
Warum sollte das Verhalten hier anders sein? Wie sollte es denn deiner Meinung nach sein?