ECATDeviceAction

PLCopen motion icon Pipe Network motion icon

 Function BlockClosed A function block groups an algorithm and a set of private data. It has inputs and outputs. - performs an action on an EtherCATClosed ***EtherCAT is an open, high-performance Ethernet-based fieldbus system. The development goal of EtherCAT was to apply Ethernet to automation applications which require short data update times (also called cycle times) with low communication jitter (for synchronization purposes) and low hardware costs device.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

0, 1

N/A

No default

When Execute is set to TRUE, an action is performed.

DeviceAddress

INT

No range

N/A

No default

The address of the device to perform an action on.

  • 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 when you Create Variables.

Action

INT

No range

N/A

No default

The action to be performed. Action can be one of these values:

  • DEVICE_ACTION_CONNECT
    • Connects a slave into the EtherCAT network.
    • This action can only be executed when the motion engine is stopped.
  • DEVICE_ACTION_DISCONNECT
    • Disconnects a slave from the EtherCAT network.
    • This action can only be executed when the motion engine is stopped.

Outputs

Output

Data Type

Range

Unit

Description

Done

BOOL

 

N/A

Indicates whether the ECATDeviceAction function block completed without error.

Error

BOOL

 

N/A

Indicates whether the ECATDeviceAction function block completed with error.

ErrorID

DINT

 

N/A

The ECATDeviceAction error result if Error is TRUE.

  • See Error Codes.
  • Upon success, Error is set to 0 (zero).

Remarks

Figure 7-191: ECATDeviceAction function block

  • This function returns immediately.
  • It can be called multiple times in one cycle.

These actions are currently supported

  • DEVICE_ACTION_DISCONNECT
    • The EtherCAT master is notified to expect the node to be removed from the EtherCAT when ECATDeviceAction is called with DEVICE_ACTION_DISCONNECT.
    • Any Axis/Axes mapped to a drive node is automatically simulated.
    • The last position from the physical drive is carried over to the simulation when the EtherCAT restarts.
  • DEVICE_ACTION_CONNECT
    • This action connects the already disconnected node to the EtherCAT Network.
    • The axis (or axes) that was acting as simulated axis becomes a normal axis when the drive node is connected.
    • The axis/axes position comes directly from the configured drive feedback.
      • The position is not automatically transferred from the simulated axis.

Usage

The EtherCAT network needs to be stopped to use this function block.

Error Codes

Error Code

Value dec (hex)

Description

ECERR_OK

0

The action succeeded.

ECERR_DEVICE_ACTION_IS_INVALID

1000 (0x3E8)

The specified device action is invalid.

ECERR_DEVICE_IS_DC_CLOCK_MASTER

1001 (0x3E9)

The Device is a DC Clock Master.

ECERR_DEVICE_IS_IN_DC_MASTER_UPSTREAM

1002 (0x3EA)

The device is before the DC Clock Master.

ECERR_DEVICE_ACTION_MINIMUM_ONE_NODE_REQD

1003 (0x3EB)

Minimum one node is required in the EtherCAT Network.

ECERR_DEVICE_ERROR

1792 (0x700)

EtherCAT device is not accessible.

ECERR_DEVICE_NOTREADY

1799 (0x707)

Device is not in a ready state.

The EtherCAT network is not in the desired state for the specified action.

ECERR_DEVICE_INVALIDADDR

1832 (0x728)

The specified EtherCAT node address is invalid.

FBD Language

FFLD Language

IL Language

Not available.

ST Language

MLMotionStop(); 
MotionEngineStatus := MLMotionStatus(); 
On MotionEngineStatus = MLSTATUS_STOPPED Do 
   Inst_ECATDeviceAction(True, EtherCAT.AKD_3, DEVICE_ACTION_DISCONNECT); 
   If Inst_ECATDeviceAction.Error Then // Handle Error 
       // Error ID value is in Inst_ECATDeviceAction.ErrorEnd_If; 
End_Do;

See Also