
(8.3.02)
Für das Serai-USB gab es bisher fertige Software und Beispiele in Delphi. Ab jetzt kann auch Visual Basic eingesetzt werden. Das Projekt Serai-USB enthält ein Beispiel für die Ansteuerung: vbserusb.zip (3 k). Es wurde mit VB 5 geschrieben und kann auch in VB6 verwendet werden.

Das Projekt enthält das Modul EZserai.bas, das alle wichtigen Prozeduren und Funktionen bereitstellt. Es handelt sich um eine Erweiterung der Datei EZusb.bas von Karsten Böhme. Die Anwendung ist einfach. Beim Laden muss zunächst das kleine Maschinenprogramm Max186_a.bin in den Controller geladen und gestartet werden. Dann kann mit AD(Kanal) jeder der acht vorhandenen Kanäle gelesen werden. Das Beispielprogramm zeigt dies für zwei Kanäle.
Option Explicit
Dim AktPfad As String
Dim BinFileName As String
Dim U As Integer
Private Sub Form_Load()
AktPfad = App.Path
If Right$(AktPfad, 1) <> "\" Then
AktPfad = AktPfad + "\"
End If
BinFileName = AktPfad + "Max186_a.bin"
DownloadBin (BinFileName)
ProgStart
End Sub
Private Sub Timer1_Timer()
U = AD(0)
Text1.Text = Str$(U)
U = AD(1)
Text2.Text = Str$(U)
End Sub
Das Programm verwendet eine Timerprozedur, um die Messwerte laufend zu aktualisieren. Im Beispiel wurde an Kanal 0 die Betriebsspannung des Controllers auf dem selben Board gemessen. Der andere Kanal hatte einen offenen Eingang, seine Spannung war zufällig.

Die neue Funktion AD liest einen bestimmten Adressbereich aus dem RAM des Prozessors. Darin spiegeln jeweils zwei Bytes das Ergebnis der Messung eines Kanals wieder. Bei Bedarf könnte man mehr als einen Kanal aus diesen Daten lesen, da sie ja ohnehin schon übertragen wurden. Auf diese Weise ließen sich mehr Kanäle mit dem gleichen Zeitaufwand lesen.
Function AD(Kanal As Integer) As Integer
Dim ByteArray(33) As Byte
Dim ArraySize As Long
Dim DeviceHandle As Long
Dim Dummy As Long
Dim bResult As Boolean
Dim nBytes As Long
Dim MyRequest As VENDOR_REQUEST_IN
'**** Variablen initialisieren ****
MyRequest.bRequest = &HA0
MyRequest.lValue = &H1F0
MyRequest.lIndex = 0
MyRequest.lLength = 32
MyRequest.bDirection = DirectionRead
MyRequest.bData = 0 ' Reset = 0
ArraySize = 33
' Treiber öffnen
DeviceHandle = CreateFile("\\.\ezusb-0", GENERIC_WRITE, _
FILE_SHARE_WRITE, Security, OPEN_EXISTING, 0, 0)
bResult = DeviceIoControl(DeviceHandle, &H222014, MyRequest, Len(MyRequest), _
ByteArray(0), ArraySize, nBytes, gOverlaped)
' Treiber schließen
Dummy = CloseHandle(DeviceHandle)
AD = 16 * ByteArray(16 + 2 * Kanal) + ByteArray(17 + 2 * Kanal)
End Function
Weitere Informationen zum Thema:
Informationen und Software zum Serai-USB: www.ak-modul-bus.de/technik/serusb.html
Neueste Software zum Serai-USB: www.hjberndt.de/soft/seraiusb.html
EZ-USB-Download in VB: www.ak-modul-bus.de/technik/ezusb.html
USB-Informationen und Literatur: http://b.kainka.bei.t-online.de/usb.htm
Zurück zur Startseite der MB-News
Zurück zur Startseite AK-Modul-Bus