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!
15.11.2012, 17:29 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2012 17:43 von A.Berndsen.)
Hallo LV-Forum Mitglieder,
Ich habe ein Problem. Ich will Daten vom COM Port schreiben und einlesen. Hab mir dafür ein neus ReadAndWrite VI erstellt. Dies hab mir aus dem Beispiel Advenced Serial Write and Read.vi angeschaut. Ich arbeite mit einem USB I/O Leiterplatte. Diese Leiterplatte funktioniert mit Hexadecimal Zahlen als Nachricht. Hab ich die Configuration von Write and Read Buffer so ensprechend gemacht.
Die Fragen:
1-Ich kann nicht die Byte in Write buffer in 2 zeilen Schreiben? d.h die Enter Taste und Leere Taste funktioniert nicht.
2-Die gelesene Daten in Read buffer schwanken und werden nicht stabil angezeigt?
Ein Beispiel:
Ich schreibe im Write buffer folgende Byte
TX: 0xA0, 0x10, 0x0F, 0x0A -> (Port/Bits setzen)
TX: 0xA0, 0x11,0x0A -> (LEDs lesen)
Ich erwarte im Read Buffer folgende Byte
RX: 0xA0, 0x10, 0x0F, 0x0A -> (echo)
RX: 0xA0, 0x11,0x0A -> (echo)
RX: 0xA1, 0x11, 0x03, 0x0A -> (Byte 0x03 => LED1...LED3 On)
Aber Die Byte wurden im Read Buffer nicht so angezeit.es variiert solange die While Schleife durchläuf.Wenn ich auf Stop drückt, wird dann nur ein RX gezeigt.
Ich Danke ihnen für euere Hilfe.
Anhang mein ReadandWrite.vi
15.11.2012, 17:41 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2012 17:42 von A.Berndsen.)
Hier die Version 8.2
Vielen Dank im Vorraus
Hallo Andreas,
ich wusste das nicht. Ich habe nur die Schritte von kurzes Tutorial "Wie schreibe ich einen neuen Beitrag ?" gemacht.
zukünftig werde ich den richtigen Bereich auswählen.
Gruß
Gisele
15.11.2012, 18:48 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2012 18:50 von GerdW.)
hast du dir irgendeinen der anderen Threads zum Thema "Richtiger Umgang mit der seriellen Schnittstelle" durchgelesen? Da gibt es fast jeden Tag einen neuen!
Insbesondere der Gebrauch der PropertyNode "Bytes at port" ist so gut wie immer falsch, vor allem in Kombination mit dem von dir verwendeten TermChar. Schau einfach selbst mal nach anderen Threads...
Hallo LV-Forum Mitglieder,
zuerst wünsche ich euch ein gutes und glückliches Jahr 2013!!!!.
Ich bin ein bisschen weit mit meinem Projekt, aber ich habe das Gefühl, je weiter ich komme, desto grundsätzliche Probleme ergeben sich......
Ich sende Befehle am Com Port und Bekomme Nachrichten zurück. Jetzt möchte ich diese Nachrichten automatisch bewerten, um zu wissen, ob den Testcase Pass oder Fail. Ich weiß nicht wie ist dies machen kann? welchen Möglickeiten gibt es im Labview, um diese Auswertung der Ergebnisse zu machen?
In Tab Control möchte ich in seite 2 (Table Control) alle Zeile mit dem Byte, die mit A1 11 anfängt bewerten. Wenn die richtige Byte gekommen sind, soll in Main das Boolean Passed leuchted, wenn nicht Failed.
Wo kann ich die richtige erwarteten Byte schreiben? diese Byte mit dem Byte, die raus kommt vergleichen? und das Ergebnis mit Array Test Results verbinden.
Vielen Dank im vorraus für die Antworten
Anhang: VI und SubVI (Version 8.6)
MfG
Gisele
16.01.2013, 09:28 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2013 09:35 von Gisele.)
Guten Morgen,
Kann jemand mir bitte weiter helfen bitte bittehttp://www.labviewforum.de/images/smilies/lvfsmilies/fun/bahn.gif
Ich möchte meine Ergebnisse bewerten. Welche Möglichkeiten gibt es im Labview diese Auswertung zu machen.
Vielen Dank
MfG
Gisele
Ich habe eine idee. Die Ergebnisse in einer Excel Datei zu übertragen und mit diese Excel datei den Vergleich zu machen.
aber ich weiß nicht genau wie das geht. ich kann schon die Ergebnisse meine Table Control in Excel Übertragen.
Vielen Dank für euere Hilfe
Gisele
Anzeige
16.01.2013, 09:36 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2013 09:55 von GerdW.)
Zitat:Ich sende Befehle am Com Port und Bekomme Nachrichten zurück. Jetzt möchte ich diese Nachrichten automatisch bewerten, um zu wissen, ob den Testcase Pass oder Fail. Ich weiß nicht wie ist dies machen kann? welchen Möglickeiten gibt es im Labview, um diese Auswertung der Ergebnisse zu machen?
Du hast zwar dein (für meine Begriffe deutlich zu kompliziertes) VI angehangen, aber die wichtigsten Informationen fehlen: Wie sehen denn die Nachrichten aus, die du da auswerten willst? Woran willst du erkennen, ob "Pass" oder "Fail"?
Allgemeine Antwort:
Es gibt jede Menge String-Funktionen, mit denen man Strings auswerten kann...
Edit:
Ich habe deinen "Interpreter" mal verschlankt und werte nur die ersten 4 Daten-Bytes deiner Beispielbotschaft aus...
Hallo GerdW,
vielen Dank für deine Antwort und für die Verbesserung meinen Interpreter.
Zitat:Wie sehen denn die Nachrichten aus, die du da auswerten willst? Woran willst du erkennen, ob "Pass" oder "Fail"?
Die Nachrichten, die ich auswerten will, sind die Angehängtes Array (in Interpreter gennant), ich muss nicht alle Byte bewerten, besonders die Byte mit A1 11 00 0A. Die Byte, die mit A1 11 anfängt, sind die Antwort von meinem System und ich muss jedes mal prüfen, ob die richtige Antwort gekommen sind. Denn die 3ste byte diese cathegorie von 4 bytes ändern sich abhängig von der gesendeten byte. Manchmal ist dies 00, oder 02, oder 03.ich möchte diese Bewertung automatisch im Programm machen.
Beispiele: Ich schicke A0 10 06 0A und A0 20 09 0A im Write Puffer. Ich erwarte zurück A0 10 06 0A, A0 20 09 0A Plus A1 11 03 0A
ich will prüfen ob A1 11 03 0A richtig gekommen sind. Wenn Ja kann sich die Boolean Pass aktivieren.
Ich weiß nicht, ob ich meine Frage gut erklärt habe. Aber für jede frage stehe ich zur Verfügung.
Danke
Gisele
Hallo,
ich habe ein kleines Programm geschrieben für die Auswertung der Ergebnisse, aber funktioniert nicht so ganz.
Das VI funktioniert gut mit dem Array (Beispiel), aber mit Table Control von mein Hauptprogramm nicht.
Es erkennt die Zeichenkette A1 11 von dem Table control nicht. Aber Wenn ich den Draht eine Verbindung mit '' before Substring'' mache, bekomme ich ein anderes Ergebnis.
1) Warum das VI erkennt die Zeichenkette A1 11 von Table control nicht?
2)Da ich mehrere A1 11 in ,,Table Control'' bekomme, und die unterscheidet sich jeweils mit dem 3.Byte, wie kann man das Programm erweitern und zum Beispiel: sucht die Zeichenfolge, die mit A1 11 beginnt, dann schaut an der nächsten Byte.
für den 1.Fall, wenn 03 vorkommt dann ON, sonst OFF. für den 2. Fall, wenn 00 vorkommt dann ON, sonst OFF usw ....
d.h
für den 1.Fall, ist das boolean ON, wenn A0 11 03 0A vorkommt:
für den 2.Fall, ist das boolean ON, wenn A0 11 00 0A vorkommt
Kann Jemand mir vielleicht weiter helfen.
Vielen Dank im vorraus
Anhang das VI
Gisele
18.01.2013, 14:10 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2013 14:11 von GerdW.)
Zitat:1) Warum das VI erkennt die Zeichenkette A1 11 von Table control nicht?
Guck dir die Strings vom TableControl mal im "\-Code" an und vergleiche dies mit dem Suchstring (ebenfalls im \-Code), dann siehst du warum...
Merke: Whitespace kann mehr als nur ein Space sein!
Zitat:für den 1.Fall, ist das boolean ON, wenn A0 11 03 0A vorkommt:
für den 2.Fall, ist das boolean ON, wenn A0 11 00 0A vorkommt
Also ist in beiden Fällen das Boolean=ON und damit egal, was nach "A0 11" kommt?