ECATDeviceStatus

PLCopen motion icon Pipe Network motion icon

 Function Block - Provides the EtherCAT state and the port link status information for the EtherCAT device.

  • If the EtherCAT network communication is not running due to a shutdown, the device status contains information taken at the time the network was shutdown.
  • This function block is useful in locating the devices with communication errors when the ECATWCStatus function indicates there are EtherCAT communication errors.

Inputs

Input

Data Type

See Data Types.

Range

Unit

Default

Description

Execute

BOOL

FALSE, TRUE

N/A

No default

Read the device status on the rising edge.

DeviceAddress

INT

-32768 to +32767

N/A

No default

The address of the device data is read from.

  • 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.
       

Outputs

Output

Data Type

See Data Types.

Range

Unit

Description

Done

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed without error.

State

UINT

No range

N/A

Indicates the EtherCAT state of the device.

  • See State Defines.
  • A value of 0 (zero) indicates there is no communication with the device and the state is unknown.
  • Bits 3:0 indicate the actual state of the device.
  • An EC_STATE_ERROR (bit 4 set to 1) indicates the device is not in the EtherCAT master requested state due to error conditions (e.g., loss of communication).

LinkStatus

UINT

No range

N/A

Provides the physical link status of the device's ports.

  • See LinkStatus Defines.
  • If no communication is possible with the device, bit 0 is set to 1.
  • If a link is detected on a port (A-D), the corresponding bit (4-7) is set to 1.
  • If no link is detected the corresponding bit is set to 0.

Error

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed with error.

ErrorID

DINT

No range

N/A

The function call error result, if Error is TRUE.

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

State Defines

#define   EC_STATE_NO_COMMUNICATION   0   (* 0x00 = No Communication to device *)
#define   EC_STATE_INIT               1   (* 0x01 = Device in Init state *)
#define   EC_STATE_PREOP              2   (* 0x02 = Device in Pre-operational state *)
#define   EC_STATE_BOOTSTRAP          3   (* 0x03 = Device in Bootstrap state *)
#define   EC_STATE_SAFEOP             4   (* 0x04 = Device in Safe-Operational state *)
#define   EC_STATE_OP                 8   (* 0x08 = Device in Operational state *)
#define   EC_STATE_ERROR              16  (* 0x10 bit 4 set to 1; Device not in requested state error *)

LinkStatus Defines

#define   EC_LINK_NO_COMMUNICATION  1   (* 0x1 = No communication to device; bit 0 set to 1 *)
#define   EC_LINK_PORT_A            16  (* 0x10 = Link detected on Port A; bit 4 set to 1 *)
#define   EC_LINK_PORT_B            32  (* 0x20 = Link detected on Port B; bit 5 set to 1 *)
#define   EC_LINK_PORT_C            64  (* 0x40 = Link detected on Port C; bit 6 set to 1 *)
#define   EC_LINK_PORT_D            128 (* 0x80 = Link detected on Port D; bit 7 set to 1 *)

Error Codes

FBD Language Example

FFLD Language Example

IL Language Example

Not available.

ST Language Example

(********************************************************)
(* Read AKD_1 device state and link status*)
(********************************************************)


Inst_EcDeviceStatus(TRUE,EtherCAT.AKD_1);

See Also