INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Daten aus einer For-Schleife werden nicht korrekt übertragen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

13.01.2011, 16:38
Beitrag #1

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Hallo zusammen,

ich habe mir aus den LV-Beispielen den aktiven TCP-Communicator ein wenig modifiziert. Beim Empfang bestimmter Wörter soll er einen entsprechenden Case ausführen.
So lange ich aus diesen Cases nur einen Wert zurückgebe, ist das auch kein Problem (Der Wert wird dann per TCP/IP zurückgesendet).

Nun habe ich in einem Case aber eine For-Schleife, die einzelnen Array-Elemente ausgeben soll.

    Lv10

Das Problem hierbei ist, dass die For-Schleife durchläuft aber nur der höchste Arraywert ausgegeben wird.

Wenn ich alles verlangsamt ablaufen lasse, sehe ich, wie im Frontpanel in dem Feld "Eingabe" die Werte angezeigt werden. Aber sie werden nicht abgeschickt, sondern erst, wenn die Schleife durchgelaufen ist und darüber liegende while-Schleife stoppt.

Hat jemand eine Idee, wie ich das ändern muss, damit jedes Array Element einzeln gesendet wird?

Ich hoffe, von der Struktur her ist das für euch keine allzu große Zumutung. Ich habe erst dieses Jahr mit LabVIEW angefangen und gehe im Moment eher nach Funktion und habe nicht so den Durchblick, wie ich etwas optimiert gestalten könnte.

Die entsprechende VI-Datei ist im Anhang. Zusätzlich noch eine Textdatei die beim Aufrufen benötigt wird.

Lv10
Sonstige .vi  012_Datei_auslesen_und_senden_Schleife.vi (Größe: 77,88 KB / Downloads: 219)


Sonstige .txt  002.txt (Größe: 448 Bytes / Downloads: 279)


Danke und Gruß

Sebastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2011, 19:36
Beitrag #2

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Hallo Brik,

du hättest auch an dem schon angefangenen Thread weiterschreiben können.

Zu deiner Struktur kann mann sagen, dass sie sehr CPU-Auslastend ist.

Du liest ständig die gleichen Daten aus der Steuerdatei in die Bedienelemente. 100% - CPU-Auslastung wegen Ungebremster While-Schleife.

Du pollst Verbinden in einer ungebremsten Schleife - 100% CPU-Last

Du pollst nochmal Verbinden als Lokale Variable in einer ungebremsten Schleife. - 100% CPU-Last.

Lösungen:

Das verarbeiten der Textdatei musst du nur einmal machen. Die Werte kannst du in einem Cluster bündeln und an die Schleife anschließen.

Im Anhang ein stark vereinfachtes Beispiel:
Du musst deinen Restlichen code dazupflegen, und in der Case-Struktur der While-Schleife deinen Cases hinzufügen und entsprechen die Werte aus dem Cluster lesen. Bei dem Array empiehlt es sich, diese direkt in der For-Loop zu senden und nicht über den allgemein genutzten Senden-Case.

Gruß Richard

Lv10
   

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2011, 20:03
Beitrag #3

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
[code]Zensierte Textstellen, die viele manomanoman, huihiu, ugly code, leck mich am A...,


Angehängte Datei(en)
Sonstige .vi  012_Datei_auslesen_und_senden_Schleife___2.vi (Größe: 51,11 KB / Downloads: 211)

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 09:33 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2011 09:37 von brik.)
Beitrag #4

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Guten Morgen,

vielen Dank an euch beide für eure Verbesserungen. Wie bereits gesagt, mir fehlt da noch der Durchblick um die Sache strukturiert anzugehen. Ich habe meistens so lange probiert, bis die gewünschte Funktion erreicht war.

@schrotti: Gibt es einen speziellen Grund, warum die ausgelesenen Werte jeweils in einen Array geschrieben werden?
Des Weiteren habe ich in deiner Datei das Problem, das jedes Mal, wenn ich in der "Daten senden" Registerkarte auf "Verbinden" klicke, das Programm pausiert, die Empfangsschleife im Blockdiagramm aufblinkt und ich es manuell wieder aktivieren muss. Weißt du, was dafür der Grund ist?

An Richards Vorschlag werde ich mich mal am Wochenende setzen und versuchen den nachzubauen.

Danke nochmals und viele Grüße

Sebastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2011 12:33 von brik.)
Beitrag #5

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Mache ich etwas falsch oder ist es bewusst so eingestellt, dass die Editierfunktion nur für kurze Zeit nach Erstellen eines Beitrags verfügbar ist?

Auf jeden Fall habe ich herausgefunden, dass in dem Programm ein Haltepunkt war und das Programm deswegen pausierte. Das ist nun geregelt.

Allerdings habe ich nun ein anderes Problem. schrotti hat aus meiner Datei ja den Dateiauswahldialog entfernt und durch einen festen Stringarray ersetzt.

Ich habe diesen nun wieder eingefügt. Nun funktioniert es aber nicht mehr, dass meine Daten parallel zwei mal ausgelesen werden.

   

Einmal sollen die Daten in einem großen Textfeld angezeigt werden und zusätzlich werden sie in einen Stringarray geschrieben, von wo aus sie weiterverarbeitet werden.
Lasse ich das Programm ganz normal laufen, bleibt das Anzeigefeld leer. Benutze ich das Highlight-Werkzeug bleibt der Stringarray leer und die Daten erscheinen in dem Textfeld. Dafür bricht das Programm jedoch auf Grund des leeren Arrays ab.

Wie kriege ich das gelöst?

Lv10
Sonstige .vi  014_Datei_auslesen_und_senden_schrotti_2.vi (Größe: 70,21 KB / Downloads: 205)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2011, 14:24
Beitrag #6

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Hallo,

versuchs mal so ->    

Gruß Richard

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.01.2011, 12:38
Beitrag #7

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
' schrieb:Hallo,

versuchs mal so -> [attachment=60854:ablauf.png]

Gruß Richard

Hat natürlich so geklappt, danke.

Nun stehe ich vor einem weiteren Problem. In meiner Datei oben reagiere ich ja auf bestimmte Wörter, die übers Ethernet kommen und gebe dann bestimmte Daten aus.

Nun sollen diese Daten vom Server aber wieder zurückgesendet und abgespeichert werden. Ich hatte es mir so vorgestellt, dass ich vom Server den Namen des Datums schicke und darauf folgend den Wert selber. Was muss ich nun machen, damit ich zwei Befehle in Kombination hintereinander auswerten kann?
Wenn ich mittels Case-Struktur auf den Namen reagiere, würde ich ja beim Wert dann wieder in einem anderen Case landen.

Danke und Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2011, 12:18
Beitrag #8

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Falls es wen interessiert, ich habe es nun so gelöst, dass ich die empfangenen Daten auf einen Unterstrich auswerte. Der Text vor dem Unterstrich ist das Wort auf das reagiert wird und hinter dem Unterstrich steht dann der Wert, dabei ist es egal, ob Unterstrich und Wert vorhanden sind oder nicht:

   

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2011, 13:07
Beitrag #9

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
Nee, Du machst nichts falsch. ;)Dauerhaft Editieren können nur LVF-Team-Mitglieder und der Admin. Anniemacht_2 Hehe

Danke auch für die Rückmeldung. Top2

Gruß Markus

' schrieb:Mache ich etwas falsch oder ist es bewusst so eingestellt, dass die Editierfunktion nur für kurze Zeit nach Erstellen eines Beitrags verfügbar ist?

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2011, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2011 14:18 von brik.)
Beitrag #10

brik Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

10.0
2011
de

46539
Deutschland
Daten aus einer For-Schleife werden nicht korrekt übertragen
' schrieb:Allerdings habe ich nun ein anderes Problem. schrotti hat aus meiner Datei ja den Dateiauswahldialog entfernt und durch einen festen Stringarray ersetzt.

Ich habe diesen nun wieder eingefügt. Nun funktioniert es aber nicht mehr, dass meine Daten parallel zwei mal ausgelesen werden.

[attachment=60847:2011_01_14_120131.png]

Einmal sollen die Daten in einem großen Textfeld angezeigt werden und zusätzlich werden sie in einen Stringarray geschrieben, von wo aus sie weiterverarbeitet werden.
Lasse ich das Programm ganz normal laufen, bleibt das Anzeigefeld leer. Benutze ich das Highlight-Werkzeug bleibt der Stringarray leer und die Daten erscheinen in dem Textfeld. Dafür bricht das Programm jedoch auf Grund des leeren Arrays ab.

Wie kriege ich das gelöst?

Lv10[attachment=60848:014_Date...hrotti_2.vi]


' schrieb:Hallo,

versuchs mal so -> [attachment=60854:ablauf.png]

Gruß Richard


Ich möchte noch mal darauf hinweisen, dass beide Ausführungen bei mir die gleichen Probleme verursachen. Im Zweifelsfall bleibt die erste Anzeige leer.

Ich habe es nun in einer flachen Sequenzstruktur angeordnet und dem Öffnen der Datei eine Verzögerung von 3 Sekunden hinzugefügt. Ist die Verzögerungszeit geringer, bleibt die erste Anzeige weiterhin leer.

Liegt wohl an der Aufwändigkeit meines Programms oder an dem Leistungsdefizit des Rechners...

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array per TCP/IP Übertragen Roland 4 5.529 14.09.2017 21:51
Letzter Beitrag: Roland
  Komplette Ordner über FTP übertragen raverel 10 11.778 23.07.2013 08:28
Letzter Beitrag: Y-P
  LV 2011 DSC Tags werden nach Update von 8.6 nicht geschriebennicht tomy141 0 2.965 08.03.2012 10:43
Letzter Beitrag: tomy141
  Email mit Anhang (Datei kann nicht mehr geöffnet werden) WeberEng 5 7.592 21.10.2011 14:30
Letzter Beitrag: Dennis.Moser
  Daten von OPC werden nicht aktualiert dargestellt Kolumbus 3 3.704 27.04.2011 17:10
Letzter Beitrag: Kolumbus
  2 Datasocket Read in einer While-Schleife sehr langsam Haarry09 5 6.777 09.09.2010 11:49
Letzter Beitrag: Haarry09

Gehe zu: