How to configure ServoNet Axis on the EtherCAT network and control them using PLCopenPart1 function blocks
| Version Number | Description |
|---|---|
| 1.0 |
Initial version, Explains how to setup and operate EtherCAT servos using PLCopen function blocks
|
|
|
|
1. Hardware and Software Components
| Component Name | Version |
|---|---|
| iC9xxxM-EC series | ≥ 2023.9 |
| iCube Engineer | ≥ 2023.9 |
| SGD7S | ≥ 80019 |
2. Required Libraries (available in the template project)
- Y_DataTypes_Toolbox_vxx
- Y_PLCOpenPart1_Toolbox_vxx
3. Solution details
This application note explains how to set up motion axes on the EtherCAT network. The motion axes are meant to be controlled by PLCopenPart1 function blocks.
3.1 Start using the ic9xxxM-EC Template
3.1.1 Libraries
Ensure that the Y_DataTypes_Toolbox and the PLCopenPart1_Toolbox are available in the COMPONENTS side of the iCube Engineer template. All user libraries will have to be of the same version.
3.1.2 Setup IP address
Enter the IP address of the controller you wish to connect to.
3.1.3 EtherCAT device discovery using bus scan
If there is a dialog that prompts the selection of a servo from the catalog, it is recommended to choose the latest (or last) item in the list. This allows the user to use all the latest features of the servo firmware and EtherCAT interface firmware. For example in the figure shown below, it is recommended to use the 2024.0 version as opposed to the 2022.6 version.
Upon successful discovery, all EtherCAT devices are brought into the
PLANT. The servos can be seen in the figure below.
3.1.4 Verification of EtherCAT configuration
Hot Connect is enabled by default in projects created from the template. If Hot Connect is enabled as shown below, make sure that the Identification value of each device in the device's EtherCAT settings page matches the physical ID (dipswitches and rotary switch setting) on the device.
If Hot Connect is not enabled, the user will have to make sure that the order of devices in the plant of iCube Engineer matches the order of devices in the physical EtherCAT network.
Save the project, build it, write and start the project. In the PLC/Datalist/System Variables, make sure that EC_TOPOLOGY_OK is TRUE.
A motion axis gets automatically configured for each servo in the EtherCAT device list. The station address of the servo is the connector that binds the motion axis to the servo. This can be verified from the settings tabs of the servo and the motion axis.
In the PLC page that displays the global variables, the
AXIS_REF
details of the motion axes can be seen.
Set up user units in the Configuration tab of the axis. (User will have to exit debug mode to make modifications to the project configuration).
3.2 Servo Parameters
Double clicking the servo node in the plant will open the various options that can be used to configure the servo. One tab is the Parameters tab. Before using the parameters tab, make sure that the project has been downloaded at least one time to the controller (Write and Start
Project Node). Once the first download is complete, the various functions in the parameter page (Write to ROM, Read from RAM, Compare) can be used.
Make sure that the parameters in this page are written to ROM at least once. This will ensure that the parameters required for FMK control are sent to the servo. User may want to edit parameters like POT/NOT or gains to send to the servo before programming.
3.2 Programming
3.2.2 Program Organization Unit
Select a POU and choose the programming language.
In order to add anMC_Power function block in the new POU, start typingMC_Power in the worksheet. The autocomplete feature will allow the block to appear in the work sheet. Select a POU from the Components window and select a programming type for the POU.
Add variables to complete the POU.
Make sure that the POU is added to a task in the
PLANT.
3.2.2 Save, Download and Run the project
Save the project. Download it by selecting the Write and Start
Project Node
button.
Once the project is online, select the POU instance in debug mode.
Double click on the variable and write the desired state to turn on the variable.