Getting started with MotomanSync with iCube Engineer
| Version Number | Description |
|---|---|
| 1.0 |
|
|
|
This application note demonstrates how to configure the first steps with a MotomanSync Group.
1. Supported Components
| Component Name | Version |
|---|---|
| iC9200 series | ≥ 2024.9 |
| iCube Engineer | ≥ 2024.9 |
2. Supported Libraries
This is the section that describes the supported libraries.
3. Solution details
- Create a new project
- Add the INPACT MotomanSync device to the EtherCAT node (or scan the EtherCAT network with the robot cabinet connected)
-
A Motion Group will be automatically added and two input and two output global variables are linked to the Process Data Item (PDI) of the device.
- If HotConnect is used, set the correct identification value (more info in How to use identification for EtherCAT sub devices without physical addressing capability ).
- Add Y_MS_INPACT_Driver to a POU running in a task with an update rate between 4 ms and 8 ms. Link the global variables automatically created in the PLC Data list to the InOut variables of the driver Function Block.
- Set the EtherCAT's system and global variables update task to the one where the Y_MS_INPACT_Driver will run.
- Note: Not setting the "Update task" to a fast (4-8 ms cycle time) task, a 9230 error will be output.
- Use PLCopen Part 4 Function Blocks to use the group (enable, power, move, stop, etc.)
- When using the project, the driver must be enabled before using PLCopen Part 4 Function Blocks.
4. Device Limits
The code that handles MotomanSync groups can consume a considerable amount of resources from the controller. Therefore, special attention should be paid to the project setup when using these groups.
A maximum of 8 MotomanSync groups can be configured in an iCube Engineer project. However, the recommended final number of robots depends on a few factors explained in this section.
The EtherCAT cycle time should be the first assessment when configuring MotomanSync groups. See the table below for details of allowed devices per EtherCAT cycle time.
| EtherCAT cycle time | Allowed MotomanSync groups |
|---|---|
| < 1 ms |
0 |
| 1 ms |
4 |
| 2 ms | 6 |
| ≥ 4 ms & ≤ 8 ms |
8 |
Considering most projects will also have other EtherCAT devices connected to the network, the final EtherCAT cycle time might need to be increased to account for the extra devices.
The second aspect to consider is the task assignment for Program Organization Units (POUs). The project needs should be assessed to select where to put the different Functions and Function Blocks inside the project. Putting everything into a fast task might make the project faster in some ways, but it will consume more resources from the controller than probably needed. On the other hand, putting everything into a slow task might be resource-efficient but will probably lead to poor machine performance. A middle point is expected, where the project is as resource-efficient as possible to perform well.
Resource consumption assessment can be done in three main ways:
- CPU Load: the iC92xx controller includes three different cores, and the information about CPU utilization information can be monitored to assess the use of resources in a broad way. The load of the individual cores and the overall load of the whole CPU can be observed in three different sections. The first uses the DEVICE_STATE system variable, and the other two are via the cockpits in the iCube Engineer software and the controller’s WBM.
- Execution Duration: the time it takes to execute each task configured in the project can be monitored. This information helps assess whether the user can still add more code to a given task or whether the task interval limit is close. This can be monitored via the ESM_DATA global variable. If the execution time exceeds the configured watchdog, the controller will stop due to a timeout error. In such a case, either the code in said task needs to be reduced, or the task interval needs to be increased.
- Activation Delay: the information about the time the controller takes to start a task is also available to the user. This helps to assess how long it takes the controller to perform all other functionalities and to run other tasks with higher priority before running the selected task. This information is available via the ESM_DATA global variable.