6. Operating modes
6.3 Positioning Operating Mode (Profile Position Mode)
6.3.1 Overview
The structure of this operating mode is evident in Fig. 6.12:
The target position (target_position) is passed on to the curve generator. This generates a setpoint position value (position_demand_value) for the position controller, which is described in the Position Controller chapter (Position Control Function, chapter 4.6).
These two function blocks can be set independently of each other.
Trajectory Generator
Position Control Function position_demand_value
(60FDh) Trajectory Generator
Parameters
Position Control Law Parameters
control_effort (60FAh) target_position
(607Ah)
Fig. 6.12 Curve generator and position controller
All input variables of the curve generator are converted with the variables of the factor group (see chap. 4.2) into the internal units of the regulator. The internal variables are marked here with an asterisk and are normally not needed by the user.
6.3.2 Description of the Objects
Objects treated in this chapter
Index Object Name Type Attr.
607Ah VAR target_position INT32 rw
6081h VAR profile_velocity UINT32 rw
6082h VAR end_velocity UINT32 rw
6083h VAR profile_acceleration UINT32 rw
6084h VAR profile_deceleration UINT32 rw
6086h VAR motion_profile_type INT16 rw
6085h VAR quick_stop_deceleration UINT32 rw
Affected objects from other chapters
Index Object Name Type Chapter
6040h VAR controlword INT16 5 Device control 6041h VAR statusword UINT16 5 Device control 605Ah VAR quick_stop_option_code INT16 5 Device control 607Eh VAR polarity UINT8 4.2 Conversion factors 6093h ARRAY position_factor UINT32 4.2 Conversion factors 6094h ARRAY velocity_encoder_factor UINT32 4.2 Conversion factors 6097h ARRAY acceleration_factor UINT32 4.2 Conversion factors
Object 607A
h: target_position
The object target_position (target position) determines which position of the motor controller should be traveled to. The current setting for speed, acceleration, brake delay and type of travel profile (motion_profile_type) etc. must be considered thereby.
The target position (target_position) is interpreted either as an absolute or relative statement (controlword, bit 6).
Index 607Ah
Name target_position Object Code VAR
Data Type INT32 Access rw PDO Mapping yes
Units position units
Value Range --
Object 6081
h: profile_velocity
The object profile_velocity specifies the speed that is normally reached at the end of the acceleration ramp during positioning. The object profile_velocity is specified in speed units.
Index 6081h
Name profile_velocity Object Code VAR
Data Type UINT32 Access rw PDO Mapping yes
Units speed_units Value Range --
Default Value 0
Object 6082
h: end_velocity
The object end_velocity (end speed) defines the speed the drive must have when it reaches the target position (target_position). Normally, this object must be set to zero so that the motor controller stops when it reaches the target position (target_position).
For continuous positioning, a speed different from zero can be specified.
The object end_velocity is specified in the same units as the object profile_velocity.
Index 6082h Name end_velocity Object Code VAR
Data Type UINT32 Access rw PDO Mapping yes
Units speed units
Value Range -- Default Value 0
Object 6083
h: profile_acceleration
The object profile_acceleration specifies the acceleration with which the motor accelerates to the setpoint speed. It is specified in user-defined acceleration units.
(See chapter 4.2: Factor Group).
Index 6083h
Name profile_acceleration Object Code VAR
Data Type UINT32 Access rw PDO Mapping yes
Units acceleration units Value Range --
Default Value --
Object 6084
h: profile_deceleration
The object profile_deceleration specifies the deceleration with which the motor is braked.
It is specified in user-defined acceleration units. (See chapter 4.2: Factor Group).
Index 6084h
Name profile_deceleration Object Code VAR
Data Type UINT32 Access rw PDO Mapping yes
Units acceleration units Value Range --
Default Value --
Object 6085
h: quick_stop_deceleration
The object quick_stop_deceleration specifies with which braking deceleration the motor stops when a Quick Stop is performed. The object quick_stop_deceleration is specified in the same unit as the object profile_deceleration.
Index 6085h
Name quick_stop_deceleration Object Code VAR
Data Type UINT32 Access rw PDO Mapping yes
Units acceleration units Value Range --
Default Value --
Object 6086
h: motion_profile_type
The object motion_profile_type is used to select the type of positioning profile.
Index 6086h
Name motion_profile_type Object Code VAR
Data Type INT16 Access rw PDO Mapping yes
Units -- Value Range 0, 2
Default Value 0
Value Curve form 0 linear ramp 2 Jerk-free ramp
6.3.3 Functional description
There are two possibilities for passing on a target position to the motor controller:
Simple positioning task
If the motor controller has reached a target position, it signals this to the host with the bit target_reached (bit 10 in the object statusword). In this operating mode, the motor controller stops when it has reached the goal.
Sequence of positioning tasks
After the motor controller has reached a target, it immediately begins travelling to the next target. This transition can occur smoothly, without the motor controller meanwhile coming to a standstill.
These two methods are controller through the bits new_set_point and
change_set_immediatly in the object controlword and set_point_acknowledge in the object statusword. These bits are in a question-answer relationship to each other.
This makes it possible to prepare a positioning task while another is still running.
Fig. 6.13 Positioning task transmittal from a host
In Fig. 6.13, you can see how the host and the motor controller communicate with each other via the CAN bus:
First, the positioning data (target position, travel speed, end speed and acceleration) are transmitted to the motor controller. When the positioning data record has been
completely written (1), the host can start positioning by setting the bit new_set_point in the controlword to "1" (2). After the motor controller recognises the new data and takes it over into its buffer, it reports this to the host by setting the bit set_point_acknowledge in the statusword (3).
Then the host can begin to write a new positioning data set into the motor controller (4) and delete the bit new_set_point again (5). Only when the motor controller can accept a new positioning job (6) does it signal this through a "0" in the set_point_acknowledge bit. Before this, no new positioning may be started by the host (7).
In Fig. 6.14, a new positioning task is only started after the previous one has been completely finished. To determine this, the host evaluates the bit target_reached in the object statusword.
Fig. 6.14 Simple positioning task
In Fig. 6.15, a new positioning task is already started while the previous one is still in process. The host already passes the subsequent target on to the motor controller when the motor controller signals with deletion of the bit set_point_acknowledge that it has read the buffer and started the related positioning. In this way, positioning tasks follow each other seamlessly. For this operating mode, the object end_velocity should be written over with the same value as the object profile_velocity so that the motor controller does not briefly brake to zero each time between the individual positioning tasks.
Fig. 6.15 Continuous sequence of positioning tasks
If besides the bit new_set_point the bit change_set_immediately is also set to "1" in the controlword, the host instructs the motor controller to start the new positioning task immediately. In this case, a positioning task already in process is interrupted.