IBHNet:Hochsprachenzugriffe

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche

Im Lieferumfang des IBHNet-Netzwerktreibers befindet sich ein Objekt, mit dem man einen Hochsprachenzugriff auf die Variablen von Steuerungen erhält.

Der Name der Schnittstelle lautet "IBHnet". Unter Visual Basic beispielsweise erscheint dies als IBHNet 1.0 Type Library unter dem Menüpunkt "Projekt-Verweise". Wenn über das IBHNet-Objekt Variablen aus der Steuerung gelesen oder geschrieben werden sollen, sollte nach Möglichkeit in der Station immer das Protokoll RFC1006 gewählt werden. Es ist nur in Einzelfällen bei älteren Baugruppen erforderlich, ein anderes Protokoll zu verwenden. Für den Zugriff auf Variablen der SPS steht folgende Schnittstelle zur Verfügung:

    Funktion der Schnittstelle IIIBHnet S5 S7
    300/400
    SoftSPS
    und
    S7-CX
    S7
    200
    Erste konfigurierte Station suchen
    HRESULT FirstStation(BSTR* pVal)
    pVal: Erster gefundener Stationsname
    Rückgabewert: S_OK bei Erfolg, S_FALSE wenn keine Station vorhanden ist.
    X X X X
    Weitere konfigurierte Stationen suchen
    HRESULT NextStation(BSTR* pVal)
    pVal: Stationsname
    Rückgabewert: S_OK bei Erfolg, S_FALSE wenn keine weitere Station vorhanden ist.
    Wenn kein Stationsmame mehr zurückgegeben wird, ist die letzte Station gefunden.
    X X X X
    Verbindung zur SPS aufbauen
    HRESULT Connect([in, string] BSTR Station,[in] long MPIAdr)
    Station: Stationsname
    MPIAdr: MPI Adresse
    Rückgabewert: S_OK bei Erfolg, E_FAIL oder die Sequenznummer, bei der der Fehler auftrat.
    Die Funktion Connect_DP aus dem Interface IIIBHNet3 sollte zum Verbindungsaufbau vorgezogen werden da diese bei Misserfolg in Programmiersprachen wie VisualBasic oder C# immer eine Exeption auslöst.
    X X X X
    Verbindung zur SPS trennen
    HRESULT Disconnect()
    Parameter: Keine
    Rückgabewert: Immer S_OK.
    X X X X
    Lesen von einzelnen Werten aus der SPS
    HRESULT ReadVal(long typ, long nr, long DBNr, long size, long *val)
    typ: (E)ingang = 69d, (A)usgang = 65d, (M)erker = 77d, (D)atenbaustein = 68d
    nr: Startadresse bei EAM, bei D die Startadresse im DB
    DBNr: Datenbausteinnumer bei typ=D (68d), bei EAM 0
    size: 0..7 = Die Bitnummer im gelesenen Byte, 8 = Byte, 16 = Wort, 32 = Doppelwort
    val: Der gelesene Wert.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler, E_ABORT wenn die SPS den Zugriff verweigert oder E_INVALIDARG wenn der Datenbereich nicht existiert oder zu klein ist.
    X X X X
    Blockweise Lesen von Werten aus der SPS
    HRESULT ReadVals(long typ, long nr, long DBNr, long size, SAFEARRAY(unsigned char) vals)
    typ: (E)ingang = 69d, (A)usgang = 65d, (M)erker = 77d, (D)atenbaustein = 68d
    nr: Startadresse bei EAM, bei D die Startadresse im DB
    DBNr: Datenbausteinnumer bei typ=D (68d), bei EAM 0
    size: Anzahl der zu lesenden Bytes
    vals: Das Byte Feld mit den Daten
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler, E_ABORT wenn die SPS den Zugriff verweigert oder E_INVALIDARG wenn der Datenbereich nicht existiert oder zu klein ist.

    ReadVals gibt Daten in einem SAFEARRAY vom Datentyp Byte zurück. DotNetReadVals gibt Daten in einer VARIANT Variable, die wiederum ein SAFEARRAY vom Datentyp Byte enthält zurück. In den .Net Sprachen ist der Übergabeparameter ein Objekt. Sollen Datenbereiche gelesen werden die größer sind als die auf der CPU tatsächlich vorhandenen Bereiche, so meldet die CPU dem Treiber dass der Datenbereich nicht existent ist. Die Funktion gibt in diesem Fall E_INVALIDARG zurück. Die Verbindung zur Steuerung bleibt dabei bestehen, es besteht kein Grund die Verbindung zur Steuerung zu trennen.
    X X X X
    Schreiben von einzelnen Werten in die SPS
    HRESULT WriteVal(long typ, long nr, long DBNr, long size, long val)
    typ: (E)ingang = 69d, (A)usgang = 65d, (M)erker = 77d, (D)atenbaustein = 68d
    nr: Startadresse bei EAM, bei D die Startadresse im DB
    DBNr: Datenbausteinnumer bei typ=D (68d), bei EAM 0
    size: 0..7 = Die Bitnummer im zu schreibenden Byte, 8 = Byte, 16 = Wort, 32 = Doppelwort
    val: Der zu schreibende Wert.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler, E_ABORT wenn die SPS den Zugriff verweigert oder E_INVALIDARG wenn der Datenbereich nicht existiert oder zu klein ist.
    X X X X
    Blockweise Schreiben von Werten in die SPS
    HRESULT WriteVals(long typ, long nr, long DBNr, long size,SAFEARRAY(unsigned char) vals)
    typ: (E)ingang = 69d, (A)usgang = 65d, (M)erker = 77d, (D)atenbaustein = 68d
    nr: Startadresse bei EAM, bei D die Startadresse im DB
    DBNr: Datenbausteinnumer bei typ=D (68d), bei EAM 0
    size: Anzahl der zu lesenden Bytes
    vals: Das Byte Feld mit den Daten
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler, E_ABORT wenn die SPS den Zugriff verweigert oder E_INVALIDARG wenn der Datenbereich nicht existiert oder zu klein ist.

    WriteVals übergibt Daten in einem SAFEARRAY vom Datentyp Byte. DotNetReadVals übergibt Daten in einer VARIANT Variable, die wiederum ein SAFEARRAY vom Datentyp Byte enthält. In den .Net Sprachen ist der Übergabeparameter ein Objekt. Sollen Datenbereiche geschrieben werden die größer sind als die auf der CPU tatsächlich vorhandenen Bereiche, so meldet die CPU dem Treiber dass der Datenbereich nicht existent ist. Die Funktion gibt in diesem Fall E_INVALIDARG zurück. Die Verbindung zur Steuerung bleibt dabei bestehen, es besteht kein Grund die Verbindung zur Steuerung zu trennen.
    X X X X
    Erzeugt das .bin File der SoftSPS welches das SPS-Programm enthält.
    HRESULT PLC_Store()
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird urückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Lädt das .bin File der SoftSPS welches das SPS-Programm enthält
    HRESULT PLC_Restore()
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Eigenschaften der Schnittstelle IIIBHnet S5 S7
    300/400
    SoftSPS
    und
    S7-CX
    S7
    200
    Betriebszustand der CPU lesen
    HRESULT PLC_Run([out, retval] BOOL *pVal)
    pVal: TRUE = Run, FALSE = Stop.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    X X X X
    Auslesen des Ausgabestands der SoftSPS
    HRESULT PLC_Version([out, retval] long *pVal)
    pVal: gibt den Ausgabestand zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen der Zyklen der SoftSPS
    HRESULT PLC_Cycles([out, retval] long *pVal))
    pVal: gibt die aktuelle Zyklenzahl zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Schaltet die SPS in Zustand STOP
    HRESULT PLC_Stop([in] BOOL newVal)
    Der Parameter newVal ist reserviert und muss immer FALSE sein.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    X X X -
    Neustart der SPS
    HRESULT PLC_Run_OB100([in] BOOL newVal)
    Der Parameter newVal ist reserviert und muss immer TRUE sein.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.

    Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.

    X X X -
    Wiederanlauf der SPS
    HRESULT PLC_Run_OB101([in] BOOL newVal)
    Der Parameter newVal ist reserviert und muss immer TRUE sein.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    X X X -
    Beendet die SoftSPS
    HRESULT PLC_Terminate([in] BOOL newVal)
    Der Parameter newVal ist reserviert und muss immer FALSE sein.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen der Serinnummer der SoftSPS
    HRESULT PLC_SerialNr([out, retval] BSTR *pVal)
    pVal: gibt die Seriennummer zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen des Benutzernamens der SoftSPS
    HRESULT PLC_Name([out, retval] BSTR *pVal)
    pVal: gibt den Benutzernamen zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen des Firmennamens der SoftSPS
    HRESULT PLC_Firma([out, retval] BSTR *pVal)
    pVal: gibt den Firmennamen zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    X X X -
    Auslesen der aktuellen Durchlaufzeit der SoftSPS
    HRESULT PLC_CycleAct([out, retval] long *pVal)
    pVal: gibt die aktuelle Durchlaufzeit zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen der minimalen Durchlaufzeit der SoftSPS
    HRESULT PLC_CycleMin([out, retval] long *pVal)
    pVal: gibt die minimale Durchlaufzeit zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -
    Auslesen der maximalen Durchlaufzeit der SoftSPS
    HRESULT PLC_CycleMax([out, retval] long *pVal)
    pVal: gibt die maximale Durchlaufzeit zurück.
    Rückgabewert: S_OK bei Erfolg, E_FAIL bei Fehler. E_NOTIMPL wird zurückgegeben, wenn die angeschlossene SPS die Funktion nicht untertützt.
    - - X -