29.01.2013, 15:56
Liebes Forum,
Ich habe folgende Vis erstellt:
[attachment=43282]
[attachment=43283]
Das erste ist das TargetVi, installiert auf meinem CompactRio. Es liest im hochpriorisierten Loop zwei Messdaten ein und schreibt sie in die single-process-Variable "Messdatenarray_Single Process". Dieser Array wird dann im niedrig priorisierten Loop in ein eine networkshared Variable geschrieben.
Der zweite Shot ist das HostVI auf dem WindowsPC installiert. Es soll eigentlich nicht anderes machen, als die Daten von der networkshared Variable auszulesen und anzuzeigen und beide VIs per Knopfdruck zu beenden.
Wenn nur das TargetVI gestartet ist, funktioniert alles gut und ich bekomme auch in der networkshared Variable meine Messdaten. Wenn ich nun das HostVI starte, friert der Array in der networkshared variable ein und ich kann nur noch den letzten Messwert auslesen, der vor dem Starten des HostVis ausgegeben wurde. Die singleprocess- Variable spuckt weiter munter Messwerte aus.
Ich habe keine Ahnung woran das liegen könnte! Alle Variablen die mit dem zeitkritischen Loop zu tun haben sind FIFO enabled, alle anderen nicht ( so wie es immer empfohlen wird). An der Übertragung kann es auch nicht liegen, da der letzte Messwert ja beim Host ankommt. Per Highlight habe ich auch herausgefunden, dass die Anzeige im Host VI immer wieder updated, aber halt immer die gleichen Werte bekommt, weil die Variable nicht mehr neu beschrieben wird.
Kann es sein, dass sich die beiden Vis irgendwie blockieren? Wenn ja, wieso (es handelt sich ja um eine networkpublished Variable, also können doch mehrere drauf zugreifen. Ausserdem soll das eine Vi ja lesen und das andere schreiben, also besteht hier doch eher weniger Konfliktpotential oder?) ?
Ich habe folgende Vis erstellt:
[attachment=43282]
[attachment=43283]
Das erste ist das TargetVi, installiert auf meinem CompactRio. Es liest im hochpriorisierten Loop zwei Messdaten ein und schreibt sie in die single-process-Variable "Messdatenarray_Single Process". Dieser Array wird dann im niedrig priorisierten Loop in ein eine networkshared Variable geschrieben.
Der zweite Shot ist das HostVI auf dem WindowsPC installiert. Es soll eigentlich nicht anderes machen, als die Daten von der networkshared Variable auszulesen und anzuzeigen und beide VIs per Knopfdruck zu beenden.
Wenn nur das TargetVI gestartet ist, funktioniert alles gut und ich bekomme auch in der networkshared Variable meine Messdaten. Wenn ich nun das HostVI starte, friert der Array in der networkshared variable ein und ich kann nur noch den letzten Messwert auslesen, der vor dem Starten des HostVis ausgegeben wurde. Die singleprocess- Variable spuckt weiter munter Messwerte aus.
Ich habe keine Ahnung woran das liegen könnte! Alle Variablen die mit dem zeitkritischen Loop zu tun haben sind FIFO enabled, alle anderen nicht ( so wie es immer empfohlen wird). An der Übertragung kann es auch nicht liegen, da der letzte Messwert ja beim Host ankommt. Per Highlight habe ich auch herausgefunden, dass die Anzeige im Host VI immer wieder updated, aber halt immer die gleichen Werte bekommt, weil die Variable nicht mehr neu beschrieben wird.
Kann es sein, dass sich die beiden Vis irgendwie blockieren? Wenn ja, wieso (es handelt sich ja um eine networkpublished Variable, also können doch mehrere drauf zugreifen. Ausserdem soll das eine Vi ja lesen und das andere schreiben, also besteht hier doch eher weniger Konfliktpotential oder?) ?