FB_EcGetAllSlaveAddr

FB_EcGetAllSlaveAddr 1:

The FB_EcGetAllSlaveAddr function block allows the addresses of all the slaves connected to the master to be read. When the call is successful, the buffer passed in the parameter pAddrBuf contains the addresses of all the slaves as an array of UINTs.

VAR_INPUT

VAR_INPUT
    sNetId      : T_AmsNetId;
    pAddrBuf    : POINTER TO ARRAY[0..EC_MAX_SLAVES] OF UINT; 
    cbBufLen    : UDINT 
    bExecute    : BOOL; 
    tTimeout    : TIME := DEFAULT_ADS_TIMEOUT; 
END_VAR

sNetId: This is a string that contains the AMS network identifier of the EtherCAT master device.

pAddrBuf: The address of an array of UINTs into which the addresses of the individual slaves are to be written.

cbBufLen:The maximum available buffer size for the data to be read, in bytes.

bExecute: The block is activated by a rising edge at this input.

tTimeout: Maximum time allowed for the execution of the function block.

VAR_OUTPUT

VAR_OUTPUT
    bBusy       : BOOL;
    bError      : BOOL;
    nErrId      : UDINT;
    nSlaves     : UINT; 
END_VAR

bBusy: This output is set when the function block is activated and remains set until an acknowledgement is received.

bError: This output is set up after the bBusy output has been reset if there has been an error in transmission of the command.

nErrId: Supplies the ADS error code associated with the most recently executed command if the bError output is set.

nSlaves: The number of slaves connected to the master.

 

Example of an implementation in ST:

PROGRAM TEST_GetAllSlaveAddresses
VAR
    fbGetAllSlaveAddr       : FB_EcGetAllSlaveAddr;
    sNetId          : T_AmsNetId := '172.16.2.131.2.1';
    bExecute        : BOOL;
    slaveAddresses      : ARRAY[0..255] OF UINT;
    nSlaves             : UINT := 0;
    bError          : BOOL;
    nErrId          : UDINT;
END_VAR
fbGetAllSlaveAddr(sNetId:= sNetId,pAddrBuf := ADR(slaveAddresses), cbBufLen:= SIZEOF(slaveAddresses), bExecute:=bExecute);
nSlaves:=fbGetAllSlaveAddr.nSlaves;
bError:=fbGetAllSlaveAddr.bError;
nErrId:=fbGetAllSlaveAddr.nErrId;

Requirements

Development environment

Target system type

PLC libraries to be linked

TwinCAT v2.10.0 or higher

PC or CX (x86)

TcEtherCAT.lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib, TcUtilities.Lib are included automatically )

TwinCAT v2.10.0 Build >= 1301 or higher

CX (ARM)