IOF_GetDeviceType

IOF_GetDeviceType 1:

Der Funktionsbaustein "IOF_GetDeviceType" ermittelt den Geräte-Typ anhand der Geräte-Id. Die Geräte-Ids werden während der Konfiguration vom TwinCAT-System Manager festgelegt und können nicht vom Benutzer konfiguriert werden. Intern wird in dem Funktionsbaustein eine Instanz des ADSREAD-Funktionsbausteins aufgerufen.

VAR_INPUT

VAR_INPUT
    NETID       : T_AmsNetId;
    DEVICEID    : UDINT;
    START       : BOOL;
    TMOUT       : TIME;
END_VAR

NETID: Hier kann die AmsNetId des TwinCAT-Rechners angegeben werden, auf dem die Funktion ausgeführt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

DEVICEID: Die Id des Gerätes, dessen Geräte-Typ gelesen werden soll

START: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

TMOUT: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

VAR_OUTPUT

VAR_OUTPUT
    BUSY          : BOOL;
    ERR           : BOOL;
    ERRID         : UDINT;
    IODeviceType  : IODEVICETYPES;
END_VAR

BUSY: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

ERR: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.

ERRID: Liefert bei einem gesetzten ERR-Ausgang die ADS-Fehlernummer.

IODeviceType: Die Geräte-Typ-Konstante.

Beispiel für einen Aufruf in FUP:

PROGRAM MAIN
VAR
    GetDeviceType1  : IOF_GetDeviceType;
    Start_GetType   : BOOL;
    GetType_Busy    : BOOL;
    GetType_Err     : BOOL;
    GetType_ErrId   : UDINT;
    DeviceType      : IODEVICETYPES;
END_VAR

IOF_GetDeviceType 2:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

IO-Hardware

Einzubindende SPS-Bibliotheken

TwinCAT v2.7.0

PC (i386)

All IO devices

Standard.Lib; PLCSystem.Lib; TcPLCAds.Lib; TcPlcIoFunctions.Lib

TwinCAT v2.8.0

PC (i386)

All IO devices

TcIoFunctions.Lib

( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib werden automatisch eingebunden )