Zugriff auf ADS-Geräte
Für den Zugriff auf die Daten eines ADS-Gerätes stehen mehrere Möglichkeiten zur Verfügung:
- synchron
- asynchron
- zyklisch
Je nach Applikationsumgebung (Kommunikationsmedium, Datenmenge, Datenübertragungsrate,...) hat jede dieser Möglichkeiten ihre Vorzüge, die weiter unten im Einzelnen erläutert werden. Um eine Variable in einem ADS-Gerät zu identifizieren, gibt es zwei weitere Varianten.
Per Adresse
Es wird eine Adresse angegeben. Die Adresse setzt sich zusammen aus der Index-Gruppe und dem Index-Offset. Die Adressaufteilung ist aus der entsprechenden Dokumentation des ADS-Gerätes zu entnehmen.
Per Variablenname
Beim Zugriff auf ADS-Geräte kann alternativ auch der Name einer ADS-Variablen angegeben werden.
Synchron
Nach dem Aufruf der Schreib-/Lesemethode wird die Ausführung des Visual Basic-Programms so lange unterbrochen, bis die angeforderten Daten vorliegen. In den darauf folgenden Anweisungen kann mit den Daten sofort weiter gearbeitet werden. Der Vorteil dieser Zugriffsart ist, dass sehr wenig Programmieraufwand im Visual Basic-Programm durchgeführt werden muss.
Diese Zugriffsweise ist dann zu empfehlen, wenn sich das Visual Basic-Programm und das ADS-Gerät auf dem gleichen Rechner befinden oder über ein schnelles Netzwerk miteinander verbunden sind, so dass die Wartezeit sehr gering ist.
Beispiel: In einem Eingabefenster soll der Bediener verschiedene Parameter eingeben. Beim Betätigen eines Buttons, sollen die Daten in die SPS geschrieben werden. Da das Schreiben der Werte nicht zyklisch stattfindet, sondern von dem Verhalten des Bedieners abhängig ist, sollte in diesem Fall ein synchroner Schreibbefehl verwendet werden.
Asynchron
Bei dem asynchronen Zugriff wird die Ausführung des Visual Basic-Programms nicht unterbrochen, sondern sofort mit der Abarbeitung des nächsten Befehls fortgefahren. Treffen die angeforderten Daten beim ADS-OCX ein, wird im Visual Basic-Programm eine Ereignisfunktion ausgelöst, in der als Parameter der Wert übergeben wird. Dadurch, dass das Visual Basic-Programm zu einem beliebigen Zeitpunkt seine Daten erhalten kann, ist dort ein größerer Programmieraufwand notwendig als bei der synchronen Zugriffsweise.
Wenn der ADS-Server und das Visual Basic-Programm räumlich voneinander getrennt sind und das Datenübertragungsmedium sehr langsam ist, z.B. Modem oder ISDN, so ist die asynchrone Arbeitsweise sinnvoll.
Connect
Sollen Werte kontinuierlich zu einem Visual Basic-Programm übertragen werden, so ist die zyklische Zugriffsmethode, auch 'per connect' genannt, die einfachste und effektivste Möglichkeit. Ein Methodenaufruf veranlasst, dass die Daten aus dem ADS-Gerät zyklisch oder bei Veränderung dem Visual Basic-Programm durch eine Ereignisfunktion übergeben werden.
Beispiel: In einem Anzeigefenster sollen die Positionen mehrerer Achsen angezeigt werden; alle 250ms. Benutzen Sie die Methode AdsReadVarConnectEx() damit für jede Achsenposition alle 250ms das Ereignis AdsReadConnectUpdateEx() ausgelöst wird. Dieses Prinzip kann noch weiter optimiert werden, so dass nur dann Werte übertragen werden, wenn sich die Position der Achse verändert (server on change)! Ein kleines Beispiel finden Sie unter 'Ereignisgesteuertes Lesen'.
Rückgabewerte
Der Rückgabewert aller Methoden gibt Auskunft darüber, ob die durchgeführte Operation erfolgreich war oder ob ein Fehler aufgetreten ist. Allgemein gilt die Festlegung, dass der Rückgabewert 0 eine fehlerfreie Durchführung signalisiert. Eine genaue Auflistung der möglichen Rückgabewerte und ihre Bedeutungen finden Sie unter ADS-Fehlercodes.
Alternativ kann das ADS-OCX im Fehlerfall auch eine Exception auslösen. Dazu muss die Eigenschaft EnableErrorHandling auf TRUE gesetzt werden. Über das Objekt Err kann die Fehlerursache ermittelt werden. Das Object Err wird in der Dokumentation von Visual Basic beschrieben.