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 

Empfangen von Messwerten µC



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!

08.10.2019, 08:14
Beitrag #1

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



Empfangen von Messwerten µC
Hallo Community,

Also erstmal danke das es dieses Forum gibt. Ihr gebt unerfahrenen Labview-Nutzern die möglichkeit sich an euch zu wenden und mit eurer Hilfe besser zu werden. Wirklich Respekt dafür.
Jetzt benötige ich auch eure Hilfe.
Ich soll Messwerte einlesen. Diese soll ich dann verarbeiten und eine Aktion auslösen. Genauer gesagt, ich rastere mit Lineartischen eine Probe ab, nehme Messwerte auf und LabView soll sich den besten Wert merken und dann auf die gespeicherte Position zurückfahren. Soweit so gut. Jetzt habe ich ein Dummy der Auswerteelektronik und probiere erstmal nur die Messwerte auszulesen. Die Elektronik ist Marke Eigenbau und mit einem selbstgeschrieben Programm auf einem µC versehen. Ich schaffe es den µC anzusprechen und von diesem Werte zuerhalten (eigentlich eine einfache Aufgabe, daher auch das VI recht einfach). Jetzt hat mir der Programmierer gesagt er hätte eine Testsoftware auf den µC geschrieben die auf einen Befehl mit dem senden von 1001 Floatwert reagiert. Ich sende Hex: 02 01 00 00 00 00 00 00 und kriege Hex: 02 01 00 00 0F A4 + 4004 Byte als0 1001 Floatwert + 2 Byte checksumme zurück. Das Problem ist nun, das es immer eine unterschiedliche Anzahl von Floatwerten sind, obwohl es laut Programmierer immer 1001 sein müssen. Frage ist ob ich einen Fehler mache. Jetzt überlege ich ob ich das Abfragen irgendwo zwischen drin mache, sprich der µC sendet und ich klinke mich irgendwo ein. Obwohl er ja auf ein sende Befehl reagiert. Oder der Programmierer hat was falsch gemacht. Wisst ihr evnetuell voran es liegen könnte? Habe mal ein Bild des VI angehängt, welches ich einmal ausführe.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.10.2019, 08:20 (Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2019 08:24 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Empfangen von Messwerten µC

Akzeptierte Lösung

Hallo JK,

Zitat:Das Problem ist nun, das es immer eine unterschiedliche Anzahl von Floatwerten sind, obwohl es laut Programmierer immer 1001 sein müssen. Frage ist ob ich einen Fehler mache.
Ja, du machst einen Fehler!
Du hast das TermChar aktiviert, welches bei "binärer" Datenübertragung deaktiviert sein muss!
(Tipp: Schau dir mal das letzte empfangene Byte an und vergleiche das mit deinem TermChar. Dann überlege, warum das wohl identisch ist…)

Zitat:Ich sende Hex: 02 01 00 00 00 00 00 00 und kriege Hex: 02 01 00 00 0F A4 + 4004 Byte als0 1001 Floatwert + 2 Byte checksumme zurück.
Algorithmus:
- Anfrage senden
- 6 Byte der Antwort lesen. Davon die letzten 4 Byte in ein I32 umwandeln: so bekommst du die Anzahl der noch zu lesenden Bytes (00000FA4h = 4004d)
- dann die so ermittelte Anzahl Bytes lesen, das ist dann anscheinend die Payload
- dann noch 2 Byte Checksumme lesen und alles prüfen…

Noch weitere Fehler:
Ein Bild statt eines VIs/Snippet hier anzuhängen.
Nicht AutoCleanup zu benutzen.
Die VISA-Referenz nicht korrekt zu verdrahten (zwischen allen VISA-Funktionen).
4200 Bytes lesen zu wollen, obwohl man nur 6+4004+2=4012 Bytes erwartet…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2019, 09:25
Beitrag #3

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



RE: Empfangen von Messwerten µC
Hallo GerdW,

Vielen Dank für deine Antwort. Der erste Teil hat wirklich super funktioniert. Und die Beschriebenen Fehler habe ich natürlich sofort behoben. Es ist wirklich besser wenn man das von Anfang anumsetzt. Danke für die Hinweise
Auf den zweiten Lösungsteils werde ich mich jetzt mal stoßen.

Grüße

Jens
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2019, 10:19
Beitrag #4

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



RE: Empfangen von Messwerten µC
Hallo Community,

ich hab gerade noch ein kleines Problem. Inzwischen habe ich es geschafft den Hex-String in 4 Byte große Teile zu zerlegen und die ersten 6-Bytes "abzuschneiden". Nun ist es so, das die 4-Byte Großen Teile Floating Point Zahl entsprechen. An der Umwandlung von 4-Byte Hex-String zu Floating Point scheitere ich gerade. Ich hab mal das VI und einen Screenshot angehängt. Ran gegangen bin ich mit der Typecast Funktion, aber es kommen zum Beispiel negative Werte vor, was laut Programmierer nicht der Fall sein darf. Auch sollen alle Werte zwischen 50 und 100 Liegen. Auch das ist bei mir nicht der Fall. Habt ihr eventuell eine Lösung parat?

Viele Grüße

Jens


Angehängte Datei(en) Thumbnail(s)
   

18.0 .vi  Messwerte Auswerteelektronik.vi (Größe: 20,07 KB / Downloads: 208)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2019, 14:49
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Empfangen von Messwerten µC

Akzeptierte Lösung

Hallo Jens,

einfach Strings deserialisieren:
   
Bei Bedarf die Bytereihenfolge über die Konstante anpassen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.10.2019, 12:34
Beitrag #6

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



RE: Empfangen von Messwerten µC
Hallo,

das hat wikrlich super geklappt. Jetzt habe ich bloß das Problem das ich immer bloß den letzten Wert aus der FOr-Schleife angezeigt kriege. Siehe Bild und VI. Hättet ihr dafür auch eine Lösung? Nur wenn ich den Tunnelmodus auf "Letzten Wert" stelle kriege eine Verbindung zur Deserialisierung hin.

Vielen Dank im Vorraus.

Grüße

Jens


Angehängte Datei(en) Thumbnail(s)
   

18.0 .vi  Messwerte Auswerteelektronik.vi (Größe: 21,46 KB / Downloads: 163)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.10.2019, 14:04 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2019 14:05 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Empfangen von Messwerten µC
Hallo Jens,

Zitat:Jetzt habe ich bloß das Problem das ich immer bloß den letzten Wert aus der FOr-Schleife angezeigt kriege. Siehe Bild und VI. Hättet ihr dafür auch eine Lösung? Nur wenn ich den Tunnelmodus auf "Letzten Wert" stelle kriege eine Verbindung zur Deserialisierung hin.
LabVIEW-Basics:
Wenn du ein Array mit Elementen abarbeiten willst, dann solltest du eine autoindizierende Schleife verwenden! (Es sei denn, die Funktion ist polymorph.)

Eigentlich weißt du doch, wie das funktioniert: mit dem TypeCast machst du doch genau das gleiche!?

Nachdem die LabVIEW-Basics geklärt sind: warum packst du das StringDeserialisieren nicht gleich in die FOR-Loop mit hinein, in der die Strings gesplittet werden? Hmm

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2019, 09:51
Beitrag #8

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



RE: Empfangen von Messwerten µC
Hallo Community,

das klappt wirklich super. Vielen Dank Gerd. natürlich wieder ein typischer Anfängerfehler. Jetzt klappt alles super und ich wollte die Anzahl der Bytes und die Anzahl der Schleifendurchläufe auf den später verwendeten Wert erhöhen. Also Bytes zum Teilen 4012 und 1001 Schleifendurchlauf um alle Werte zu erhalten. Klappt auch, bis auf die Einschränkung das der 200te Werte immer die Skala sprengt, also irgendwas über 2000 (kann auch sein das es vom Programmierer so vorgesehen ist) und das es Probleme in der Deserialisierung gibt. Beim Ausführen kommt immer die Meldung "Speicher- oder Datenstruktur fehlerhaft" drückt man mehrmals auf weiter geht es irgendwann. Kennt ihr den Fehler? Weil einfach ein paar mal quittieren und es geht. Denke das der Speicher voll ist oder so.

Vielen Dank und Viele Grüße

Jens


Angehängte Datei(en) Thumbnail(s)
   

18.0 .vi  Messwerte Auswerteelektronik.vi (Größe: 23,71 KB / Downloads: 147)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2019, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2019 09:55 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Empfangen von Messwerten µC
Hallo Jens,

kannst du dein VI bitte für LV2017 anhängen?
(Und bitte an die als default hinterlegten typischen Daten im "Antwort µC"-String denken!)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.10.2019, 10:27
Beitrag #10

JK87 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2019

LabView 2018
-
DE



RE: Empfangen von Messwerten µC
Hallo Gerd,

Hab es mal als 2017 gespeichert und auch so noch einiges geändert. Irgendwie taucht das Problem jetzt auch total willkürlich während des messens auf.
Was meinst du mit den default Daten aus dem String µC?

Viele Grüße

Jens


Angehängte Datei(en)
17.0 .vi  Messwerte Auswerteelektronik.vi (Größe: 15,73 KB / Downloads: 168)
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
  Problem beim daten empfangen mit Visa rudis 3 4.898 17.11.2021 12:54
Letzter Beitrag: GerdW
  RS232 Float Werte senden/empfangen mate Ria 1 4.371 07.11.2013 16:16
Letzter Beitrag: jg
  RS232 Unregelmäßige empfangen von daten exkluski 4 5.099 04.05.2012 10:23
Letzter Beitrag: exkluski
  Negative Zahl mit VISA empfangen sharth 2 4.243 30.11.2011 12:27
Letzter Beitrag: sharth
  Datei über GPIB Schnittstelle empfangen und speichern mrstrom 3 6.914 10.08.2011 13:24
Letzter Beitrag: mrstrom
  RS232 Daten empfangen zu langsam (Anfänger) christoph2 13 13.648 25.07.2010 12:12
Letzter Beitrag: christoph2

Gehe zu: