NI-DAQmx

Messdatenerfassungs-Hardware von National Instruments (cDAQ-Chassis und ihre Module, USB- und PCI-Express-Geräte sowie die simulierten Geräte von NI MAX), ein Abtastwert je Abfrage über das auf diesem Rechner installierte NI-DAQmx gelesen: die Karte NI-DAQmx-Gerät, physischer Kanal und Messgröße eines Tags, Lesen und Schreiben, die Gerätesuche und ein durchgerechnetes Beispiel an einem cDAQ-Chassis.

Als Markdown ansehen

Der Treiber NI-DAQmx liest und schreibt Messdatenerfassungs-Hardware von National Instruments: cDAQ-Chassis und ihre Module der C-Serie, USB-Geräte wie das USB-6001 oder das USB-6211 und PCI-Express-Geräte, über NI-DAQmx, den Treiber, den National Instruments für seine Hardware kostenlos abgibt. Es ist die Hardware, die ein LabVIEW-Programm mit den DAQmx-Blöcken liest, auf einem Panel eingerichtet statt in einem Blockdiagramm verdrahtet: Jedes Tag ist ein physischer Kanal, wie NI MAX ihn nennt (ai0, port0/line3, ao0, ctr0), mit dem, was der Kanal misst oder ansteuert, und die Werte landen dort, wo die jedes anderen Tags landen: in der Logik, auf Dashboards, in den Läufen eines Prüfstands im Process.

Der Treiber liest einen Abtastwert je Abfrage: Im Abfrageintervall jedes Tags nimmt er einen Wert des Kanals, wie es jeder andere Treiber tut. Er dient langsamen Signalen (Temperaturen, Drücke, Füllstände, Zustände, Zählerstände), nicht der kontinuierlichen Erfassung, die die Hardware nach ihrem eigenen Takt leistet; siehe Grenzen, die man kennen sollte.

Ein Gerät dieses Treibers ist ein Gerät von NI MAX, gefunden über den Namen, den NI MAX ihm gibt, wo auch immer es angeschlossen ist: an USB, in einem PCI-Express-Steckplatz, in einem cDAQ-Chassis an USB oder Ethernet. Die simulierten Geräte, die NI MAX für den größten Teil der NI-Hardware kostenlos anlegt, werden wie echte gelesen, sodass sich eine Konfiguration aufbauen und ausprobieren lässt, bevor die Hardware eintrifft. Simulierte Geräte lassen sich auch über die Konfigurations-API von NI anlegen, die ein KI-Assistent mit Zugriff auf diesen Rechner mit Ihrer Zustimmung nutzen kann. Die Geräte liegen unter dem Treiber und können in Ordnern abgelegt werden, Treiber → Ordner → Gerät → Tag, wie unter jedem Treiber ohne serielle Leitung oder Broker.

NI-DAQmx auf diesem Rechner

Das Produkt enthält NI-DAQmx nicht und installiert keine seiner Dateien. Der Treiber liest die Hardware über das auf diesem Rechner installierte NI-DAQmx, dasselbe, das NI MAX und LabVIEW verwenden. Die Station prüft selbst, ob es vorhanden ist: beim ersten Mal, wenn die Seite des Treibers, die Seite eines seiner Geräte oder der Agent danach fragt, und danach alle 30 Sekunden, solange es fehlt. Bis der Connector gestartet ist, ist nicht bekannt, ob NI-DAQmx vorhanden ist, und es wird nichts darüber gesagt. Solange es fehlt:

Wo Was geschieht
Die Seite des Treibers Ein Warnhinweis, "NI-DAQmx ist auf diesem Rechner nicht installiert", mit den Schritten unten. Sein Link öffnet die Seite von NI im Browser des Rechners.
Die Seite jedes Geräts Derselbe Hinweis.
Die Geräte Lassen sich hinzufügen und konfigurieren, Tags eingeschlossen; sie bleiben getrennt, und der letzte Fehler jedes Geräts nennt dieselben Schritte, auf Englisch, wie die Ursachen des Treibers geschrieben sind.
Geräte suchen Listet nichts auf und sagt, dass NI-DAQmx nicht installiert ist und dass der Hinweis auf der Seite des Treibers den Download und die Installationsschritte nennt.
Der Agent driver_capabilities nennt die Schritte unter prerequisite, mit installed false.

So installieren Sie es:

  1. Öffnen Sie die NI-Seite NI-DAQ™mx Download. Sie verlangt vor dem Download eine Anmeldung mit einem NI-Konto.
  2. Nehmen Sie in ihrer Liste Version die neueste Version, deren Readme (View Readme) das Windows dieses Rechners und unter Device Support Ihr Gerät aufführt. NI-DAQmx läuft nur unter 64-Bit-Windows.
  3. Führen Sie das Installationsprogramm als Administrator aus: Es installiert NI-DAQmx über den NI Package Manager. Starten Sie den Rechner neu, wenn das Installationsprogramm danach fragt.

Das neueste NI-DAQmx unterstützt manche älteren Geräte nicht mehr: Wenn sein Readme Ihr Gerät nicht aufführt, wählen Sie in der Liste Version eine frühere Version, deren Readme es aufführt.

Spätestens 30 Sekunden nach der Installation verschwindet der Hinweis, und die Geräte dieses Treibers verbinden sich mit ihrer bestehenden Konfiguration, ohne dass Ganter Lab neu gestartet wird. NI MAX (NI Measurement & Automation Explorer) zeigt jedes Gerät mit dem Namen, der in die Karte NI-DAQmx-Gerät gehört.

Die Seite des Treibers

Die Seite trägt die Tabelle Geräte jedes Treibers (siehe Die Gerätetabelle), die mit Gerät hinzufügen rechts von ihrem Titel wächst; leer zeigt sie "Noch keine Geräte." Die Leiste des Treibers trägt Geräte suchen, und die Seite hat keine Karte Suchbereich, weil der Suchlauf NI-DAQmx fragt und sonst niemanden.

Gerät

Die Karte NI-DAQmx-Gerät

Ein Gerät dieses Treibers hat keine Karte Verbindung: Es gibt keinen Host, keinen Port und keine Route einzutragen, denn NI-DAQmx findet das Gerät über seinen Namen. An ihrer Stelle sagt die Karte NI-DAQmx-Gerät, welches Gerät von NI MAX es liest.

Feld Bedeutung Standard
Gerätename "Der Name, den NI MAX dem Gerät gibt, etwa Dev1, oder cDAQ1Mod1 für ein Modul eines cDAQ-Chassis. Ein in NI MAX umbenanntes Gerät wird wieder gelesen, sobald sein neuer Name hier steht." leer
Produkt Nur lesbar: "Was das Gerät laut NI-DAQmx ist, etwa NI 9211, gelesen bei jeder Verbindung der Station mit ihm." Es zeigt "Noch nicht gelesen", bis sich das Gerät verbindet, und wieder, sobald es nicht mehr verbunden ist. Davon wird nichts gespeichert.

Ein cDAQ-Chassis ist ein eigenes Gerät von NI MAX (cDAQ1), und jedes seiner Module ebenso (cDAQ1Mod1, cDAQ1Mod2). Die Kanäle eines Moduls werden am Gerät des Moduls gelesen; die Zähler des Chassis (_ctr0 bis _ctr3) am Gerät des Chassis. Das Abfrageintervall (ms) der Karte Gerät wirkt wie bei jedem Treiber, und jedes Tag kann es überschreiben.

Ein neues Gerät hat noch keinen Namen, und die Station versucht nicht, es zu erreichen, bis es einen hat: Seine Zeile zeigt "NI-DAQmx-Gerät noch nicht eingetragen", seine Tags lesen als Lücken, und seine Seite trägt den Hinweis "Die Station versucht nicht, dieses Gerät zu erreichen, solange es keinen NI-DAQmx-Gerätenamen hat. Deshalb wird noch nichts aus ihm gelesen, und es gibt keinen Fehler anzuzeigen. Tragen Sie den Namen, den NI MAX dem Gerät gibt, unten in der Karte NI-DAQmx-Gerät ein, dann verbindet sich die Station mit ihm." Auf einem Rechner ohne NI-DAQmx steht dort stattdessen der Hinweis, dass NI-DAQmx nicht installiert ist.

Ein Name, den NI-DAQmx nie lesen könnte, wird unter dem Feld abgelehnt: "Ein Gerätename enthält kein '/', ',' oder ':'. Schreiben Sie den Namen genau so, wie NI MAX ihn zeigt, etwa Dev1 oder cDAQ1Mod1." Ein Schrägstrich trennt ein Gerät von seinem Kanal, Dev1/ai0 ist also der Kanal eines Tags und kein Gerät. Ob NI MAX den Namen kennt, ist die eigene Antwort von NI-DAQmx, gegeben, wenn sich die Station verbindet: Ein Gerät, das NI MAX nicht kennt, bleibt getrennt, mit den Worten von NI-DAQmx als letztem Fehler.

Der Basis-URI, den die Kopfzeile zeigt, ist der Name des Geräts hinter dem Schema des Treibers: nidaqmx://cDAQ1Mod1. Zwei Geräte dieses Treibers dürfen dasselbe Gerät von NI MAX lesen, etwa dasselbe Modul in zwei verschiedenen Abfrageintervallen; der Name muss nicht eindeutig sein.

Adressierung des Tags

Der physische Kanal

Ein Tag dieses Treibers liest oder steuert einen Kanal seines Geräts. Die Karte Quelle des Tags trägt das Feld Physischer Kanal, mit einem Hinweis darunter, der der Messgröße folgt: "Analogeingangskanal, z. B. ai0 oder cDAQ1Mod1/ai0", "Digitale Leitung, z. B. port0/line3 oder Dev1/port0/line3", "Analogausgangskanal, z. B. ao0 oder Dev1/ao0" oder "Zähler, z. B. ctr0, oder _ctr0 an einem cDAQ-Chassis".

Der Kanal wird relativ zu seinem Gerät gespeichert (ai0), sodass ein in NI MAX umbenanntes Gerät ein einziges Feld ändert, das des Geräts. Ein Kanal, der ganz geschrieben ist, wie NI MAX ihn schreibt (cDAQ1Mod1/ai0), wird relativ gespeichert, wenn er das eigene Gerät des Tags nennt, und abgelehnt, wenn er ein anderes nennt: "Dieser Kanal gehört zum Gerät Dev1, nicht zu cDAQ1Mod1. Tragen Sie einen Kanal dieses Geräts ein oder nur den Kanal, etwa ai0."

Messgrößen

Unter dem Kanal sagt Messgröße, was der Kanal misst oder ansteuert. Die Messgröße bestimmt die Datentypen, als die das Tag gelesen wird, den Zugriff, den es erlaubt, seine Einheit und die Felder, die darunter gezeichnet werden.

Messgröße Kanal Datentyp Zugriff Einheit
Spannungseingang ein Analogeingang, ai0 Double oder Float Nur lesen Volt
Stromeingang ein Analogeingang, ai0 Double oder Float Nur lesen Milliampere
Thermoelement ein Analogeingang, ai0 Double oder Float Nur lesen Grad Celsius
Digitale Eingangsleitung eine digitale Leitung, port0/line3 Boolean Nur lesen
Digitale Ausgangsleitung eine digitale Leitung, port0/line3 Boolean Lesen und schreiben (der Standard), Nur schreiben oder Nur lesen
Spannungsausgang ein Analogausgang, ao0 Double oder Float Nur schreiben Volt
Flankenzählung ein Zähler, ctr0 (_ctr0 an einem cDAQ-Chassis) Int64 oder Double Nur lesen Zählimpulse

Ein neues Tag ist ein Spannungseingang, gelesen als Double. Ein eingetragener Kanal, den die geltende Messgröße nicht liest, bringt die Messgröße mit, die er am natürlichsten liest: ein Analogeingang einen Spannungseingang, eine digitale Leitung eine digitale Eingangsleitung, ein Analogausgang einen Spannungsausgang und ein Zähler eine Flankenzählung. Eine andere Messgröße zu wählen bringt deren Bereich mit, und ein Datentyp oder Zugriff, den sie nicht erlaubt, wird zu dem, den sie verwendet, sodass die Listen Datentyp und Zugriff nur anbieten, was die Messgröße erlaubt. Strom wird in Milliampere gelesen (NI-DAQmx liest Ampere, und der Treiber multipliziert mit 1000), sodass eine 4-bis-20-mA-Schleife so geschrieben wird, wie man sie nennt.

Jede Messgröße sagt unter ihrer Auswahl, was sie tut:

Messgröße Die Zeile darunter
Spannungseingang "Liest bei jeder Abfrage einen Abtastwert in Volt."
Stromeingang "Liest bei jeder Abfrage einen Abtastwert in Milliampere."
Thermoelement "Liest bei jeder Abfrage einen Abtastwert in Grad Celsius, mit kompensierter Vergleichsstelle."
Digitale Eingangsleitung "Liest die Leitung als wahr (high) oder falsch (low)."
Digitale Ausgangsleitung "Setzt die Leitung auf den geschriebenen Wert und liest den Zustand zurück, den sie hält."
Spannungsausgang "Setzt den Ausgang auf die geschriebene Spannung. NI-DAQmx liest einen Analogausgang nicht zurück, deshalb ist das Tag nur schreibbar."
Flankenzählung "Zählt Flanken ab dem Moment, in dem sich die Station mit dem Gerät verbindet, und liest den Zählerstand bei jeder Abfrage. Eine neue Verbindung beginnt wieder beim Anfangswert."

Die Felder der Messgröße

Ein Feld, das die Messgröße nicht liest, wird weder gezeichnet noch mit dem Tag gespeichert.

Feld Messgrößen Bedeutung Standard
Bereich (V), Bereich (mA) oder Bereich (°C) Spannungseingang, Stromeingang, Thermoelement, Spannungsausgang Zwei Felder, Minimum und Maximum, in der Einheit der Messgröße. An einem Eingang: "NI-DAQmx wählt den Eingangsbereich des Geräts, der diesen umfasst, sodass ein enger Bereich ein kleines Signal feiner liest." Am Spannungsausgang: "Der Ausgang nimmt nur Werte innerhalb dieses Bereichs an; ein Schreiben außerhalb wird abgelehnt, bevor es das Gerät erreicht." -10 bis 10 V; 0 bis 20 mA; 0 bis 100 °C
Anschlusskonfiguration Spannungseingang, Stromeingang Kanalstandard, Differenziell, Massebezogen unsymmetrisch (RSE), Nicht massebezogen unsymmetrisch (NRSE) oder Pseudodifferenziell: "Wie der Eingang verdrahtet ist: Ein differenzieller Eingang misst zwischen zwei Anschlüssen des Kanals, ein unsymmetrischer gegen ein gemeinsames Bezugspotenzial. Der Kanalstandard ist das, was NI-DAQmx für diesen Kanal wählt." Kanalstandard
Shunt-Widerstand Stromeingang Kanalstandard, Intern oder Extern: "Der Widerstand, durch den der Strom zur Messung fließt: der im Gerät eingebaute oder ein externer, über den Eingang geschalteter, dessen Widerstandswert hier eingetragen wird." Kanalstandard
Shunt-Widerstandswert (Ω) Stromeingang, mit einem Shunt Extern Der Widerstandswert des externen Widerstands, in Ohm. 249
Thermoelementtyp Thermoelement Typ J, Typ K, Typ N, Typ R, Typ S, Typ T, Typ B oder Typ E. Typ K
Vergleichsstellenkompensation (CJC) Thermoelement Eingebauter Sensor oder Feste Temperatur: "Die Temperatur der Vergleichsstelle des Thermoelements: gemessen vom Sensor, der im Gerät oder in seinem Anschlussblock eingebaut ist, oder eine feste Temperatur, die hier eingetragen wird, wenn die Vergleichsstelle auf einer bekannten gehalten wird." Eingebauter Sensor
CJC-Temperatur (°C) Thermoelement, mit Feste Temperatur Die Temperatur der Vergleichsstelle, in Grad Celsius. 25
Gezählte Flanke Flankenzählung Steigende Flanke oder Fallende Flanke. Steigende Flanke
Zählrichtung Flankenzählung Aufwärts zählen oder Abwärts zählen. Aufwärts zählen
Anfangswert Flankenzählung Der Zählerstand, bei dem der Zähler bei jeder Verbindung des Geräts beginnt, 0 bis 4294967295. 0
Eingangsanschluss Flankenzählung "Der Anschluss, dessen Impulse gezählt werden, etwa /Dev1/PFI8. Leer gelassen, zählt der Zähler an seinem eigenen Standard-Eingangsanschluss." Leer zeigt das Feld "Zählerstandard". Ein Anschluss, der ohne sein Gerät geschrieben ist (PFI8), wird am eigenen Gerät des Tags gelesen. An einem Zähler eines cDAQ-Chassis (_ctr0), der keinen eigenen Eingangsanschluss hat, nennt das Feld keinen Standard, und der Hinweis lautet "Der Anschluss, dessen Impulse gezählt werden, etwa /cDAQ1Mod2/PFI0. Ein Zähler eines cDAQ-Chassis hat keinen eigenen Eingangsanschluss, daher ist dieser erforderlich." leer

Ein Tag, dessen Felder nicht funktionieren können, wird nicht gespeichert, und die Seite des Tags sagt, was ihm fehlt:

Sie geben ein Die Seite des Tags sagt
Keinen Kanal "Tragen Sie den physischen Kanal ein, etwa ai0 oder Dev1/ai0."
Einen Kanal einer anderen Art, als die Messgröße liest, etwa ao0 unter einem Thermoelement "Diese Messgröße liest einen Analogeingangskanal, etwa ai0.", "Ein Spannungsausgang steuert einen Analogausgangskanal, etwa ao0.", "Eine digitale Leitung wird als Port und Leitung geschrieben, etwa port0/line3." oder "Eine Flankenzählung liest einen Zähler, etwa ctr0."
Ein Minimum, das nicht unter dem Maximum liegt "Das Minimum muss unter dem Maximum liegen."
Einen externen Shunt ohne Widerstandswert über null "Ein externer Shunt braucht seinen Widerstand in Ohm, größer als null."
Eine feste Vergleichsstellentemperatur am oder unter dem absoluten Nullpunkt "Die CJC-Temperatur muss eine Temperatur in Grad Celsius über dem absoluten Nullpunkt sein."
Einen Anfangswert außerhalb dessen, was ein 32-Bit-Zähler fasst "Der Anfangswert ist eine ganze Zahl von 0 bis 4294967295."
Einen Eingangsanschluss mit Leerzeichen oder Komma "Schreiben Sie den Eingangsanschluss so, wie NI-DAQmx ihn nennt, etwa /Dev1/PFI8, ohne Leerzeichen oder Komma."
Eine Flankenzählung an einem Zähler eines cDAQ-Chassis (_ctr0) ohne Eingangsanschluss "Ein Zähler eines cDAQ-Chassis hat keinen eigenen Eingangsanschluss: Schreiben Sie den Anschluss, an dem seine Impulse ankommen, etwa /cDAQ1Mod2/PFI0."
Einen Datentyp oder Zugriff, den die Messgröße nicht erlaubt "Diese Messgröße wird als Double, Float gelesen.", und für einen Zugriff der Satz, der die Zugriffe nennt, die die Messgröße erlaubt

Das Speichern hält dieselben Regeln wie die Panels ein, und das Aktionsprotokoll sagt es, wenn es eines ablehnt: "Das Gerät 'Module voltages' nennt ein NI-DAQmx-Gerät, das der Treiber nicht lesen kann. Öffnen Sie es und korrigieren Sie den Gerätenamen, den sein Panel markiert." oder "Das Tag 'Pressure' hat eine Einstellung, die der NI-DAQmx-Treiber nicht verwenden kann. Öffnen Sie es und korrigieren Sie das Feld, das das Tag-Panel markiert."

Die nur lesbare Zeile Quelladresse (Bus) zeigt, was der Treiber bekommt: den Kanal, wie NI-DAQmx ihn nennt, und jede Einstellung der Messgröße, etwa cDAQ1Mod1/ai0?measurement=voltageInput&terminal=diff&min=0&max=10, cDAQ1Mod2/ai0?measurement=thermocouple&type=K&cjc=builtIn&min=0&max=400, Dev1/port0/line3?measurement=digitalOutput oder cDAQ1/_ctr0?measurement=edgeCount&edge=rising&direction=up&initial=0&input=%2FcDAQ1Mod3%2FPFI0.

Lesen

Der Treiber legt die NI-DAQmx-Tasks eines Geräts an, wenn sich die Station mit ihm verbindet, und behält sie, bis es sich trennt. Was ein Lesevorgang tut und was NI-DAQmx antwortet, bestimmen, was das Tag zeigt (siehe Die Wertkette):

Tags Wie sie gelesen werden
Analogeingänge (Spannung, Strom, Thermoelement) Alle Analogeingänge eines Geräts teilen sich einen Task, den jeder Lesevorgang startet, aus dem er einen Abtastwert je Kanal nimmt und den er wieder anhält. Ein Gerät hat eine analoge Zeitsteuerung, ein cDAQ-Chassis drei für alle seine Module, sodass ein dauerhaft gestarteter Task ein anderes Modul am Lesen hindern würde. Ein Lesevorgang, der die Zeitsteuerung von einem anderen Task belegt findet (NI MAX, LabVIEW), fragt noch zweimal, im Abstand von 25 ms. Ein Abtastwert dient jedem analogen Tag des Geräts für die Hälfte des kürzesten Abfrageintervalls unter ihnen, sodass ein langsames Thermoelementmodul einmal je Durchgang wandelt.
Ein Kanal, den NI-DAQmx ablehnt Jeder Analogkanal wird zuerst allein geprüft: Ein Kanal, den NI-DAQmx ablehnt (ein Bereich, den das Modul nicht hat, ein Thermoelement an einem Kanal, der keines liest), lässt sein eigenes Tag scheitern, nicht jedes analoge Tag des Geräts.
Digitale Leitungen, der Spannungsausgang, Zähler Ein Task je Tag, gestartet, wenn sich das Gerät verbindet. Ein Zähler zählt ab dann und beginnt wieder bei seinem Anfangswert, wenn sich das Gerät neu verbindet.
NI-DAQmx antwortet Was der Lesevorgang tut
Ein Wert oder eine Warnung Der Wert, in der Einheit der Messgröße, bevor die eigenen Stufen des Tags ihn umrechnen.
Das Gerät entfernt, nicht erreichbar oder zurückgesetzt Eine verlorene Verbindung: Das Gerät verbindet sich neu, und seine Tasks werden neu angelegt.
Keine Antwort innerhalb von 10 Sekunden Stille: Das Gerät verbindet sich neu, und die Regel des Tags für ein Gerät, das nicht geantwortet hat bestimmt, was es zeigt.
Jeder andere Fehler Der fehlgeschlagene Lesevorgang dieses Tags, mit dem eigenen Text von NI-DAQmx und seinem Code; das Gerät liest seine anderen Tags weiter.

Die Skalierung ist die eigene Kette des Tags: Der Treiber liefert Volt, Milliampere oder Grad, und die Stufen Skalierung und Kalibrierung machen daraus den technischen Wert (0 bis 10 V zu 0 bis 16 bar). Keine benutzerdefinierte Skalierung von NI MAX wird angelegt oder gelesen.

Schreiben

Eine Digitale Ausgangsleitung und ein Spannungsausgang werden geschrieben; jede andere Messgröße ist nur lesbar. Ein Schreibvorgang geht durch denselben Trichter wie der jedes anderen Treibers: Das Schreibfeld nimmt den technischen Wert, und die Umrechnungsstufen werden umgekehrt, bevor der Rohwert gesendet wird (siehe Connector).

Messgröße Was ein Schreibvorgang tut
Digitale Ausgangsleitung Setzt die Leitung bei wahr auf high und bei falsch auf low. Das Tag liest den Zustand zurück, den die Leitung hält, es sei denn, es ist Nur schreiben.
Spannungsausgang Setzt den Ausgang auf die geschriebene Spannung. Ein Wert außerhalb des Bereichs des Tags wird abgelehnt, bevor irgendetwas das Gerät erreicht. NI-DAQmx liest einen Analogausgang nicht zurück, deshalb ist das Tag Nur schreiben und zeigt keinen eigenen Wert.

Ein Wert, den NI-DAQmx ablehnt, kommt als "Schreiben von der Anlage abgelehnt: <reason>." zurück, mit der Fehlernummer von NI-DAQmx als Grund (NI-DAQmx -200561), die in jeder Sprache gleich lautet, während die eigenen Worte von NI-DAQmx ins Journal gehen; keine Antwort innerhalb von 10 Sekunden zeigt "Schreiben nicht bestätigt: Die Anlage hat nicht rechtzeitig geantwortet." Ein Schreibvorgang wartet auf den laufenden Lesevorgang am selben Gerät.

Gerätesuche

Geräte suchen in der Leiste des Treibers fragt NI-DAQmx nach jedem Gerät, das NI MAX kennt, die simulierten eingeschlossen, und an die Hardware wird nichts gesendet. Es nimmt keine Adresse. Während des Suchlaufs nennt die Fortschrittszeile das Gerät, das gerade gelesen wird: "cDAQ1Mod1 wird aus NI-DAQmx gelesen…". Ohne NI-DAQmx listet sie nichts auf und sagt "NI-DAQmx ist auf diesem Rechner nicht installiert, deshalb kann kein Gerät aufgelistet werden. Der Hinweis im Bereich dieses Treibers nennt den Download und die Installationsschritte."

Jedes Gerät ist ein Kandidat, benannt nach seinem Namen und seinem Produkt (cDAQ1Mod1 (NI 9205)), mit seinen Kanälen als Tag-Kandidaten, jeder mit den Standards seiner Messgröße:

Kanäle Angeboten als
Analogeingänge Thermoelement an einem Thermoelementmodul, einem Gerät, das nur Millivolt liest und laut NI-DAQmx ein Thermoelement liest (ein NI 9211): Typ K, Eingebauter Sensor und 0 bis 100 °C. Sonst Spannungseingang, wo der Kanal eine Spannung liest, auf -10 bis 10 V oder auf dem eigenen Bereich des Geräts, wo dieser enger ist, und Stromeingang oder Thermoelement, wo der Kanal laut NI-DAQmx keine Spannung liest. Ein Universalmodul, das eine echte Spannung und ein Thermoelement liest, bietet Spannungseingänge an: Wählen Sie die Messgröße am Tag, sobald es hinzugefügt ist.
Digitale Leitungen Digitale Eingangsleitung, oder Digitale Ausgangsleitung, wo die Leitung nur ansteuert.
Analogausgänge Spannungsausgang, Nur schreiben.
Zähler Flankenzählung. NI-DAQmx listet die Zähler eines cDAQ-Chassis nicht auf, daher kommt das Chassis ohne Tags: Legen Sie von Hand einen Tag auf _ctr0 an, mit dem Eingangsanschluss, an dem die Impulse ankommen, denn ein Zähler des Chassis hat keinen eigenen.

Ein Kandidat, dessen Namen ein Gerät des Treibers schon liest, wird als bereits konfiguriert gekennzeichnet und bietet Öffnen statt Hinzufügen an. Das übrige Verhalten des Suchlaufs steht unter Gerätesuche.

Ein Gerät, das Sie schon haben, liest seine Kanäle von seiner eigenen Seite aus erneut: Tags suchen im Kopf seiner Karte der Tags fragt NI-DAQmx nur nach diesem Gerät und bietet nur die Kanäle an, für die es noch kein Tag hat, mit den Standardwerten ihrer Messung (siehe Die Tags eines Geräts suchen).

Beispiel: ein cDAQ-Chassis

Ein cDAQ-9178-Chassis, das NI MAX cDAQ1 nennt, trägt in Steckplatz 1 ein Spannungsmodul NI 9205, mit einem Druckmessumformer 0 bis 10 V, differenziell an seinem ersten Kanal verdrahtet, und in Steckplatz 2 ein Thermoelementmodul NI 9211, mit einem Thermoelement Typ K in einem Ofen. Beide lesen:

  1. Auf der Seite des Treibers Gerät hinzufügen; nennen Sie es Module voltages und tragen Sie cDAQ1Mod1 unter Gerätename ein. Sobald es verbunden ist, zeigt Produkt NI 9205.
  2. Tag hinzufügen; nennen Sie es Pressure, Physischer Kanal ai0, behalten Sie Spannungseingang, setzen Sie den Bereich auf 0 und 10 und die Anschlusskonfiguration auf Differenziell. Schalten Sie auf der Karte Umrechnung die Stufe Skalierung mit einem Faktor von 1,6 ein und geben Sie dem Tag die Einheit bar: 0 bis 10 V lesen sich als 0 bis 16 bar.
  3. Noch einmal Gerät hinzufügen; nennen Sie es Oven thermocouples, Gerätename cDAQ1Mod2.
  4. Tag hinzufügen Zone1, Physischer Kanal ai0, Messgröße Thermoelement, behalten Sie Typ K und Eingebauter Sensor, und setzen Sie den Bereich auf 0 und 400.
  5. Um Impulse am Chassis zu zählen, hält ein Gerät, dessen Gerätename cDAQ1 ist, die Zähler: Ein Tag an _ctr0 ist eine Flankenzählung, mit dem Eingangsanschluss, an dem die Impulse ankommen, etwa /cDAQ1Mod3/PFI0.

Die Busadresse des Tags Pressure lautet cDAQ1Mod1/ai0?measurement=voltageInput&terminal=diff&min=0&max=10. Ein Agent tut dasselbe mit den Werkzeugen; das Thermoelement nennt seine Messgröße, weil ai0 allein als Spannungseingang gelesen wird:

device_upsert name="Module voltages" driver="NiDaqmx" daqmxDevice="cDAQ1Mod1"
tag_upsert device="Module voltages" name="Pressure" address="ai0" daqmxMinimum=0 daqmxMaximum=10 daqmxTerminal="Differential"
device_upsert name="Oven thermocouples" driver="NiDaqmx" daqmxDevice="cDAQ1Mod2"
tag_upsert device="Oven thermocouples" name="Zone1" address="ai0" daqmxMeasurement="Thermocouple" daqmxThermocouple="K" daqmxMaximum=400
device_upsert name="Chassis counters" driver="NiDaqmx" daqmxDevice="cDAQ1"
tag_upsert device="Chassis counters" name="Pulses" address="_ctr0" daqmxCounterTerminal="/cDAQ1Mod3/PFI0"

Agent-Werkzeuge

driver_capabilities beschreibt diesen Treiber unter niDaqmx: den Gerätenamen und für jede Messgröße einen Beispielkanal, die Einheit, ihre Felder, die Datentypen und Zugriffe, die sie erlaubt, mit den Auswahllisten jedes Felds, wie sich Lese- und Schreibvorgänge verhalten und was die Gerätesuche anbietet. device_upsert driver=NiDaqmx nimmt daqmxDevice, den Namen, den NI MAX dem Gerät gibt ('' leert ihn, und das Gerät wartet auf einen). tag_upsert nimmt den Kanal als address und die Felder seiner Messgröße: daqmxMeasurement (VoltageInput, CurrentInput, Thermocouple, DigitalInput, DigitalOutput, VoltageOutput oder EdgeCount; weggelassen, bringt der Kanal seine eigene mit), daqmxMinimum und daqmxMaximum, daqmxTerminal (Default, Differential, ReferencedSingleEnded, NonReferencedSingleEnded oder PseudoDifferential), daqmxShunt (Default, Internal oder External) und daqmxShuntOhms, daqmxThermocouple (J, K, N, R, S, T, B oder E), daqmxCjcSource (BuiltIn oder ConstantValue) und daqmxCjcTemperature, daqmxEdge (Rising oder Falling), daqmxCountDirection (Up oder Down), daqmxInitialCount und daqmxCounterTerminal. Ein Feld, das die Messgröße nicht liest, wird abgelehnt, sodass der Aufruf nur nennt, was zutrifft. Ein Gerät und ein Tag, die die Werkzeuge zurückgeben, tragen niDaqmx: den Namen des Geräts, sein Produkt, sobald es verbunden ist, und ob NI-DAQmx installiert ist. device_discover driver=NiDaqmx listet jedes Gerät, das NI MAX kennt, mit seinen Kanälen als Tag-Kandidaten. Die übrigen Werkzeuge stehen unter Agent-Werkzeuge.

Grenzen, die man kennen sollte

  • Eine kontinuierliche Erfassung findet nicht statt. Die Hardware kann nach ihrem eigenen Takt abtasten, Tausende von Punkten je Sekunde in einen Puffer; dieser Treiber liest einen Abtastwert je Abfrage, er dient also langsamen Signalen, und eine Kurvenform oder eine Schwingung wird nicht gelesen.
  • Das Produkt enthält NI-DAQmx nicht: Ohne es auf diesem Rechner bleiben die Geräte getrennt, und die Seite des Treibers sagt, wie es installiert wird (NI-DAQmx auf diesem Rechner). Die Station übernimmt es ohne Neustart.
  • Die Vergleichsstelle eines Thermoelements kommt vom eingebauten Sensor des Moduls oder von einer festen Temperatur; eine aus einem anderen Kanal gelesene Vergleichsstelle wird nicht angeboten.
  • Ein Analogausgang wird nicht zurückgelesen: Ein Tag eines Spannungsausgangs ist Nur schreiben.
  • Ein Task, ein globaler Kanal oder eine benutzerdefinierte Skalierung, die in NI MAX gespeichert sind, werden nicht verwendet: Jedes Tag nennt einen physischen Kanal, der Treiber baut seine eigenen Tasks, und die Skalierung ist die Kette des Tags.