EtherCAT Motion Tasks
Valid for S700 & S300 with -EC Option. Fw ≥ 5.18
General
The firmware ≥ 5.18 implements a motion tasks functionality that can be used for advanced positioning functions.
This functionality requires the XML file version 9a or newer (see the Downloads page, under "Fieldbus Support"). Additionally the configuration bit 16 of DRVCNFG3 parameter has to be set to 1 (0x10000).
The Optioncard EtherCAT (old) doesn't support the Motion task over EtherCAT
PDO Mappings
S700 input
0x1710 | Object 0x607A subindex 0 : Target position (4 bytes, ASCII parameter O_P) |
Object 0x6081 subindex 0 : Target velocity (4 bytes, ASCII parameter O_V) | |
Object 0x35B9 subindex 1 : motion task control word (4 bytes, O_C) | |
Object 0x35B7 subindex 1 : motion task acceleration (4 bytes, O_ACC) | |
Object 0x35BA subindex 1 : motion task deceleration (4 bytes, O_DEC) | |
Object 0x35BA subindex 1 : motion task profile number (2 bytes, O_TAB) | |
Object 0x6040 subindex 0 : drive control word (2 Byte, no ASCII parameter) | |
Object 0x2802 subindex 0 : latch control word (2 Byte, no ASCII parameter) |
S700 output
0x1B08 | Object 0x6064 subindex 0 : position real value (4 bytes, PFB) |
Object 0x6077 subindex 0 : current real value (2 bytes, I) | |
Object 0x60F4 subindex 0 : following error (4 bytes, PE) | |
Object 0x6061 subindex 0 : current operation mode (2 bytes, OPMODE) | |
Object 0x6041 subindex 0 : drive status word(2 bytes, no ASCII parameter) | |
Object 0x2901 subindex 0 : latch status word ( 2 bytes, no ASCII parameter) | |
Object 0x2902 subindex 0 : latched position (4 bytes, LATCH1P32) |
Due to performance issues, only the most important motion task parts can be transmitted inside of the mapping area. If required, the missing parts must be transmitted separately as SDO.
Motion task parts which are not components of the mapping data:
- Number of following motion tasks – SDO 0x35BC (ASCII command O_FN)
- Delay before starting following motion tasks – SDO 0x35BD (ASCII command O_FT)
- Number of the internal profile table – SDO 0x35B8 (ASCII command O_TAB)
Drive status word (2 Bytes)
Bit | Value (bin) | Value (hex) | Description |
---|---|---|---|
0 | 00000000 00000001 | 0x0001 | =0 drive ready to switch on |
1 | 00000000 00000010 | 0x0002 | =0 drive switched on |
2 | 00000000 00000100 | 0x0004 | =0 drive enabled by fieldbus control word |
3 | 00000000 00001000 | 0x0008 | =1 error active |
4 | 00000000 00010000 | 0x0010 | reserve |
5 | 00000000 00100000 | 0x0020 | =0 emergency active, power stage disabled |
6 | 00000000 01000000 | 0x0040 | =1 lock for switch on |
7 | 00000000 10000000 | 0x0080 | =1 warning active |
8 | 00000001 00000000 | 0x0100 | =1 following error active |
9 | 00000010 00000000 | 0x0200 | =1 homing done |
10 | 00000100 00000000 | 0x0400 | =1 in position |
11 | 00001000 00000000 | 0x0800 | =1 hardware/software limit switch active |
12 | 00010000 00000000 | 0x1000 | =1 cyclic communication O.K. |
13 | 00100000 00000000 | 0x2000 | =1 internal emergency mode active |
14 | 01000000 00000000 | 0x4000 | =1 hard error (COLDSTART required) |
15 | 10000000 00000000 | 0x8000 | =1 motion task / homing active |
Drive control word (2 Bytes)
Bit | Value (bin) | Value (hex) | Description |
---|---|---|---|
0 | 00000000 00000001 | 0x0001 | =0 disable the drive immediately |
1 | 00000000 00000010 | 0x0002 | =0 stop the motion and disable the drive |
2 | 00000000 00000100 | 0x0004 | =0 stop the motion, drive remains enabled |
3 | 00000000 00001000 | 0x0008 | =1 lock for set points |
4 | 00000000 00010000 | 0x0010 | Rising edge = motion task data valid Falling edge = start motion task |
5 | 00000000 00100000 | 0x0020 | |
6 | 00000000 01000000 | 0x0040 | |
7 | 00000000 10000000 | 0x0080 | =1 clear error |
8 | 00000001 00000000 | 0x0100 | |
9 | 00000010 00000000 | 0x0200 | |
10 | 00000100 00000000 | 0x0400 | |
11 | 00001000 00000000 | 0x0800 | =1 start homing move |
12 | 00010000 00000000 | 0x1000 | =1 save parameter in EEPROM (SAVE command) |
13 | 00100000 00000000 | 0x2000 | |
14 | 01000000 00000000 | 0x4000 | |
15 | 10000000 00000000 | 0x8000 |
How to use
Definition and start of a direct motion task
Required steps:
- Definition of the motion task components which are not in the 0x1710 mapping. The according SDOs have to be used for them, like 35BC sub 1 for O_FN etc.
- Definition of the motion task-components within the 0x1710 mapping.
- Enabling of the servo amplifier with step-wise writing of the control word values 0x6, 0x7 and 0xF.
- Set bit 4 of the control word. The rising edge causes the takeover of the motion task data into the direct motion task 0.
- With the falling edge on bit 4 of the control word the motion task is started.
Start of a predefined motion task from the servo amplifier's memory
Required steps:
- Setting of the motion task components in the 0x1710 mapping to 0 (at least position and target velocity).
- Setting the motion task control word to the number of the motion task to be started (MTNo=1…300).
- Set bit 4 of the control word. The rising edge causes the takeover of the motion task number MTNo from the motion task control word.
- With the falling edge on bit 4 of the control word the motion task MTNo from the servo amplifier's memory is started.
Motion task execution
- At the start of the motion task bit 15 (motion task active) of the servo amplifier's status word is set to 1. Additional bit 10 (in position) of the servo amplifier's status word is set to 0.
- When the difference between the current position and the target position is smaller than in position window (INPOS), bit 10 (in position) of the servo amplifier's status word is set to 1.
- After the target position is reached and the motion task is done, bit 15 (motion task active) is set to 0.
- The motion task is completely done when bit 10=1 and bit15=0.
Motion task abort
Setting of the bits 0,1,2,3 of the servo amplifier's control word to 0 aborts the running motion task.
Possible situations:
- Bit 0 = 0, disable the servo amplifier immediately
- Bit 1 = 0, stop the motion first and disable the servo amplifier
- Bit 2 = 0, stop the motion, servo amplifier remains enabled
- Bit 3 = 0, stop the motion, servo amplifier remains enabled, rising edge continues aborted motion task