#include <mcdc3006s.h>
Public Member Functions | |
int | activate_limits (int action) |
Activates/Deactivates the driver Limits. If the limits aren't activated the driver will NOT respect the Maximum or Minimum positions. | |
int | calibrate (int limit) |
starts the calibration sequence of the drive | |
int | disable_driver () |
Disables the driver. | |
int | enable_driver () |
Enables the driver. | |
int | get_config (driverConf_t *dc) |
Function that gets the current driver configuration as is stored in the flash memory of the driver and writes it in a driverConf_t type format. | |
int | get_cur_lim () |
get the continuous current limit (CCL) in mA. | |
int | get_instant_current (int *current) |
asks for the instant velocity from sensor data of the driver. | |
int | get_instant_pos (long int *positon) |
asks for the instant position from sensor data of the driver. | |
int | get_instant_vel (long int *velocity) |
asks for the instant velocity from sensor data of the driver. | |
long int | get_max_acc () |
returns the maximum acceleration allowed by the driver. To set this value see | |
long int | get_max_dec () |
returns the maximum deceleration allowed by the driver. To set this value see | |
long int | get_max_pos () |
returns the maximum position allowed by the driver. To set this value see | |
long int | get_max_vel () |
Returns the maximum speed allowed by the driver which is set with setDriverMaxVel() function. | |
long int | get_min_pos () |
This function reads from the driver min position from its flash memory. | |
int | get_peak_cur_lim () |
get the Peak Current Limit (PCL) in mA. | |
int | get_sensor (driverSensor_t *sensor) |
asks for sensor data of the driver | |
int | get_status (driverStatus_t *drvStatus) |
Asks to the driver its current status. | |
int | init (int baudrate, char *dev, char *sem) |
high level functions | |
Mcdc3006s () | |
Empty constructor. | |
int | move_abs_pos (long int pos) |
Sends to the driver the order to move to an absolute position in pulses. | |
int | move_rel_pos (long int pos) |
Sends to the driver the order to move to a relative position in pulses. | |
int | move_vel (long int vel) |
Sends to the driver the order to move at a determined speed (in rpm) | |
int | save_to_flash () |
Save current configuration params to FLASH memory of the drive, so the nest time the drive is turned on it loads this configuration. WARNING!!! It should not be used more than 10,000 times because the FLASH memory could get damaged!!! | |
int | set_baudrate (int baud) |
tells to the driver at which baudrate we want to operate | |
int | set_config (driverConf_t dc) |
Function that configures the driver from a driverConf_t type. | |
int | set_cur_lim (int cl) |
loads continuous current limit | |
int | set_home_position (long int home) |
Sets the current position as the given value. NOTE: Use only during the calibration phase. This function sends to the driver the Home command. The home commands tells to the driver which is the current position. For example If we send home = 0 we are telling to the driver that the current position is 0 position (and it should used as a reference). | |
int | set_max_acc (long int maxAcc) |
sets the maximum acceleration allowed by the driver in revolutions/s^2 | |
int | set_max_dec (long int maxDec) |
sets the maximum deceleration allowed by the driver in revolutions/s^2 | |
int | set_max_pos (long int maxPos) |
Sets the maximum absolute position in pulses. | |
int | set_max_vel (long int maxVel) |
Sets the maximum speed allowed by the driver in rpm. | |
int | set_min_pos (long int minPos) |
Sets the minimum absolute position in pulses. | |
int | set_peak_cur_lim (int pcl) |
loads peak current limit | |
~Mcdc3006s () | |
Destructor. | |
Private Attributes | |
Rs232 | _comm |
Definition at line 33 of file mcdc3006s.h.
Empty constructor.
Definition at line 30 of file mcdc3006s.cpp.
Destructor.
Definition at line 36 of file mcdc3006s.cpp.
int Mcdc3006s::activate_limits | ( | int | action | ) | [virtual] |
Activates/Deactivates the driver Limits. If the limits aren't activated the driver will NOT respect the Maximum or Minimum positions.
action | it only has two allowed values: ACTIVATE to activate de driver or DEACTIVATE to disable the driver |
Implements MotorDriverInterface.
Definition at line 698 of file mcdc3006s.cpp.
int Mcdc3006s::calibrate | ( | int | limit | ) | [virtual] |
starts the calibration sequence of the drive
limit | sensor position in pulses measured from the desired 0 position |
Error control here
Implements MotorDriverInterface.
Definition at line 736 of file mcdc3006s.cpp.
int Mcdc3006s::disable_driver | ( | ) | [virtual] |
Disables the driver.
Implements MotorDriverInterface.
Definition at line 73 of file mcdc3006s.cpp.
int Mcdc3006s::enable_driver | ( | ) | [virtual] |
Enables the driver.
Implements MotorDriverInterface.
Definition at line 58 of file mcdc3006s.cpp.
int Mcdc3006s::get_config | ( | driverConf_t * | dc | ) | [virtual] |
Function that gets the current driver configuration as is stored in the flash memory of the driver and writes it in a driverConf_t type format.
dc | is the driverConf_t type where the driver configuration is stored |
Implements MotorDriverInterface.
Definition at line 88 of file mcdc3006s.cpp.
int Mcdc3006s::get_cur_lim | ( | ) | [virtual] |
get the continuous current limit (CCL) in mA.
WARNING: Untested Function
Implements MotorDriverInterface.
Definition at line 228 of file mcdc3006s.cpp.
int Mcdc3006s::get_instant_current | ( | int * | current | ) | [virtual] |
asks for the instant velocity from sensor data of the driver.
current | is where the instant current data from the driver will be stored. The units from the driver are [rpm] |
Implements MotorDriverInterface.
Definition at line 391 of file mcdc3006s.cpp.
int Mcdc3006s::get_instant_pos | ( | long int * | positon | ) | [virtual] |
asks for the instant position from sensor data of the driver.
position | is a pointer pointing to where the position sensor data from the driver will be stored. The units from the driver are in [pulses] |
Implements MotorDriverInterface.
Definition at line 349 of file mcdc3006s.cpp.
int Mcdc3006s::get_instant_vel | ( | long int * | velocity | ) | [virtual] |
asks for the instant velocity from sensor data of the driver.
velocity | is where the velocity sensor data from the driver will be stored. The units from the driver are [rpm] |
Implements MotorDriverInterface.
Definition at line 370 of file mcdc3006s.cpp.
long int Mcdc3006s::get_max_acc | ( | ) | [virtual] |
returns the maximum acceleration allowed by the driver. To set this value see
Implements MotorDriverInterface.
Definition at line 190 of file mcdc3006s.cpp.
long int Mcdc3006s::get_max_dec | ( | ) | [virtual] |
returns the maximum deceleration allowed by the driver. To set this value see
Implements MotorDriverInterface.
Definition at line 209 of file mcdc3006s.cpp.
long int Mcdc3006s::get_max_pos | ( | ) | [virtual] |
returns the maximum position allowed by the driver. To set this value see
Implements MotorDriverInterface.
Definition at line 132 of file mcdc3006s.cpp.
long int Mcdc3006s::get_max_vel | ( | ) | [virtual] |
Returns the maximum speed allowed by the driver which is set with setDriverMaxVel() function.
Implements MotorDriverInterface.
Definition at line 171 of file mcdc3006s.cpp.
long int Mcdc3006s::get_min_pos | ( | ) | [virtual] |
This function reads from the driver min position from its flash memory.
Implements MotorDriverInterface.
Definition at line 150 of file mcdc3006s.cpp.
int Mcdc3006s::get_peak_cur_lim | ( | ) | [virtual] |
get the Peak Current Limit (PCL) in mA.
WARNING: Untested Function
Implements MotorDriverInterface.
Definition at line 246 of file mcdc3006s.cpp.
int Mcdc3006s::get_sensor | ( | driverSensor_t * | sensor | ) | [virtual] |
asks for sensor data of the driver
sensor | is the sensor structure where we want to store the sensor data from the driver. |
Implements MotorDriverInterface.
Definition at line 308 of file mcdc3006s.cpp.
int Mcdc3006s::get_status | ( | driverStatus_t * | drvStatus | ) | [virtual] |
Asks to the driver its current status.
drvStatus | is a structure where the current driver status is stored. Each of the parameters of the drvStatus are set to 1 if true or 0 if false |
Implements MotorDriverInterface.
Definition at line 264 of file mcdc3006s.cpp.
int Mcdc3006s::init | ( | int | baudrate, |
char * | dev, | ||
char * | sem | ||
) | [virtual] |
int Mcdc3006s::move_abs_pos | ( | long int | pos | ) | [virtual] |
Sends to the driver the order to move to an absolute position in pulses.
p | absolute position in pulses |
Implements MotorDriverInterface.
Definition at line 619 of file mcdc3006s.cpp.
int Mcdc3006s::move_rel_pos | ( | long int | pos | ) | [virtual] |
Sends to the driver the order to move to a relative position in pulses.
p | relative position in pulses |
Implements MotorDriverInterface.
Definition at line 642 of file mcdc3006s.cpp.
int Mcdc3006s::move_vel | ( | long int | vel | ) | [virtual] |
Sends to the driver the order to move at a determined speed (in rpm)
v | velocity in rpm (revolutions per minute) |
Implements MotorDriverInterface.
Definition at line 665 of file mcdc3006s.cpp.
int Mcdc3006s::save_to_flash | ( | ) | [virtual] |
Save current configuration params to FLASH memory of the drive, so the nest time the drive is turned on it loads this configuration. WARNING!!! It should not be used more than 10,000 times because the FLASH memory could get damaged!!!
The EEPSAV command always responds with the character string “EEPROM writing done” after successful saving of the current settings in the data Flash memory, or with “Flash defect”, if the save has failed.
Implements MotorDriverInterface.
Definition at line 681 of file mcdc3006s.cpp.
int Mcdc3006s::set_baudrate | ( | int | baud | ) | [virtual] |
tells to the driver at which baudrate we want to operate
baud | is the baudrate of the communication. |
Implements MotorDriverInterface.
Definition at line 589 of file mcdc3006s.cpp.
int Mcdc3006s::set_config | ( | driverConf_t | dc | ) | [virtual] |
Function that configures the driver from a driverConf_t type.
dc | is where dc configuration is read in order to write it into the driver |
Implements MotorDriverInterface.
Definition at line 412 of file mcdc3006s.cpp.
int Mcdc3006s::set_cur_lim | ( | int | cl | ) | [virtual] |
loads continuous current limit
cl | current limit in mA Range = [0 - 12000mA] |
Implements MotorDriverInterface.
Definition at line 555 of file mcdc3006s.cpp.
int Mcdc3006s::set_home_position | ( | long int | home | ) | [virtual] |
Sets the current position as the given value. NOTE: Use only during the calibration phase. This function sends to the driver the Home command. The home commands tells to the driver which is the current position. For example If we send home = 0 we are telling to the driver that the current position is 0 position (and it should used as a reference).
home | is the given position in pulses. This parameter specifies which is the current position. |
Implements MotorDriverInterface.
Definition at line 720 of file mcdc3006s.cpp.
int Mcdc3006s::set_max_acc | ( | long int | maxAcc | ) | [virtual] |
sets the maximum acceleration allowed by the driver in revolutions/s^2
maxAcc | maximum acceleration in revolutions/s^2 |
Implements MotorDriverInterface.
Definition at line 521 of file mcdc3006s.cpp.
int Mcdc3006s::set_max_dec | ( | long int | maxDec | ) | [virtual] |
sets the maximum deceleration allowed by the driver in revolutions/s^2
maxDec | maximum deceleration in r/sec2 |
Implements MotorDriverInterface.
Definition at line 538 of file mcdc3006s.cpp.
int Mcdc3006s::set_max_pos | ( | long int | maxPos | ) | [virtual] |
Sets the maximum absolute position in pulses.
maxPos | in pulses |
Implements MotorDriverInterface.
Definition at line 445 of file mcdc3006s.cpp.
int Mcdc3006s::set_max_vel | ( | long int | maxVel | ) | [virtual] |
Sets the maximum speed allowed by the driver in rpm.
maxVel | in r.p.m. |
Implements MotorDriverInterface.
Definition at line 504 of file mcdc3006s.cpp.
int Mcdc3006s::set_min_pos | ( | long int | minPos | ) | [virtual] |
Sets the minimum absolute position in pulses.
minPos | is the minimum absolute position in pulses |
Implements MotorDriverInterface.
Definition at line 475 of file mcdc3006s.cpp.
int Mcdc3006s::set_peak_cur_lim | ( | int | pcl | ) | [virtual] |
loads peak current limit
pcl | current limit in mA Range = [0 - 12000mA] |
Implements MotorDriverInterface.
Definition at line 572 of file mcdc3006s.cpp.
Rs232 Mcdc3006s::_comm [private] |
Definition at line 352 of file mcdc3006s.h.