Einlesen einer unbekannten seriellen Schnittstelle - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW RealTime (/Forum-LabVIEW-RealTime) +---- Thema: Einlesen einer unbekannten seriellen Schnittstelle (/Thread-Einlesen-einer-unbekannten-seriellen-Schnittstelle) |
Einlesen einer unbekannten seriellen Schnittstelle - fritenschmiede - 14.04.2016 19:54 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. RE: Einlesen einer unbekannten seriellen Schnittstelle - GerdW - 14.04.2016 20:31 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: [attachment=55653] 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"! RE: Einlesen einer unbekannten seriellen Schnittstelle - jg - 15.04.2016 10:36 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 RE: Einlesen einer unbekannten seriellen Schnittstelle - fritenschmiede - 16.04.2016 18:03 Hallo, vielen Dank für die Beiträge @GerdW Vielen Dank für den Input, auch wenn ich jetzt fast mehr Fragen habe als vorher - 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 @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 |