|
QLIB-Befehl: QAPIExtSpecial
Mit der Funktion QAPIExtSpecial wird das Ausführen von kartenspezifischen Funktionen ermöglicht.
ULONG QAPIExtSpecial (
ULONG cardhandle
ULONG jobcode
ULONG para1
ULONG para2
);
Parameter 1
| cardhandle |
Gibt das Handle einer geöffneten Karte an. |
Parameter 2:
| jobcode |
Gibt die Aktion an, die auf der Karte ausgelöst werden soll. |
Parameter 3:
| para1 |
Zusätzlicher Parameter der durch den jobcode bestimmt wird. |
Parameter 4:
| para2 |
Zusätzlicher Parameter der durch den jobcode bestimmt wird. |
Rückgabewert
Wurde die Funktion erfolgreich ausgeführt, so wird ein von jobcode anhängiger Rückgabewert geliefert.
Wenn die Funktion fehlgeschlagen ist, so ist der Rückgabewert immer 0.
Anmerkung
Für Watchdogkarten können die folgenden Werte für jobcode angegeben werden:
Jobcode: 1) JOB_ENABLE_WATCHDOG 2) JOB_DISABLE_WATCHDOG 3) JOB_RETRIGGER_WATCHDOG 4) JOB_STATUS_WATCHDOG
Funktion: 1) Die Watchdog wird aktiviert. 2) Die Watchdog wird deaktiviert. 3) Die Watchdog wird retriggert. Dies muß in zyklischen Zeitabständen geschehen. 4) Es wird der Status des Watchdogs ausgelesen.
para1: | para2: | Rückgabewert: 1) - - - | - - - |- - - 2) - - - | - - - |- - - 3) - - - | - - - |- - - 4) - - - | - - - | Status: Liefert NULL bei Timeout zurück
Für die Watchdogkarte WATCHDOG3 exisitieren vier zusätzliche Jobcodes:
Jobcode: 1) JOB_WDOG3_INITIALIZE 2) JOB_WDOG3_SET_WATCHDOG_TIME 3) JOB_WDOG3_SET_RELAIS_TIME 4) JOB_WDOG3_SET_REPEAT_TIME 5) JOB_WDOG3_RELAIS_INVERSION
Funktion: 1) Die Watchdog wird initialisiert. 2) Timeout-Zeit des Watchdogs (Tw = para1 * para2) wird eingestellt. 3) Anzugsdauer des Relais wird eingestellt. 4) Watchdog Reaktivierungs Zeitraum (Tra = para1 * para2) wird eingestellt. 5) Relaisinvertierung einstellen.
para1: | para2: | Rückgabewert: 1) - - - | - - - | - - - 2) Zeitraster in Millisekunden(1...32767) | Timeout-Zählerwert(1...256) | - - - 3) Anzugsdauer in Milli-sekunden(2...131071) | - - - | - - - 4) Zeitraster in Millisekunden(1..32767) | Reaktivierungs-Zählerwert(1...256) | - - - 5) 0 = Relais wird nicht invertiert angesteuert1 = Relais wird invertiert angesteuert | - - - | - - -
Die vier oben genannten Jobcodes MÜSSEN bei der WATCHDOG3 in der genannten Reihenfolge ausgeführt werden bevor die Karte über die allgemeinen Watchdog-Jobcodes angesprochen wird. Andernfalls wird die Karte in einem undefinierten Zustand betrieben.
Für die Prototypenkarten Proto1 und Proto2 können die folgenden Werte für jobcode angegeben werden:
Jobcode: 1) JOB_IOREAD_BYTE 2) JOB_IOREAD_WORD 3) JOB_IOREAD_LONG 4) JOB_IOWRITE_BYTE 5) JOB_IOWRITE_WORD 6) JOB_IOWRITE_LONG
Funktion: 1) Ein Byte von einer Protokarte lesen 2) Ein 16 Bit Wert einer Protokarte lesen 3) Ein 32 Bit Wert einer Protokarte lesen 4) Ein 8 Bit Wert auf eine Protokarte schreiben 5) Ein 16 Bit Wert auf eine Protokarte schreiben 6) Ein 32 Bit Wert auf eine Protokarte schreiben
para1: | para2: | Rückgabewert: 1) Offset zur Basisadresse | - - - | gelesener 8 Bit Wert 2) Offset zur Basisadresse | - - - | gelesener 16 Bit Wert 3) Offset zur Basisadresse | - - - | gelesener 32 Bit Wert 4) Offset zur Basisadresse | geschriebener 8 Bit Wert | - - - 5) Offset zur Basisadresse | geschriebener 16 Bit Wert | - - - 6) Offset zur Basisadresse | geschriebener 32 Bit Wert | - - -
Für die PAR48IO -- Karten können die folgenden Werte für jobcode angegeben werden:
Jobcode: 1) JOB_PAR48IO_READCNT 2) JOB_PAR48IO_IOMODE0_7 3) JOB_PAR48IO_IOMODE8_15 4) JOB_PAR48IO_IOMODE16_23 5) JOB_PAR48IO_IOMODE24_31 6) JOB_PAR48IO_IOMODE32_39 7) JOB_PAR48IO_IOMODE40_47 8) JOB_PAR48IO_RESET_TO_0 9) JOB_PAR48IO_RESET_TO_1 10) JOB_PAR48IO_LATCH
Funktion: 1) Liest den Wert des internen Zählers 2) Setzt die Datenrichtung der Leitungen 0 -- 7 auf Eingang bzw. Ausgang 3) Setzt die Datenrichtung der Leitungen 8 -- 15 auf Eingang bzw. Ausgang 4) Setzt die Datenrichtung der Leitungen 16 -- 32 auf Eingang bzw. Ausgang 5) Setzt die Datenrichtung der Leitungen 24 -- 31 auf Eingang bzw. Ausgang 6) Setzt die Datenrichtung der Leitungen 32 -- 39 auf Eingang bzw. Ausgang 7) Setzt die Datenrichtung der Leitungen 40 -- 47 auf Eingang bzw. Ausgang 8) Alle Ausgänge auf 0= "low" setzen 9) Alle Ausgänge auf 1= "high" setzen 10) Alle Eingänge in den Zwischenspeicher übernehmen, diese Funktion muss vor einem Lesebefehl bzw. nach einem Schreibbefehl durchgeführt werden.
para1: | para2: | Rückgabewert: 1) - - - | - - - | Zählerstand 2) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 3) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 4) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 5) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 6) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 7) JOB_PAR48IO_INPUT oder JOB_PAR48IO_OUTPUT | - - - | - - - 8) - - - | - - - | - - - 9) - - - | - - - | - - - 10) - - - | - - - | - - -
Für die GPIB Karten GPIB, PCIGPIB und USBGPIB können die folgenden Werte für jobcode angegeben werden:
Jobcode: 1) JOB_READSRQ 2) JOB_SERIALPOLL 3) JOB_GTL 4) JOB_GET 5) JOB_SDC 6) JOB_LLO 7) JOB_DCL 8)JOB_TIMEOUT 9)JOB_READ_DEFAULT_TIMEOUT 10)JOB_WRITE_DEFAULT_TIMEOUT
Funktion: 1) Den Status der SRQ Leitung lesen. SRQ wird gesetzt, wenn ein Gerät auf dem Bus Daten im Statusbyte bereit hält. Das ist z.B. bei einem DMM der Fall, wenn das DMM dem PC mitteilen möchte, dass es die Wandlung abgeschlossen hat, und einen Messwert abgeholt werden kann. 2) Führt eine Serial Poll Abfrage auf dem angegebenen Gerät durch. Die Abfrage liefert ein Statusbyte. Der Inhalt des Statusbytes wird durch den Hersteller des jeweiligen Messgerätes festgelegt. Konsultieren Sie hierzu bitte das Manual des jeweiligen Messgerätes. 3) Sendet das Kommando "Goto Local" an das angegebene Gerät. Schaltet das Gerät vom Fernbedienungsmodus in den Modus um, in dem es über das Frontpanel bedient werden kann. 4) Sendet das Kommando "Group Execute Trigger" an alle Geräte. Das Kommando startet dann auf allen Geräten am Bus eine gerätespezifische Funktion ( z.B. Messwert aufnehmen ). 5) Sendet das Kommando "Selected Device Clear" an das angegebene Gerät. Setzt das adressierte Gerät zurück. 6) Sendet das Kommando "Local LockOut" an alle Geräte. Schaltet die Möglichkeit aus, die Geräte über das Frontpanel zu bedienen. 7) Sendet das Kommando "Device Clear" an alle Geräte. Setzt alle Geräte zurück. 8) Setzt den GPIB Timeout in Millisekunden. Der Lese oder Schreibzugriff wird abgebrochen sobald die spezifische Zeit abgelaufen ist. 9) Liest den GPIB Timeout in Millisekunden aus. Dieses ist der Wert, auf den die GPIB initialisiert wird,wenn sie geöffnet wird. 10)Setzt den GPIB Timeout in Millisekunden. TDieses ist der Wert, auf den die GPIB initialisiert wird,wenn sie geöffnet wird. Rufen sie JOB_TIMEOUT auf um den Wert zu modifizieren nach dem die Karte geöffnet wurde. to modify the value after a card has been opened. Der Lese oder Schreibzugriff wird abgebrochen sobald die spezifische Zeit abgelaufen ist.
para1: | para2: | Rückgabewert: 1) - - - | - - - | Ungleich 0 wenn ein Gerät die SRQ Leitung aktiviert hat. Sonst 0. 2) Talkeradresse | - - - | Geräteabhängiges Statusbyte 3) Listeneradresse | - - - | Ungleich 0, wenn das Kommando erfolgreich ausgeführt wurde. 4) - - - | - - - | Ungleich 0, wenn das Kommando erfolgreich ausgeführt wurde. 5) Listeneradresse | - - - | Ungleich 0, wenn das Kommando erfolgreich ausgeführt wurde. 6) - - - | - - - | Ungleich 0, wenn das Kommando erfolgreich ausgeführt wurde. 7) - - - | - - - | Ungleich 0, wenn das Kommando erfolgreich ausgeführt wurde.
Für das PAR2DA Modul lassen sich mittels dieser Funktion die Ausgänge des DA Wandlers steuern:
Jobcode: 1) JOB_PAR2DA_ENABLE1 2) JOB_PAR2DA_ENABLE2
Funktion: 1) Aktiviert oder deaktiviert den Ausgang des DAC1. 2) Aktiviert oder deaktiviert den Ausgang des DAC2.
para1: | para2: | Rückgabewert: 1) Ein Wert ungleich NULL aktiviert den DAC1. Wird 0 übergeben so wird der DAC deaktiviert. | - - - | - - - 2) Ein Wert ungleich NULL aktiviert den DAC2. Wird 0 übergeben so wird der DAC deaktiviert. | - - - | - - -
QLIB Befehlsübersicht
|