LabVIEWForum.de - Warum wird das FP nicht refreshed?

LabVIEWForum.de

Normale Version: Warum wird das FP nicht refreshed?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Gemeinde,

ich hab schon wiedermal ein Problem. Diesmal mit dem Refreshen des FPs.

Folgender Programmaufbau:

In einem SubVI, das in einem SubPanel ausgeführt wird, laufen zwei While-Schleifen. Eine im Raster von 50ms, die andere mit 95ms. Die erste Schleife ließt Daten aus Meldern aus und zeigt sie mittels des Anzeigeelementes am FP an. Es sind mehrere Melder, die nicht alle in einem Durchlauf gelesen werden, sondern in einer Statemachine. In der zweiten Schleife werden zwei Melder eingelesen. Jeweils nur ein Bit dieser Daten wird durch das Property Value angezeigt. Außerdem gibt es ein Event-Case mit einem Timeout, der im Raster von 100ms läuft. Hier wird auch ein Melder ausgelesen und dessen Daten mittels des Anzeigeelementes am FP angezeigt.

Das SubPanel befindet sind in einem SubVI, das im Hintergrund weiterläuft. In diesem SubVI läuft lediglich eine Event-Seqeuenz. Läuft das SubVI als standalone, laufen hier alle SubVIs, die so zum Datensamplen notwendig sind, parallel.

Dieses SubVI wird vom MainVI in einem Event-Case aufgerufen. Im MainVI laufen alle SubVIs, die so zum Datensamplen notwendig sind, parallel.

Jetzt das Problem:
Lass ich das SubVI im SubPanel als Standalone laufen, wird das FP richtig refreshed. Lass ich das SubVI mit dem besagten SubVI im SubPanel laufen, wird das FP auch richtig refrehed. Lass ich allerdings das MainVI laufen und klick mich bis zum besagten SubVI, dann wird das FP nicht mehr refreshed.

Das BD des SubVIs, dessen FP nicht refrehed wird, läuft richtig. Mach ich eine Sonde direkt vor das Anzeigeelement, steht in der Sonde der richtige Wert drinnen - nur am FP eben nicht. Dumm nur, dass die beiden Propertys Value am FP zu sehen sind.

Weiß einer Rat?


Dieses Verfahren mit den verschachtelten SubVIs und den parallelen While-Schleifen wende ich schon immer an. Die Prozessauslastung liegt bei 6%
Also so ganz blicke ich nicht mehr durch...
Vor allem, bei welcher Verschachtelungsstrukur jetzt das FP-Update nicht funktioniert?

Ein "Delay FP Update" ist nicht aus Versehen irgendwo eingebaut?
Schon mal probehalber versucht, alles, was du an Anzeigen ins FP schreibst, per PropertyNode "Value" zu setzen (ich weiss, soll man eigentlich nicht machen, aber dies erzwingt ja im Normalfall das FP-Update).

Ansonsten habe ich erst mal keine weitere Idee...

Gruß, Jens
' schrieb:Vor allem, bei welcher Verschachtelungsstrukur jetzt das FP-Update nicht funktioniert?
1. Aufruf SubVI "DigiIO" aus IDE heraus - FP-Refresh von "DigiIO" funktioniert.
2. Aufruf SubVI "PSP_PRGs" aus IDE heraus. Hier Button "DigiIO" drücken. SubVI "DigiIO" erscheint in SubPanel von "PSP_PRGs". "DigiIO" und "PSP_PRGs" laufen beide (also paralleler Ablauf) - FP-Refresh von "DigiIO" funktioniert.
3. Aufruf MainVI aus IDE heraus. Hier Button "PSP_PRGs" klicken. Das FP von MainVI wird geschlossen, das BD läuft weiter. "PSP_PRGs" wird ausgeführt. Hier nun Button "DigiIO" klicken. Weiter siehe zweitens. Aber: FP-Refresh von "DigiIO" funktioniert nicht.

Zitat:Ein "Delay FP Update" ist nicht aus Versehen irgendwo eingebaut?
Nein.

Zitat:Schon mal probehalber versucht, alles, was du an Anzeigen ins FP schreibst, per PropertyNode "Value" zu setzen (ich weiss, soll man eigentlich nicht machen, aber dies erzwingt ja im Normalfall das FP-Update).
Naja, ein Property-Node ist ja vorhanden. Und der ercheint ja auch am FP.
Alles in Property-Nodes? Ich hab das kein Problem mit. Mal schaun.

Neue Erkenntnisse:
Änder ich mal kurz irgendwas im Source, z.B. eine Melderabfrage weglassen oder eine Ausgabe am Anzeigeelement weglassen, geht's - aber nur mal kurz. Fahr ich LV runter und starte neu, gehts wieder nicht.


Wenn einer noch Schlagwörter weiß, her damit.
Funktioniert das FP-Refresh mit eingeschalteter Highlight-Funktion?
Das würde auf irgendwelche Timing-Probleme hinweisen!

LG
Torsten
Schlagwörter:
- Vi-Einstellungen (Sub-Routine - Reentrant- Allow Debugging…Thread (same as caller – User Interface…..) unterschiedlich ?
- Wie verhält sich das „Konstrukt“ in einer .Exe ?
- Eventuell blockt die Main Event-Case und somit 2verschachtelte Event-Cases? Test mit simuliertem Main ohne Event-Case.
- Effekt in mehreren LV-Versionen reproduzierbar ?

Gruß
Ralf
Boh, viele Schlagwörter. Sehr schön. Smile


' schrieb:Funktioniert das FP-Refresh mit eingeschalteter Highlight-Funktion?
Highlight-Funktion hab ich noch nicht ausprobiert.
Ausprobiert hab ich die Debugger-Sonden. Dadurch hab ich ja erst festgestelllt, dass das komplette BD richtig funktioniert. Immer bis an den Punkt im Datenfluß, an dem die Daten in das Anzeigeelement sollen. Der Wire geht rein, aber die Daten nicht ans FP.
An Timingproblem kann ich so recht nicht glauben. Immerhin hat er noch 94% Zeit.



' schrieb:- Vi-Einstellungen (Sub-Routine - Reentrant- Allow Debugging…Thread (same as caller – User Interface…..) unterschiedlich ?
Alles irrelevant. Ob hoch-priorisiert oder niedrig - keine Auswirkung wiederholbar feststellbar.

Zitat:- Wie verhält sich das „Konstrukt“ in einer .Exe ?
In einer EXE ist das Problem zuerst aufgetreten - da läuft nämlich immer das MainVI. Meine Überprüfungen verliefen dann aber im Sande, weil ich in der IDE immer ohne MainVI arbeite. Erst als ich auch in der IDE das MainVI gestartet habe, traten auch hier die Probleme auf.

Zitat:- Eventuell blockt die Main Event-Case und somit 2verschachtelte Event-Cases? Test mit simuliertem Main ohne Event-Case.
Ich hab das aber in allen Projekten so.
Es gibt ein weiteres SubVI, das anstelle von "DigiIO" angeklickt werden kann. Nämlich "AIn". Und da geht alles richtig. Auch hier gilt: SubPanel in Event-Case in Event-Case.
Aber ich werd noch mal kucken: Andere Projekte und Vergleich DigiIO/AIn.

Zitat:- Effekt in mehreren LV-Versionen reproduzierbar ?
So weit geht meine Symphatie nun auch wieder nicht. Tongue
Der Kundenrechner ist bereits vollständig installiert. Und Installationen sind hier sehr aufwändig. Rechner zum Kunden bringen ...

Naja, ich hab ja noch drei Wochen Zeit.
' schrieb:Schon mal probehalber versucht, alles, was du an Anzeigen ins FP schreibst, per PropertyNode "Value" zu setzen
So geht's.


' schrieb:Neue Erkenntnisse:
Änder ich mal kurz irgendwas im Source, z.B. eine Melderabfrage weglassen oder eine Ausgabe am Anzeigeelement weglassen, geht's - aber nur mal kurz. Fahr ich LV runter und starte neu, gehts wieder nicht.
Seit Stunden nur dieses Verhalten: da änderst was, plötzlich gehts, machst nichts weiter als runterfahren und neu starten - und es geht nicht mehr.


' schrieb:Funktioniert das FP-Refresh mit eingeschalteter Highlight-Funktion?
Nein, funktioniert auch nicht.

Ich bin ratlos. Notfalls werd ich die Property-Methode nehmen.
Ich habe ein ganz ähnliches Problem,
aber bereits gelöst, nur ist mir die Ursache unklar.

Ich rufe über mein Main ein SubVI, ähnlichen aufbaus aus dem Bild, auf. Im linken stehen im Cluster permanent die Werte 0,0 (übernimmt nicht die vom Main vorgegebenen Werte). Das rechte hingegen, Cluster auserhalb aller Strukturen funktioniert wie gewünscht. Warum?
Ich habe noch ein weiteres SubVi das wie das linke Bild aufgebaut ist, und auch da funktioniert es, was das ganze für mich noch unerklärbarer macht.

[attachment=18553]

geist
' schrieb:Ein "Delay FP Update" ist nicht aus Versehen irgendwo eingebaut?
' schrieb:Nein.
Das ist *Defer Panel Updates Property* oder was anderes?

In welcher Version tritt den das Fehlverhalten auf?
ev. kannst du das mal runterspeichern oder hochziehen auf eine andere Version, ich weis, viel arbeitWink
ev. ein BUG mit den SubPanels, verwende ich bis jetzt nicht.
Sonst habe ich auch keine Idee.
Hier noch einige Ideen.

- VI-Props-Execution-Preferred Execution System auf User Interface setzen.
– Kopie von Ain anlegen und diese anstelle von Digi.. einbinden.
– Kreuzvergleich mit dem nicht funktionierenden.
- MassCompile.

Gruß
Ralf
Seiten: 1 2
Referenz-URLs