LabVIEWForum.de - TTL Signal mit NI 6251 einlesen

LabVIEWForum.de

Normale Version: TTL Signal mit NI 6251 einlesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Kurz zu meinem Problem:
Ich verwende einen Frequenzumrichter, welcher mir die aktuelle Rotorlage eines Servomotors als TTL Signal ausgibt: A+ (Zähler) B+ (Richtung) und R+ ( Index )
Messystem: 1 poliger Resolver -> 1024 Inkremente/Umdrehung = 1024 Rechtecksignale/Umdrehung

Dieses Signal wollte ich nun über eine NI 6251 Messkarte einlesen:
Der Zähler wurde auf den PIN 83 gelegt
Die Richtung auf PIN 85 und
der Index auf Pin 83

Anschließend habe ich folgendes Beispielprojekt in Labview verwendet
"Count Digital events with DAQMX"
welches man auch unter folgenden Link sehen kann:

https://decibel.ni.com/content/docs/DOC-11412

Die DAQMX Datei im Beispielprojekt habe ich folgendermaßen abgeändert:

Auf "CI CNT Edges" gestellt ( Flankenzählung )
External controlled ( Da ich den TTL - Pegel vom Umrichter "gesendet" bekomme)
und auf steigende Flanke gestellt.

Nun ist folgendes Problem aufgetreten:

Sobald ich das Programm starte beginnt der Zähler hochzulaufen, ohne das hierbei ein Rechtecksignal am Zähleingang anliegt.
-> Motor steht still, daher werden keine Rechtecksignale vom Umrichter an die Messkarte übertragen.

Habe mir aus diesem Grund das Signal über ein Oszi angsehen und bemerkt, dass sich im Stillstand des Motors Spannungsspitzen von etwa 2V auf der Signalleitung des Zählers ausbilden.
Würde mich interessieren, ob das der Grund sein könnte, warum dieser Zähler auch ohne steigende Flanke eines Rechteckssignals hochzählt und wie man dieses Problem
am besten lösen kann?


Vielen Dank schon einmal im Voraus!

Mit freundlichen Grüßen
Hallo Stefan,

Vorgehensweise:
- MAX öffnen
- in MAX neuen DAQmxTask anlegen
- für deine Anwendung mit einem ABZ-Encoder: Zähler für "QuadraturEncoder"
- wenn du das gemacht hast, zeigt dir MAX auch gleich an, wo du welchen Draht anschließen musst
- jetzt kannst du diesen Task im LabVIEW verwenden

1. alternativ kannst du dir auch einen DAQAssi nehmen, dort alles konfigurieren und das dann in ein "normales" VI umwandeln…
2. alternativ findest du bestimmt im Beispielfinder ein passendes Beispiel…
(08.05.2015 00:08 )stefan1312 schrieb: [ -> ]Habe mir aus diesem Grund das Signal über ein Oszi angsehen und bemerkt, dass sich im Stillstand des Motors Spannungsspitzen von etwa 2V auf der Signalleitung des Zählers ausbilden.
Würde mich interessieren, ob das der Grund sein könnte, warum dieser Zähler auch ohne steigende Flanke eines Rechteckssignals hochzählt
Auf jeden Fall ist das der Grund! Laut Specs wird ab 2.2V ein DI-Eingang als HIGH gewertet - und wenn du am Oszi ca. 2 V siehst..., naja.

Mögliche Lösung: s. Gerds Vorschlag mit dem Quadratur-Encoder.

Gruß, Jens
Hallo!

Zunächst einmal vielen Dank für diese schnelle Antwort!

Mir ist leider nicht ganz klar, was nun genau der Unterschied zwischen "Zähler für Quadradursignal" und dem Beispielprojekt "Count Digital Events with DAQMX"
in welchen man steigende Flanken auslesen kann ist?

weil die steigende Flanke bei den 2,2V ist ja Karten spezifisch?
Das würde ja bedeuten das ich das gleiche Problem auch beim "Zähler für Quadradursignal" habe?

mfg
Hallo Stefan,

Zitat:Mir ist leider nicht ganz klar, was nun genau der Unterschied zwischen "Zähler für Quadradursignal" und dem Beispielprojekt "Count Digital Events with DAQMX"
Wikipedia erklärt sehr schön den Unterschied zwischen einfachen Flankenzählern und Quadraturencodern.
Und im DAQmx sind eben Zähler für beide Varianten vorbereitet!

Der Flankenzähler zählt eben jede Flanke, der Quadraturencoder kann jedoch auch die Drehrichtung verarbeiten -dafür gibt es ja die A&B-Spur…

Zitat:Das würde ja bedeuten das ich das gleiche Problem auch beim "Zähler für Quadradursignal" habe?
Ja.
Es gibt eine TTL-Spezifikation - und die musst du mit deinem Signal schon sicherstellen. Ansonsten wird JEDE Hardware versagen, die du mit deinem unsauberen Rauschen beaufschlagst!
Referenz-URLs