F_EcGetMailboxGatewayAddr

F_EcGetMailboxGatewayAddr 1:

Mit dieser Funktion kann die IP-Adresse sowie die MAC-Adresse eines EtherCAT-Master-Gerätes über dessen Objekt-ID ermittelt werden. Der Rückgabewert der Funktion signalisiert, ob der Aufruf erfolgreich war und gibt im Fehlerfall den entsprechenden Fehlercode aus.

Sollten die Adressen als STRING gewünscht sein, so stehen in der Tc2_System Bibliothek die Funktionen F_CreateIPv4Addr und F_CreateMacAddr zum Konvertieren zur Verfügung.

F_EcGetMailboxGatewayAddr 2: Rückgabewert

METHOD F_EcGetMailboxGatewayAddr : HRESULT

Name

Typ

Beschreibung

F_EcGetMailboxGatewayAddr

HRESULT

Signalisiert, ob der Aufruf erfolgreich war und gibt im Fehlerfall den entsprechenden Fehlercode aus.

F_EcGetMailboxGatewayAddr 3: Eingänge

VAR_INPUT
    oidEcMaster : OTCID; // object ID of EtherCAT master
END_VAR

Name

Typ

Beschreibung

oidEcMaster

OTCID

An diesem Eingang wird die Objekt-ID des EtherCAT-Master-Gerätes angegeben. Sollte diese nicht bekannt sein, so kann sie mittels FB_EcMasterObjectID ausgelesen werden.

F_EcGetMailboxGatewayAddr 4: Ausgänge

VAR_OUTPUT
    aIpAddress      : T_IPv4AddrArr;
    aMacAddress     : ARRAY[0..5] OF BYTE;
END_VAR

Name

Typ

Beschreibung

aIpAddress

T_IPv4AddrArr

Byte-Array der (IPv4) Internet-Protocol-Netzwerkadresse

aMacAddress

ARRAY[0..5] OF BYTE

Byte-Array der (IPv4) MAC-Adresse

Beispiel für einen Aufruf in ST:

PROGRAM MAIN_MailboxGateway
VAR
    bRead             : BOOL;
    fbRead            : FB_EcMasterObjectID;
    nErrorID          : UDINT; 
    hr                : HRESULT;
    
    aIpAddress        : T_IPv4AddrArr;
    sIpAddress        : T_IPv4Addr;
    aMacAddress       : T_MacAddrArr;
    sMacAddress       : T_MacAddr;
END_VAR
IF bRead THEN
    bRead := FALSE;
    fbRead( sNetId:= '1.2.3.4.5.6', bExecute:= TRUE );
ELSE
    fbRead( bExecute:= FALSE );
END_IF
IF fbRead.bError THEN
    nErrorID := fbRead.nErrId;
END_IF

IF fbRead.oidEcMaster <> 0 THEN
    hr := F_EcGetMailboxGatewayAddr(fbRead.oidEcMaster, aIpAddress=>aIpAddress, aMacAddress=>aMacAddress);
    IF SUCCEEDED(hr) THEN
        sIpAddress := F_CreateIPv4Addr(aIpAddress);
        sMacAddress := F_CreateMacAddr(aMacAddress, '-', FALSE);
    END_IF
END_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS- Bibliotheken

TwinCAT v3.1.4026.16

PC oder CX (x86, x64, Arm®)

Tc2_EtherCAT >= 3.7.1.0