Header file for XIDCUSB library. Подробнее...
Структуры данных | |
struct | state_t |
Состояние устройства. Подробнее... | |
struct | chart_data_t |
Дополнительное состояние устройства. Подробнее... | |
struct | calibration_settings_t |
Калибровочные коэффициенты. Подробнее... | |
struct | engine_settings_t |
Настройки мотора. Подробнее... | |
struct | pid_settings_t |
Настройки ПИД. Подробнее... | |
struct | sync_settings_t |
Настройки синхронизации. Подробнее... | |
struct | home_settings_t |
Настройки калибровки позиции. Подробнее... | |
struct | analog_data_t |
Аналоговые данные. Подробнее... | |
Макросы | |
#define | DCCONTROL_API __attribute__((visibility("default"))) |
Library import macros. | |
#define | device_undefined -1 |
Макрос, означающий неопределенное устройство. | |
Результаты выполнения команд | |
#define | result_ok 0 |
выполнено успешно. | |
#define | result_error -1 |
общая ошибка. | |
#define | result_not_implemented -2 |
функция не определена. | |
#define | result_dataerror -3 |
ошибка в запросе или в ответе. | |
#define | result_nodevice -4 |
устройство не подключено. | |
Флаги состояния | |
Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.
| |
#define | STATE_RIGHT_EDGE 0x0001 |
Достижение правой границы. | |
#define | STATE_LEFT_EDGE 0x0002 |
Достижение левой границы. | |
#define | STATE_EXT_POWER 0x0004 |
Используется внешнее питание. | |
#define | STATE_ERRC 0x0008 |
Недопустимая команда. | |
#define | STATE_ERRD 0x0010 |
Недопустимые данные. | |
#define | STATE_POWER_DISABLE 0x0020 |
Получено сообщение от FTDI об отключении USB-питания. | |
#define | STATE_TTLIO_PINOUT 0x0040 |
Если флаг установлен, вывод синхронизации работает как выход; если флаг сброшен, вывод работает как вход. | |
#define | STATE_TTLIO_LEVEL 0x0080 |
Лог. | |
#define | STATE_BUTTON_RIGHT 0x0100 |
Состояние кнопки "вправо" (1, если нажата). | |
#define | STATE_BUTTON_LEFT 0x0200 |
Состояние кнопки "влево" (1, если нажата). | |
#define | STATE_OVERHEAT 0x2000 |
Температура превысила допустимую вличину. | |
#define | STATE_OVERLOAD_VOLTAGE 0x4000 |
Перегрузка по напряжению. | |
#define | STATE_OVERLOAD_CURRENT 0x8000 |
Перегрузка по току. | |
Флаги параметров мотора | |
#define | ENGINE_REVERSE 0x0001 |
Флаг реверса. | |
#define | ENGINE_FINISHING 0x0002 |
Флаг точной доводки. | |
#define | ENGINE_MAX_SPEED 0x0004 |
Флаг максимальной скорости. | |
#define | ENGINE_ANTIPLAY 0x0008 |
Компенсация люфта. | |
#define | ENGINE_ACCEL_ON 0x0010 |
Ускорение. | |
#define | ENGINE_LIMIT_VOLT 0x0020 |
Номинальное напряжение мотора. | |
#define | ENGINE_LIMIT_CURR 0x0040 |
Номинальный ток мотора. | |
#define | ENGINE_LIMIT_RPM 0x0080 |
Номинальная частота вращения мотора. | |
#define | ENGINE_HOLD 0x0100 |
Режим удержания. | |
#define | ENGINE_DYNAMIC_HOLD 0x0200 |
Динамическое удержание. | |
#define | ENGINE_ONLY_FINISHING 0x0400 |
Если флаг установлен, движение к точке начинается сразу в состоянии Tune. | |
Флаги параметров микрошагового режима | |
#define | MICROSTEP_MODE_FULL 0x01 |
Полношаговый режим. | |
#define | MICROSTEP_MODE_FRAC_2 0x02 |
Деление шага 1/2. | |
#define | MICROSTEP_MODE_FRAC_4 0x04 |
Деление шага 1/4. | |
#define | MICROSTEP_MODE_FRAC_8 0x08 |
Деление шага 1/8. | |
#define | MICROSTEP_MODE_FRAC_16 0x10 |
Деление шага 1/16. | |
#define | MICROSTEP_MODE_FRAC_32 0x20 |
Деление шага 1/32. | |
#define | MICROSTEP_MODE_FRAC_64 0x40 |
Деление шага 1/64. | |
#define | MICROSTEP_MODE_FRAC_128 0x80 |
Деление шага 1/128. | |
Флаги, определяющие тип мотора | |
Возращаются командой get_engine_settings. | |
#define | ENGINE_TYPE_DC 0x01 |
Мотор постоянного тока. | |
#define | ENGINE_TYPE_STEP 0x02 |
Шаговый мотор. | |
#define | ENGINE_TYPE_BRUSHLESS 0x04 |
Безщеточный мотор. | |
#define | FEEDBACK_POTENTIOMETER 0x00 |
Тип обратной связи. | |
#define | FEEDBACK_ENCODER 0x01 |
обратная связь с помощью энкодера. | |
#define | FEEDBACK_ENCODERDIFF 0x02 |
обратная связь с помощью энкодера с дифференциальным входом. | |
#define | FEEDBACK_ENCODERHALL 0x04 |
обратная связь с помощью датчика Холла. | |
#define | FEEDBACK_EMF 0x08 |
обратная связь по ЭДС. | |
#define | FEEDBACK_NONE 0x10 |
обратная связь отсутствует. | |
Флаги настроек синхронизации входа/выхода | |
#define | TTL_SETUP_DIROUT 0x0001 |
Если флаг установлен, вывод синхронизации работает как выход; если флаг сброшен, вывод синхронизации работает как вход. | |
#define | TTL_SETUP_OUTSET 0x0002 |
Флаг определяет логический уровень на выводе синхронизации, установленном как выход. | |
#define | TTL_SETUP_FRONT 0x0010 |
Настройка синхронизации в режиме входа. | |
Флаги настроек синхронизации входа | |
#define | TTL_SYNCIN_ONMOVE 0x0001 |
Бесконечное вращение в направлении TTL_SYNCIN_DIRRIGHT, если флаг установлен; иначе - смещение на заданную позицию. | |
#define | TTL_SYNCIN_MULTI_SHIFT 0x0004 |
Если флаг установлен, происходит многократное срабатывание по команде SHIFT; если сброшен - однократное срабатывание по команде MOVE. | |
#define | TTL_SYNCIN_DIRRIGHT 0x0008 |
Направление вращения при синхронизации. | |
Флаги настроек синхронизации выхода | |
#define | TTL_SYNCOUT_ONSTART 0x0001 |
Генерация синхронизирующего импульса при начале движения. | |
#define | TTL_SYNCOUT_ONSTOP 0x0002 |
Генерация синхронизирующего импульса при остановке. | |
#define | TTL_SYNCOUT_ONPERIOD 0x0004 |
Генерация синхронизирующего импульса при каждом импульсе энкодера. | |
Флаги границ | |
Типы границ и поведение позиционера на границах. Могут быть объединены с помощью побитового ИЛИ.
| |
#define | BORDER_IS_ENCODER 0x0001 |
Если флаг установлен, границы определяются предустановленными точками на шкале позиции. | |
#define | BORDER_STOP_LEFT 0x0002 |
Если флаг установлен, мотор останавливается при достижении левой границы. | |
#define | BORDER_STOP_RIGHT 0x0004 |
Если флаг установлен, мотор останавливается при достижении правой границы. | |
Флаги концевых выключателей | |
Определяют направление и состояние границ. Могут быть объединены с помощью побитового ИЛИ.
| |
#define | ENDER_DIRECT 0x0001 |
Если флаг установлен, первый концевой выключатель находится справа; иначе - слева. | |
#define | ENDER_ON1 0x0002 |
Если флаг установлен, первый концевой выключатель является нормально замкнутым; иначе - нормально разомкнутым. | |
#define | ENDER_ON2 0x0004 |
Если флаг установлен, второй концевой выключатель является нормально замкнутым; иначе - нормально разомкнутым. | |
Флаги настроек команды home | |
Определяют поведение для команды home Могут быть объединены с помощью побитового ИЛИ.
| |
#define | HOME_DIR_FAST 0x01 |
Определяет направление первоначального движения мотора после поступления команды HOME. | |
#define | HOME_STOP_FAST 0x02 |
Если флаг установлен, то первоначальное движение завершается по сигналу со входа синхронизации; иначе - по сигналу с концевого выключателя. | |
#define | HOME_DIR_SLOW 0x04 |
Определяет направление второго движения мотора. | |
#define | HOME_REV_EN 0x08 |
Если флаг установлен, используется Revolution sensor; иначе - этап пропускается. | |
Определения типов | |
typedef int | device_t |
Тип идентификатора устройства. | |
typedef int | result_t |
Тип, определяющий результат выполнения команды. | |
Перечисления | |
enum | DevState { DevStateOff, DevStateStop, DevStateMoving, DevStateTune, DevStateHoming, DevStateCalibr = 0x0C, DevStateAlarm = 0x0A } |
Состояние мотора. Подробнее... | |
enum | PwmState { PwmStateOff, PwmStateBrak, PwmStateRunfwd, PwmStateRunbck, PwmStateInvbrak } |
Состояние ШИМ. Подробнее... | |
enum | SyncPinMode { PinGPIO = 0x00, PinSyncIn = 0x01, PinSyncOut = 0x02 } |
Тип вывода синхронизации. Подробнее... | |
Функции | |
Управление устройством | |
device_t DCCONTROL_API | open_device (const char *name) |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству. | |
result_t DCCONTROL_API | close_device (device_t id) |
Закрывает устройство. | |
result_t DCCONTROL_API | probe_device (const char *name) |
Проверяет, является ли устройство с именем name XIMC-совместимым. | |
result_t DCCONTROL_API | enumerate_devices (int *name_count, char ***names, int probe_devices) |
Перечисляет все XIMC-совместимые устройства. | |
result_t DCCONTROL_API | free_enumerate_devices (int name_count, char **names) |
Освобождает память, выделенную enumerate_devices. | |
result_t DCCONTROL_API | init_device (device_t id) |
Инициализация устройства. | |
result_t DCCONTROL_API | deinit_device (device_t id) |
Деинициализация устройства. | |
result_t DCCONTROL_API | get_device_information (device_t id, char *manufacturer, char *manufacturer_id, char *product_description) |
Возвращает информацию об устройстве. | |
result_t DCCONTROL_API | reset_locks () |
Снимает блокировку библиотеки в экстренном случае. | |
Управление мотором | |
result_t DCCONTROL_API | command_move (device_t id, unsigned int pos) |
Движение в заданную позицию pos. | |
result_t DCCONTROL_API | command_movr (device_t id, int offset) |
Смещение на заданную позицию относительно текущей, или заданной последней командой command_move. | |
result_t DCCONTROL_API | command_left (device_t id) |
Движение влево. | |
result_t DCCONTROL_API | command_right (device_t id) |
Движение вправо. | |
result_t DCCONTROL_API | command_stop (device_t id) |
Остановка. | |
result_t DCCONTROL_API | command_zero (device_t id) |
Установка текущей позиции в 0. | |
result_t DCCONTROL_API | command_home (device_t id) |
Калибровка позиции. | |
result_t DCCONTROL_API | get_status (device_t id, state_t *state) |
Возвращает информацию о текущем состоянии устройства. | |
Настройки привода | |
result_t DCCONTROL_API | get_pwm_freq (device_t id, unsigned int *freq) |
Чтение частоты ШИМ. | |
result_t DCCONTROL_API | set_pwm_freq (device_t id, unsigned int freq) |
Запись частоты ШИМ. | |
result_t DCCONTROL_API | get_feedback_settings (device_t id, unsigned int *ips, unsigned int *feedback_flags) |
Чтение настроек обратной связи. | |
result_t DCCONTROL_API | set_feedback_settings (device_t id, unsigned int ips, unsigned int feedback_flags) |
Запись настроек обратной связи. | |
result_t DCCONTROL_API | get_move_settings (device_t id, unsigned int *rpm, unsigned int *accel, unsigned int *tuneup_threshold) |
Чтение настроек движения. | |
result_t DCCONTROL_API | set_move_settings (device_t id, unsigned int rpm, unsigned int accel, unsigned int tuneup_threshold) |
Запись настроек движения. | |
result_t DCCONTROL_API | get_engine_settings (device_t id, engine_settings_t *engine_settings) |
Чтение настроек мотора. | |
result_t DCCONTROL_API | set_engine_settings (device_t id, const engine_settings_t *engine_settings) |
Запись настроек мотора. | |
result_t DCCONTROL_API | get_secure_settings (device_t id, unsigned int *critical_curr, unsigned int *critical_voltage, unsigned int *critical_temp) |
Чтение критических значений напряжения, тока и температуры. | |
result_t DCCONTROL_API | set_secure_settings (device_t id, unsigned int critical_curr, unsigned int critical_voltage, unsigned int critical_temp) |
Запись критических значений напряжения, тока и температуры. | |
result_t DCCONTROL_API | get_edges_settings (device_t id, int *border_flags, int *enders_flags, int *left, int *right) |
Чтение настроек границ и концевых выключателей. | |
result_t DCCONTROL_API | set_edges_settings (device_t id, int border_flags, int enders_flags, int left, int right) |
Запись настроек границ и концевых выключателей. | |
result_t DCCONTROL_API | get_pid_settings (device_t id, pid_settings_t *pid_settings) |
Чтение настроек ПИД контуров. | |
result_t DCCONTROL_API | set_pid_settings (device_t id, const pid_settings_t *pid_settings) |
Запись настроек ПИД контуров. | |
result_t DCCONTROL_API | get_sync_settings (device_t id, sync_settings_t *sync_settings) |
Чтение настроек синхронизации. | |
result_t DCCONTROL_API | set_sync_settings (device_t id, const sync_settings_t *sync_settings) |
Запись настроек синхронизации. | |
result_t DCCONTROL_API | get_home_settings (device_t id, home_settings_t *home_settings) |
Чтение настроек калибровки позиции. | |
result_t DCCONTROL_API | set_home_settings (device_t id, const home_settings_t home_settings) |
Запись настроек калибровки позиции. | |
result_t DCCONTROL_API | command_read_settings (device_t id) |
Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки. | |
result_t DCCONTROL_API | command_save_settings (device_t id) |
Запись всех текущих настроек во flash память контроллера. | |
result_t DCCONTROL_API | get_serial_number (device_t id, uint32_t *serial) |
Чтение серийного номера контроллера. | |
result_t DCCONTROL_API | get_firmware_version (device_t id, unsigned int *major, unsigned int *minor, unsigned int *release) |
Чтение номера версии прошивки контроллера. | |
result_t DCCONTROL_API | get_analog_data (device_t id, analog_data_t *ad) |
Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин. | |
result_t DCCONTROL_API | get_chart_data (device_t id, chart_data_t *chart_data) |
Возвращает информацию с электрическими параметрами, удобную для построения графиков. | |
Сервисные функции | |
Эти функции необходимы для начального конфигурирования, тестирования и обновления устройства. Не применяйте их при обычной работе с контроллером. При необходимости, проконсультируйтесь пожалуйста с производителем. Неправильное использование этих функций может привести к неработоспособности устройства. | |
result_t DCCONTROL_API | get_calibration_coeffs (device_t id, calibration_settings_t *cs) |
Чтение калибровочных коэффициентов. | |
result_t DCCONTROL_API | set_calibration_coeffs (device_t id, const calibration_settings_t *cs) |
Запись калибровочных коэффициентов. | |
device_t DCCONTROL_API | open_raw_device (const char *name) |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству. | |
result_t DCCONTROL_API | set_serial_number (device_t id, uint32_t serial, uint32_t key) |
Запись серийного номера во flash память контроллера. | |
result_t DCCONTROL_API | has_firmware (device_t id, uint8_t *ret) |
Проверка наличия прошивки в контроллере. | |
result_t DCCONTROL_API | write_key (device_t id, uint32_t key) |
Запись ключа защиты Функция используется только производителем. | |
result_t DCCONTROL_API | command_calibrate (device_t id) |
Перевод контроллера в состояние калибровки. | |
result_t DCCONTROL_API | command_reset (device_t id) |
Перезагрузка контроллера. | |
result_t DCCONTROL_API | command_update_firmware (device_t id, const uint8_t *data, uint32_t data_size) |
Обновление прошивки. |
Header file for XIDCUSB library.
#define BORDER_IS_ENCODER 0x0001 |
Если флаг установлен, границы определяются предустановленными точками на шкале позиции.
Если флаг сброшен, границы определяются концевыми выключателями.
#define DCCONTROL_API __attribute__((visibility("default"))) |
Library import macros.
Macros allows to automatically import function from shared library. It automatically expands to dllimport on msvc when including header file
#define ENGINE_ACCEL_ON 0x0010 |
Ускорение.
Если флаг установлен, движение происходит с ускорением.
#define ENGINE_ANTIPLAY 0x0008 |
Компенсация люфта.
Если флаг установлен, позиционер будет подходить к заданной точке всегда с одной стороны. Например, при подходе слева никаких дополнительных действий не совершается, а при подходе справа позиционер проходит целевую позицию на заданное расстояния и возвращается к ней опять же справа.
#define ENGINE_DYNAMIC_HOLD 0x0200 |
Динамическое удержание.
Если флаг установлен, воздействие мотора не прекращается при достижении заданной позиции, контроллер остается в состоянии Tune. Если флаг сброшен, при достижении заданной позиции контроллер переходит в состояние Stop,Brake.
#define ENGINE_FINISHING 0x0002 |
Флаг точной доводки.
Если флаг установлен, мотор выполняет специальные действия для быстрого и точного достижения заданной позиции.
#define ENGINE_HOLD 0x0100 |
Режим удержания.
Ротор мотора удерживается в заданной позиции, если флаг установлен.
#define ENGINE_LIMIT_CURR 0x0040 |
Номинальный ток мотора.
Если флаг установлен, ток через мотор ограничивается заданным номинальным значением.
#define ENGINE_LIMIT_RPM 0x0080 |
Номинальная частота вращения мотора.
Если флаг установлен, частота вращения ограничивается заданным номинальным значением.
#define ENGINE_LIMIT_VOLT 0x0020 |
Номинальное напряжение мотора.
Если флаг установлен, напряжение на моторе ограничивается заданным номинальным значением.
#define ENGINE_MAX_SPEED 0x0004 |
Флаг максимальной скорости.
Если флаг установлен, движение происходит на максимальной скорости.
#define ENGINE_ONLY_FINISHING 0x0400 |
Если флаг установлен, движение к точке начинается сразу в состоянии Tune.
Это специальный режим, который используется при настройке ПИД контура. Не используйте его в обычной работе.
#define ENGINE_REVERSE 0x0001 |
Флаг реверса.
Связывает направление вращения мотора с направлением счета текущей позиции. При сброшенном флаге (по умолчанию) прикладываемое к мотору положительное напряжение увеличивает счетчик позиции. И наоборот, при установленном флаге счетчик позиции увеличивается, когда к мотору приложено отрицательное напряжение. Измените состояние флага, если положительное вращение мотора уменьшает счетчик позиции.
#define FEEDBACK_POTENTIOMETER 0x00 |
Тип обратной связи.
#define HOME_DIR_FAST 0x01 |
Определяет направление первоначального движения мотора после поступления команды HOME.
Если флаг установлен - вправо; иначе - влево.
#define HOME_DIR_SLOW 0x04 |
Определяет направление второго движения мотора.
Если флаг установлен - вправо; иначе - влево.
#define STATE_OVERHEAT 0x2000 |
Температура превысила допустимую вличину.
Время реакции меньше 1 мс.
#define STATE_OVERLOAD_CURRENT 0x8000 |
Перегрузка по току.
Время реакции меньше 1 мс.
#define STATE_OVERLOAD_VOLTAGE 0x4000 |
Перегрузка по напряжению.
Время реакции меньше 1 мс.
#define STATE_TTLIO_LEVEL 0x0080 |
Лог.
уровень на выводе синхронизации
#define TTL_SETUP_FRONT 0x0010 |
Настройка синхронизации в режиме входа.
Если флаг установлен, срабатывание происходит по фронту импульса. Если флаг сброшен, срабатывание происходит по спаду импульса.
#define TTL_SYNCIN_DIRRIGHT 0x0008 |
Направление вращения при синхронизации.
Если флаг установлен, вращение вправо. Если флаг сброшен - влево. Используется, когда установлен флаг TTL_SYNCIN_ONMOVE.
enum DevState |
Состояние мотора.
enum PwmState |
Состояние ШИМ.
Модуль ШИМ (широтно-импульсная модуляция) управляет силовыми MOSFET ключами, регулируя ток через мотор.
enum SyncPinMode |
Закрывает устройство.
id | - идентификатор устройства |
Перевод контроллера в состояние калибровки.
Функция используется только производителем.
id | идентификатор устройства |
Калибровка позиции.
Вращает мотор в сторону, заданную HOME_DIR_FAST (если установлен - вправо; иначе - влево) со скоростью home_settings_t::fast_home. Если HOME_STOP_FAST установлен, мотор останавливается при поступлении сигнала со входа синхронизации; иначе - при достижении концевого выключателя. Вращает мотор в обратную сторону на расстояние home_settings_t::home_delta со скоростью home_settings_t::slow_home. Вращает мотор в сторону, заданную HOME_DIR_SLOW (если установлен - вправо; иначе - влево) со скоростью home_settings_t::slow_home. Если HOME_STOP_SLOW установлен, мотор останавливается при достижении концевого выключателя; иначе - при поступлении сигнала со входа синхронизации.
id | идентификатор устройства |
Движение влево.
id | идентификатор устройства |
Движение в заданную позицию pos.
pos | заданная позиция. Диапазон: 0..4294967295 | |
id | идентификатор устройства |
Смещение на заданную позицию относительно текущей, или заданной последней командой command_move.
offset | смещение. Диапазон: -2147483647..2147483647 | |
id | идентификатор устройства |
Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.
id | идентификатор устройства |
Перезагрузка контроллера.
Функция используется только производителем.
id | идентификатор устройства |
Движение вправо.
id | идентификатор устройства |
Запись всех текущих настроек во flash память контроллера.
id | идентификатор устройства |
Остановка.
id | идентификатор устройства |
result_t DCCONTROL_API command_update_firmware | ( | device_t | id, | |
const uint8_t * | data, | |||
uint32_t | data_size | |||
) |
Обновление прошивки.
id | идентификатор устройства | |
data | указатель на массив байтов прошивки | |
data_size | размер массива в байтах |
Установка текущей позиции в 0.
id | идентификатор устройства |
Деинициализация устройства.
Чтобы начать работать с устройством необходимо вызвать init_device
id | идентификатор устройства |
result_t DCCONTROL_API enumerate_devices | ( | int * | name_count, | |
char *** | names, | |||
int | probe_devices | |||
) |
Перечисляет все XIMC-совместимые устройства.
Значение name_count определяет количество найденных устройств, их имена хранятся в массиве names. Память, выделенная этой функцией для массива имен names должна быть освобождена с помощью free_enumerate_devices.
[in,out] | name_count | количество найденных устройств |
[out] | names | указатель на массив имен |
[in] | probe_devices | если не равно 0, проверяет устройства на совместимость. Диапазон: 0..INT_MAX |
result_t DCCONTROL_API free_enumerate_devices | ( | int | name_count, | |
char ** | names | |||
) |
Освобождает память, выделенную enumerate_devices.
Значение name_count определяет размер массива имен names.
[in] | name_count | количество элементов в names |
[in] | names | динамический массив имен |
result_t DCCONTROL_API get_analog_data | ( | device_t | id, | |
analog_data_t * | ad | |||
) |
Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин.
Эта функция используется для тестирования и калибровки устройства.
id | идентификатор устройства | |
[out] | ad | аналоговые данные |
result_t DCCONTROL_API get_calibration_coeffs | ( | device_t | id, | |
calibration_settings_t * | cs | |||
) |
Чтение калибровочных коэффициентов.
Эта функция заполняет структуру калибровочных коэффициентов, которые хранятся в памяти контроллера. Для обычной работы с устройством эта функция не требуется. Калибровочные коэффициенты применяются для калибровки контроллера.
id | идентификатор устройства | |
[out] | cs | калибровочные коэффициенты |
result_t DCCONTROL_API get_chart_data | ( | device_t | id, | |
chart_data_t * | chart_data | |||
) |
Возвращает информацию с электрическими параметрами, удобную для построения графиков.
id | идентификатор устройства | |
[out] | chart_data | structure with snapshot of controller parameters. |
result_t DCCONTROL_API get_device_information | ( | device_t | id, | |
char * | manufacturer, | |||
char * | manufacturer_id, | |||
char * | product_description | |||
) |
Возвращает информацию об устройстве.
Команда доступна как из инициализированного состояния, так и из исходного.
id | идентификатор устройства. | |
[out] | manufacturer | имя производителя |
[out] | manufacturer_id | идентификатор производителя |
[out] | product_description | описание устройства |
result_t DCCONTROL_API get_edges_settings | ( | device_t | id, | |
int * | border_flags, | |||
int * | enders_flags, | |||
int * | left, | |||
int * | right | |||
) |
Чтение настроек границ и концевых выключателей.
id | идентификатор устройства | |
[out] | border_flags | флаги, определяющие тип границ и поведение мотора при их достижении |
[out] | enders_flags | флаги, определяющие настройки концевых выключателей |
[out] | left | позиция левой границы, используется если установлен флаг BORDER_IS_ENCODER |
[out] | right | позиция правой границы, используется если установлен флаг BORDER_IS_ENCODER |
result_t DCCONTROL_API get_engine_settings | ( | device_t | id, | |
engine_settings_t * | engine_settings | |||
) |
Чтение настроек мотора.
id | идентификатор устройства | |
[out] | engine_settings | структура с настройками мотора |
result_t DCCONTROL_API get_feedback_settings | ( | device_t | id, | |
unsigned int * | ips, | |||
unsigned int * | feedback_flags | |||
) |
Чтение настроек обратной связи.
id | идентификатор устройства | |
[out] | ips | разрешение энкодера (импульсов на оборот) |
[out] | feedback_flags | флаги обратной связи |
result_t DCCONTROL_API get_firmware_version | ( | device_t | id, | |
unsigned int * | major, | |||
unsigned int * | minor, | |||
unsigned int * | release | |||
) |
Чтение номера версии прошивки контроллера.
id | идентификатор устройства | |
[out] | major | номер основной версии |
[out] | minor | номер дополнительной версии |
[out] | release | номер релиза |
result_t DCCONTROL_API get_home_settings | ( | device_t | id, | |
home_settings_t * | home_settings | |||
) |
Чтение настроек калибровки позиции.
Эта функция заполняет структуру настроек, использующихся для калибровки позиции.
id | идентификатор устройства | |
[out] | home_settings | настройки калибровки позиции |
result_t DCCONTROL_API get_move_settings | ( | device_t | id, | |
unsigned int * | rpm, | |||
unsigned int * | accel, | |||
unsigned int * | tuneup_threshold | |||
) |
Чтение настроек движения.
id | идентификатор устройства | |
[out] | rpm | скорость, RPM |
[out] | accel | ускорение, RPM/с |
[out] | tuneup_threshold | расстояние от заданной позиции, на котором включается режим tuneup |
result_t DCCONTROL_API get_pid_settings | ( | device_t | id, | |
pid_settings_t * | pid_settings | |||
) |
Чтение настроек ПИД контуров.
Эти настройки определяют поведение контуров позиции, скорости, напряжения и тока. Настройки различны для разных позиционеров.
id | идентификатор устройства | |
[out] | pid_settings | настройки ПИД |
Чтение частоты ШИМ.
id | идентификатор устройства | |
[out] | freq | частота |
result_t DCCONTROL_API get_secure_settings | ( | device_t | id, | |
unsigned int * | critical_curr, | |||
unsigned int * | critical_voltage, | |||
unsigned int * | critical_temp | |||
) |
Чтение критических значений напряжения, тока и температуры.
Если одно из этих значений превышено, контроллер отключает все силовые выходы и устанавливает соответствующий флаг в структуре state_t. Время реакции меньше 1 мс.
id | идентификатор устройства | |
[out] | critical_curr | критический ток, при превышении устанавливается флан STATE_OVERLOAD_CURRENT структуры state_t |
[out] | critical_voltage | критическое напряжение, при превышении устанавливается флаг STATE_OVERLOAD_VOLTAGE структуры state_t |
[out] | critical_temp | критическая температура, при превышении устанавливается флаг STATE_OVERHEAT структуры state_t |
Чтение серийного номера контроллера.
id | идентификатор устройства | |
[out] | serial | serial number |
Возвращает информацию о текущем состоянии устройства.
id | идентификатор устройства | |
[out] | state | структура с информацией о текущем состоянии устройства |
result_t DCCONTROL_API get_sync_settings | ( | device_t | id, | |
sync_settings_t * | sync_settings | |||
) |
Чтение настроек синхронизации.
Эта функция заполняет структуру с настройками синхронизации, определяющими поведение вывода синхронизации.
id | идентификатор устройства | |
[out] | sync_settings | настройки синхронизации |
Проверка наличия прошивки в контроллере.
id | идентификатор устройства | |
[out] | ret | не ноль, если прошивка присутствует |
Инициализация устройства.
id | идентификатор устройства |
device_t DCCONTROL_API open_device | ( | const char * | name | ) |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству.
[in] | name | - имя устройства, например COM3 или /dev/tty.s123 |
device_t DCCONTROL_API open_raw_device | ( | const char * | name | ) |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству.
Устройство может быть чистым, без прошивки.
[in] | name | - имя устройства, например COM3 или /dev/tty.s123 |
result_t DCCONTROL_API probe_device | ( | const char * | name | ) |
Проверяет, является ли устройство с именем name XIMC-совместимым.
Будте осторожны с вызовом этой функции для неизвестных устройств, т.к. она отправляет данные.
[in] | name | - имя устройства |
result_t DCCONTROL_API set_calibration_coeffs | ( | device_t | id, | |
const calibration_settings_t * | cs | |||
) |
Запись калибровочных коэффициентов.
Эта функция записывает калибровочные коэффициенты во flash контроллера. Все устройства при изготовлении проходят процедуру калибровки и при обычной работе их не требуется изменять. Если вы хотите произвести калибровку устройства, проконсультируйтесь с производителем. Установка неправильных коэффициентов может стать причиной перегрева и выхода контроллера из строя.
id | идентификатор устройства | |
[in] | cs | калибровочные коэффициенты |
result_t DCCONTROL_API set_edges_settings | ( | device_t | id, | |
int | border_flags, | |||
int | enders_flags, | |||
int | left, | |||
int | right | |||
) |
Запись настроек границ и концевых выключателей.
id | идентификатор устройства | |
[in] | border_flags | флаги, определяющие тип границ и поведение мотора при их достижении |
[in] | enders_flags | флаги, определяющие настройки концевых выключателей |
[in] | left | позиция левой границы, используется если установлен флаг BORDER_IS_ENCODER. Диапазон: -2147483647..2147483647 |
[in] | right | позиция правой границы, используется если установлен флаг BORDER_IS_ENCODER. Диапазон: -2147483647..2147483647 |
result_t DCCONTROL_API set_engine_settings | ( | device_t | id, | |
const engine_settings_t * | engine_settings | |||
) |
Запись настроек мотора.
id | идентификатор устройства | |
[in] | engine_settings | структура с настройками мотора |
result_t DCCONTROL_API set_feedback_settings | ( | device_t | id, | |
unsigned int | ips, | |||
unsigned int | feedback_flags | |||
) |
Запись настроек обратной связи.
id | идентификатор устройства | |
[in] | ips | разрешение энкодера (импульсов на оборот). Диапазон: 1..65535 |
[in] | feedback_flags | флаги обратной связи |
result_t DCCONTROL_API set_home_settings | ( | device_t | id, | |
const home_settings_t | home_settings | |||
) |
Запись настроек калибровки позиции.
Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.
id | идентификатор устройства | |
[out] | home_settings | настройки калибровки позиции |
result_t DCCONTROL_API set_move_settings | ( | device_t | id, | |
unsigned int | rpm, | |||
unsigned int | accel, | |||
unsigned int | tuneup_threshold | |||
) |
Запись настроек движения.
id | идентификатор устройства | |
[in] | rpm | скорость, RPM. Диапазон: 1..65535 |
[in] | accel | ускорение, RPM/с. Диапазон: 1..65535 |
[in] | tuneup_threshold | расстояние от заданной позиции, на котором включается режим tuneup. Диапазон: 1..65535 |
result_t DCCONTROL_API set_pid_settings | ( | device_t | id, | |
const pid_settings_t * | pid_settings | |||
) |
Запись настроек ПИД контуров.
Эти настройки определяют поведение контуров позиции, скорости, напряжения и тока. Настройки различны для разных позиционеров.
id | идентификатор устройства | |
[in] | pid_settings | настройки ПИД |
Запись частоты ШИМ.
id | идентификатор устройства | |
[in] | freq | частота. Диапазон: 1000..65535 |
result_t DCCONTROL_API set_secure_settings | ( | device_t | id, | |
unsigned int | critical_curr, | |||
unsigned int | critical_voltage, | |||
unsigned int | critical_temp | |||
) |
Запись критических значений напряжения, тока и температуры.
Если одно из этих значений превышено, контроллер отключает все силовые выходы и устанавливает соответствующий флаг в структуре state_t. Время реакции меньше 1 мс.
id | идентификатор устройства | |
[in] | critical_curr | критический ток, при превышении устанавливается флан STATE_OVERLOAD_CURRENT структуры state_t. Диапазон: 1..65535 |
[in] | critical_voltage | критическое напряжение, при превышении устанавливается флаг STATE_OVERLOAD_VOLTAGE структуры state_t. Диапазон: 1..65535 |
[in] | critical_temp | критическая температура, при превышении устанавливается флаг STATE_OVERHEAT структуры state_t. Диапазон: 0..65535 |
Запись серийного номера во flash память контроллера.
Функция используется только производителем.
id | идентификатор устройства | |
[in] | serial | серийный номер. Диапазон: 0..4294967295 |
[in] | key | ключ защиты. Диапазон: 0..4294967295 |
result_t DCCONTROL_API set_sync_settings | ( | device_t | id, | |
const sync_settings_t * | sync_settings | |||
) |
Запись настроек синхронизации.
Эта функция записывает структуру с настройками синхронизации, определяющими поведение вывода синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_settings | настройки синхронизации |