Set_Attribute_Single (FB)

FUNCTION_BLOCK Set_Attribute_Single EXTENDS BaseService

This function block is used for setting the attribute of a specific instance of a CIP object. This instance call sets the host name (of the device in the network) from the DEVICE_123_ETHERNET device as soon as xExecute yields TRUE:

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
    setAttributeSingle : ENIP.Set_Attribute_Single ;
    strHostnameToSet   : STRING64 := (sString := 'NewName');
END_VAR

strHostnameToSet.uiLength := INT_TO_UINT(Standard.LEN(strHostnameToSet.sString));
setAttributeSingle(
    xExecute:= ,
    itfEtherNetIPDevice:= EtherNetIP_Adapter,          (* instance of the device (instance is found in the I/O Image 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 *)
    pData:= ADR(strHostnameToSet),                     (* data to be assigned to the attribute *)
    udiDataSize:= SIZEOF(strHostnameToSet.uiLength) + strHostnameToSet.uiLength, (* size of the data. Here: size of the Length-Parameter PLUS the length of the string *)
    wAttribute:= 6,                                    (* attribute no. 6 of the tcp/ip interface object is the Hostname (CIP Spec. Vol.2 Chapter 5-3.3.2.6)*)
    xDone=> ,
    xBusy=> ,
    xError=> ,
    eError=> );
;
InOut:

Scope

Name

Type

Comment

Inherited from

Input

xExecute

BOOL

Rising edge: Action starts

Falling edge: Resets outputs

If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values (xDone, xError) are present at the outputs for exactly one cycle.

ETrig

Output

xDone

BOOL

TRUE: Action successfully completed

ETrig

xBusy

BOOL

TRUE: Function block active

ETrig

xError

BOOL

TRUE: Error occurred, function block aborts action

FALSE: No error

ETrig

Input

itfEtherNetIPDevice

IEtherNetIPService

BaseService

eClass

CIPClass

BaseService

dwInstance

DWORD

BaseService

Output

eError

ERROR

BaseService

Input

wAttribute

WORD

pData

POINTER TO BYTE

udiDataSize

UDINT