Setup of EtherCAT master to run an AKD2G in “DS402: Cyclic Synchronous Position Mode”
AKD2G Firmware AKD2G_01-90-13-000
Objective:
We, Kollmorgen, supply an AKD2G XML files to be used with the EtherCAT CoE Master. It has one default configuration, “cyclic Synchronous Position” mode. Many Customers want to use EtherCAT master CNC/PLC that don’t use the AKD2G XML files and need information how to manually setup the EtherCAT CoE mapping. It’s impossible to give instruction how to setup every EtherCAT master available on the market but the actual setup data will be almost the same every time.
This document assumes the EtherCAT Master has “free mapping” function available. The ability to select what data is to be shard every update cycle. This information may not make sense to you but (hopefully) it will make sense to the person helping your setup your master.
I added the analog and digital I/O to the mapping. That is optional. The position units in my example is 65536 counts/rev. The velocity units in my example are in RPM.
AKD2G Single Axis Mapping example:
CoE Master to Drive (RXPDO)
Control Word, 0x6040
Target Position, 0x607A
AOUT1, 0x3800sub02
AOUT2, 0x3801sub02
Digital Outputs, 0x3601sub01
Drive to CoE Master (TXPDO)
Status Word, 0x6041
Position feedback, 0x6064
AIN1, 0x3780sub01
AIN2, 0x3781sub01
Digital Input, 0x60FDsub0
SDO Run-up script to configure the drive (Units will be 65536 counts/rev of the motor):
Index | Data | Comment |
0x1C12:00 | 0x00 | clear sm PDOs (0x1C12) |
0x1C13:00 | 0x00 | clear sm PDOs (0x1C13) |
0x1A00:00 | 0x00 | Clear RX-PDO1 |
0x1A00:01 | 0x60410010 | Map Axis1.status word |
0x1A00:02 | 0x60640020 | Map Axis1.position feedback |
0x1A00:03 | 0x37800110 | Map AIN1 |
0x1A00:04 | 0x37810110 | Map AIN2 |
0x1A00:05 | 0x60FD0020 | Map Digital Input |
0x1A00:00 | 0x05 | Set count to 5 |
0x1A01:00 | 0x00 | Clear RX-PDO2 |
0x1A02:00 | 0x00 | Clear RX-PDO3 |
0x1A03:00 | 0x00 | Clear RX-PDO4 |
0x1600:00 | 0x00 | Clear TX-PDO1 |
0x1600:01 | 0x60400010 | Map control word |
0x1600:02 | 0x607A0020 | Map position command |
0x1600:03 | 0x38000210 | Map AOUT1 |
0x1600:04 | 0x38010210 | Map AOUT2 |
0x1600:05 | 0x36010120 | Map DOUT |
0x1600:00 | 0x05 | Set count to 5 |
0x1601:00 | 0x00 | Clear TX-PDO2 |
0x1602:00 | 0x00 | Clear TX-PDO3 |
0x1603:00 | 0x00 | Clear TX-PDO4 |
0x1C12:01 | 0x1600 | Download PDO 0x1C12:01 index |
0x1C12:00 | 0x01 | Download PDO 0x1C12 count |
0x1C13:01 | 0x1A00 | Download PDO 0x1C13:01 index |
0x1C13:00 | 0x01 | Download PDO 0x1C13 count |
0x3601:02 | 0xFFFFFFFF | Output mask |
0x6060:00 | 0x08 | Set OpMode to Cyclic Synchronous Position |
0x60C2:01 | 0x02 | Cycle time 2mS |
0x60C2:02 | 0xDF | Cycle exp. |
0x6096:01 | 0x0000003C | Vel Numerator (60 counts/rev) |
0x6096:02 | 0x00010000 | Vel Devisor (65536 counts/rev) |
0x6092:01 | 0x00010000 | Pos Feed (65536 counts) |
0x6092:02 | 0x00000001 | Pos Shaft Rotation (1 Rotation) |
AKD2G Dual Axis Mapping example:
CoE Master to Drive (RXPDO)
Axis1.Control Word, 0x6040
Axis1.Target Position, 0x607A
Axis2.Control Word, 0x6840
Axis2.Target Position, 0x687A
AOUT1, 0x3800sub02
AOUT2, 0x3801sub02
Digital Outputs, 0x3601sub01
Drive to CoE Master (TXPDO)
Axis2.Status Word, 0x6041
Axis2.Position feedback, 0x6064
Axis2.Status Word, 0x6841
Axis2.Position feedback, 0x6864
AIN1, 0x3780sub01
AIN2, 0x3781sub01
Digital Input, 0x60FDsub0
SDO Run-up script to configure the drive (Units will be 65536 counts/rev of the motor):
Index | Data | Comment |
0x1C12:00 | 0x00 | clear sm PDOs (0x1C12) |
0x1C13:00 | 0x00 | clear sm PDOs (0x1C13) |
0x1A00:00 | 0x00 | Clear RX-PDO1 |
0x1A00:01 | 0x60410010 | Map Axis1.status word |
0x1A00:02 | 0x60640020 | Map Axis1.position feedback |
0x1A00:03 | 0x68410010 | Map Axis2.status word |
0x1A00:04 | 0x68640020 | Map Axis1.position feedback |
0x1A00:05 | 0x37800110 | Map AIN1 |
0x1A00:06 | 0x37810110 | Map AIN2 |
0x1A00:07 | 0x60FD0020 | Map Digital Input |
0x1A00:00 | 0x07 | Set count to 7 |
0x1A01:00 | 0x00 | Clear RX-PDO2 |
0x1A02:00 | 0x00 | Clear RX-PDO3 |
0x1A03:00 | 0x00 | Clear RX-PDO4 |
0x1600:00 | 0x00 | Clear TX-PDO1 |
0x1600:01 | 0x60400010 | Map control word |
0x1600:02 | 0x607A0020 | Map position command |
0x1600:03 | 0x68400010 | Map control word |
0x1600:04 | 0x687A0020 | Map position command |
0x1600:05 | 0x38000210 | Map AOUT1 |
0x1600:06 | 0x38010210 | Map AOUT2 |
0x1600:07 | 0x36010120 | Map DOUT |
0x1600:00 | 0x07 | Set count to 7 |
0x1601:00 | 0x00 | Clear TX-PDO2 |
0x1602:00 | 0x00 | Clear TX-PDO3 |
0x1603:00 | 0x00 | Clear TX-PDO4 |
0x1C12:01 | 0x1600 | Download PDO 0x1C12:01 index |
0x1C12:00 | 0x01 | Download PDO 0x1C12 count |
0x1C13:01 | 0x1A00 | Download PDO 0x1C13:01 index |
0x1C13:00 | 0x01 | Download PDO 0x1C13 count |
0x3601:02 | 0xFFFFFFFF | Output mask |
0x6060:00 | 0x08 | Axis1.Set OpMode to Cyclic Synchronous Position |
0x60C2:01 | 0x02 | Axis1.Set Cycle time 2mS |
0x60C2:02 | 0xDF | Axis1.Set Cycle exp. |
0x6096:01 | 0x0000003C | Axis1 Vel Numerator (60) |
0x6096:02 | 0x00010000 | Axis1 Vel Devisor (65536) |
0x6092:01 | 0x00010000 | Axis1 Feed (65536 counts) |
0x6092:02 | 0x00000001 | Axis1 Shaft revolutions (1 revolution) |
0x6860:00 | 0x08 | Axis2.Set OpMode to Cyclic Synchronous Position |
0x68C2:01 | 0x02 | Axis2.Set Cycle time 2mS |
0x68C2:02 | 0xDF | Axis2.Set Cycle exp. |
0x6896:01 | 0x00000001 | Axis2 Numerator (60) |
0x6892:02 | 0x00010000 | Axis2 Devisor (65536) |
0x6892:01 | 0x00010000 | Axis2 Feed (65536 counts) |
0x6892:02 | 0x00000001 | Axis2 Shaft revolutions (1 revolution) |