Main Content

EtherCAT Async SSC/SoE Download

Transmit data asynchronously to subordinate device represented by service data object

Since R2020b

  • EtherCAT Async SSC/SoE Download block

Libraries:
Simulink Real-Time / EtherCAT

Description

The EtherCAT Async SSC/SoE Download block provides asynchronous SERCOS interface (SErial Real time COmmunication Specification) over EtherCAT® (SoE) download. The block selects an IDN in the specified subordinate device and sends a download (write) request. After sending the request, the block immediately continues processing its input data.

Examples

Ports

Input

expand all

Input data for writing to the EtherCAT subordinate device. The data signal has the type specified in Data Type and vector dimension given by Dimension.

The Enable input is level sensitive and the block remains enabled while the input is non-zero. To send a value just once, you can enable the block with a single sample time pulse. There is a lag of approximately three cycles after the pulse for the data to send.

A value 0 disables downloads. A value greater than or equal to 1 enables the block to download data.

Output

expand all

Status of asynchronous data transfer:

  • 0 — Mailbox transfer object idle, transfer not running

  • 1 — Mailbox transfer object running, transfer not complete

  • 2 — Transfer successfully executed

  • 3 — Error occurred during transfer request

If no error occurs, this port transmits 0. Otherwise, it transmits a nonzero value. For list of error codes, see EtherCAT Error Codes.

Parameters

expand all

Identify parameters.

The documentation for your EtherCAT device specifies the IDN values. You can select the IDN as a character vector that represents a 16-bit integer (according to IEC 61800 -7 -204), such as S-0-0150 or P-0-0150 with:

  • First field (bit 15): S for Standard data, P for product-specific data

  • Second field (bit 14 - 12): 0..7 for parameter set

  • Third field (bit 11 - 0): 0..4095 for data-block number

Programmatic Use

Block Parameter: idn

Specify the decimal index of the drive.

SoE blocks apply to only motor controllers. A single subordinate device can support one or more drive or motor channels. The drive number is the zero-based index of the drive or motor channel on this subordinate device at which this block is aimed. In SoE terminology, the drive is the logic that sends control signals to the motor. Typically, this logic is a small processor inside the subordinate device.

Programmatic Use

Block Parameter: drive

To identify the data type for the IDN, refer to the subordinate device documentation for the description of the IDN and the data type it uses. From the list, select the data type of the IDN.

If you select a data type that does not match the type of the entry, the block returns a nonzero value through the Error output.

Programmatic Use

Block Parameter: sig_type

Specify the row dimension of data for this IDN.

To identify the dimension of data (vector size) for the IDN, refer to the subordinate device documentation for the description of the IDN and the number of data type values (the dimension) it uses. Enter the vector length as found in the SoE description for the subordinate device in its manual.

Programmatic Use

Block Parameter: sig_dim

To associate a block with an EtherCAT network, enter the Network Device Index value from the EtherCAT Init block representing that network into the Network Device Index for the block.

Programmatic Use

Block Parameter: device_id

From the list, select the name of the device that contains the IDN.

The block populates this drop-down list with the contents of the configuration file.

Programmatic Use

Block Parameter: subdevice_name

Enter the base sample time or a multiple of the base sample time. -1 means that sample time is inherited.

Programmatic Use

Block Parameter: sample_time

Enter the maximum number of milliseconds to wait for a response from the EtherCAT subordinate device.

Programmatic Use

Block Parameter: timeout

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2020b