ECATReadPDOData
Function Block - Copies the Input (Tx) PDO object data from an EtherCAT cyclic frame to a byte array.
Inputs
|
Input |
Data Type |
Range |
Unit |
Default |
Description |
|---|---|---|---|---|---|
|
Enable |
BOOL |
FALSE, TRUE |
N/A |
No default |
When Enable is TRUE, bytes are copied from the Input (Tx) PDO object to CoEDataArray.
|
|
Index |
UINT |
0 to 65535 |
N/A |
No default |
The CoE index of the source Input (Tx) PDO object. |
|
SubIndex |
USINT |
0 to 255 |
N/A |
No default |
The CoE sub-index of the source Input (Tx) PDO object. |
|
Size |
USINT |
1 to 255 |
BYTE |
No default |
The size of the CoE object to read.
|
|
DeviceAddress |
INT |
0 to 65535 |
N/A |
No default |
The EtherCAT address of the device from which data is read from.
|
|
CoEDataArray[ ] |
USINT[ ] |
|
N/A |
No default |
Input (Tx) PDO data is copied to this array. |
Outputs
|
Output |
Data Type |
Range |
Unit |
Description |
|---|---|---|---|---|
|
Valid |
BOOL |
FALSE, TRUE |
N/A |
If TRUE, the data returned is valid. |
|
Error |
BOOL |
FALSE, TRUE |
N/A |
If TRUE, an error has occurred. |
|
ErrorID |
DINT |
No range |
N/A |
Indicates the error if Error output is TRUE.
|
Remarks
- When the Enable input is TRUE, then on every cycle, the Input (Tx) PDO data is copied to the CoEDataArray.
- The EtherCAT Device and the EtherCAT Master should be in Operational State (EC_STATE_OP).
- SerializeIn can be used to extract the value from the CoEDataArray.
- Endianness: EtherCAT transmits the data in little endian format.
Figure 1: ECATReadPDOData
Error Codes
|
Value Dec (hex) |
Error Code |
Description |
|---|---|---|
|
0 |
ECERR_OK |
The SDO call succeeded. |
|
1000 (0x3E8) |
ECERR_DEVICE_ACTION_IS_INVALID |
The requested Device Action is invalid. |
|
1003 (0x3EB) |
ECERR_DEVICE_ACTION_MINIMUM_ONE_NODE_REQD |
A minimum of one device must be present in the EtherCAT network. |
|
1004 (0x3EC) |
ECERR_DEVICE_ACTION_MINIMUM_ONE_DC_NODE_REQD |
A minimum of one Distributed clock capable device must be present in the EtherCAT network. |
|
107 = 0x6B |
The size of the connections is too small.
|
|
|
1792 (0x700) |
ECERR_DEVICE_ERROR |
EtherCAT device is not accessible. |
|
1794 (0x702) |
ECERR_DEVICE_INVALIDCMD |
Invalid mailbox command. |
|
1795 (0x703) |
ECERR_DEVICE_INVALIDINDEX |
An invalid value for the Index input was specified. |
|
1796 (0x704) |
ECERR_DEVICE_INVALIDACCESS |
Reading of the variable is not permitted. |
|
1797 (0x705) |
ECERR_DEVICE_INVALIDSIZE |
An invalid size for the parameter was specified. |
|
1798 (0x706) |
ECERR_DEVICE_INVALIDDATA |
Invalid parameter value(s) in SDO index and/or sub-index. |
|
1799 (0x707) |
ECERR_DEVICE_NOTREADY |
Device is not in a ready state. The network is not in operational. |
|
1800 (0x708) |
ECERR_DEVICE_BUSY |
Device is not available to respond. |
|
1801 (0x709) |
ECERR_DEVICE_INVALIDCONTEXT |
Device responded with an illegal error code, indicating the command is not allowed under the present conditions. |
|
1802 (0x70A) |
ECERR_DEVICE_NOMEMORY |
EtherCAT mailbox is out of memory or device is out of disk space. |
|
1803 (0x70B) |
ECERR_DEVICE_INVALIDPARM |
EtherCAT mailbox request was not valid. |
|
1804 (0x70C) |
ECERR_DEVICE_NOTFOUND |
EtherCAT device not found. |
|
1805 (0x70D) |
ECERR_DEVICE_SYNTAX |
An unexpected error occurred. |
|
1810 (0x712) |
ECERR_DEVICE_INVALIDSTATE |
The EtherCAT device is in an invalid state. |
|
1817 (0x719) |
ECERR_DEVICE_TIMEOUT |
|
|
1826 (0x722) |
ECERR_DEVICE_INSERTMAILBOX |
Error while inserting the mailbox command into internal FIFO. |
|
1827 (0x723) |
ECERR_DEVICE_INVALIDOFFSET |
An invalid value for the SubIndex input was specified. |
|
1828 (0x724) |
ECERR_DEVICE_UNKNOWNMAILBOXCMD |
The master sent an unknown mailbox command to the slave. |
|
1829 (0x725) |
ECERR_DEVICE_ACCESSDENIED |
Device responded with an invalid access error code, indicating the command is not allowed. |
|
1832 (0x728) |
ECERR_DEVICE_INVALIDADDR |
The specified EtherCAT node address is invalid. |
|
1836 (0x72c) |
ECERR_DEVICE_NOT_A_FSOE_MASTER |
Device is not a FSoE master. |
|
1837 (0x072D) |
ECERR_DEVICE_DISCONNECTED |
The EtherCAT device is disconnected. |
|
1920 (0x780) |
ECERR_DEVICE_PARAM_ACCESS_ERROR |
Unknown error occurred while accessing parameter. |
|
1921 (0x781) |
ECERR_DEVICE_PARAM_NOT_FOUND |
Parameter was not found. |
|
1922 (0x782) |
ECERR_DEVICE_PARAM_NOT_INTEGER |
Parameter is a floating-point value. Integer value required. |
|
1923 (0x783) |
ECERR_DEVICE_VALUE_IS_NEGATIVE |
No negative values allowed. Value specified was negative. |
|
1924 (0x784) |
ECERR_DEVICE_VALUE_OUT_OF_RANGE |
Value is out of data-range. |
|
1925 (0x785) |
ECERR_DEVICE_VALUE_GREATER_THAN_MAX |
Value bigger than maximum. |
|
1926 (0x786) |
ECERR_DEVICE_VALUE_LOWER_THAN_MIN |
Value lower than minimum. |
|
2048 (0x800) |
ECERR_CLIENT_ERROR |
Error in Mailbox response to a previously sent mailbox command. |
|
2049 (0x801) |
ECERR_CLIENT_TIMEOUT |
The SDO command timed out. |
|
2050 (0x802) |
ECERR_CLIENT_ INVALIDPARM |
An invalid value was specified. |
|
2051 (0x803) |
ECERR_CLIENT_ INVALIDSIZE |
An invalid value for the size input was specified. |
FBD Language Example
FFLD Language Example
IL Language Example
Not available.
ST Language Example
Inst_ECATReadPDOData1( TRUE, 16#6063, 0, 4, EtherCAT.AKD_1, txPdoData );
IF Inst_ECATReadPDOData1.Valid THEN
// Data is valid and can be used.
// Extract the value from the byte array. Data is in little endian format.
SerializeIn( txPdoData, txObjValue1, 0, FALSE); END_IF;
See Also








