EtherCATReadOD
- 位置
sys_ethercat.aclib
- 功能说明
通过SDO服务读取对象数据。
- 参数说明
输入输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
od_read | ethercat_od | EtherCAT对象数据 | × | × |
error_code | ethercat_error_code | EtherCAT对象数据读取错误码 | × | × |
输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
EtherCATReadOD | DINT | 读取OD的字节长度(失败返回-1) | × | × |
ethercat_od类型说明:
名称 | 数据类型 | 含义 |
---|---|---|
master_id | DWORD | 主站ID,只支持0 |
slave_address | DWORD | 从站地址 |
index | WORD | 索引 |
sub_index | WORD | 子索引 |
buffer | POINTER TO BYTE | 数据缓存首地址 |
buffer_size | DWORD | 数据缓存大小 |
ethercat_error_code类型说明:
值 | 含义 |
---|---|
ETHERCAT_NO_ERROR | no error |
ETHERCAT_ERROR_INVALID_PARAM | Invalid input parameter, please check that the pointer is null or buffer size is zero, and so on |
ETHERCAT_ERROR_INVALID_DEV_OPS | EtherCAT provide api is invalid |
ETHERCAT_ERROR_INVALID_MASTER_ID | Invalid etherCAT master id |
ETHERCAT_ERROR_EXTLIB_ON_BUSTASK | EtherCAT external library interface is not allowed to run on the task for ethercat bus |
ETHERCAT_ERR_INVALID_SLAVE_ADDR | Invalid etherCAT slave address |
ETHERCAT_ERROR_MASTER_NOT_READY | EtherCAT master not ready |
ETHERCAT_ERROR_SLAVE_NOT_READY | EtherCAT slave not ready |
ETHERCAT_ERROR_SDO_TOGGLE | ERROR SDO: Toggle bit not alternated |
ETHERCAT_ERROR_SDO_TIMEOUT | ERROR SDO: SDO protocol time-out |
ETHERCAT_ERROR_SDO_CCS_SCS | ERROR SDO: Client/server command specifier not valid or unknown |
ETHERCAT_ERROR_SDO_BLK_SIZE | ERROR SDO: Invalid block size (block mode only) |
ETHERCAT_ERROR_SDO_SEQNO | ERROR SDO: Invalid sequence number (block mode only) |
ETHERCAT_ERROR_SDO_CRC | ERROR SDO: CRC error (block mode only) |
ETHERCAT_ERROR_SDO_MEMORY | ERROR SDO: Out of memory |
ETHERCAT_ERROR_SDO_ACCESS | ERROR SDO: Unsupported access to an object |
ETHERCAT_ERROR_SDO_WRITEONLY | ERROR SDO: Attempt to read a write only object |
ETHERCAT_ERROR_SDO_READONLY | ERROR SDO: Attempt to write a read only object |
ETHERCAT_ERROR_SDO_INDEX | ERROR SDO: Object does not exist in object dictionary |
ETHERCAT_ERROR_SDO_PDO_MAP | ERROR SDO: Object cannot be mapped to PDO |
ETHERCAT_ERROR_SDO_PDO_LEN | ERROR SDO: Number and length of objects to be mapped exceed PDO length |
ETHERCAT_ERROR_SDO_P_INCOMP | ERROR SDO: General parameter incompatibility |
ETHERCAT_ERROR_SDO_I_INCOMP | ERROR SDO: General internal incompatibility in device |
ETHERCAT_ERROR_SDO_HARDWARE | ERROR SDO: Access failed due to an hardware error |
ETHERCAT_ERROR_SDO_DATA_SIZE | ERROR SDO: Data type does not match, length of service parameter does not match |
ETHERCAT_ERROR_SDO_DATA_SIZE1 | ERROR SDO: Data type does not match, service parameter too long |
ETHERCAT_ERROR_SDO_DATA_SIZE2 | ERROR SDO: Data type does not match, service parameter too short |
ETHERCAT_ERROR_SDO_OFFSET | ERROR SDO: Sub-index does not exist |
ETHERCAT_ERROR_SDO_DATA_RANGE | ERROR SDO: Write access - Parameter value out of range |
ETHERCAT_ERROR_SDO_DATA_RANGE1 | ERROR SDO: Write access - Parameter value out of high limit |
ETHERCAT_ERROR_SDO_DATA_RANGE2 | ERROR SDO: Write access - Parameter value out of low limit |
ETHERCAT_ERROR_SDO_MINMAX | ERROR SDO: Maximum value less than minimum value |
ETHERCAT_ERROR_SDO_GENERAL | ERROR SDO: General error |
ETHERCAT_ERROR_SDO_TRANSFER | ERROR SDO: Unable to transfer or store data to application |
ETHERCAT_ERROR_SDO_TRANSFER1 | ERROR SDO: Unable to transfer or store data to application because of local control |
ETHERCAT_ERROR_SDO_TRANSFER2 | ERROR SDO: Unable to transfer or store data to application because of present device state |
ETHERCAT_ERROR_SDO_DICTIONARY | ERROR SDO: Dynamic generation of object dictionary failed or missing object dictionary |
ETHERCAT_ERROR_SDO_UNKNOWN | ERROR SDO: Unknown code |
ETHERCAT_ERROR_SDO_MODULE_ID | ERROR SDO: Detected Module Ident List (0xF030) and Configured Module Ident list (0xF050) does not match |
ETHERCAT_UNKNOWN_ERROR | An error occurred during operation |
示例
(例程路径:安装目录\example\EtherCAT指令)
示例功能说明 读取从站地址为1001、主索引为16#6091、子索引为1、数据字节长度为4的SDO对象字典数据。
变量定义
变量名 数据类型 初值 注释 od_read ethercat_od (slave_address := 1001,index := 16#6091,sub_index := 1,buffer_size := 4) EtherCAT对象数据 error_code ethercat_error_code ETHERCAT_NO_ERROR EtherCAT读取对象数据错误码 readOD DINT 读取OD的长度,失败时返回-1 Data_Read DINT 读取到的数据
ethercat_od类型参数:
名称 | 数据类型 | 值 | 含义 |
---|---|---|---|
master_id | DWORD | 0 | 主站ID,只支持0 |
slave_address | DWORD | 1001 | 从站地址 |
index | WORD | 16#6091 | 索引 |
sub_index | WORD | 1 | 子索引 |
buffer | POINTER TO BYTE | 数据缓存首地址 | |
buffer_size | DWORD | 4 | 为读取数据开辟的缓存大小 |
CFC示例
ST示例
od_read.buffer:=adr(Data_Read);
readOD := EtherCATReadOD( od_read , error_code );
EtherCATWriteOD
- 位置
sys_ethercat.aclib
- 功能说明
通过SDO服务写入对象数据。
- 参数说明
输入输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
od_write | ethercat_od | EtherCAT对象数据 | × | × |
error_code | ethercat_error_code | EtherCAT对象数据写入错误码 | × | × |
输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
EtherCATWriteOD | DINT | 写入OD的长度 | × | × |
ethercat_od类型说明:
名称 | 数据类型 | 含义 |
---|---|---|
master_id | DWORD | 主站ID,只支持0 |
slave_address | DWORD | 从站地址 |
index | WORD | 索引 |
sub_index | WORD | 子索引 |
buffer | POINTER TO BYTE | 数据缓存首地址 |
buffer_size | DWORD | 数据缓存大小 |
ethercat_error_code类型说明:
值 | 含义 |
---|---|
ETHERCAT_NO_ERROR | no error |
ETHERCAT_ERROR_INVALID_PARAM | Invalid input parameter, please check that the pointer is null or buffer size is zero, and so on |
ETHERCAT_ERROR_INVALID_DEV_OPS | EtherCAT provide api is invalid |
ETHERCAT_ERROR_INVALID_MASTER_ID | Invalid etherCAT master id |
ETHERCAT_ERROR_EXTLIB_ON_BUSTASK | EtherCAT external library interface is not allowed to run on the task for ethercat bus |
ETHERCAT_ERR_INVALID_SLAVE_ADDR | Invalid etherCAT slave address |
ETHERCAT_ERROR_MASTER_NOT_READY | EtherCAT master not ready |
ETHERCAT_ERROR_SLAVE_NOT_READY | EtherCAT slave not ready |
ETHERCAT_ERROR_SDO_TOGGLE | ERROR SDO: Toggle bit not alternated |
ETHERCAT_ERROR_SDO_TIMEOUT | ERROR SDO: SDO protocol time-out |
ETHERCAT_ERROR_SDO_CCS_SCS | ERROR SDO: Client/server command specifier not valid or unknown |
ETHERCAT_ERROR_SDO_BLK_SIZE | ERROR SDO: Invalid block size (block mode only) |
ETHERCAT_ERROR_SDO_SEQNO | ERROR SDO: Invalid sequence number (block mode only) |
ETHERCAT_ERROR_SDO_CRC | ERROR SDO: CRC error (block mode only) |
ETHERCAT_ERROR_SDO_MEMORY | ERROR SDO: Out of memory |
ETHERCAT_ERROR_SDO_ACCESS | ERROR SDO: Unsupported access to an object |
ETHERCAT_ERROR_SDO_WRITEONLY | ERROR SDO: Attempt to read a write only object |
ETHERCAT_ERROR_SDO_READONLY | ERROR SDO: Attempt to write a read only object |
ETHERCAT_ERROR_SDO_INDEX | ERROR SDO: Object does not exist in object dictionary |
ETHERCAT_ERROR_SDO_PDO_MAP | ERROR SDO: Object cannot be mapped to PDO |
ETHERCAT_ERROR_SDO_PDO_LEN | ERROR SDO: Number and length of objects to be mapped exceed PDO length |
ETHERCAT_ERROR_SDO_P_INCOMP | ERROR SDO: General parameter incompatibility |
ETHERCAT_ERROR_SDO_I_INCOMP | ERROR SDO: General internal incompatibility in device |
ETHERCAT_ERROR_SDO_HARDWARE | ERROR SDO: Access failed due to an hardware error |
ETHERCAT_ERROR_SDO_DATA_SIZE | ERROR SDO: Data type does not match, length of service parameter does not match |
ETHERCAT_ERROR_SDO_DATA_SIZE1 | ERROR SDO: Data type does not match, service parameter too long |
ETHERCAT_ERROR_SDO_DATA_SIZE2 | ERROR SDO: Data type does not match, service parameter too short |
ETHERCAT_ERROR_SDO_OFFSET | ERROR SDO: Sub-index does not exist |
ETHERCAT_ERROR_SDO_DATA_RANGE | ERROR SDO: Write access - Parameter value out of range |
ETHERCAT_ERROR_SDO_DATA_RANGE1 | ERROR SDO: Write access - Parameter value out of high limit |
ETHERCAT_ERROR_SDO_DATA_RANGE2 | ERROR SDO: Write access - Parameter value out of low limit |
ETHERCAT_ERROR_SDO_MINMAX | ERROR SDO: Maximum value less than minimum value |
ETHERCAT_ERROR_SDO_GENERAL | ERROR SDO: General error |
ETHERCAT_ERROR_SDO_TRANSFER | ERROR SDO: Unable to transfer or store data to application |
ETHERCAT_ERROR_SDO_TRANSFER1 | ERROR SDO: Unable to transfer or store data to application because of local control |
ETHERCAT_ERROR_SDO_TRANSFER2 | ERROR SDO: Unable to transfer or store data to application because of present device state |
ETHERCAT_ERROR_SDO_DICTIONARY | ERROR SDO: Dynamic generation of object dictionary failed or missing object dictionary |
ETHERCAT_ERROR_SDO_UNKNOWN | ERROR SDO: Unknown code |
ETHERCAT_ERROR_SDO_MODULE_ID | ERROR SDO: Detected Module Ident List (0xF030) and Configured Module Ident list (0xF050) does not match |
ETHERCAT_UNKNOWN_ERROR | An error occurred during operation |
示例
(例程路径:安装目录\example\EtherCAT指令)
示例功能说明 写从站地址为1001、主索引为16#6091、子索引为2、写入值10000、写入数据字节长度为4的SDO对象字典数据。
变量定义
变量名 数据类型 初值 注释 od_write ethercat_od (slave_address := 1001,index := 16#6091,sub_index := 2,buffer_size := 4) EtherCAT对象数据 error_code ethercat_error_code ETHERCAT_NO_ERROR EtherCAT写入对象数据错误码 writeOD DINT 写入OD的长度,失败时返回-1 Data_Write DINT 10000 写入数据值
ethercat_od类型参数:
名称 | 数据类型 | 值 | 含义 |
---|---|---|---|
master_id | DWORD | 0 | 主站ID,只支持0 |
slave_address | DWORD | 1001 | 从站地址 |
index | WORD | 16#6091 | 索引 |
sub_index | WORD | 2 | 子索引 |
buffer | POINTER TO BYTE | 数据缓存首地址 | |
buffer_size | DWORD | 4 | 写入数据缓存大小 |
CFC示例
ST示例
od_write.buffer:=adr(Data_Write);
writeOD := EtherCATWriteOD( od_write , error_code );
EtherCATReset
- 位置
sys_ethercat.aclib
- 功能说明
复位EtherCAT协议栈。
- 参数说明
无
示例
(例程路径:安装目录\example\EtherCAT指令)
示例功能说明 复位EtherCAT协议栈。
CFC示例
ST示例
reset := EtherCATReset();
此指令为阻塞型指令,且执行时间较长(秒级)。 | |
---|---|