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!
04.10.2011, 13:51 (Dieser Beitrag wurde zuletzt bearbeitet: 04.10.2011 13:54 von bmtil.)
(04.10.2011 13:48 )Y-P schrieb: Ich habe doch geschrieben, dass Du sie nicht brauchst.
Gruß Markus
(04.10.2011 13:23 )bmtil schrieb: PS: warum brauche ich eine Verzögerung? Ich hab doch im Microkontroller Programm schon geschrieben dass die Werte mir nur alle 2 Sekunden gesendet werden sollen.
Alles klar, war wohl ein Missverständniss meinerseits.
Dennoch frage ich mich warum die Case Struktur in meiner VI anscheinend völlig ignoriert wird.
Und warum in der Stringanzeige die Strings im selben "Kästchen" ankommen und nicht getrennt untereinander.
Das Problem will anscheinend nicht gelöst werden. Durch die For-Schleife kann ich die Strippen zu Visa Schließen nicht verbinden.
Ist ja auch eigentlich logisch.
Gibt es da noch irgendwie ein Bauelement welches dazwischen muss?
Hier die VI.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Serielle Schnittstelle Strings auslesen
Du musst einen Rechtsklick auf die "Tunnel" (wo der VISA- und der Fehlerdraht aus Deiner For-Schleife rauskommen) machen und "Disable Indexing" auswählen. Eine For-Schleife baut ("indiziert") Dir sonst alle Werte zu einem Array.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Schon vor deiner Antwort draufgekommen durch rechtsklicken auf den Tunnel, leider funktioniert es nicht, also der Fehlerdraht wird zwar normal, aber das Programm laeuft deswegen trotzdem nicht besser.
hab auf gut Glück versucht die Tunnel durch Schieberegister zu ersetzen, das klappt sicherlich auch nicht (aber bissle mit LabView rumspielen schadet nicht).
Die "Krankheitsdiagnose" sieht so aus:
Anscheinend geht das Programm nur einmal in die For-Schleife rein, da sich die beiden Anzeigen (habs erst spaeter reingebaut) für "N" und "i" in der For Schleife auf 2 und 1 hängen bleiben.
Mittlerweile krieg ich auf meinen beiden Graphen noch nicht einmal Nullen, also funktioniert irgendwie die ganze Datenübertragung irgendwie nicht.
Habs daher nochmal Luckys Programm aus Seite zwei des Threads nachgebaut, das hat geklappt, zumindest hab ich da in den Anzeigen die Werte blinken sehen.
Wenn ich einen der beiden Sensoren ablöt, dann krieg ich auch Werte und einen Graphen hin von dem anderen Sensor.
Irgendwie krieg ich gerade eine semigroße Krise.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Serielle Schnittstelle Strings auslesen
Wo steht 1 und 2?
Schreib' doch Deine Werte nach jedem Durchlauf in ein Array und hänge sie an einen Graph.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
05.10.2011, 08:27 (Dieser Beitrag wurde zuletzt bearbeitet: 05.10.2011 08:28 von bmtil.)
Die 2 steht in "Schleifenzählwert.
Die 1 in "IterationFor"
Ich will ja nicht die Werte in das Array schreiben, sondern dass LabView selbständig die jeweligen Temperaturwerte vom Micorkontroller holt und in ein Array reinbaut und dann dieses auswertet.
Quasi das selbe macht wie Hyperterminal, ist der ganze Sinn der Aufgabe.
Die VI angehangen, damit ihr sehen könnt was ich mit "Schleifenzählwert" und "IterationFor" meine.
(05.10.2011 07:38 )bmtil schrieb: Die "Krankheitsdiagnose" sieht so aus:
Anscheinend geht das Programm nur einmal in die For-Schleife rein, da sich die beiden Anzeigen (habs erst spaeter reingebaut) für "N" und "i" in der For Schleife auf 2 und 1 hängen bleiben.
Völlig korrektes Verhalten. Der Iteration-Zähler fängt bei Null an zu zählen. Wenn der also eine 1 anzeigt, dann passt das zur 2 bei "N".
(05.10.2011 08:27 )bmtil schrieb: Die 2 steht in "Schleifenzählwert.
Die 1 in "IterationFor"
Ich will ja nicht die Werte in das Array schreiben, sondern dass LabView selbständig die jeweligen Temperaturwerte vom Micorkontroller holt und in ein Array reinbaut und dann dieses auswertet.
Quasi das selbe macht wie Hyperterminal, ist der ganze Sinn der Aufgabe.
Die VI angehangen, damit ihr sehen könnt was ich mit "Schleifenzählwert" und "IterationFor" meine.
Erste Regel bei der Fehlersuche: Man schaut sich die übertragenen Daten an. Also: Indicator der übertragenen Strings (nach VISA Read) aufs FP legen. Dann das Array nach "Spreadsheet to Array". Dann die einen Indicator des "String Subset" Ausgangs. etc. etc.
Gruß, Jens
P.S.: Ich hoffe, du erzeugst in deinem µC-Programm ein Linefeed (=0xA) als Zeilentrenner, nicht eine Carriage Return (=0xD). Denn dein Open Serial Port ist auf Linefeed als "Termination Char" konfiguriert.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(05.10.2011 09:20 )jg schrieb: Völlig korrektes Verhalten. Der Iteration-Zähler fängt bei Null an zu zählen. Wenn der also eine 1 anzeigt, dann passt das zur 2 bei "N".
Erste Regel bei der Fehlersuche: Man schaut sich die übertragenen Daten an. Also: Indicator der übertragenen Strings (nach VISA Read) aufs FP legen. Dann das Array nach "Spreadsheet to Array". Dann die einen Indicator des "String Subset" Ausgangs. etc. etc.
Gruß, Jens
P.S.: Ich hoffe, du erzeugst in deinem µC-Programm ein Linefeed (=0xA) als Zeilentrenner, nicht eine Carriage Return (=0xD). Denn dein Open Serial Port ist auf Linefeed als "Termination Char" konfiguriert.
Sicherlich beende ich die Zeile in meinem µC Programm mit 0xA,
hier der Code ausschnitt nochmal (an der stelle USART_Transmit(0x0A); ):
Code:
while(1)
{
if (overflowzahl >= 1)
{
if (adc_wertref = adc_read_avg(0, 100))
{
itoa(adc_wertref, buffer, 10);
uart_puts("Ref");
uart_puts(buffer);
USART_Transmit(0x0A);
}
Zitat:Man schaut sich die übertragenen Daten an. Also: Indicator der übertragenen Strings (nach VISA Read) aufs FP legen. Dann das Array nach "Spreadsheet to Array". Dann die einen Indicator des "String Subset" Ausgangs. etc. etc.
Verzeih mir bitte aber das versteh ich nicht, was genau ist dieses "FP"?
Ich glaub ich sollte die VI nochmal komplett neu machen -.-
Mein Kopf glüht vor lauter Arrays und Strings.
Grüße, Mikhail.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Serielle Schnittstelle Strings auslesen
Vielleicht solltest Du Dir mal die LabVIEW-Grundlagen durchlesen, dann wird es auch einfacher.
Gruß Markus
(05.10.2011 09:28 )bmtil schrieb: Verzeih mir bitte aber das versteh ich nicht, was genau ist dieses "FP"?
Ich glaub ich sollte die VI nochmal komplett neu machen -.-
Mein Kopf glüht vor lauter Arrays und Strings.
Grüße, Mikhail.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------