LabVIEWForum.de - RS232 Stringauswertung

LabVIEWForum.de

Normale Version: RS232 Stringauswertung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo LVF User,

versuche mit meiner VI aus einem Datenstring über RS232 zwei ADC Werte
auszugeben, erhalte aber eine Fehlermeldung, die ich nicht verstehe.
Danke für Eure Hilfe!
Was für eine Fehlermeldung?

Gruß Markus
Hallo Markus,
die Fehlermeldung lautet:

"Fehler 1 bei In String suchen (arg1) in adc_mk2board.vi"

Gruß
Das heißt: Der Formatstring passt nicht zum String. Wie lautet denn der aus VisaRead herauskommende String genau?
Das Programmfragment für die Datensendung (ATMega8) lautet

if(count1>10) // Zykluszeit 10*10ms,Timersteuerung
{
count1=0;
adc_init(3); // Wandlerkanal an PC3
adc_value[0]=adc_single_conversion();
adc_init(4); // Wandlerkanal an PC3
adc_value[1]=adc_single_conversion();

sprintf(buffer_out,"%4d,%4d",adc_value[0],adc_value[1]);
lcd_gotoxy(0,0); // Kontrollanzeige mit LCD Einheit auf MC-Seite
lcd_puts(buffer_out);
uart_puts(buffer_out); // Wandlerwert Wert senden
uart_putc(0xa);
}
Ich hatte mir Deine Antwort eigentlich so vorgestellt, dass Du am String-Ausgang von Visa Read eine Anzeige anschließt und uns den Inhalt mal postest. Was ist schwierig daran?
Offtopic2
Fragen im Bereich Testforum werden im Normalfall ohne Vorwarnung gelöscht.
Such dir das nächste Mal bitte ein passendes Unterforum aus.

Gruß, Jens
Hallo adamo,

dank
Zitat:sprintf(buffer_out,"%4d,%4d",adc_value[0],adc_value[1]);
uart_puts(buffer_out); // Wandlerwert Wert senden
uart_putc(0xa)
sieht der VISA-Readbuffer wohl (beispielhaft) so aus:
Code:
123, 456<LF>
Das sollte man mit "%d, %d" als Formatstring scannen können...

Wenn das bei dir nicht funktioniert, musst du einfach mal den empfangenen String kontrollieren!

Wurdest du schon mal gebeten, den String im Readbuffer hier zu zeigen?
Die Kommunikation funktioniert mit dem Terminalprogramm
Hterm dauerhaft!
Mit Labviewbricht erfolgt nach kurzer Zeit ein Abruch mit
Fehlermeldung (siehe Sendeprotokoll)
(28.12.2013 00:47 )adamo schrieb: [ -> ]Die Kommunikation funktioniert mit dem Terminalprogramm
Hterm dauerhaft!
Also noch mal, damit Du kapierst: Fehlermeldung und Programmabbruch kommen von der Funktion "In String Suchen", und das hat mit den Visa-Funktionen überhaupt nichts zu tun - jedenfalls nicht direkt. Der VISA-Code innerhalb des Labview-Programms funktioniert fehlerfrei. Wenn Du also die nachfolgende String-Auswertung deaktivieren würdest, würde das Labview-Programm genaus so gut funktionieren wie das Terminalprogramm.

Aber immerhin kann man jetzt am Sondenüberwachungsfenster sehen, woran es liegt:
Die Steuerung mit Abschlusszeichen funktioniert entweder nicht (obwohl es richtig konfiguriert scheint), oder das Abschlußzeichen 0xA wird nicht mit gesendet.
Schau doch mal im Terminalprogramm nach: Wenn das Abschlußzeichen richtig gesendet wird, müßte nach je zwei gesendeten Werten ein neue Zeile geschrieben werden. Wenn das nicht der Fall ist, kann das Labview - Progamm so nicht funktionieren.

Nachtrag: Was sieht man im Sendpuffer-String?
Richtig wäre:
549161, 549161
Man sieht aber:
...... 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 549161, 54916
D.h eine quasi unendlich lange Folge von Werten ohne Zeilenwechsel. Vias Read hat den Puffer nicht ausgelesen, weil ein Zeilenendezeichen kam, sondern weil das programmierte Limit von 150 Zeichen erreicht war. Dieses Limit wurde - wie sollte es anders sein - mitten in einem Wert erreicht, so dass die letzte Zahl verstümmelt übertragen wurde (54916 statt 549161).
Seiten: 1 2
Referenz-URLs