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 

Einlesen einer unbekannten seriellen Schnittstelle



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!

14.04.2016, 19:54
Beitrag #1

fritenschmiede Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Apr 2016

14
2015
EN



Einlesen einer unbekannten seriellen Schnittstelle
Hallo zusammen,

ich bin neu hier und hoffe Ihr könnt mir weiterhelfen. Vor kurzem habe ich mir ein "myrio" gekauft, um in Labview einzusteigen - ich verwende Labview 14.

Ich wollt nun mal ein kleines Projekt starten, bei dem ich einen digitalen Messschieber über seine serielle Schnittstell auslese und erstmal in Labview den Wert in "mm" darstelle. Leider scheitere ich daran das Signal richtig einzulesen und meine Ausgabe zeigt mir wirres Zeug in "mm" an.
Das Signal des digitalen Messschiebers besteht aus 24bit: einem Clock Signal das ich an das "myrio" an Connector A PIN11 angeschlossen habe und dem Datenpin der ebenfalls an Connector A aber PIN 13 hängt. Ich hab das Signal mal mit dem Oszi dargestellt und angehängt.
Auch mein VI möchte ich euch nicht vorenthalten, mit dem ich versuche das Signal auszuwerten. Ich versuche mal zu beschreiben wie ich mir das vorgestellt habe:
1. Über die Initialisierung versuche ich das Startbit zufinden, in dem ich die längere Pausenzeit über eine Zeitmessung identifiziere.
2. In der Hauptschleife möchte ich wissen, wann der Clockpegel high ist. Wenn dieser high ist, sollen die Werte des Datenpins über ein for-Schleife die 24 mal durchlaufen wird und ein Schieberegister ausgegeben werden. Als Resultat bekomme ich eine 24 Bit Binärzahl, die ich dann in einen Wert der Einheit "mm" umrechnen kann.

Hoffentlich konnte ich euch meine Aufgabenstellung nahebringen und ich bin mit meinem Ansatz nicht ganz auf dem Holzweg. Ich freu mich auf jedenfall auf konstruktive Vorschläge und Lösungsansätze.


Angehängte Datei(en) Thumbnail(s)
   

14.0 .vi  Main.vi (Größe: 153,86 KB / Downloads: 77)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.04.2016, 20:31 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2016 20:38 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.253
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: Einlesen einer unbekannten seriellen Schnittstelle
Hallo friten,

Zitat:meine Ausgabe zeigt mir wirres Zeug in "mm" an.
Dein Schieberegister, welches die Bits einsammelt, ist nicht initialisiert. Spätestens nach dem ersten Durchlauf des VI wird es immer "wirres" Zeug ausgeben!
Warum überhaupt so kompliziert? Warum nicht einfach die Bits einsammeln:
   
Wie kommst du auf einen 24bit-Wert, wenn du nur 23 bit einliest?

Warum zeigst du so ziemlich alle Werte im falschen Datentyp an? (z.B. die Zeitangaben mit I16-Indicatoren oder die Loop-Iterationen)
Warum befindet sich in der "Main loop" eine weitere While-Loop?

Für den Anfang eher akademisch: Warum verwendest du überhaupt so viele Anzeigen in deinem VI? Dein myRIO arbeitet doch "headless"!

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

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.469
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Einlesen einer unbekannten seriellen Schnittstelle
Alles schön und gut, aber so wirst du IMHO nicht zum Ziel kommen. Im Software-Takt im RT-Teil des myRIO die DIs einlesen bei einer Länge von ca. 250µs pro Bit, da solltest du dich gleich mal mit FPGA-Programmierung des myRIO beschäftigen.

Gruß, Jens

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2016, 18:03
Beitrag #4

fritenschmiede Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Apr 2016

14
2015
EN



RE: Einlesen einer unbekannten seriellen Schnittstelle
Hallo,
vielen Dank für die Beiträge Smile

@GerdW
Vielen Dank für den Input, auch wenn ich jetzt fast mehr Fragen habe als vorher Big Grin
- Wenn ich das Schieberegister initialisiere, würde mir das doch nur für den allerersten Durchlauf etwas bringen oder bin ich da falsch?
- Die Idee mit den Bits einsammeln hatte ich auch, allerdings hatte ich hier dann das Problem, dass sich die Bitlänge 1 bis 24 Bit verändert hat. Ich durchlaufe die Schleife 23mal da ich dachte das 0 auch als Durchlauf zählt - ist das bei Labview nicht so?
- Mit den richtigen Datentypen bin ich noch in der Findungsphase, wie eingangs erwähnt ist das für mich noch Neuland.
- Die While Loop in der Main Loop war ein Überbleibsel aus einem vorhergehenden Versuch, die ich vergessen hatte zu entfernen, danke für den Hinweis.
- Die Anzeigen wollte ich eigentlich nur zum veranschaulichen nutzen Smile

@jg
Ja, das mit dem FPGA hab ich mir schonmal angeschaut, wobei ich hier noch garnicht durchsteige. Deswegen dachte ich, ich versuche es erst einmal so.

Beste Grüße,
Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: