FB_SoERead_ByDriveRef
The function block FB_SoeRead_ByRef allows to read drive parameters with the "Servo Drive Profile over EtherCAT"(SoE) protocol. This requires the slave to have a mailbox and to support the SoE protocol. The parameter to be read is specified by the parameters nIdn (Identification number), nElement and stDriveRef .
VAR_INPUT
VAR_INPUT
stDriveRef : ST_DriveRef; (* contains sNetID of EcMaster, nSlaveAddr of EcDrive, nDriveNo of EcDrive, either preset or read from NC *)
nIdn : WORD; (* SoE IDN: e.g. "S_0_IDN + 1" for S-0-0001 or "P_0_IDN + 23" for P-0-0023*)
nElement : BYTE; (* SoE element.*)
pDstBuf : DWORD; (* Contains the address of the buffer for the received data. *)
cbBufLen : UDINT; (* Contains the max. number of bytes to be received. *)
bExecute : BOOL; (* Function block execution is triggered by a rising edge at this input.*)
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;(* States the time before the function is cancelled. *)
END_VAR
stDriveRef: The drive reference can be linked in the System Manager between PLC and drive. The link can be done to an instance of the ST_PlcDriveRef. The structure ST_PlcDriveRef contains the NetID as byte array. The byte array can be converted to a string. See ST_DriveRef.
nIdn: Identification number of the parameter that is to be read.
nElement: Element number of the parameter that is to be read. The following values are allowed:
Value | Description |
---|---|
0x01 | Data Status |
0x02 | Name (read only) |
0x04 | Attribute |
0x08 | Unit |
0x10 | Minimum |
0x20 | Maximum |
0x40 | Value |
0x80 | Default |
pDstBuf:The address (pointer) of the buffer to be read.
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;
iAdsErrId : UINT;
iSercosErrId : UINT;
dwAttribute : DWORD;
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.
iSercosErrId: Supplies the Sercos error code associated with the most recently executed command if the bError output is set.
Requirements
Development environment | Target system type | PLC libraries to be linked |
---|---|---|
TwinCAT v2.10.0 or higher | PC or CX (x86) | TcEtherCAT.lib |
TwinCAT v2.10.0 Build >= 1301 or higher | CX (ARM) |