ECATWriteSdo

PLCopen motion icon Pipe Network motion icon

 Function Block - Writes a 32-bit word to I/O nodes using a CANopen SDO write command.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

FALSE, TRUE

N/A

No default

On the rising edge of Execute, an SDO write command is issued.

  • The function block only handles one SDO command at a time.
  • If Execute is toggled quickly so that another rising edge occurs before the SDO command has completed, the function block does not issue a second SDO command.

Index

INT

-32768 to +32767

N/A

No default

The object directory index of the data to be written to.

See:

  • Communication SDOs.
  • Manufacturer specific SDOs.
  • Profile specific SDOs.

To read/write an SDO object with an index greater than 16#7FFF (32767), the value must be entered in this form:
any_to_int(index # in hex format).

Example: any_to_int(16#8321).

SubIndex

SINT

No range

N/A

No default

The sub-index of the object directory variable to be written to.

See:

  • Communication SDOs.
  • Manufacturer specific SDOs.
  • Profile specific SDOs.

To read/write an SDO object with an index greater than 16#7FFF (32767), the value must be entered in this form:
any_to_int(index # in hex format).

Example: any_to_int(16#8321).

Size

SINT

1 to 4

N/A

No default

The size (i.e., number of bytes) to write.

DeviceAddress

INT

-32768 to +32767

N/A

No default

The EtherCAT address of the device from which data is written to.

  • The first node usually has the value 1001.
  • The second node usually has the value 1002.

  • Use the members of the EtherCAT structure to specify a device's address to Create Variables.
       

Value

DINT

-2147483648 to 2147483647

N/A

No default

The value to write to the object directory variable.

Outputs

Output

Data Type

Range

Unit

Description

Done

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed without error.

Error

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed with error.

ErrorID

DINT

No range

N/A

The SDO call error result, if Error is TRUE.

Remarks


  • This function block uses and reserves the EtherCAT SDO Channel.
    The SDO Channel remains reserved until the done output is TRUE.
    This FB should be called at each cycle until either the Done or Error output is TRUE.
    If it is not called at each cycle, the rest of SDO communication (e.g., the AKD GUI Views) is blocked.
    Using this FB in SFC P0 or P1 steps is not recommended because these steps are executed only once.
    If this FB is used in P0 or P1, then it must be used in an SFC N step to ensure the FB completes.

State Diagram

Figure 1: ECATWriteSdo State Diagram

Figure 2: ECATWriteSdo

EtherCATError Codes

FBD Language Example

FFLD Language Example

IL Language Example

Not available.

ST Language Example

(* Write 58.000 to PL.KP of first AKD Drive on EtheCAT network *
Inst_ECATWriteSdo(TRUE, 16#3542, 0, 4, 1001, 58000 ); IF Inst_ECATWriteSdo.Done OR Inst_ECATWriteSdo.Error THEN    Inst_ECATWriteSdo(FALSE, 16#3542, 0, 4, 1001, 58000 );
END_IF;

See Also