LabVIEWForum.de
Schrittmotoransteuerung mit Hilfe von CSV.Datei - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+----- Forum: Excel (/Forum-Excel)
+----- Thema: Schrittmotoransteuerung mit Hilfe von CSV.Datei (/Thread-Schrittmotoransteuerung-mit-Hilfe-von-CSV-Datei)

Seiten: 1 2 3


Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 06.03.2014 09:43

Hallo,

ich bin noch ziemlich unerfahren mit dem Umgang mit LabVIEW 2013 und versuche im Moment an eine Automatisierung für eine Lichtmessstrecke zu realisieren.

Im Groben sieht es so aus, dass ich zwei Schrittmotoren (ZABER T-RS60A) habe, die ich mit Winkelwerten ansteuern möchte. Die Werte möchte aus einer csv.datei auslesen, dann die Lichtmessung durchführen (externes Programm) und die Ergebnisse in eine oder dieselbe csv.datei schreiben.

Durch dieses Forum bin ich auch schon ziemlich weit gekommen. Echt super! Top1
Leider klappt das Auslesen noch nicht so richtig.
Wie kann ich eine Zeile einzeln auslesen, Wert alpha an Motor 1 und Wert beta an Motor 2 schicken, messen und zum Schluss protokollieren und das dann Zeile für Zeile?
Mein Updatebutton funktioniert leider auch noch nicht so recht. Er reagiert immer erst beim zweiten Mal...

[attachment=48849] lv13_img

Danke

MfG olsenb


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 06.03.2014 14:37

Also ich hab mir das so gedacht, dass ich z.B. eine csv.datei mit 107 Werten für alpha und beta einlese.
Die ersten Werte in Zeile 1 wären 90° für Alpha und 45° für Beta. Diese beiden Werte möchte ich nun an die Motoren per RS232 schicken, warten bis sie die Werte erreicht haben und dann die Messung durchführen. Wenn Messung erfolgreich ->nächste Zeile usw. Aber die csv. datei kann auch mal nur 40 Werte haben.

Wie realisiere ich das, mit array-größe?


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - GerdW - 06.03.2014 16:27

Hallo olsenb,

Zitat:Wie realisiere ich das, mit array-größe?
Nein, das macht man mit einer (FOR-)Loop und Autoindizierung!
Man liest die Daten als 2D-Array ein, führt dieses an die Loop und lässt die standardmäßige Autoindizierung des Inputtunnels aktiv. Dann hat man in der Schleife die Werte zeilenweise zur Verfügung und kann den Rest des Programm erledigen: "Werte ausgeben" und "warten, bis Position erreicht"!


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 07.03.2014 12:22

Hallo GerdW,

vielen Dank für deine AW.

Meinst du das so?

[attachment=48867]

MfG
Olli


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - GerdW - 07.03.2014 12:41

Hallo Olli,

na ja…
In der Loop musst du natürlich noch deine ganzen anderen Programmschritte unterbringen!

Ansonsten:
- Wenn du ein 1D-Array per Autoindizierung abarbeiten lässt, musst du den "N"-Anschluß der FOR-Loop nicht verdrahten…
- Wenn du in der FOR-Loop immer den Wert aus der zweiten Spalte deines 2D-Arrays haben willst, solltest du die Spalte vor der Loop indizieren und ebenfalls per Autoindizierung in der Schleife verarbeiten…
- Rote Punkte an Anschlüssen haben einen Namen ("Coercion Dot") und eine Bedeutung. Wenn möglich/sinnvoll, sollte man diese Punkte vermeiden…


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 07.03.2014 15:00

naja, so richtig klick hats leider noch nicht gemacht ...


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 10.03.2014 12:26

Hallo zurück,

ich hab nochmal ein bisschen drüber nachgedacht. Denknach

Aber eins leuchtet mir noch nicht so richtig ein: Wie bekomme ich immer zu dem jeweiligen Device (2 oder 4) den Winkel und danach dann den nächsten Winkel usw.?

Hier mal mein Ansatz:

[attachment=48873]
lv13_img


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - GerdW - 10.03.2014 13:07

Hallo olsen,

zu deinem Ansatz:
wozu hier eine Sequenz? Wozu eine FOR-Loop?
So geht es auch:
[attachment=48878]
Zitat:Wie bekomme ich immer zu dem jeweiligen Device (2 oder 4) den Winkel und danach dann den nächsten Winkel usw.?
"2" oder "4" scheint ja immer eine Spalte in deiner Tabelle zu kennzeichnen.
Du musst dir also nur die richtigen Spalten indizieren und deren Inhalt dann per autoindizierender FOR-Loop auslesen! Siehe Bild…


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - olsenb - 10.03.2014 14:04

Hallo GerdW,

vielen Dank für die sehr schnelle Antwort. Big Grin

Funktioniert bei mir noch nicht ganz.

Die 2 und die 4 sind die Device-IDs der Servos. Die benötige ich zur Ansteuerung der Motoren.
Also die 2 bzw. die 4 muss ich mir mit dem dazugehörigen Winkelwert rausfiltern und an die Servos übertragen.

Erster Schrittmotor: 2 und der Winkelwert z.B. 15°
Zweiter Schrittmotor: 4 und der Winkelwert z.B. 30°

Warum sollte ich die Spaltenheader entfernen? Die gehören doch zu meiner Auswahl, wieviele Messpunkte ich habe.

[attachment=48884]

MfG
olsenb


RE: Schrittmotoransteuerung mit Hilfe von CSV.Datei - GerdW - 10.03.2014 15:31

Hallo olsen,

Zitat:Funktioniert bei mir noch nicht ganz.
Hmm
Was funktioniert, was nicht? Woran hapert es? Was willst du anders haben?
Das Bild oben ist nur ein Beispiel, das die grobe Richtung vorgibt. Ich habe nicht gesagt, dass es genau so gut funktionieren wird!

Zitat:Warum sollte ich die Spaltenheader entfernen? Die gehören doch zu meiner Auswahl, wieviele Messpunkte ich habe.
Du solltest die Spaltenheader an der gezeigten Stelle im Bild oben entfernen, da ja wohl sowohl die "DINxxx"-Angabe als auch deine "2"/"4" nicht einen Winkel angeben, sondern eben nur Verwaltungs-Header darstellen. Die FOR-Loop im Bild soll die Winkel ausgeben…
Analog in deinem letzten Bild: du willst die Werte in den Zellen A3:B23 ausgeben, aber wohl nicht die (Header-)Werte in A1:B2…