TechTipp: Dynamische analoge Signale erfassen mit MCC

Ziel
Wir zeigen, wie dynamische analoge Signale mit MCC Messgeräten und auf unterschiedlichen Software-Plattformen erfasst werden können.

Zielgruppe
Anwender, die dynamische analoge Signale digitalisieren müssen und eine Übersicht über die Messdatenerfassung mit unterschiedlichen Softwareumgebungen suchen.

Einführung
Bei analogen Messgrößen, die sich sehr langsam ändern, kann es genügen, die Daten eher seltener zu erfassen. Häufig kann die Zeitdifferenz zwischen den einzelnen Erfassungen in einem gewissen Bereich variieren, da in erster Linie nur der aktuelle Status des Signals benötigt wird. In diesen Fällen kann eine vergleichsweise einfache Softwaretaktung für jeden einzelnen analogen Eingang genügen. Ändert sich jedoch das Signal in Abhängigkeit von der Zeit sehr schnell oder ist eine Frequenzinformation des Signals gefragt, dann ist eine schnellere Erfassung erforderlich, die in präzisen und einheitlichen Zeitabständen erfolgen muss.

Die DAQ Messgeräte von MCC besitzen einen internen Taktgeber zur gleichmäßigen Taktung eines oder mehrerer Messkanäle. Die Messgeräte von MCC verwenden internen Speicher, über den die Messdaten gepuffert und für hohen Datendurchsatz periodisch Datenpakete über die Schnittstelle (z.B. USB) gesendet werden. In Verbindung mit den Messgeräten von MCC empfängt der MCC-Softwaretreiber die Datenpakete, bündelt diese in einem größeren Bereich des Arbeitsspeichers und macht die Daten und deren Status den übergeordneten Anwendungsprogrammen zugänglich.

Anwendungsentwickler betrachten für ihr Projekt sowohl die Aufzeichnungsdauer als auch die Anforderungen an die Datenverfügbarkeit. Oder als Frage formuliert: Wie lange muss ich Messdaten erfassen und benötige ich Zugriff auf die Daten während der Erfassung oder erst nach deren Beendigung? Im einfachsten Fall werden Messdaten über eine relativ kurze Dauer erfasst und diese nicht vor dem Ende der Erfassung verarbeitet. Erweitert man diese Anforderungen, dann muss typisch mit der Messdatenverarbeitung noch während der Erfassung begonnen werden, beispielsweise für eine Anzeige der Daten in Echtzeit während der Erfassung. In diesem Fall benötigt der Anwendungsentwickler Zugriff auf den Datenpuffer, noch während neue Daten hinzugefügt werden. Dies ermöglicht MCC mit seinem Hintergrund-Modus.

Das komplexeste Szenario ist eine sehr lange Erfassungsdauer, während der aufgrund des begrenzten Arbeitsspeichers des Rechners ein Ringpuffersystem benötigt wird. Während neue Messdaten kontinuierlich erfasst werden, muss die Anwendung mit der ausreichenden Performance die erforderliche Analyse durchführen, Daten anzeigen und eventuell die Ergebnisse speichern. Die MCC-Softwaretreiber unterstützen diese hohen Anforderungen mit dem Continuous Mode, der jedoch nicht Thema dieses Beitrages ist.

Bei der nicht-kontinuierlichen (zeitlich begrenzten) Erfassung müssen die folgenden Informationen unabhängig von der Softwareplattform bekannt sein:

  • Anzahl der analogen Eingänge
  • Anzahl der zu erfassenden Messdaten
  • Abtastrate
  • Eingangsbereich
  • Pufferspeicher

Zusätzlich zu den Messdaten wird ein Fehlercode ausgegeben.

Die folgenden Beispiele zeigen, wie eine nicht-kontinuierliche (zeitlich begrenzte) Erfassung mit der Universal Library™, UL for Android™, NI LabVIEW™, DASYLab® und DAQami durchgeführt wird.

Universal Library
Das folgende Beispiel zeigt eine nicht-kontinuierliche Erfassung mit der Universal Library (UL) und Visual Basic:

LowChan = 0
HighChan = 0 'Erfassung nur von Kanal 0
Count = 50000 'Gibt die Gesamtzahl der zu erfassenden Samples an
Rate = 50000 'Gibt die Abtastrate pro Kanal an
Range = MccDaq.Range.Bip10Volts ‘Gibt den Eingangsbereich +/- 10V an
ULStat = DaqBoard.AInScan(LowChan, HighChan, Count, Rate, Range, MemHandle, Options)

Die Messdaten werden in einen Puffer des Arbeitsspeichers am angegebenen Handle gegeben, während der Fehlercode als Wert von ULStat zurückgegeben wird.

Als nächstes werden die Messdaten aus dem Pufferspeicher in ein lokales Programm-Array mit dem Namen ADData kopiert:

ULStat = MccDaq.MccService.WinBufToArray(MemHandle, ADData, FirstPoint, Count)

Bis zu diesem Zeitpunkt wurden die Messdaten aus Performancegründen im Zahlenformat übertragen und gespeichert. Sie können in Spannung konvertiert werden mit der folgenden UL-Funktion:

ULStat = DaqBoard.ToEngUnits(Range, ADData(0), EngUnits)

UL for Android
Das folgende Beispiel zeigt, wie eine nicht-kontinuierliche Erfassung mit der UL for Android und Java durchgeführt wird:

lowChan = 0;
highChan = 0; //Erfassung nur von Kanal 0
mode = ChannelMode.SINGLE_ENDED; //Gibt den Erfassungsmodus an
range = Range.BIP10VOLTS; //Gibt den Eingangsbereich ±10V an
samplesPerChan = 50000; //Gibt die Anzahl der Samples pro Kanal an
rate = 50000; //Gibt die Abtastrate pro Kanal an
mUnit = AiUnit.VOLTS; //Gibt die Einheit Spannung an
actualScanRate = mAiDevice.aInScan(lowChan, highChan, mode, range, samplesPerChan, rate, options, mUnit, mScanData);

Die Messwerte werden mit dem Aufruf der Funktion aInScan () erfasst. Die Daten werden in das Array mit dem Namen mScanData gegeben.

NI LabVIEW
Das folgende Beispiel zeigt eine nicht-kontinuierliche Erfassung mit LabVIEW. Das Verdrahtungsdiagramm zeigt die relevanten VIs und Einstellungen. Vom ersten Kanal (Ai0) des Gerätes #0 werden hier 50000 Messwerte mit einer Abtastrate von 50000 Hz im erwarteten Messbereich von -10 V bis +10 V erfasst. Die erfasste Spannung steht im Measurement Array zur Verfügung.

NI LabVIEW

DASYLab
Ohne zu programmieren kann eines der folgenden Softwarepakete verwendet werden, die die Erfassung, Anzeige und Speicherung von dynamischen Messdaten sehr einfach ermöglichen. Ein sehr verbreitetes Softwarepaket ist DASYLab.

Das folgende Beispiel-Schaltbild zeigt ein Analoges Eingangsmodul, dessen Ausgänge mit einem Y/t-Diagramm verbunden sind. Die erfassten dynamischen Spannungsdaten werden im Diagramm angezeigt.

DASYLab

Ein Doppelklick auf das Modul Analoger Eingang öffnet ein Dialogfeld, mit dem die gewünschten Kanäle aktiviert, der Eingangsbereich ausgewählt und die Abtastrate angegeben werden können.

DASYLab

 

DAQami
Das folgende Beispiel zeigt die Einstellungen in DAQami für die Erfassungsrate und den Messwertzähler.

DAQami

Die Daten werden in einem Schreiber angezeigt:

DAQami

 

Weitere Informationen
Wenden Sie sich an Measurement Computing, falls Sie Fragen haben oder weitergehende Informationen benötigen.

Weitere TechTipps finden Sie auf unserer Webseite Technische Beiträge von Measurement Computing.