Setting up a Dedicated EtherCAT Master Controller Kit and EtherNet IP/Profinet Kit with the Meca500 Industrial Robotic Arm

 Written by Nadine Oliynyk

Nadine Oliynyk is an Applications Engineering co-op student at Electromate Inc and second year Mechatronics Engineering student at the University of Waterloo.

In this article, she describes her experience programming the Meca500 industrial robot arm and setting up the dedicated EtherCAT Master Controller Kit and EtherNet IP/Profinet Kit available at Electromate.

The goal of my co-op term was to prepare this kit for customer use by connecting the components and creating sample code and documentation, which would all be available for future users of the control kit.

The Master controller kit includes an Exor HMI with internal PLC, a Galil RIO and the Mecademic Meca500 industrial robot arm with an electric gripper and a three-axis joystick. The HMI and internal PLC are programmable through Exor’s JMobile and CODESYS software.

Although it has always been my passion to work with robots, I had no experience with industrial robotics outside of coursework before starting my co-op term at Electromate. Even with limited experience, the Meca500 control kit systems were relatively straightforward to integrate and program.

The use of a soft PLC made the control kit more user-friendly to integrate and maintain and provided added flexibility when adding or editing devices. The CODESYS software has integrated masters for protocols such as Ethernet and EtherCAT which control and manage slave devices such as the Meca500 and the Galil RIO. Since the Meca500 does not have a proprietary programming language, it can be programmed directly from the PLC in any of the commonly used industrial programming languages compatible with CODESYS. This allowed me to use my experience with PLC programming and state machines to begin programming the Meca500 independently.


My first goal was to create an exciting demo program with an interactive component which could be used in tradeshows. The demo we decided on with the Electromate team was a machine tending application involving the robot communicating with the SIC dot peen engraver to pick and place cards to be engraved with a custom message upon the user’s request. After showcasing the machine tending application, it was time to simplify the program for a short demo move without any additional equipment, so that it could easily be modified to create new projects. I chose to design a simple square move with a pick point which triggered an output on the RIO and could be turned on and off by an input.

As I moved through programming the robot, I found some ways to simplify and improve the process for future projects. Since all motion commands are sent to the Meca500 using the same sequence of PLC outputs, it made sense to create a function block which would pass in the command ID and arguments and output a signal when the command was received by the robot.

This function block could be called every time a motion command needed to be sent to the robot, making the coding process much faster. Furthermore, adding input and output structures that are referenced by the program made it easy to add or remove Meca500 robots or change protocols without having to make any changes to the program itself.


I was also responsible for creating an HMI program using JMobile which would serve as an example program and allow users to control the Meca500 robot through the EtherCAT, EtherNet/IP or Profinet protocols directly from the HMI. I enjoyed having the freedom to decide on features that might be useful based on inspiration from the Meca500 web interface and feedback from my team, as well as my own ideas of what would be useful based on past co-op terms in the manufacturing and technology industries. JMobile and CODESYS can be easily synched by adding a dictionary file with the desired tags from the PLC program, which are updated with every successful download of the project.

After my work with setting up and programming the Meca500 Control Kits, I developed a suggested procedure for programming the robot which allows a simple motion sequence to be turned into a working PLC program in mere minutes. In this procedure, the user starts by connecting to the robot via the built in Meca500 web interface and uses the 3-axis joystick to jog the robot. Desired positions, as well as any additional motion commands or configurations, are recorded before switching to the chosen communication protocol. Each movement is added into the example CODESYS project by calling the function block in a new state. Inputs and outputs from the RIO are included as desired, using the example code as a template. Then, the program is ready to run.

To make getting started with the Meca500 control kits even more intuitive, Electromate is providing the sample programs I created, as well as detailed documentation and video tutorials, to any control kit users.