Grundlegende Schritte der IEC-Bus-Programmierung
• Erzeugen eines Antwortbuffers
Da die DLL bei Antworten nullterminierte Strings zurückliefert, muss vor dem Aufruf der Funktionen
ibrd() und ilrd() ein String mit ausreichender Länge erzeugt werden, da Visual Basic den
Strings eine Längenangabe voranstellt, die von der DLL nicht aktualisiert wird.
Zur Erzeugung der Längenangabe eines Strings stehen die beiden folgenden Möglichkeiten zur
Verfügung:
- Dim Rd as String * 100
- Dim Rd as String
Rd = Space$(100)
Initialisierung und Grundzustand
Zu Beginn eines jeden Programms müssen die von allen Unterprogrammen verwendeten globalen
Variablen angelegt werden.
Anschließend werden sowohl der IEC-Bus als auch die Einstellungen des Gerätes in einen definierten
Grundzustand gebracht. Dazu werden die Unterprogramme "InitController" und "InitDevice"
verwendet.
Anlegen globaler Variablen
Globale Variablen werden in Visual Basic in sogenannten "Modulen" (Datei-Extension: .BAS)
untergebracht. Es muss daher zumindest ein Modul (z.B. "GLOBALS.BAS) angelegt werden, das die
von allen Unterprogrammen gemeinsam verwendeten Variablen, wie z.B. die vom IEC-Bus-Treiber
verwendeten Variablen für die Geräteadressen, enthält.
Für die nachfolgenden Beispielprogramme muss die Datei folgende Anweisungen enthalten:
Global receiver As Integer
Global boardId As Integer
Controller initialisieren
REM ------------ Controller initialisieren -----------
Public SUB InitController()
iecaddress% = 20
CALL IBFIND("GPIB0", boardId%)
CALL IBFIND("DEV1", receiver %)
CALL IBPAD(receiver %, iecaddress%)
CALL IBTMO(receiver %, 11)
END SUB
REM ************************************************************************
1164.6459.11
'IEC-Busadresse des Gerätes
'Kanal zum IEC-Buscontroller
'öffnen
'Kanal zum Gerät öffnen
'Geräteadresse dem Controller
'mitteilen
'Antwortzeit auf 1 sec
7.2
R&S ESPI
D-2