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
Comment
Inherited from
Input
xExecuteBOOLRising edge: Action startsFalling edge: Resets outputsIf 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
xDoneBOOLTRUE: Action successfully completedETrig
xBusyBOOLTRUE: Function block activeETrig
xErrorBOOLTRUE: Error occurred, function block aborts actionFALSE: No errorETrig
Input
itfEtherNetIPDeviceIEtherNetIPServiceBaseService
eClassBaseService
dwInstanceDWORDBaseService
Output
eErrorBaseService
Input
wAttributeWORDpDataPOINTER TO BYTE
udiDataSizeUDINTOutput
udiReceivedDataSizeUDINT