Library.ReadModuleSdoObject Method

Reads an object value from a module 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[]> ReadModuleSdoObject(
    EcatHandle module,
    ushort obIndex,
    byte obSubIndex,
    bool completeAccess,
    uint length,
    bool priority
)

Parameters

module

Type: EcatHandle
A handle to a module. To retrieve the corresponding handle, use OpenModuleByIndex or OpenModuleByLocation.

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 module 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 module is a simulated module, 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 modules.

See Also: