ReadMemory (FB) ¶ FUNCTION_BLOCK ReadMemory EXTENDS ETrigA This function block is for reading the memory of EtherCAT Slaves. Example: Following example code reads the register 0x130 (current status) PROGRAM PLC_PRG VAR etcreadmemory : ReadMemory ; wStatus : WORD ; xRead : BOOL ; END_VAR etcreadmemory ( xExecute := xRead , usiCom := 1 , wSlaveAddress := 1002 , xAutoIncAdr := FALSE , xBroadcast := FALSE , uiMemOffset := 16#130 , iSize := 2 , pDest := ADR ( wStatus ), udiTimeout := 500 ); InOut: Scope Name Type Initial 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 , iError ) are present at the outputs for exactly one cycle. ETrigA xAbort BOOL TRUE : Action is stopped immediately and all outputs are reset to their initial values. ETrigA Output xDone BOOL TRUE : Action successfully completed ETrigA xBusy BOOL TRUE : Function block active ETrigA xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigA xAborted BOOL TRUE : Action aborted by user ETrigA Input usiCom USINT 1 index of master 1: first Ethercat master wSlaveAddress WORD address either auto increment address or physical address of device xAutoIncAdr BOOL flag that determines which way to use the given address xBroadcast BOOL flag if broadcast read should be used, if true then wSlaveAddress and bAutoIncAdr are not used uiMemOffset UINT offset of memory iSize INT bytes to read pDest POINTER TO BYTE buffer to store the data udiTimeOut UDINT Timeout for operation in ms Output uiWorkingCounter UINT working counter of received command Methods: ReadPacket Structure: ReadPacket (Method)
ReadMemory.ReadPacket (METH) ¶ METHOD ReadPacket : BOOL InOut: Scope Name Type Return ReadPacket BOOL Input bReset BOOL
ReadNbrSlaves (FB) ¶ FUNCTION_BLOCK ReadNbrSlaves EXTENDS ETrigA Reads the number of connected slaves Example: PROGRAM PLC_PRG VAR readnbr : ReadNbrSlaves ; xRead : BOOL ; wNbrSlaves : WORD ; END_VAR IF xRead THEN readnbr.usiCom := DWORD_TO_USINT ( Ethercat_Master.InstanceNumber ); readnbr ( xExecute := TRUE , udiTimeOut := 1000 ); IF readnbr.xDone THEN xRead := FALSE ; wNbrSlaves := readnbr.wNumberSlaves ; readnbr ( xExecute := FALSE ); END_IF END_IF InOut: Scope Name Type Initial 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 , iError ) are present at the outputs for exactly one cycle. ETrigA xAbort BOOL TRUE : Action is stopped immediately and all outputs are reset to their initial values. ETrigA Output xDone BOOL TRUE : Action successfully completed ETrigA xBusy BOOL TRUE : Function block active ETrigA xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigA xAborted BOOL TRUE : Action aborted by user ETrigA Input usiCom USINT 1 index of master 1: first Ethercat master udiTimeOut UDINT Timeout for operation in ms Output wNumberSlaves WORD number of slaves currently available
ETC_CO_SdoWrite (FB) ¶ FUNCTION_BLOCK ETC_CO_SdoWrite This function block is for writing EtherCAT slave parameters. Unlike ETC_CO_SdoWrite4, parameter longer than 4 bytes are also supported. The parameters to be written are specified with Index and Subindex, as used in the object directory. InOut: Scope Name Type Initial Comment 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. xAbort BOOL FALSE TRUE: Action is stopped immediately and all outputs are reset to their initial values. usiCom USINT 1 Index of master 1: first ETC master uiDevice UINT The physical slave address to access the EtherCAT slave usiChannel USINT 1 not used in the moment because channel is set automatically wIndex WORD The index of the CoE object bySubindex BYTE The sub index of the CoE object udiTimeOut UDINT Timeout for operation in ms pBuffer CAA.PVOID Pointer to the buffer for writing the data szSize CAA.SIZE Number of bytes to be written eMode ETC_CO_MODE Mode for transmission Output xDone BOOL TRUE: Action successfully completed xBusy BOOL TRUE: Function block active xError BOOL TRUE: Error occurred, function block aborts action, FALSE: No error eError ETC_CO_ERROR If xError is true then eError shows the error reason udiSdoAbort UDINT The abort code as received from the slave device szDataWritten CAA.SIZE Number of byte successfully written
ETC_CO_SdoWrite4 (FB) ¶ FUNCTION_BLOCK ETC_CO_SdoWrite4 This function block is for writing EtherCAT slave parameters. Unlike ETC_CO_SdoWrite, only parameter that are no longer than 4 bytes are supported. The parameters to be written are specified with Index and Subindex, as used in the object directory. InOut: Scope Name Type Initial Comment 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. xAbort BOOL FALSE TRUE: Action is stopped immediately and all outputs are reset to their initial values. usiCom USINT 1 Index of master 1: first ETC master uiDevice UINT The physical slave address to access the EtherCAT slave usiChannel USINT 1 not used in the moment because channel is set automatically wIndex WORD The index of the CoE object bySubindex BYTE The sub index of the CoE object udiTimeOut UDINT Timeout for operation in ms abyData ARRAY [1..4] OF BYTE The data to be written usiDataLength USINT Number of bytes to be written Output xDone BOOL TRUE: Action successfully completed xBusy BOOL TRUE: Function block active xError BOOL TRUE: Error occurred, function block aborts action, FALSE: No error eError ETC_CO_ERROR If xError is true then eError shows the error reason udiSdoAbort UDINT The abort code as received from the slave device
ETC_CO_SdoWriteDWord (FB) ¶ FUNCTION_BLOCK ETC_CO_SdoWriteDWord Like ETC_CO_SdoWrite4, this function block is for writing EtherCAT slave parameters. However, the data to be written are transferred not as an array, but in a DWORD (dwData). If byte swapping is necessary it is carried out automatically. The value to be written can thus be specified directly. InOut: Scope Name Type Initial Comment 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. xAbort BOOL FALSE TRUE: Action is stopped immediately and all outputs are reset to their initial values. usiCom USINT 1 Index of master 1: first ETC master uiDevice UINT The physical slave address to access the EtherCAT slave usiChannel USINT 1 not used in the moment because channel is set automatically wIndex WORD The index of the CoE object bySubindex BYTE The sub index of the CoE object udiTimeOut UDINT Timeout for operation in ms dwData DWORD The data to be written usiDataLength USINT Number of bytes to be written Output xDone BOOL TRUE: Action successfully completed xBusy BOOL TRUE: Function block active xError BOOL TRUE: Error occurred, function block aborts action, FALSE: No error eError ETC_CO_ERROR If xError is true then eError shows the error reason udiSdoAbort UDINT The abort code as received from the slave device
ETC_CO_SdoWrite_Access (FB) ¶ FUNCTION_BLOCK ETC_CO_SdoWrite_Access Like ETC_CO_SdoWrite, this function block is for writing EtherCAT slave parameters. However, the complete index with all entries can be written with the help of the additional input xCompleteAccess (BOOL). If xCompleteAccess is set to TRUE, then bySubIndex must be 0. The corresponding data element (channel and priority) can be specified in the CoE mailbox message with the help of a further input, byChannelPriority (BYTE). InOut: Scope Name Type Initial Comment 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. xAbort BOOL FALSE TRUE: Action is stopped immediately and all outputs are reset to their initial values. usiCom USINT 1 Index of master 1: first ETC master uiDevice UINT The physical slave address to access the EtherCAT slave usiChannel USINT 1 not used in the moment because channel is set automatically wIndex WORD The index of the CoE object bySubindex BYTE The sub index of the CoE object udiTimeOut UDINT Timeout for operation in ms pBuffer CAA.PVOID Pointer to the buffer for writing the data szSize CAA.SIZE Number of bytes to be written eMode ETC_CO_MODE Mode for transmission xCompleteAccess BOOL FALSE Object should be written with complete access (all subobjects) byChannelPriority BYTE The special channel priority in the mailbox message could be set with this input Output xDone BOOL TRUE: Action successfully completed xBusy BOOL TRUE: Function block active xError BOOL TRUE: Error occurred, function block aborts action, FALSE: No error eError ETC_CO_ERROR If xError is true then eError shows the error reason udiSdoAbort UDINT The abort code as received from the slave device szDataWritten CAA.SIZE Number of byte successfully written
STRUCTS ¶ ETC_CO_Emergency (Struct)
ETC_CO_Emergency (STRUCT) ¶ TYPE ETC_CO_Emergency : STRUCT Structure for CoE emergency message InOut: Name Type wErrorCode WORD byErrorRegister BYTE abyErrorField ARRAY [0..4] OF BYTE
SdoInfo ¶ ETC_CO_SdoInfoGeEntryDescription (FunctionBlock) ETC_CO_SdoInfoGetODList (FunctionBlock) ETC_CO_SdoInfoGetObjectDescription (FunctionBlock)