3rd Party EtherCAT devices with PDMM/PCMM Controller
Below are step by step instructions with screenshots on how to integrate a 3rd Party EtherCAT device onto a network with a PDMM or PCMM controller using KAS IDE software. There are also two embedded videos showing how to access all of these parameters in the software. The first video shows the main three steps to integrate a 3rd party device onto the EtherCAT network including importing an ESI file, scanning the network, and mapping program variables to PDO inputs and outputs. The second video shows other advanced features the KAS IDE supports such as selecting non-default PDO parameters, free PDO mapping, and adding CoE init commands. Our PDMM and PCMM controllers are setup to communicate with any 3rd Party device with a few exceptions. We do not currently support File Access over EtherCAT (FoE) or Functional Safety over EtherCAT (FSoE) currently, though we have plans to add FSoE support in the near future. Also, we do not support 3rd Party Servo drives so you can only use our built in motion function blocks with Kollmorgen servo drives. You can use 3rd party inverter or stepper drives, as well as other I/O devices including Modular Device Profile (MDP) EtherCAT products.
The first step for using any non-Kollmorgen EtherCAT device is to import the EtherCAT Slave Information (ESI) file into the KAS IDE software. You will have to get this file from the 3rd Party manufacturer, and is usually found on their website under files or documentation. Note that ESI files can also sometimes be labeled as XML files because the Windows file extension will be .xml. To import an ESI file, you must first open a project in the KAS IDE software and double click the EtherCAT section of the Project explorer to open it in the main window. Then, Click on the ESI Files tab shown below. This will bring up a list of all ESI files already imported on your installation of the KAS IDE software, which to begin with will just be Kollmorgen devices.
The already imported ESI files are arranged in order of the 3rd Party manufacturer. You can press the Add button at the button of the ESI Files tab to open the popup window shown below to search your file system and select the desired ESI/xml file to import.
Once the ESI file has been imported, you can go back to the Devices tab to scan the network. If you scan for devices before importing the ESI file, the 3rd Party device will be found but it cannot be identified or setup so it will be labeled as an Unknown Device.
If you have the correct IP address of your PDMM or PCMM controller entered into the KAS IDE project you have open, you can press the Scan Devices button to bring up the Discovered Devices and Modules window shown below. In the network from the screenshot I have 2 AKD servo drives, a Kollmorgen bus coupler with digital input and digital output slices, as well as a Wago EtherCAT bus coupler with a digital input and a digital output slice.
After you press the OK button to move on, all the found devices will be listed in the Devices tab as well as under the EtherCAT section of the Project explorer as shown below.
The final basic step that must be done for any EtherCAT device is to map program variables to PDO inputs and outputs so the controller can communicate with the device. To do this you first double click on the desired device under the EtherCAT section of the Project Explorer to open up the device setup in the main window. Then you go to the PDO Selection/Mapping screen to see the list of default input and output PDO parameters based on the ESI file that was imported. The inputs are read from, and the outputs written to each EtherCAT device at the set scan or update rate. If you want to tie a program variable to any PDO input or output you right click in the PLC Variable column to find the "Map" option shown below.
After you select the Map option, the PLC Variable Selector popup window shown below will appear. You can choose between any already created variable or click on the Create PLC Variable button to declare a new variable which will automatically get added to the project dictionary. If the size of the PDO parameter is larger than the biggest integer variable type the KAS IDE supports (a 32bit DINT), then you can map an array to a PDO input or output. For example, if the PDO output was 80 bits you could have an array of ten SINTs which are 8 bits, or an array of 5 INTs which are 16 bit variables.
Once variables are mapped, you can use them in your PLC programs. Input parameters will automatically be updated with new values each program scan, and outputs will be written to devices each EtherCAT update rate. Below is a video showing these basic steps that are required with integrating any 3rd Party device.
Video Demonstration showing steps to integrate 3rd Party EtherCAT device
Some more complicated devices with larger amounts of accessible parameters will require addition setup steps. Only so much data can be read or written to from each device over the EtherCAT network at the cyclic update rate, and cannot be changed on the fly, so we must prioritize which parameters need to be chosen as PDO inputs and outputs. Other parameters can still be accessed through PLC code using ECATReadSdo and ECATWriteSdo function blocks, but through a slower non-cyclic communication channel.
Imported ESI files will determine what default PDO inputs and outputs show up when devices are scanned, but can also contain other sets of predefined groups of input and output parameters. These can be selected from the PDO Selection/Mapping tab by pressing the "Select Output (Rx) PDOs" or "Select Input (Tx) PDOs" buttons. This will bring up a popup window, with an example shown below for an inverter drive. The default output index 1600 only had the Control Word, but you can select other PDO Index numbers and preview all the parameters included in them below in the Contents window, and check which input and output PDOs to use. Some indexes can be mutually exclusive, but the editor will not let you select these at the same time. In these cases, you would have to uncheck certain PDO indexes before you can select another.
Some devices have such a large amount of parameters that it would be cumbersome to create separate PDO Indexes to cover all the possible combinations. These devices often will support free PDO mapping, so you can pick and choose which input and output parameters to use. This selection is done through the PDO Editor tab. First you select an input or output PDO index that you want to modify from the Editable PDOs section on the left, and then its contents will show up on the PDO contents section on the right as shown below. Then you can add or remove parameters from this specific PDO index.
If you press the Add Object button, a popup window will display all the available parameters from a list in the ESI file. Sometimes not all parameters are "PDO mappable," so you can look at the Flags column to confirm if it has a Tx and can be a PDO input, or a Tx and be a PDO output. Parameters that are not PDO mappable can still be accessed in a PLC program using SDO communication, but cannot be accessed at the cyclic EtherCAT cycle rate. As you add parameters, the total bytes of each PDO index is updated. A device might have a max for each PDO index, for example the AKD drive is 8 bytes for Index, so this is a handy tool to automatically count this for you. After you are done selecting the parameters to be included in free mapped indexes, you have to return to the PDO Selection/Mapping tab to select each input and output index, and then map program variables to each parameter to use in your PLC programs.
The last tab to cover is the CoE Init-Commands. Here users can optionally add reads or writes to any parameter that will be done automatically once starting up the EtherCAT network. These are useful in order to guarantee certain parameters are in a specific state whenever first starting a program. Also, some devices might require certain parameters to be initialized before the EtherCAT network is up and running. Below are examples of CoE Init-Commands that are done by default to all AKD servo drives in a KAS system, including starting up in the Fieldbus Position mode by writing a value of 7 to operational mode index 6060. New CoE init commands can be added, or default ones can be modified. For example, if we wanted to start in torque or velocity mode instead of position mode we can change the value written to index 6060 to 3 or 4.
Video showing advanced setup options for EtherCAT devices