Get_Attribute_Single (FB)ΒΆ

FUNCTION_BLOCK Get_Attribute_Single EXTENDS BaseService

Use this function block for querying the attribute of a specific instance of a CIP object.

Note

Data received and send needs to be swapped. See parent folder.

(* CIP Data type for string with a length of max. 64 chars *)
TYPE STRING64 :
STRUCT
   uiLength   : UINT;
   sString    : STRING(63);
END_STRUCT
END_TYPE

PROGRAM PLC_PRG
VAR
    strHostnameToGet   : STRING64;
    getAttributeSingle : ENIP.Get_Attribute_Single ;
    udiReceivedData    : UDINT;
END_VAR

getAttributeSingle(
    xExecute:= ,
    itfEtherNetIPDevice:= EtherNetIP_Adapter,    (* instance of the device (instance is found in the I/O Mapping of the device) *)
    eClass:= ENIP.CIPClass.TCPIPInterfaceObject, (* cip class which contains the desired attribute *)
    dwInstance:= 1,                              (* value of 0 is class level, range from 1..x is instance level *)
    wAttribute:= 6,                              (* attribute no. 6 of the tcp/ip interface object is the Hostname (CIP Spec. Vol.2 Chapter 5-3.3.2.6)*)
    pData:= ADR(strHostnameToGet),               (* data buffer *)
    udiDataSize:= SIZEOF(strHostnameToGet),      (* size of the data buffer *)
    xDone=> ,
    xBusy=> ,
    xError=> ,
    eError=> ,
    udiReceivedDataSize=> udiReceivedData );     (* if the request was successful, udiReceivedData contains the number of bytes which have been received *)
    ;
InOut:

Scope

Name

Type

Inherited from

Input

xExecute

BOOL

ETrig

Output

xDone

BOOL

ETrig

xBusy

BOOL

ETrig

xError

BOOL

ETrig

Input

itfEtherNetIPDevice

IEtherNetIPService

BaseService

eClass

CIPClass

BaseService

dwInstance

DWORD

BaseService

tTimeOut

TIME

BaseService

Output

eError

ERROR

BaseService

Input

wAttribute

WORD

pData

POINTER TO BYTE

udiDataSize

UDINT

Output

udiReceivedDataSize

UDINT