LabVIEWForum.de - Motorsteuerung (VCP) Erfassung Geschwindigkeit und Position

LabVIEWForum.de

Normale Version: Motorsteuerung (VCP) Erfassung Geschwindigkeit und Position
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich bin echt noch ein Neuling in LabView und probiere mich an einer Motorsteuerung über ein DS301 CanOpen-Standard.
Ich nutze momentan einen PD6-C8..E09 der Firma NanoTec. Angeschlossen ist er per USB und als VirtualComport konfiguriert. Soweit so gut funktioniert die Steuerung der Weges. Also ich kann einen bestimmten Weg fahren mit einer vergebenen Geschwindigkeit, die der interne Controller selber beschleunigt / abbremst.
Nun möchte ich per Read.Vi von NanoTec und OpenCan die Daten auslesen, leider klappt das nicht so wie gewollt.

Vielleicht habt Ihr ja eine Hilfestellung für mich!

Grüße
Jan
Hallo Jan,

6064.00 ist eine Int32 Zahl und damit 4 Byte lang, du fragst/ließt aber nur 1 Byte. Da dürftest du eig. direkt nen Fehler erhalten.

Kurz zu deinem VI: Es ist besser die Zugriffe auf die Serielle-Schnittstelle hinter einander (serielle) auszuführen, mit deinem aktuellen Aufbau wird aber gleichzeitig (parallel) darauf zu gegeriffen wird. Schau dir dazu einfach mal Beispiele von Messgerätetreibern oder den DAQmx Sachen an, da siehst du den richtigen Umgang mit HW. Allgemein solltest du dir auch nochmal die Grundlagen anschauen, Datenfluss sollte nicht von Links nach Rechts laufen.

Gruß Max
Hallo Jan,

neben den Tipps von Max:
- Es ist extrem störend, wenn simple VIs ihr Frontpanel und Blockdiagramm bildschirmfüllend öffnen - obwohl kaum etwas zu sehen ist. Bitte vernünftige Fenstergrößen verwenden.
- Dein MainVI ruft 3 subVIs auf, die alle das exakt gleiche Icon haben. Wie soll man sich da zurechtfinden? Bitte auch hübsche Icons erstellen…
- Dein Read-VI öffnet und schließt den COM-Port bei jedem Aufruf. Ist das nötig oder überhaupt sinnvoll? Was sagen die anderen subVIs dazu, wenn der verwendete COM-Port geschlossen wird? Dein ShearDisplacement-VI macht das auch: sowas ist nicht sinnvoll!
- Der Cluster für das Write.vi sollte unbedingt typdefiniert werden! Dann könntest du auch mit (Un)BundleByName arbeiten: viel besser selbst-dokumentierend!
- String-Konstanten, die nicht den Standard-Anzeigemodus verwenden, sollten immer den Anzeigemodus sichtbar haben! (Dies gilt auch für numerische Konstanten/Controls/Indicators.)
- Ich weiß ja nicht, wer diese Read/Write-VIs erstellt hat, aber Index/Subindex bei einem CANopen-SDO sollten numerische Werte anstatt Strings sein…
- Es gibt auch eine ReverseString-Funktion, da muss man einen String nicht erst in ein U8-Array umwandeln (und zurück), um ihn umzudrehen…
- Im ShearDisplacement-VI solltest du statt dieser riesigen Sequenz eine FOR-Loop verwenden, die ein Array of Clusters abarbeitet…

Zu deiner Message allgemein:
- Wenn du schon ein Archiv mit VIs anhängst, dann pack doch bitte ALLE VIs in dieses Archiv. Warum müssen wir 4 Downloads (für 7 VIs) durchführen, wenn auch ein Download ausreichen würde?
- Und bitte immer ZIP verwenden, damit kann jeder (halbwegs) moderne Rechner von Haus aus umgehen. RAR ist proprietäre Software, gern auch kostenpflichtig!

P.S.: Trotz allem herzlich willkommen im LabVIEW-Forum! Big Grin
Referenz-URLs