Library.ReadAxisSdoObject Method

Reads an object value from an axis through the CANopen over EtherCAT (CoE) SDO method.

Namespace:  IntervalZero.MaxRT.Ecat.Api.NetApi
Assembly:  IntervalZero.MaxRT.Ecat (in IntervalZero.MaxRT.Ecat.dll) Version: 1.0.0.0 (File version: 1.1.0)

Syntax

Copy
public CommandStatus<byte[]> ReadAxisSdoObject(
    EcatHandle axis,
    ushort obIndex,
    byte obSubIndex,
    bool completeAccess,
    uint length,
    bool priority
)

Parameters

axis

Type: EcatHandle
A handle to an axis. To retrieve the corresponding handle, use OpenAxisByIndex or OpenAxisByLocation.

obIndex

Type: UInt16
An object index in the object dictionary.

obSubIndex

Type: Byte
An object subindex in the object dictionary.

completeAccess

Type: Boolean
true to read all subindexes, false to read a single subindex.

length

Type: UInt32
The length, in bytes, of the value to read.

priority

Type: Boolean
true to use a higher priority queue, false otherwise.

Return Value

This method returns a CommandStatus<byte[]> class. The read result is stored in property Value. If an error occurs, property State in CommandStatus<byte[]> is set to ecatCommandError, and the error code is stored in property ErrorId.

Possible errors:

Error code Meaning

ecatErrNoError

The function succeeded.

ecatErrWrongParameter

One of the following conditions occurred:

  • Parameter axis is invalid.
  • Parameter length is 0 or greater than 128.

ecatErrMainDeviceNotReady

The MainDevice is not ready.

ecatErrWrongEnvironment

The SDO buffer is full.

ecatErrFeatureUnavailable

One of the following conditions occurred:

  • The SubDevice doesn't support CoE.
  • The axis is a simulated axis, which does not support SDO reading and writing.

ecatErrWrongSubDeviceState

The feature can't be used in the current SubDevice state. The mailbox functionality requires at least a PreOp state to execute.

Remarks

This method does not support reading from simulated axes.

See Also: