Profile Position Mode is used to move to positions relative to the last target position or to an absolute position (last reference position). During the movement, the limit values for the speed, starting acceleration/braking deceleration and jerks are taken into account.
The following bits in object 6040h (controlword) have a special function:
- Bit 4 starts a travel command. This is carried out on a transition from "0" to "1".
- Bit 5: If this bit is set to "1", a travel command triggered by bit 4 is immediately executed. If it is set to "0", the just executed travel command is completed and only then is the next travel command started.
- Bit 6: With "0", the target position (607Ah) is absolute and with "1" the target position is relative. The reference position is dependent on bits 0 and 1 of object 60F2h.
- Bit 8 (Halt): If this bit is set to "1", the motor stops. On a transition from "1" to "0", the motor accelerates with the set start ramp to the target speed. On a transition from "0" to "1", the motor brakes and comes to a standstill. The braking deceleration is dependent here on the setting of the "Halt Option Code" in object 605Dh.
- Bit 9 (Change on setpoint): If this bit is set, the speed is not changed until the first target position is reached. This means that, before the first target is reached, no braking is performed, as the motor should not come to a standstill at this position.
|Bit 9||Bit 5||Definition|
|X||1||The new target position is moved to immediately.|
|0||0||Positioning is completed before moving to the next target position with the new limits.|
|1||0||The current target position is only passed through; afterwards, the new target position is moved to with the new values.|
For further information, see figure in "Setting travel commands".
The following bits in object 6041h (statusword) have a special function:
- Bit 10 (Target Reached): This bit is set to "1" if the last target was reached and the motor remains within a tolerance window (6067h) for a preset time (6068h).
Bit 12 (Set-point acknowledge): This bit confirms receipt of a new and valid set point. It is set and reset in sync with the "New set-point" bit in the controlword.
There is an exception in the event that a new movement is started before another one has completed and the next movement is not to occur until after the first one has finished. In this case, the bit is reset if the command was accepted and the controller is ready to execute new travel commands. If a new travel command is sent even though this bit is still set, the newest travel command is ignored.
The bit is not set if one of the following conditions is met:
- The new target position can no longer be reached while adhering to all boundary conditions.
- A target position was already traveled to and a target position was already specified. A new target position can only be specified after the current positioning has been concluded.
- Bit 13 (Following Error): This bit is set in closed loop mode if the following error is greater than the set limits (6065h (Following Error Window) and 6066h (Following Error Time Out)).
Setting travel commands
In object 607Ah (Target Position), the new target position is specified in user units (see "User-defined units"). The travel command is then triggered by setting bit 4 in object 6040h (controlword). If the target position is valid, the controller responds with bit 12 in object 6041h (statusword) and begins the positioning move. As soon as the position is reached, bit 10 in the statusword is set to "1".
Other travel commands
Bit 12 in object 6041h (statusword, set-point acknowledge) changes to "0" if another travel command can be buffered (see time 1 in the following figure). As long as a target position is being moved to, a second target position can be passed to the controller in preparation. All parameters – such as speed, acceleration, braking deceleration, etc. – can thereby be reset (time 2). If the buffer is empty, the next time can be queued up (time 3).
If the buffer is already full, a new set point is ignored (time 4). If bit 5 in object 6040h (controlword, bit: "Change Set-Point Immediately") is set, the controller operates without the buffer; new travel commands are implemented directly (time 5).
Transition procedure for second target position
The following graphic shows the transition procedure for the second target position while moving to the first target position. In this figure, bit 5 of object 6040h (controlword) is set to "1"; the new target value is, thus, taken over immediately.
Possibilities for moving to a target position
If bit 9 in object 6040h (controlword) is equal to "0", the current target position is first moved to completely. In this example, the final speed (6082h) of the target position is equal to zero. If bit 9 is set to "1", the profile speed (6081h) is maintained until the target position is reached; only then do the new boundary conditions apply.
Possible combinations of travel commands
To provide a better overview of the travel commands, combinations of travel commands are listed and depicted in this chapter.
- A double arrow indicates a new travel command.
- The first travel command at the start is always an absolute travel command to position 1100.
- The second movement is performed at a lower speed so as to present the graphs in a clear manner.
Loss of accuracy for relative movements
When linking together relative movements, a loss of accuracy may occur if the final speed is not set to zero. The following graphic illustrates the reason.
The current position is sampled once per millisecond. It is possible that the target position is reached between two samples. If the final speed is not equal to zero, then, after the target position is reached, the sample is used as an offset as the basis for the subsequent movement. As a result, the subsequent movement may go somewhat farther than expected.
Boundary conditions for a positioning move
The boundary conditions for the position that has been moved to can be set in the following entries of the object dictionary:
- 607Ah: (Target Position): Planned target position
- 607Dh: (Software Position Limit): Definition of the limit stops (see chapter Software limit switches)
- 607Ch (Home Offset): Specifies the difference between the zero position of the controller and the reference point of the machine in user-defined units. (See "Homing")
- 607Bh (Position Range Limit): Limits of a modulo operation for replicating an endless rotation axis
- 607h (Polarity): Direction of rotation
- 6081h (Profile Velocity): Maximum speed with which the position is to be approached
- 6082h (End Velocity): Speed upon reaching the target position
- 6083h (Profile Acceleration): Desired starting acceleration
- 6084h (Profile Deceleration): Desired braking deceleration
- 6085h (Quick Stop Deceleration): Emergency-stop braking deceleration in case of the "Quick stop active" state of the "CiA 402 Power State Machine"
- 6086h (Motion Profile Type): Type of ramp to be traveled; if the value is "0", the jerk is not limited; if the value is "3", the values of 60A4h:1h–4h are set as limits for the jerk.
- 60C5h (Max Acceleration): The maximum acceleration that may not be exceeded when moving to the end position
- 60C6h (Max Deceleration): The maximum braking deceleration that may not be exceeded when moving to the end position
- 60A4h (Profile Jerk), subindex 01h to 04h: Objects for specifying the limit values for the jerk.
- 60F2h: (Positioning Option Code): Defines the positioning behavior
Objects for the positioning move
The following graphic shows the objects involved in the boundary conditions of the positioning move.
Parameters for the target position
The following graphic shows an overview of the parameters that are used for moving to a target position (figure not to scale).
Jerk-limited mode and non-jerk-limited mode
A distinction is made between the "jerk-limited" and "non-jerk-limited" modes.
A "non-jerk-limited" ramp is traveled if the entry in object 6086h is set to "0" (default setting).