68 uint32_t acceleration, uint32_t deceleration, uint32_t torque_slope,
69 float sine_frequency, uint32_t sustain_time_ms,
bool repeat,
70 bool master_generated =
false,
bool absolute_target =
false);
126 bool non_stop =
false);
216 uint32_t acceleration_;
217 uint32_t deceleration_;
218 uint32_t torque_slope_;
219 uint32_t sustain_time_ms_;
221 uint32_t encoder_resolution_ = 0;
222 double feed_constant_ = 0;
223 int32_t position_delta_ = 0;
226 bool absolute_target_;
228 bool aborted_ =
false;
231 bool master_generated_;
232 int32_t min_position_range_limit_ = 0;
233 int32_t max_position_range_limit_ = 0;
234 float sine_frequency_;
259 bool is_slave_position_profile_supported();
260 bool is_slave_velocity_profile_supported();
261 bool is_slave_torque_profile_supported();
264 bool bidirectional =
false);
273 void deinit_master_profile();
281 void execute_master_position_profile_stage(int32_t start, int32_t target);
290 void execute_master_position_profile_sin(int32_t start, int32_t target,
299 void execute_master_velocity_profile_stage(int32_t start, int32_t target);
308 void execute_master_velocity_profile_sin(int32_t start, int32_t target,
317 void execute_master_torque_profile_stage(int32_t start, int32_t target);
326 void execute_master_torque_profile_sin(int32_t start, int32_t target,
337 int32_t calculate_position_profile_steps(int32_t start, int32_t target);
347 int32_t calculate_velocity_profile_steps(int32_t start, int32_t target);
357 int32_t calculate_torque_profile_steps(int32_t start, int32_t target);
367 void init_master_profile_limits(int32_t max_torque_acceleration,
368 int32_t max_acceleration,
369 int32_t max_position, int32_t min_position);
376 int32_t init_linear_profile();
385 int32_t position_profile_generate(int32_t step);
392 int32_t linear_profile_generate_in_steps(int32_t step);
402 static double rpm_to_ticks(uint32_t rpm, uint32_t encoder_resolution);
412 static double ticks_to_rpm(
double ticks, uint32_t encoder_resolution);
423 void validate_position_profile_acceleration_deceleration();
431 void interruptible_sustain(uint32_t sustain_time_ms);
Definition: cia402_drive.h:48
Definition: motion_master_error.h:6
MotionMasterError start_sine_wave_velocity_profile()
Start executing a velocity sine wave profile.
Definition: profile.cc:1225
MotionMasterError start_trapezoidal_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a velocity trapezoidal profile from zero to target, then back to zero....
Definition: profile.cc:976
MotionMasterError start_trapezoidal_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target, then back to zero....
Definition: profile.cc:518
MotionMasterError start_bidirectional_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target, then back to negative target and ...
Definition: profile.cc:672
bool was_aborted() const
Indicates if the profile has been aborted before it finished.
Definition: profile.cc:1615
void stop()
Stop the currently running (repeating) profile after a full cycle.
Definition: profile.cc:1613
MotionMasterError start_ramp_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target. (Z - zero; T - target)
Definition: profile.cc:419
MotionMasterError start_sine_wave_torque_profile()
Start executing a torque sine wave profile.
Definition: profile.cc:1582
~Profile()
Definition: profile.cc:39
MotionMasterError start_bidirectional_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target, then back to negative target and th...
Definition: profile.cc:1448
MotionMasterError start_bidirectional_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a velocity trapezoidal profile from zero to target, then back to negative target and ...
Definition: profile.cc:1092
MotionMasterError start_sine_wave_position_profile()
Start executing a position sine wave profile.
Definition: profile.cc:855
MotionMasterError start_ramp_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target. (Z - zero; T - target)
Definition: profile.cc:1256
MotionMasterError start_trapezoidal_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target, then back to zero....
Definition: profile.cc:1330
MotionMasterError start_ramp_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr, bool non_stop=false)
Start executing a velocity trapezoidal profile from zero to target. (Z - zero; T - target)
Definition: profile.cc:897
double t_cruise
Definition: profile.h:53
double acc
Definition: profile.h:17
double gi
Definition: profile.h:38
double min_position
Definition: profile.h:59
double bi
Definition: profile.h:33
double di
Definition: profile.h:35
double qfd
Definition: profile.h:43
int32_t steps
Definition: profile.h:61
double ai
Definition: profile.h:32
double tb_acc
Definition: profile.h:50
double q
Definition: profile.h:56
double ei
Definition: profile.h:36
double ts
Definition: profile.h:54
int32_t max_torque_acceleration
Definition: profile.h:13
double max_velocity
Definition: profile.h:11
int32_t max_torque
Definition: profile.h:12
double ci
Definition: profile.h:34
double distance_acc
Definition: profile.h:47
double T
Definition: profile.h:25
double distance_cruise
Definition: profile.h:45
double s_time
Definition: profile.h:26
double distance_dec
Definition: profile.h:48
double dec
Definition: profile.h:18
double max_acceleration
Definition: profile.h:10
double qi
Definition: profile.h:20
double total_distance
Definition: profile.h:46
int32_t direction
Definition: profile.h:28
double fi
Definition: profile.h:37
double tb_dec
Definition: profile.h:51
double qid
Definition: profile.h:42
double max_position
Definition: profile.h:58
double vi
Definition: profile.h:19
double qf
Definition: profile.h:21
double tf
Definition: profile.h:52
MotionMasterWarning
Definition: util.h:155