BT2k
|
RSAPI unter LabView 8.2 für Windows
LabVIEW & RSAPI.DLL
|
Logo von LabVIEW 8.2 (ni.com)
|
|
Nach zwanzig Jahren hat es jetzt den Anschein als würde sich die grafische Programmierumgebung an entsprechenden Stellen der Industrie und Lehre als Standard durchsetzen.
Messen, Steuern und Regeln - kurz MSR - war und ist auch Haupteinsatzgebiet der RSAPI. DLL aus [1]. Hier soll nun gezeigt werden, wie man diese DLL unter LabVIEW 8.2 einbinden kann. Die Art und Weise unterscheidet sich sehr stark zu früheren Versionen, etwa die von Version 6.1.
Bei der RSAPI handelt es sich um eine Bibliothek, die verschiedene Interfaces - hauptsächlich die der Firma modul-bus - auf einfache Weise unterstützt. Sie wird aber auch in der Lehre eingesetzt, um serielle Geräte aus dem Labrorbereich anzusteuern. Es handelt sich also nicht um die Einbindung eines Gerätes - anders ausgedrückt: hier wird kein Gerätetreiber erzeugt, sondern eine externe Bibliothek eingebunden, die ihrerseits viele Geräte unterstützt. Das Verfahren funktioniert auch mit anderen Bibliotheken.
|
Import von externen Bibliotheken
Import
Im Menü von LabVIEW 8.2.n gelangt man über Werkzeuge/ Importieren/Shared Library (dll) zum Ziel. Jetzt wird ein Assistent gestartet, der die Einbindung recht komfortabel gestaltet. Bevor die Dll eingebunden werden kann, sollte der Speicherort der Bibliothek, hier also der RSAPI.DLL bekannt sein. Auch die Deklarationen, also die Art und Weise wie die Funktionen aufgerufen werden, muss bekannt sein. Nach einer gewissen Latenz reagiert Labview 8 mit dem Assistenten.
|
Startbildschirm von LabVIEW 8.2
|
|
Die Headerdatei RSAPI.H
Der Assistent erwartet nun eine Headerdatei zur DLL. Darin stehen unter der Programmiersprache C die Deklarationen. Diese Angaben findet man für die RSAPI in [1]. Hier sollen nur einige wichtige Funktionen aufgeführt werden:
Inhalt von "rsapi.h"
//Simple Header for RSAPI
int FINDHARD (int);
int READBYTE (void);
int SENDBYTE (int);
int AIN(int);
int DOUT(int);
int VERSION(int);
Die Datei wurde hier im Wurzelverzeichnis des Laufwerks C abgelegt und der Pfad kann entsprechend angegeben werden.
|
|
Konfigurieren
Der nächste Bildschirm zeigt alle in der DLL enthaltenen Funktionen. LabVIEW warnt, dass nicht alle in der Headerdatei deklariert wurden. Das ist korrekt. Danach muss jede Funktion konfiguriert werden. Wird hier nur auf "Weiter" gedrückt, wird LabVIEW schnell und kurz abstürzen. Alle hier importierten Funktionen erwarten numerische Parameter mit Wertübergabe und der Darstellung Word (ändern!). Die Aufrufkonvention ist StdCall (ändern!), nicht C (Tab Deklaration). Wird dies ignoriert: LabVIEW stürzt nach dem ersten Aufruf einer Funktion ohne Rückmeldung ab! Dies ist kein Fehler von LabVIEW, sondern des Benutzers, der die DLL fasch aufruft und diese Zeilen ignorierte!
Sechs neue VI
|
|
Weitere Anpassungen sind nicht erforderlich und den Anweisungen des Assistenten kann bis zu "Beenden" Folge geleistet werden.
Die DLL wird aus dem Quellverzeichnis kopiert und liegt nun auch unter ... National Instruments\LabVIEW 8.2\user.lib\rsapi.
Mit Drag & Drop können die VI jetzt schon auf ein leeres VI geschoben werden.
|
|
Ein kleiner Test
|
Nach dem nächsten Neustart von LabVIEW (oder Absturz) findet man die sechs neuen VI hier:
|
Hier ein Testprogramm mit Findhard und Ain. Findhard wird hier mit der Konstanten 1 aufgerufen, wodurch eine Messagebox erzwungen wird und die Parameterübergabe getestet werden kann. Man kann erkennen, dass LabVIEW nicht wartet, wie Windows, sondern obwohl die Meldung noch steht, die Whileschleife ihre Arbeit beginnt. In der Schleife wird alle 40 ms der Analogwert von Eingang 1
|
numerisch wie auch in einem Signalverlauf grafisch dargestellt. Ohne Hardware liefert die RSAPI Simulationswerte in Form einer langsamen 25 mHz-Schwingung. Der Rückgabeparameter von Findhard wird in diesem kurzen Beispiel nicht benutzt. Versierte LabVIEW-Programmierer könnten die gefundene Hardware abfragen und mit entsprechenden Zeichenketten anzeigen.
KEIN=0; COMPULAB=1; KARTE=2; SIOS=4; ZELLE=8; RSBOX=16; CAMFACE=32; CLABUSB=64;CCONTROL=128; HYGRO=256; DL410=512; MBAD210=1024;
|
|
|
|
|
Weitere Software
|