直接跳到内容
本页目录

EtherCATReadOD

  • 位置

sys_ethercat.aclib

  • 功能说明

通过SDO服务读取对象数据。

  • 参数说明
输入输出参数数据类型描述保持常量
od_readethercat_odEtherCAT对象数据××
error_codeethercat_error_codeEtherCAT对象数据读取错误码××
输出参数数据类型描述保持常量
EtherCATReadODDINT读取OD的字节长度(失败返回-1)××

ethercat_od类型说明:

名称数据类型含义
master_idDWORD主站ID,只支持0
slave_addressDWORD从站地址
indexWORD索引
sub_indexWORD子索引
bufferPOINTER TO BYTE数据缓存首地址
buffer_sizeDWORD数据缓存大小

ethercat_error_code类型说明:

含义
ETHERCAT_NO_ERRORno error
ETHERCAT_ERROR_INVALID_PARAMInvalid input parameter, please check that the pointer is null or buffer size is zero, and so on
ETHERCAT_ERROR_INVALID_DEV_OPSEtherCAT provide api is invalid
ETHERCAT_ERROR_INVALID_MASTER_IDInvalid etherCAT master id
ETHERCAT_ERROR_EXTLIB_ON_BUSTASKEtherCAT external library interface is not allowed to run on the task for ethercat bus
ETHERCAT_ERR_INVALID_SLAVE_ADDRInvalid etherCAT slave address
ETHERCAT_ERROR_MASTER_NOT_READYEtherCAT master not ready
ETHERCAT_ERROR_SLAVE_NOT_READYEtherCAT slave not ready
ETHERCAT_ERROR_SDO_TOGGLEERROR SDO: Toggle bit not alternated
ETHERCAT_ERROR_SDO_TIMEOUTERROR SDO: SDO protocol time-out
ETHERCAT_ERROR_SDO_CCS_SCSERROR SDO: Client/server command specifier not valid or unknown
ETHERCAT_ERROR_SDO_BLK_SIZEERROR SDO: Invalid block size (block mode only)
ETHERCAT_ERROR_SDO_SEQNOERROR SDO: Invalid sequence number (block mode only)
ETHERCAT_ERROR_SDO_CRCERROR SDO: CRC error (block mode only)
ETHERCAT_ERROR_SDO_MEMORYERROR SDO: Out of memory
ETHERCAT_ERROR_SDO_ACCESSERROR SDO: Unsupported access to an object
ETHERCAT_ERROR_SDO_WRITEONLYERROR SDO: Attempt to read a write only object
ETHERCAT_ERROR_SDO_READONLYERROR SDO: Attempt to write a read only object
ETHERCAT_ERROR_SDO_INDEXERROR SDO: Object does not exist in object dictionary
ETHERCAT_ERROR_SDO_PDO_MAPERROR SDO: Object cannot be mapped to PDO
ETHERCAT_ERROR_SDO_PDO_LENERROR SDO: Number and length of objects to be mapped exceed PDO length
ETHERCAT_ERROR_SDO_P_INCOMPERROR SDO: General parameter incompatibility
ETHERCAT_ERROR_SDO_I_INCOMPERROR SDO: General internal incompatibility in device
ETHERCAT_ERROR_SDO_HARDWAREERROR SDO: Access failed due to an hardware error
ETHERCAT_ERROR_SDO_DATA_SIZEERROR SDO: Data type does not match, length of service parameter does not match
ETHERCAT_ERROR_SDO_DATA_SIZE1ERROR SDO: Data type does not match, service parameter too long
ETHERCAT_ERROR_SDO_DATA_SIZE2ERROR SDO: Data type does not match, service parameter too short
ETHERCAT_ERROR_SDO_OFFSETERROR SDO: Sub-index does not exist
ETHERCAT_ERROR_SDO_DATA_RANGEERROR SDO: Write access - Parameter value out of range
ETHERCAT_ERROR_SDO_DATA_RANGE1ERROR SDO: Write access - Parameter value out of high limit
ETHERCAT_ERROR_SDO_DATA_RANGE2ERROR SDO: Write access - Parameter value out of low limit
ETHERCAT_ERROR_SDO_MINMAXERROR SDO: Maximum value less than minimum value
ETHERCAT_ERROR_SDO_GENERALERROR SDO: General error
ETHERCAT_ERROR_SDO_TRANSFERERROR SDO: Unable to transfer or store data to application
ETHERCAT_ERROR_SDO_TRANSFER1ERROR SDO: Unable to transfer or store data to application because of local control
ETHERCAT_ERROR_SDO_TRANSFER2ERROR SDO: Unable to transfer or store data to application because of present device state
ETHERCAT_ERROR_SDO_DICTIONARYERROR SDO: Dynamic generation of object dictionary failed or missing object dictionary
ETHERCAT_ERROR_SDO_UNKNOWNERROR SDO: Unknown code
ETHERCAT_ERROR_SDO_MODULE_IDERROR SDO: Detected Module Ident List (0xF030) and Configured Module Ident list (0xF050) does not match
ETHERCAT_UNKNOWN_ERRORAn error occurred during operation
  • 示例

    (例程路径:安装目录\example\EtherCAT指令)

    • 示例功能说明 读取从站地址为1001、主索引为16#6091、子索引为1、数据字节长度为4的SDO对象字典数据。

    • 变量定义

      变量名数据类型初值注释
      od_readethercat_od(slave_address := 1001,index := 16#6091,sub_index := 1,buffer_size := 4)EtherCAT对象数据
      error_codeethercat_error_codeETHERCAT_NO_ERROREtherCAT读取对象数据错误码
      readODDINT读取OD的长度,失败时返回-1
      Data_ReadDINT读取到的数据

​ ethercat_od类型参数:

名称数据类型含义
master_idDWORD0主站ID,只支持0
slave_addressDWORD1001从站地址
indexWORD16#6091索引
sub_indexWORD1子索引
bufferPOINTER TO BYTE数据缓存首地址
buffer_sizeDWORD4为读取数据开辟的缓存大小
  • CFC示例

    img

  • ST示例

​ od_read.buffer:=adr(Data_Read);

​ readOD := EtherCATReadOD( od_read , error_code );

EtherCATWriteOD

  • 位置

sys_ethercat.aclib

  • 功能说明

通过SDO服务写入对象数据。

  • 参数说明
输入输出参数数据类型描述保持常量
od_writeethercat_odEtherCAT对象数据××
error_codeethercat_error_codeEtherCAT对象数据写入错误码××
输出参数数据类型描述保持常量
EtherCATWriteODDINT写入OD的长度××

ethercat_od类型说明:

名称数据类型含义
master_idDWORD主站ID,只支持0
slave_addressDWORD从站地址
indexWORD索引
sub_indexWORD子索引
bufferPOINTER TO BYTE数据缓存首地址
buffer_sizeDWORD数据缓存大小

ethercat_error_code类型说明:

含义
ETHERCAT_NO_ERRORno error
ETHERCAT_ERROR_INVALID_PARAMInvalid input parameter, please check that the pointer is null or buffer size is zero, and so on
ETHERCAT_ERROR_INVALID_DEV_OPSEtherCAT provide api is invalid
ETHERCAT_ERROR_INVALID_MASTER_IDInvalid etherCAT master id
ETHERCAT_ERROR_EXTLIB_ON_BUSTASKEtherCAT external library interface is not allowed to run on the task for ethercat bus
ETHERCAT_ERR_INVALID_SLAVE_ADDRInvalid etherCAT slave address
ETHERCAT_ERROR_MASTER_NOT_READYEtherCAT master not ready
ETHERCAT_ERROR_SLAVE_NOT_READYEtherCAT slave not ready
ETHERCAT_ERROR_SDO_TOGGLEERROR SDO: Toggle bit not alternated
ETHERCAT_ERROR_SDO_TIMEOUTERROR SDO: SDO protocol time-out
ETHERCAT_ERROR_SDO_CCS_SCSERROR SDO: Client/server command specifier not valid or unknown
ETHERCAT_ERROR_SDO_BLK_SIZEERROR SDO: Invalid block size (block mode only)
ETHERCAT_ERROR_SDO_SEQNOERROR SDO: Invalid sequence number (block mode only)
ETHERCAT_ERROR_SDO_CRCERROR SDO: CRC error (block mode only)
ETHERCAT_ERROR_SDO_MEMORYERROR SDO: Out of memory
ETHERCAT_ERROR_SDO_ACCESSERROR SDO: Unsupported access to an object
ETHERCAT_ERROR_SDO_WRITEONLYERROR SDO: Attempt to read a write only object
ETHERCAT_ERROR_SDO_READONLYERROR SDO: Attempt to write a read only object
ETHERCAT_ERROR_SDO_INDEXERROR SDO: Object does not exist in object dictionary
ETHERCAT_ERROR_SDO_PDO_MAPERROR SDO: Object cannot be mapped to PDO
ETHERCAT_ERROR_SDO_PDO_LENERROR SDO: Number and length of objects to be mapped exceed PDO length
ETHERCAT_ERROR_SDO_P_INCOMPERROR SDO: General parameter incompatibility
ETHERCAT_ERROR_SDO_I_INCOMPERROR SDO: General internal incompatibility in device
ETHERCAT_ERROR_SDO_HARDWAREERROR SDO: Access failed due to an hardware error
ETHERCAT_ERROR_SDO_DATA_SIZEERROR SDO: Data type does not match, length of service parameter does not match
ETHERCAT_ERROR_SDO_DATA_SIZE1ERROR SDO: Data type does not match, service parameter too long
ETHERCAT_ERROR_SDO_DATA_SIZE2ERROR SDO: Data type does not match, service parameter too short
ETHERCAT_ERROR_SDO_OFFSETERROR SDO: Sub-index does not exist
ETHERCAT_ERROR_SDO_DATA_RANGEERROR SDO: Write access - Parameter value out of range
ETHERCAT_ERROR_SDO_DATA_RANGE1ERROR SDO: Write access - Parameter value out of high limit
ETHERCAT_ERROR_SDO_DATA_RANGE2ERROR SDO: Write access - Parameter value out of low limit
ETHERCAT_ERROR_SDO_MINMAXERROR SDO: Maximum value less than minimum value
ETHERCAT_ERROR_SDO_GENERALERROR SDO: General error
ETHERCAT_ERROR_SDO_TRANSFERERROR SDO: Unable to transfer or store data to application
ETHERCAT_ERROR_SDO_TRANSFER1ERROR SDO: Unable to transfer or store data to application because of local control
ETHERCAT_ERROR_SDO_TRANSFER2ERROR SDO: Unable to transfer or store data to application because of present device state
ETHERCAT_ERROR_SDO_DICTIONARYERROR SDO: Dynamic generation of object dictionary failed or missing object dictionary
ETHERCAT_ERROR_SDO_UNKNOWNERROR SDO: Unknown code
ETHERCAT_ERROR_SDO_MODULE_IDERROR SDO: Detected Module Ident List (0xF030) and Configured Module Ident list (0xF050) does not match
ETHERCAT_UNKNOWN_ERRORAn error occurred during operation
  • 示例

    (例程路径:安装目录\example\EtherCAT指令)

    • 示例功能说明 写从站地址为1001、主索引为16#6091、子索引为2、写入值10000、写入数据字节长度为4的SDO对象字典数据。

    • 变量定义

      变量名数据类型初值注释
      od_writeethercat_od(slave_address := 1001,index := 16#6091,sub_index := 2,buffer_size := 4)EtherCAT对象数据
      error_codeethercat_error_codeETHERCAT_NO_ERROREtherCAT写入对象数据错误码
      writeODDINT写入OD的长度,失败时返回-1
      Data_WriteDINT10000写入数据值

​ ethercat_od类型参数:

名称数据类型含义
master_idDWORD0主站ID,只支持0
slave_addressDWORD1001从站地址
indexWORD16#6091索引
sub_indexWORD2子索引
bufferPOINTER TO BYTE数据缓存首地址
buffer_sizeDWORD4写入数据缓存大小
  • CFC示例

    img

  • ST示例

​ od_write.buffer:=adr(Data_Write);

​ writeOD := EtherCATWriteOD( od_write , error_code );

EtherCATReset

  • 位置

sys_ethercat.aclib

  • 功能说明

复位EtherCAT协议栈。

  • 参数说明

  • 示例

    (例程路径:安装目录\example\EtherCAT指令)

    • 示例功能说明 复位EtherCAT协议栈。

    • CFC示例

      img

    • ST示例

      reset := EtherCATReset();

img此指令为阻塞型指令,且执行时间较长(秒级)。
EtherCATReadOD已经加载完毕