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 

Seriell Daten empfangen und auswerten



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!

02.02.2006, 16:16
Beitrag #1

bemecha Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Aug 2005



kA



Seriell Daten empfangen und auswerten
Hi Zusammen,

ich hab ein problem, das keine Lösung findet und ich sitz da schon seit Monaten dran und weiß echt nicht weiter. Will bald schon wieder auf C-Programmierung umsteigen um vielleicht das "Problem" besser in den Griff zu bekommen.

Ich hab einen Lasersensor, der über die Serielle Schnittstelle an mein Rechner den Messwert in 2 Bytes sendet. Laut Hersteller ist der Datenstrom kontinuierlich, d.h. ich kann es ständig abfragen. Die Auswertung des Messwertes ist ja kein Problem, aber irgendwie liegen nicht immer 2 Bytes am Eingang der seriellen Schnittstelle an oder zumindest hab ich den Eindruck, dass es so ist. Im gewissen Messbereich des Sensors wird richtig gemessen und sobald ich den Sensor bewege, also den Abstand zum Messobjekt ändere, oder versuche einen Wert an einer Stelle zu lesen, dann bricht die Auswertung zusammen und/oder LabVIEW zeigt irgendeinen komischen Wert an.

Also ich hab den Eindruck, dass es teilweise ein Byte falsch läuft bzw unvollständig und dieser verfälscht dann das ganze.


Tut mir leid für die komische Erklärung - ich wüßte sonst nicht wie ich es beschreiben soll

Komischerweise kann die Herstellersoftware aber alles Problemlos auswerten.

Einige Ingenieure haben mir schon gesagt, dass es sich nach einem Synchronisationsproblem anhört, aber mit "Synchronisation bei VISA" kann ich nix anfangen.

Habt Ihr eine Idee oder hatte jemand schon ein ähnliches Problem?


Danke für eure Mühe

Gruß
thomas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.02.2006, 16:30
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Seriell Daten empfangen und auswerten
Hallo Thomas,

ist das ein Laser-Sensor von Leuze oder baugleich von IPF ?

Der Abstandswert wird als High-Byte und Low-Byte gesendet, und Du mußt mit Shiftoperationen den Wert wieder zusammenbasteln ?
Da hab ich mal was dazu programmiert.
Schaus Dir einfach mal an.

Gruß
Andreas


Angehängte Datei(en)
Sonstige .vi  Sensor_serial.vi (Größe: 47,99 KB / Downloads: 374)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2006, 17:03
Beitrag #3

bemecha Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Aug 2005



kA



Seriell Daten empfangen und auswerten
Danke und ich ich muss schmunzeln, weil der Sensor wirklich von Leuze ist!

Ich schau gerade mal!


Danke vielmals!!!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2006, 17:13
Beitrag #4

bemecha Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Aug 2005



kA



Seriell Daten empfangen und auswerten
hi Andreas,


leider zickt der hier auch rum, beim ersten ausführen wurde der richtige Wert ausgegeben, aber bei weiteren ausführungen änderte sich der Wert zum 5Stelligen Wert oder springt zwischen vielen verschiedenen.

Läuft es bei dir problemlos? Ich hab einen ODSL8 Leuze - sensor.

Gruß
thomas


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2006, 17:24
Beitrag #5

bemecha Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Aug 2005



kA



Seriell Daten empfangen und auswerten
Hi Andreas,

Ich poste mal mein VI, vielleicht siehst du eine Verbesserung.

Also mein VI kann besser Werte erfassen als deins, aber ich hab auch gut rumgetrickst.

Gruß


Angehängte Datei(en)
Sonstige .vi  Lasersensor_Abstand.vi (Größe: 57,24 KB / Downloads: 278)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2006, 17:47
Beitrag #6

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Seriell Daten empfangen und auswerten
Ich schau's mir morgen mal an!

Gruß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.02.2006, 18:22
Beitrag #7

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Seriell Daten empfangen und auswerten
Hallo Thomas,

ich habe den ODS 96 im Einsatz gehabt. Bei dem hat des Programm jedoch tadellos funktioniert.
Anfangs hatte ich auch das Problem, daß von Zeit zu Zeit ein Byte nicht gelesen wurde. Die Abfolge Low-Byte, High-Byte, Low-Byte etc. war dann durcheinander.
Da das niederwertigste Bit anzeigt ob es sich um das High- (1) oder Low-Byte (0) handelt, habe ich da einfach nach diesem Bit verglichen und damit die Zuordnung der gelesenen Werte zu den Schiebeoperation durchgeführt.

Ich hab eben das Datenblatt durchgesehen, die Protokolle sind identisch.

Was mir bei Deinem Programm unklar ist, was der Vergleich kleiner 2847 und größer 8827 bedeutet.

Du parametrierst die serielle Schnittstelle mit 2 Stopbits. Das Protokoll beinhaltet nur 1 Stopbit.

Ich hab leider keinen Sensor mehr hier, sonst hätte ich Dein Programm mal damit laufen lassen.
Aber ganz ehrlich, wie die Hex-Operationen zum Ergebnis führen sollen, ist mir nicht klar. Du hast das c-Beispiel in der Doku bestimmt auch gelesen. Das kannst Du genau so mit LV nach vollziehen.

Gruß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2006, 16:50
Beitrag #8

bemecha Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Aug 2005



kA



Seriell Daten empfangen und auswerten
Hi Andreas,

das VI ist das erste VI was ich je in LabVIEW geschrieben hab. Das waren die ersten Versuche und damit hab ich es auch hinbekommen den Sensor auszulesen, nur mit einem Problem - dem unseren. sonst war mein Vorgehen, dass ich die 2 bytes splitte, das Low-byte logisch schiebe, die 2bytes wieder richtig zusammensetze und wieder logisch schiebe. So hab ich die "Erkennungs-Bits" für High- & Lowbyte entfernt und das Ergebnis ist der Abstand (ohne Komma). Die nachfolgende Subtraktion von 2500 (25,00mm), sowie die Abfrage auf auf größer 0 und kleiner 2000 (20,00mm) ist nur für das endgültige Anzeigen des Wertes für meine Anwendung gedacht.

Die Abfrage auf kleiner 2847 und größer 8827 ist der MEssbereich des Lasersensors genau 25,00mm bis 45,00mm in Hex-kodiert.

Bin noch ein Newbie und bei der Konfiguration der VISA-serielle Schnittstelle hab ich mir gedacht, dass man 2 Stopbits einstellen muss, weil im Protokoll stand, dass ein Start- & Stopbit verwendet werden.

Wie gesagt - es klappt eigentlich ganz gut außer dass in manchmal richtig komische werte entstehen. Ich hab mich jetzt nochmal gefragt, ob es vielleicht sein könnte ,dass die Fremdlichteinwirkung doch zu groß ist. Man das wäre echt dumm.

Gruß
thomas
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 6.238 17.11.2021 12:54
Letzter Beitrag: GerdW
  Empfangen von Messwerten µC JK87 12 16.931 04.11.2019 09:59
Letzter Beitrag: GerdW
  Seriell eingelesene Daten konvertieren -cosmo- 13 11.618 17.03.2017 16:36
Letzter Beitrag: jg
  Daten von Seriellen Port in While-Schleife auswerten Bensch 4 6.262 26.10.2015 11:28
Letzter Beitrag: Bensch
  VISA write Seriell el1-rh 12 81.707 17.12.2014 09:32
Letzter Beitrag: GerdW
  RS232 Float Werte senden/empfangen mate Ria 1 5.069 07.11.2013 16:16
Letzter Beitrag: jg

Gehe zu: