FB_GetHostAddrByName

FB_GetHostAddrByName 1:

Mit diesem Funktionsbaustein kann die (IPv4) Internet Protokoll Netzwerkadresse für den angegebenen Hostnamen ausgelesen werden. Die Adresse wird als String und Byte-Array zurückgeliefert.

FB_GetHostAddrByName 2: Eingänge

VAR_INPUT
    sNetID    : T_AmsNetId;
    sHostName : T_MaxString := '';
    bExecute  : BOOL;
    tTimeout  : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

sNetID

T_AmsNetID

Hier kann die Netzwerkadresse des TwinCAT Rechners angegeben werden, auf dem das Kommando ausgeführt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

sHostName

T_MaxString

Host name als String. Z .B.: 'DataServer1'.

bExecute

BOOL

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

tTimeout

TIME 

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

FB_GetHostAddrByName 3: Ausgänge

VAR_OUTPUT
    bBusy    : BOOL;
    bError   : BOOL;
    nErrID   : UDINT;
    sAddr    : T_IPv4Addr := '';
    arrAddr  : T_IPv4AddrArr :=[ 0, 0, 0, 0];
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

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

bError

BOOL

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

nErrID

UDINT

Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer.

sAddr

T_Ipv4AddrArr

Internet Protokoll Netzwerkadresse (IPv4) als string. Z. B.: '172.16.7.199'

arrAddr

T_Ipv4AddrArr

Internet Protokoll Netzwerkadresse als byte array

Beispiel:

PROGRAM MAIN
VAR
    fbGet   : FB_GetHostAddrByName;
    bGet    : BOOL := TRUE;
    bError  : BOOL;
    nErrID  : UDINT;
    sIPv4   : T_IPv4Addr;(* Result: '87.106.8.100' *)
    arrIPv4 : T_IPv4AddrArr;
    state   : BYTE;
END_VAR
CASE state OF
0:
    IF bGet THEN
        bGet := FALSE;
        sIPv4 := '';
        fbGet( bExecute:= FALSE );
        fbGet( bExecute:= TRUE, sHostName := 'www.beckhoff.com' );
        state := 1;
    END_IF
1:
    fbGet( bExecute:= FALSE, bError=>bError, nErrID=>nErrID, sAddr=>sIPv4, arrAddr=>arrIPv4 );
    IF NOT fbGet.bBusy THEN
        state := 0;
    END_IF
END_CASE

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (WES7/Win7/Win10: TC RT x86/x64, WEC6/7: TC RT x86, WEC7: TC CE7 ARMV7)

Tc2_Utilities (System)