09.06.2009, 08:26
Beitrag #1
|
icebox
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Mar 2009
8.6.1
2009
en
78333
Deutschland
|
Grundaufbau Programm für Messwerterfassung
Hallo Zusammen,
ich hätte da folgende Frage bezüglich der Programmierung in meiner Abschlussarbeit:
Bei meinem Aufbau wird mittels eines Schrittmotors ein Bügel gedreht (Schrittmotorkarte), an dem mehrere spannungsliefernde Sensoren (0-5V) angebracht sind. Diese würde ich gerne mit einer DAQ-Karte einlesen. Die Werte sollten zu bestimmten Positionen des Bügels abgespeichert werden (hier würde sich anbieten, die Werte in ein Array abzuspeichern, oder?). Die Vergleichswerte, für die Auswertung, werden aus einer Exel-Tabelle in ein Array einlesen, das klappt auch schon soweit, dank eurer Hilfe :-)
Nun aber zum Messvorgang: Was würde sich hier anbieten:
-den Bügel schrittweise auf die gewünschten Positionen steuern, dann messen, dann weiterfahren zur nächsten Position usw... (also das ganze in Schritte aufteilen.. der Messbereich beträgt ca. 200° und müsste dann so in 1-5°-Schritten verfahren, um eine einigermaßen "schöne" Kurve zu erhalten... (soll als Graphen angezeigt werden..)
-den Bügel kontinuierlich bewegen, und während der stetigen Fahrt die Messerte aufzeichnen.. somit hätte ich eine kontinuierliche Bewegung, ohne dauernd stoppen und beschleunigen zu müssen... (die Zeitkonstante meiner Sensoren werde ich hierbei natürlich berücksichtigen und ist nicht das Problem...), aber wie müsste dann mein Programm strukturiert sein, um einen solchen Messvorgang zu ermöglichen, damit die Messwerte auch zur richtigen Position eingelesen werden? Die Werte sollten auf alle Fälle in einem Array sein, um diese dann mit den Sollwerten auswerten zu können.
Vielleicht habt ihr ein paar Tipps und Ideen, wie sich hier anbieten würde, und wie hierzu die grobe Programmstruktur aussehen sollte... (bin leider erst LabVIEW-Neuling, aber grade deswegen sind ja Eure Tipps so wertvoll)
Vielen Dank für Eure Ideen :-)
Viele Grüße,
Martin
|
|
|
09.06.2009, 10:10
(Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2009 10:12 von icebox.)
Beitrag #3
|
icebox
LVF-Grünschnabel
Beiträge: 23
Registriert seit: Mar 2009
8.6.1
2009
en
78333
Deutschland
|
Grundaufbau Programm für Messwerterfassung
Hallo Joachim,
Danke für die schnelle Antwort und den interessanten Ansatz.
Als Schrittmotorkarte kommt die NI-PCI-7342 (für zwei Achsen) zum Einsatz.
An diese Karte kommt das UMI-7772 und dann die Endstufe P70530, an welcher der Schrittmotor des Drehtisches angeschlossen wird.
Du fragst, wie schnell es sein soll.. naja, so schnell wie möglich :-) .. der Ansatz mit der kontinuierlichen Messfahrt wäre sicherlich die schönere Lösung, oder würde das Probleme mit der Synchronisation zwischen Messung und Bewegung bringen? Ansonsten könnte ich so doch beispielsweise bei einer Schrittweite von einem Grad (umgerechnet in die entsprechenden Takte und das dann als Trigger für die Messung verwenden) eine Messung machen..
Würde sich als Grundaufbau für das Programm eine "state-machine" eignen, da ich ja praktisch eine Ablaufsteuerung machen muss:
-Programm starten
-Excel-Werte einlesen
-Referenzfahrt
-Messfahrt
-zurückfahren
-Auswerten
Beispielsweise müssen ja während der Messfahrt noch die Endschalter, Not-Stop etc berücksichtigt werden, wäre daher ein Zustandsautomat sinnvoll?
Das Programm sollte schön übersichtlich und sauber aufgebaut werden, drum meine Anfrage...
Viele Grüße,
Martin
|
|
|
09.06.2009, 11:34
Beitrag #4
|
JoBlau
LVF-Grünschnabel
Beiträge: 25
Registriert seit: Sep 2008
8.6, 2009 SP3
2008
DE_EN
66...
Deutschland
|
Grundaufbau Programm für Messwerterfassung
Hallo Martin!
Das 70530 ist ja ein sehr mächtiges und recht kleveres Teil. Ich habe mir nur mal kurz die Doku angesehen und ich glaube, dass es mit dem Teil alleine schon gehen sollte.
Synchronisierte Messdatenaufnahme ist immer die bessere (sichere) Lösung. Besonders wenn so viele Prozesse noch nebenher laufen.
Deine Endstufe hat die Möglichkeit des Jog-Betriebes. Man programmiert eine Jog-Entfernung ein. Dann gibt man nur noch auf den Jog+ oder Jog- einen Puls, und der Motor fährt entsprechend. Der Ausgang wird auf Motor Move konfiguriert. Sobald der Motor steht ist der Ausgang low und der Messwert wird aufgenommen. Diese Methode wäre sicher, aber langsam, denn wir machen ein Stopp und Go, und Massen sind nun mal träge.
Sinnvoller wäre jeden Fall den Motor durchlaufen zu lassen. Ich habe bis jetzt nur noch nicht so genau erkannt wo man ein Synchronisationssignal abgreifen kann.
Wenn Du einfach eine Messwertaufnahme als f(t) machst, musst Du Dir darüber im klaren sein, dass Motorsteuerungen *fast immer Beschleunigungs- und Verzögerungsrampen fahren, deshalb die Position als f(t) im Normalfall nicht mit Dreisatz zu berechnen ist.
End-, Not-Aus- ... alles was die Anlagensicherheit betrifft muss unbedingt in harter Ware ausgeführt werden!
*Die Steuerung hat eine Startgeschwindigkeit einprogrammiert. Das ist eine Geschwindigkeit, bei der das System schlupffrei anläuft. Wenn also Fahrgeschwindigkeit<=Startgeschwindigkeit gibts keine Beschleunigung.
Gruß
Joachim
|
|
|
| |