K8055 USB Interface- Board und LabVIEW:
Ansteuerung:
- Download labview8_k8055.zip von Hersteller Seite (http://www.velleman.eu)
- Datei K8055D.dll z.B. in das Verzeichnis c:/windows/system32 kopieren
sollen mehrere K8055 Board's parallel an einen PC angeschlossen werden, muss die .dll nochmals unter einem anderen Namen in das Verzeichnis c:/windows/system32 kopiert werden und entsprechend eingebunden werden.
Bsp.:- Board 1: K8055D.dll
- Board 2: K8055D2.dll (Kopie von K8055D.dll)
- ansprechen der Karte über CLF- Knoten (Knoten zum Aufruf externer Bibliotheken); Ruft eine dll- Funktion direkt auf
- Funktionsübersicht
Funktionsname Name (Parameter) Datentyp (Parameter) OpenDevice
OpenDevice(long CardAddress)z.B. arg1 oder CardAddress etc. Vorzeichenbehafteter 32- Bit Integer
(I32; Long- Integer)Wert zwischen 0 - 3 CloseDevice
CloseDevice()Rückgabetyp Digitale Kanäle Funktionsname Name (Parameter) Datentyp (Parameter) WriteAllDigital
WriteAllDigital(long Data)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 0 - 255
0 = output 1-8 aus
1 = output 1 an
3 = output 1-2 an
7 = output 1-3 an
15 = output 1-4 an
31 = output 1-5 an
63 = output 1-6 an
127 = output 1-7 an
255 = output 1-8 anClearDigitalChannel
ClearDigitalChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 8 ClearAllDigital
ClearAllDigital()Rückgabetyp SetDigitalChannel
SetDigitalChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 8 SetAllDigital
SetAllDigital()Rückgabetyp ReadDigitalChannel
ReadDigitalChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 5 ReadAllDigital
ReadAllDigital()Rückgabetyp Zähler Funktionsname Name (Parameter) Datentyp (Parameter) ReadCounter
ReadCounter(long CounterNr)z.B. counter Vorzeichenbehafteter 32- Bit Integer Wert 1 oder 2 ResetCounter
ResetCounter(long CounterNr)z.B. counter Vorzeichenbehafteter 32- Bit Integer Wert 1 oder 2 SetCounterDebounceTime
SetCounterDebounceTime(long CounterNr, long DebounceTime)z.B. counter Vorzeichenbehafteter 32- Bit Integer Wert 1 oder 2 z.B. DebounceTime Wert 0 - 5000 Analoge Kanäle Funktionsname Name (Parameter) Datentyp (Parameter) ReadAnalogChannel
ReadAnalogChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 2 ReadAllAnalog
ReadAllAnalog(long *Data1, long *Data2)z.B. data1
z.B. data 2Vorzeichenbehafteter 32- Bit Integer Zeiger OutputAnalogChannel
OutputAnalogChannel(long Channel, long Data)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 2 z.B. data Wert zwischen 0 - 255
z.B.:
0 = 0V
255 = 5V
z.B. data=200:
data/255*5V
= 200/255*5V = 3,92V
--> 200 = 3,92VOutputAllAnalog
OutputAllAnalog(long Data1, long Data2)z.B. data1 Vorzeichenbehafteter 32- Bit Integer Wert zwischen 0 - 255 z.B. data2 Wert zwischen 0 - 255 ClearAnalogChannel
ClearAnalogChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 2 ClearAllAnalog
ClearAllAnalog()Rückgabetyp SetAnalogChannel
SetAnalogChannel(long Channel)z.B. channel Vorzeichenbehafteter 32- Bit Integer Wert zwischen 1 - 2 SetAllAnalog
SetAllAnalog()Rückgabetyp - In der Benutzeranleitung von der Herstellerseite gibt es weitere Informationen über Befehle zum Ansprechen der Karte
-
OpenDevice (long CardAddress)
Öffnet den Kommunikationslink zu dem K8055 Gerät
Die Card Address ist davon abhängig wie der Jumper auf dem K8055 Board gesteckt wurde. Auf dem Bild ist CardAddress = 2 um die Karte anzusprechen. (SK5=Jumper; SK6=keinen Jumper) - CloseDevice()
schließt den Link zum K8055 Gerät und sollte an jedem Programm Ende stehen
Beispielprogramm:
- Digitaler Ausgang 1 ist gesetzt bis Digitaler Eingang 1 (z.B. Taster Inp1 auf Karte) betätigt wird:
Blockdiagramm: - Funktionen --> Programmierung --> Flache Sequenzstruktur einfügen
- Funktionen --> Konnektivität --> Bibliotheken und Programme --> Knoten zum Aufruf externer Bibliotheken einfügen
- Doppelklick auf „Knoten zum Aufruf externer Bibliotheken“ oder rechte Maustaste "Konfigurieren..."
Funktion
- Bibliotheksname oder Pfad: Pfad zur k8055D.dll
hier: C:\windows\system32\k8055D.dll
- Funktionsname: OpenDevice (fängt ein Programm immer mit an)
- Aufrufkonvention: stdcall (WINAPI)
für OpenDevice(long CardAddress)
- Parameter hinzufügen
Name: arg1 kann z.B. in cardAddress umbenannt werden
Datentyp: Vorzeichenbehafteter 32 Bit- Integer
--> Ok
- an Anschluss links (cardAddress) ein Bedienelement erstellen (rechte Maustaste auf cardAddress --> Erstellen --> Bedienelement)
- auf Flache Sequenzstruktur rechte Maustaste --> Rahmen danach einfügen
- Knoten zum Aufruf externer Bibliotheken einfügen
- „Knoten zum Aufruf externer Bibliotheken“ konfigurieren
Funktion
- Bibliotheksname oder Pfad:
hier: C:\windows\system32\k8055D.dll
- Funktionsname: SetDigitalChannel (schaltet einen output ein)
- Aufrufkonvention: stdcall (WINAPI)
Parameter
für SetDigitalChannel(long Channel)
- Parameter hinzufügen
- Parameter "arg1":
Name: channel
Datentyp: Vorzeichenbehafteter 32 Bit- Integer
--> Ok - an Anschluss links (channel) eine Konstante erstellen und auf "1" stellen (output 1 = ein)
- Flache Sequenzstruktur --> Rahmen danach einfügen
- Funktionen --> Programmierung --> Strukturen --> While- Schleife einfügen
- Knoten zum Aufruf externer Bibliotheken aus 2. Sequenz kopieren, einfügen
- „Knoten zum Aufruf externer Bibliotheken“ konfigurieren/ abändern
Funktion
- Funktionsname: ReadDigitalChannel (liest einen input)
Parameter
für ReadDigitalChannel(long Channel) ändern
- Parameter "Rückgabetyp":
Typ: Numerisches Element (liefert einen Rückgabewert)
--> Ok - an Anschluss links "channel" eine Konstante erstellen und auf "1" stellen (input 1 wird überwacht)
- CLF- Knoten hat rechts jetzt 2 Ausgänge:
Obere Ausgang: Rückgabewert liefert das Ergebnis, ob input 1 betätigt ist oder nicht
Untere Ausgang: Kopie vom linken Eingangswert
- Anzeigeelement an Ausgang "Rückgabetyp" erstellen
-
CLF- Knoten (Knoten zum Aufruf externer Bibliotheken; Code Library Function)
- Felder rechts:
- obere Ausgang: Rückgabewert; ein CLF- Knoten hat maximal einen Rückgabewert
- weitere Ausgänge: Kopie von jeweiligen linken Eingangswert - Felder links:
- erstes Feld ist leer
- weitere Felder: Eingangswerte
- Funktionen --> Programmierung --> Numerisch --> Konvertierung --> Zahl nach boolesches Array einfügen und Eingang mit "Rückgabewert" verbinden
- Funktionen --> Programmierung --> Cluster, Klasse, Variant --> Array nach Cluster einfügen und Eingang mit Ausgang "Zahl nach boolesches Array" verbinden
- Funktionen --> Programmierung --> Cluster, Klasse, Variant --> Aufschlüsseln einfügen und Eingang mit Ausgang "Array nach Cluster" verbinden
- Ausgang "Boolean array[0]" von "Aufschlüsseln" mit Schleifenbedingung verbinden (While- Schleife wird beendet wenn input 1 betätigt wird)
- Flache Sequenzstruktur --> Rahmen danach einfügen
- Knoten zum Aufruf externer Bibliotheken aus 1. Sequenz kopieren, einfügen
- „Knoten zum Aufruf externer Bibliotheken“ konfigurieren/ abändern
Funktion
- Funktionsname: ClearAllDigital (output 1-8 aus)
Parameter
für ClearAllDigital() ändern
- Parameter "cardAddress" löschen
--> Ok - Knoten zum Aufruf externer Bibliotheken aus 3. Sequenz kopieren, einfügen
- „Knoten zum Aufruf externer Bibliotheken“ konfigurieren/ abändern
Funktion
- Funktionsname: CloseDevice (USB- Schnittstelle wird geschlossen)
--> Ok
viAbschnitt kann in LabVIEW 2009 als funktionsfähiges VI eingefügt werden |
-
Flache Sequenzstruktur:
Erst wird der Rahmen ganz links abgearbeitet. Wurde dieser abgearbeitet wird mit dem nächsten begonnen. Usw.
-
Frontpanel:
- "cardAddress" auf 2 stellen
Über "Bearbeiten" --> "Aktuelle Werte als Standard" kann man den Wert als Standardwert festlegen. D.h. wenn das Programm später erneut geöffnet wird, ist cardAddress auf 2 eingestellt und muss nicht erneut eingegeben werden.
Programm speichern und ausführen