We are pleased to present the next generation of MotoLogix example projects, based on the Mce functions. These projects are designed to be user-friendly and come with an HMI included (where possible).
Highlights
- Easy setup.
- Scalable and reusable.
- Simulation ready.
- Built-in HMI.
Check here to see if the new example project is already available for your PLC platform.
Easy setup
Definitions
The projects are created with scalability in mind. Using global constants, the project can be easily adjusted to your needs.
In the default configuration, the project is set up for:
- Two robots (
MOTION_DEVICES_UBOUND), controlled by two robot controllers (MLX_UBOUND) with each one robot arm. - McePosTable motion paths of up to 20 motion segments (
ENTRIES_UBOUND). - McePosTable using three command instances (
POSTABLE_CMDS_UBOUND), which allows perfect motion blending (having three motions in the robot motion queue) while being very efficient (low memory/cpu usage).
VAR_GLOBAL CONSTANT
POSTABLE_CMDS_UBOUND: USINT := 2; // Command instances used by McePosTable (<this value> + 1).
CONDITIONS_UBOUND: USINT := 7; // Start condition signals used by McePosTable (<this value> + 1).
MLX_UBOUND: USINT := 1; // Robot controllers (<this value> + 1).
ALARMS_UBOUND: USINT := 9; // Alarms used by MceAlarms (<this value> + 1).
WARNINGS_UBOUND: USINT := 9; // Robot warnings used by MceWarnings (<this value> + 1).
MOTION_DEVICES_UBOUND: USINT := 1; // Robot arms (<this value> + 1).
USERFRAMES_UBOUND: USINT := 9; // User frames (<this value> + 1)
ENTRIES_UBOUND: INT := 19; // Entries in a McePosTable trajectory (<this value> + 1).
TOOLS_UBOUND: INT := 9; // Tools (<this value> + 1).
END_VAR
Fieldbus setup
Each robot controller appears as a slave in the fieldbus setup. For example, in the Codesys project (using EtherCAT) they are setup as:
- Robot 1, using the new YRCP-MP4P fieldbus board, with addressing starting at
1000for in- and outputs. - Robot 2, using the Inpact fieldbus board, with addressing starting at
2000for in- and outputs.


IO mapping
The IO of the fieldbus slaves is mapped to global variables:
aDataFromRobot1 AT %IB1000: ARRAY[0..435] OF USINT; // fieldbus data from robot 1
aDataToRobot1 AT %QB1000: ARRAY[0..435] OF USINT; // fieldbus data to robot 1
aDataFromRobot2 AT %IB2000: ARRAY[0..435] OF USINT; // fieldbus data from robot 2
aDataToRobot2 AT %QB2000: ARRAY[0..435] OF USINT; // fieldbus data to robot 2
Simulation ready
We recently added MotoLogix simulation to our MotoSimEG-VRC simulation software.
These new example projects already have the required function block (MceYaskawaModbusTcp)
and IO mapping implemented. This means that if you have that new MotoSimEG-VRC release
(and the optional MotoLogix license), you can switch between the real- and simulated
robot controller easily, using the HMI.
HMI
For reusability and scalability, we created HMI templates (or faceplates) for
the relevant Mce functions.
Most templates require you to connect just a single variable
(the corresponding Mce...Io variable).
This HMI is intended for testing/demo. We encourage you to implement MotoLogix using your own HMI design language.
Although the project is set up for two robots, the HMI is currently only connected to robot 1.
Impression of the HMI templates from the Codesys project:








Next steps
Up next, we plan to add a quick start guide which guides you through the process of implementing MotoLogix in your project. Also, we plan to port the example project to more PLC platforms, so stay tuned.
