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 

Datenerfassung von Drehmomentsensor



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!

23.06.2014, 09:17
Beitrag #1

waja11 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jun 2014

LabVIEW 13.0
2014
DE_EN



Datenerfassung von Drehmomentsensor
Hallo Leute,

ich muss gerade in meinem Praxissemester einen Drehmomentsensor der Firma Lorenz (DR-2493) programmieren. Für die Datenerfassung nutze ich ein NI USB 6009 Board. Der Sensor hat ein Drehmomentsignal (Analog) und zwei Winkelsignale (Digital) die jeweils um 90° zueinander versetzt sind. Das heißt ich möchte auch die Drehrichtung des Moments feststellen können. An dem Board sind auf der Analogen Seite der Drehmoment angeschlossen, auf der digitalen Seite sind Winkel A und B angeschlossen, wobei Winkel A auch noch als Countersignal verwendet werden soll.
Bis jetzt bin ich soweit dass ich die digitalen Signale einlesen kann. In einem SUB VI versuche ich die Abfrage zu machen ob er Rechts oder links herum dreht. Der Counter soll dann jeweils eins hoch oder runter zählen. Und hier ist der Punkt an dem ich überhaupt nicht weiterweis. Für mich ist LabVIEW ziemlich neu, deshalb hoffe ich mir kann jemand helfen.

Danke schonmal,

Liebe Grüße
Janina


Angehängte Datei(en)
13.0 .vi  Digital Input.vi (Größe: 19,17 KB / Downloads: 141)

13.0 .vi  Abfrage Rechts-Links.vi (Größe: 19,33 KB / Downloads: 142)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.06.2014, 09:36 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2014 09:54 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenerfassung von Drehmomentsensor
Hallo waja,

die USB6009 ist für diese Aufgabe leider denkbar ungeeignet:
- sie hat nur einen einfachen Counter für ein einzelnes Signal
- die digitalen Eingänge sind "software-getimed" und dadurch auf ca. 100Hz Samplerate begrenzt…

Deshalb:
- Wenn deine AB-Pulse also relativ langsam kommen, könntest du sie auf zwei Digitaleingängen einlesen und selbst auswerten. (Nyquist-Shannon lässt grüßen!)
- Wenn die Pulse schneller takten und du auf diese Hardware festgelegt bist, könntest du sie an die Analoginputs anschließen und dort mit ca. 10kHz einlesen (48kS/s Summenabtastrate?). Dann musst du die Analogwerte wieder in ein Digitalsignal zurückrechnen und wie zuvor händisch auswerten…

Zu deinem "Abfrage"-VI:
- Wozu die Sequenzstruktur?
- Warum indizierst du die Elemente im Array mit den Funktionen "Array to Cluster" und "Unbundle Cluster"? Warum nicht einfach IndexArray?
- Wie willst du an den zwei Bits die Drehrichtung erkennen? Du brauchst dafür auch noch den vorherigen Zustand beider Kanäle!
Hast du dir mal in einem Lehrbuch oder auf Wikipedia durchgelesen, welche Logik hinter "Quadraturencodern" steckt?

Zum "DigitalInput"-VI:
- Wozu eine gestapelte Sequenzstruktur? Rechtsklick auf den Rahmen und "Ersetzen durch flache Sequenz"!
- Wozu dann eine flache Sequenz? Es wird alles durch den DATAFLOW geregelt! THINK DATAFLOW! Rechtsklick auf den Sequenzrahmen -> Sequenz entfernen!

Zitat:Der Counter soll dann jeweils eins hoch oder runter zählen.
Wie soll er das machen, wenn du ihm jedesmal nur die Auswahl von "+1" oder "-1" lässt?

Tipp:
Die Links in meiner Signatur beachten! (Gutgemeinter Ratschlag…)
Sich mit Schieberegistern ("shift register") und deren Anwendung in LabVIEW auseinandersetzen.

Lösungshinweis nach Lesen von Wikipedia:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 11:13
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Datenerfassung von Drehmomentsensor
Das Erfassen des Drehmoment-Signals sollte kein Problem sein. Das macht man "standard einfach" durch eine Erfassung der Spannung mit DAQmx, die entsprechenden Beispiele dazu gibt es im Example-Finder.

Den Encoder kannst du aber mit dem 6009 nicht mit einem DAQmx-Encoder-Task (ebenfalls im Example-Finder) nicht direkt erfassen, da der Counter auf der Messkarte nicht dafür ausgelegt ist, wie Gerd schon richtig angemerkt hat. Die DIOs auf dem 6009 können aber nicht kontinuierlich mit einem DAQmx-Task erfasst werden (hab jetzt nicht nachgeschaut, aber bin zumindest der festen Überzeugung Big Grin ...), darum würde ich dir empfehlen die A/B-Spur ebenfalls auf einen Analog-Eingang zu legen und die gemessenen Spannungen dann mit einem einfachen größer als (z.B. 3,2 Volt) Vergleich in ein digital-Signal umzuwandeln.

Dabei musst du aber beachten, dass die max. Abtast-Rate des 6009 auch recht begrenzt ist. Die max. Drehzahl mit der du das Encoder-Signal über die Analog-Eingänge noch auflösen kannst ermittelt sich wie folgt: Der Encoder der DR-2493 bringt 360 Pulse pro Umdrehung. Das macht bei einer Drehzahl von 3000 U/min: 50 x 360 = 18000 Pulse pro Sekunde, damit liegst du schon an der Grenze dessen was du mit den 48 kHz der AI's noch erfassen kannst (Faktor 2,66 ...). Schneller sollte die Welle auf keinen Fall drehen, sonst kommst du in den Bereich der Unter-Abtastung.

Um die digitalen Signale wieder in eine Positions-Information bzw. eine Drehzahl umzuwandeln schaust du dir am besten im Example-Finder mal die Beispiele zu dem Thema an wie auf einem FPGA mit dem 9401 ein Encoder eingelesen wird. Diese Art der Auswertung funktioniert auch mit den in digitale Signale umgewandelten analogen Spannungen.

Viele Grüße
cb

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 14:46
Beitrag #4

waja11 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jun 2014

LabVIEW 13.0
2014
DE_EN



RE: Datenerfassung von Drehmomentsensor
Hallo,

vielen Dank für die schnellen Antworten.
Ich habe mir überlegt, das ganze nochmal komplett anders anzugehen. Da die Signale um 90° versetzt sind muss es doch möglich sein die "Reihenfolge" der steigenden-fallenden Flanken zählen zu können.

Folgende Logik habe ich versucht in LabView zu implementieren:

case A rising: wenn B rising, dann Counter +1, wenn B falling dann Counter -1
case B rising: wenn A rising, dann Counter -1, wenn A falling, dann Counter +1
case A falling: wenn B rising, dann Counter -1, wenn B falling, dann Counter +1
case B falling: wenn A rising, dann Counter +1, wenn A falling, dann Counter -1

Ich bin ratlos was meine Programmierung betrifft und wie ich diese Logik noch anderst umsetzten kann.

Ich wäre euch sehr dankbar wenn ihr mir nochmal helfen könnt. Mir fehlt da irgendwo der richtige Ansatz.
Habe nochmal die zwei neues VIs angehängt.

Danke!


Angehängte Datei(en)
13.0 .vi  Abfrage Rechts-Links.vi (Größe: 18,25 KB / Downloads: 125)

13.0 .vi  Digital Input.vi (Größe: 19,17 KB / Downloads: 124)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 14:56 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2014 14:58 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenerfassung von Drehmomentsensor
Hallo waja,

hast du irgendeinen meiner Hinweise oben wahrgenommen und verstanden?

- Was hast du in deinem Abfrage-VI vor?
- Was sind das für Cases "Af" (...), wenn du nur einen boolschen Wert an den Selektor anschließt?
- Sagt dir der Begriff Reentrancy etwas? Hast du die LabVIEW-Hilfe dazu gelesen? Deine PtByPt-Funktionen nutzen dies - während du das Konzept dahinter und dessen Auswirkungen ignorierst!

Zitat:Folgende Logik habe ich versucht in LabView zu implementieren:

case A rising: wenn B rising, dann Counter +1, wenn B falling dann Counter -1
case B rising: wenn A rising, dann Counter -1, wenn A falling, dann Counter +1
case A falling: wenn B rising, dann Counter -1, wenn B falling, dann Counter +1
case B falling: wenn A rising, dann Counter +1, wenn A falling, dann Counter -1
Die Logik sollte (zumindest teilweise) sein:
Code:
IF RisingEdge(A) THEN
  IF B=TRUE
    THEN counter--
    ELSE counter++
  ENDIF
ENDIF
Als Counter nimmst du einfach einen Input und Output deines subVIs, gespeichert wird er in einem Schieberegister deines MainVIs. Die PtByPt-Zähler werden hier (aufgrund ihrer Reentrancy) falsch angewendet!

THINK DATAFLOW!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 15:06
Beitrag #6

waja11 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jun 2014

LabVIEW 13.0
2014
DE_EN



RE: Datenerfassung von Drehmomentsensor
Hallo GerdW,

ja ich wollte nun die Idee ausprobieren, dass ich die zwei Signale des Winkels beide Digital einlese.
In dem Abfrage VI möchte ich die Drehrichtung bestimmen mit Hilfe der X1 Codierung (siehe angefügtes Bild). Wenn der Sensor recht herum dreht kommt zuerst die steigende Flanke von A und anschließend die von B. Wenn er Links herum dreht dann kommt erst die steigende Flanke von B und dann von A. So soll dann die Richtung bestimmt werden und zusätzlich soll der Counter laufen. Ist das nicht möglich?
Ich bin ziemlich neu in LabVIEW und mir fehlt hier echt total der Ansatz wie ich das programmieren soll.
Sämtliche Beispiele habe ich mir auch schon angeschaut.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.06.2014, 15:11 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2014 15:12 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenerfassung von Drehmomentsensor
Hallo waja,

Zitat:Wenn der Sensor recht herum dreht kommt zuerst die steigende Flanke von A und anschließend die von B.
Das Grundprinzip ist mir bekannt, seit ich vor ewigen Zeiten die erste Computermaus zerlegt hatte…
Was du nicht bemerkt hast: wenn du die steigende Flanke von A detektierst, musst du den aktuellen Zustand von B betrachten - und nicht etwa auch auf eine Flanke hin untersuchen! Du betrachtest deine Signale zu zeitdiskreten Zeitpunkten und nicht etwa kontinuierlich! In deinem letzten Bild entspricht dies den gestrichelten Linien: du betrachtest die Signale nur im Zeitpunkt der Flanken des A-Signals!

Dies hatte ich im PseudoCode oben skizziert…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 15:20
Beitrag #8

waja11 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jun 2014

LabVIEW 13.0
2014
DE_EN



RE: Datenerfassung von Drehmomentsensor
Ich verstehe nicht wie ich die Flanken kontinuierlich betrachten kann. Was genau macht der Pfeil mit dem Stern darunter in deinem Pseudo Code? Und wo bekomme ich das her?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 15:55 (Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2014 16:01 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenerfassung von Drehmomentsensor
Hallo waja,

Zitat:Was genau macht der Pfeil mit dem Stern darunter in deinem Pseudo Code?
- Das ist eine FeedbackNode (Rückkopplungsknoten). Der speichert wie ein ShiftRegister Werte vom verherigen Aufruf - einfach mal die LabVIEW-Hilfe lesen…
- Das war kein PseudoCode, das war ein LabVIEW-Snippet. Auch hierzu mal die Hilfe lesen…

Hast du schon mal die Links in meiner Signatur durchgearbeitet? Alle Links und diese möglichst vollständig?
Deine Frage zielt auf Grundlagenwissen ab und das setze ich voraus, bevor man mit produktiver Arbeit beginnen will…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.06.2014, 15:59
Beitrag #10

waja11 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jun 2014

LabVIEW 13.0
2014
DE_EN



RE: Datenerfassung von Drehmomentsensor
Ok, vielen Dank. Ich werde die ganzen Hilfen durcharbeiten und dann weitermachen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 5.632 24.06.2016 14:49
Letzter Beitrag: jg
  Drehmomentsensor Agenth 28 14.183 15.06.2015 14:38
Letzter Beitrag: cb

Gehe zu: