libximc
2.2.0
|
Заголовочный файл для библиотеки libximc. Подробнее...
Структуры данных | |
struct | calibration_t |
Calibration companion structure TODO docme. Подробнее... | |
struct | feedback_settings_t |
Настройки обратной связи. Подробнее... | |
struct | home_settings_t |
Настройки калибровки позиции. Подробнее... | |
struct | home_settings_calb_t |
struct | move_settings_t |
Настройки движения. Подробнее... | |
struct | move_settings_calb_t |
struct | engine_settings_t |
Настройки мотора. Подробнее... | |
struct | engine_settings_calb_t |
struct | entype_settings_t |
Настройки типа мотора и типа силового драйвера. Подробнее... | |
struct | power_settings_t |
Настройки питания шагового мотора. Подробнее... | |
struct | secure_settings_t |
Эта структура содержит необработанные данные с АЦП и нормированные значения. Подробнее... | |
struct | edges_settings_t |
Настройки границ. Подробнее... | |
struct | edges_settings_calb_t |
struct | pid_settings_t |
Настройки ПИД. Подробнее... | |
struct | sync_in_settings_t |
Настройки входной синхронизации. Подробнее... | |
struct | sync_in_settings_calb_t |
struct | sync_out_settings_t |
Настройки выходной синхронизации. Подробнее... | |
struct | sync_out_settings_calb_t |
struct | extio_settings_t |
Настройки EXTIO. Подробнее... | |
struct | brake_settings_t |
Настройки тормоза. Подробнее... | |
struct | control_settings_t |
Настройки управления. Подробнее... | |
struct | control_settings_calb_t |
struct | joystick_settings_t |
Настройки джойстика. Подробнее... | |
struct | ctp_settings_t |
Настройки контроля позиции(для шагового двигателя). Подробнее... | |
struct | uart_settings_t |
Настройки UART. Подробнее... | |
struct | controller_name_t |
Пользовательское имя контроллера и флаги настройки. Подробнее... | |
struct | add_sync_in_action_t |
Это команда добавляет один элемент в буфер FIFO команд. Подробнее... | |
struct | add_sync_in_action_calb_t |
struct | get_position_t |
Данные о позиции. Подробнее... | |
struct | get_position_calb_t |
struct | set_position_t |
Данные о позиции. Подробнее... | |
struct | set_position_calb_t |
struct | status_t |
Состояние устройства. Подробнее... | |
struct | status_calb_t |
struct | chart_data_t |
Дополнительное состояние устройства. Подробнее... | |
struct | device_information_t |
Команда чтения информации о контроллере. Подробнее... | |
struct | serial_number_t |
Структура с серийным номером. Подробнее... | |
struct | analog_data_t |
Аналоговые данные. Подробнее... | |
struct | debug_read_t |
Отладочные данные. Подробнее... | |
struct | stage_name_t |
Пользовательское имя подвижки. Подробнее... | |
struct | stage_information_t |
Информация о позиционере. Подробнее... | |
struct | stage_settings_t |
Настройки позиционера. Подробнее... | |
struct | motor_information_t |
Информация о двигателе. Подробнее... | |
struct | motor_settings_t |
Настройки двигателя. Подробнее... | |
struct | encoder_information_t |
Информация об энкодере. Подробнее... | |
struct | encoder_settings_t |
Настройки энкодера. Подробнее... | |
struct | hallsensor_information_t |
Информация об датчиках Холла. Подробнее... | |
struct | hallsensor_settings_t |
Настройки датчиков Холла. Подробнее... | |
struct | gear_information_t |
Информация о редукторе. Подробнее... | |
struct | gear_settings_t |
Настройки редуктора. Подробнее... | |
struct | accessories_settings_t |
Информация о дополнительных аксессуарах. Подробнее... |
Макросы | |
#define | XIMC_API |
Library import macro Macros allows to automatically import function from shared library. | |
#define | XIMC_CALLCONV |
Library calling convention macros. | |
#define | device_undefined -1 |
Макрос, означающий неопределенное устройство | |
Результаты выполнения команд | |
#define | result_ok 0 |
выполнено успешно | |
#define | result_error -1 |
общая ошибка | |
#define | result_not_implemented -2 |
функция не определена | |
#define | result_value_error -3 |
ошибка записи значения | |
#define | result_nodevice -4 |
устройство не подключено | |
Уровень логирования | |
#define | LOGLEVEL_ERROR 0x01 |
Уровень логирования - ошибка | |
#define | LOGLEVEL_WARNING 0x02 |
Уровень логирования - предупреждение | |
#define | LOGLEVEL_INFO 0x03 |
Уровень логирования - информация | |
#define | LOGLEVEL_DEBUG 0x04 |
Уровень логирования - отладка | |
Флаги поиска устройств | |
#define | ENUMERATE_PROBE 0x01 |
Проверять, является ли устройство XIMC-совместимым. | |
#define | ENUMERATE_ALL_COM 0x02 |
Проверять все COM-устройства | |
Флаги состояния движения | |
Возвращаются командой get_status.
| |
#define | MOVE_STATE_MOVING 0x01 |
Если флаг установлен, то контроллер пытается вращать двигателем. | |
#define | MOVE_STATE_TARGET_SPEED 0x02 |
Флаг устанавливается при достижении заданной скорости. | |
#define | MOVE_STATE_ANTIPLAY 0x04 |
Выполняется компенсация люфта, если флаг установлен. | |
Флаги настроек контроллера | |
#define | EEPROM_PRECEDENCE 0x01 |
Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM. | |
Флаги состояния питания шагового мотора | |
Возвращаются командой get_status.
| |
#define | PWR_STATE_UNKNOWN 0x00 |
Неизвестное состояние, которое не должно никогда реализовываться. | |
#define | PWR_STATE_OFF 0x01 |
Обмотки мотора разомкнуты и не управляются драйвером. | |
#define | PWR_STATE_NORM 0x03 |
Обмотки запитаны номинальным током. | |
#define | PWR_STATE_REDUCT 0x04 |
Обмотки намеренно запитаны уменьшенным током от рабочего для снижения потребляемой мощности. | |
#define | PWR_STATE_MAX 0x05 |
Обмотки запитаны максимально доступным током, который может выдать схема при данном напряжении питания. | |
Флаги состояния | |
Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.
| |
#define | STATE_CONTR 0x0003F |
Флаги состояния контроллера. | |
#define | STATE_ERRC 0x00001 |
Недопустимая команда. | |
#define | STATE_ERRD 0x00002 |
Нарушение целостности данных. | |
#define | STATE_ERRV 0x00004 |
Недопустимое значение данных. | |
#define | STATE_EEPROM_CONNECTED 0x00010 |
Подключена память EEPROM с настройками. | |
#define | STATE_SECUR 0x3FFC0 |
Флаги опасности. | |
#define | STATE_ALARM 0x00040 |
Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация. | |
#define | STATE_CTP_ERROR 0x00080 |
Контроль позиции нарушен(используется только с шаговым двигателем). | |
#define | STATE_POWER_OVERHEAT 0x00100 |
Перегрелась силовая часть платы. | |
#define | STATE_CONTROLLER_OVERHEAT 0x00200 |
Перегрелась микросхема контроллера. | |
#define | STATE_OVERLOAD_POWER_VOLTAGE 0x00400 |
Превышено напряжение на силовой части. | |
#define | STATE_OVERLOAD_POWER_CURRENT 0x00800 |
Превышен максимальный ток потребления силовой части. | |
#define | STATE_OVERLOAD_USB_VOLTAGE 0x01000 |
Превышено напряжение на USB. | |
#define | STATE_LOW_USB_VOLTAGE 0x02000 |
Слишком низкое напряжение на USB. | |
#define | STATE_OVERLOAD_USB_CURRENT 0x04000 |
Превышен максимальный ток потребления USB. | |
#define | STATE_BORDERS_SWAP_MISSET 0x08000 |
Достижение неверной границы. | |
#define | STATE_LOW_POWER_VOLTAGE 0x10000 |
Напряжение на силовой части ниже чем напряжение Low Voltage Protection. | |
#define | STATE_H_BRIDGE_FAULT 0x20000 |
Получен сигнал от драйвера о неисправности | |
Флаги состояния GPIO входов | |
Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.
| |
#define | STATE_DIG_SIGNAL 0xFFFF |
Флаги цифровых сигналов. | |
#define | STATE_RIGHT_EDGE 0x0001 |
Достижение правой границы. | |
#define | STATE_LEFT_EDGE 0x0002 |
Достижение левой границы. | |
#define | STATE_BUTTON_RIGHT 0x0004 |
Состояние кнопки "вправо" (1, если нажата). | |
#define | STATE_BUTTON_LEFT 0x0008 |
Состояние кнопки "влево" (1, если нажата). | |
#define | STATE_GPIO_PINOUT 0x0010 |
Если флаг установлен, ввод/вывод общего назначения работает как выход; если флаг сброшен, ввод/вывод работает как вход. | |
#define | STATE_GPIO_LEVEL 0x0020 |
Состояние ввода/вывода общего назначения. | |
#define | STATE_HALL_A 0x0040 |
Состояние вывода датчика холла(a)(флаг "1", если датчик активен). | |
#define | STATE_HALL_B 0x0080 |
Состояние вывода датчика холла(b)(флаг "1", если датчик активен). | |
#define | STATE_HALL_C 0x0100 |
Состояние вывода датчика холла(c)(флаг "1", если датчик активен). | |
#define | STATE_BRAKE 0x0200 |
Состояние вывода управления тормозом(флаг "1" - если на тормоз подаётся питание, "0" - если тормоз не запитан). | |
#define | STATE_REV_SENSOR 0x0400 |
Состояние вывода датчика оборотов(флаг "1", если датчик активен). | |
#define | STATE_SYNC_INPUT 0x0800 |
Состояние входа синхронизации(1, если вход синхронизации активен). | |
#define | STATE_SYNC_OUTPUT 0x1000 |
Состояние выхода синхронизации(1, если выход синхронизации активен). | |
#define | STATE_ENC_A 0x2000 |
Состояние ножки A энкодера(флаг "1", если энкодер активен). | |
#define | STATE_ENC_B 0x4000 |
Состояние ножки B энкодера(флаг "1", если энкодер активен). | |
Состояние энкодера | |
Состояние энкодера, подключенного к контроллеру.
| |
#define | ENC_STATE_ABSENT 0x00 |
Энкодер не подключен. | |
#define | ENC_STATE_UNKNOWN 0x01 |
Cостояние энкодера неизвестно. | |
#define | ENC_STATE_MALFUNC 0x02 |
Энкодер подключен и неисправен. | |
#define | ENC_STATE_REVERS 0x03 |
Энкодер подключен и исправен, но считает в другую сторону. | |
#define | ENC_STATE_OK 0x04 |
Энкодер подключен и работает адекватно. | |
Состояние обмоток | |
Состояние обмоток двигателя, подключенного к контроллеру.
| |
#define | WIND_A_STATE_ABSENT 0x00 |
Обмотка A не подключена. | |
#define | WIND_A_STATE_UNKNOWN 0x01 |
Cостояние обмотки A неизвестно. | |
#define | WIND_A_STATE_MALFUNC 0x02 |
Короткое замыкание на обмотке A. | |
#define | WIND_A_STATE_OK 0x03 |
Обмотка A работает адекватно. | |
#define | WIND_B_STATE_ABSENT 0x00 |
Обмотка B не подключена. | |
#define | WIND_B_STATE_UNKNOWN 0x10 |
Cостояние обмотки B неизвестно. | |
#define | WIND_B_STATE_MALFUNC 0x20 |
Короткое замыкание на обмотке B. | |
#define | WIND_B_STATE_OK 0x30 |
Обмотка B работает адекватно. | |
Состояние команды движения | |
Состояние команды движения (касается command_move, command_movr, command_left, command_right, command_stop, command_home, command_loft, command_sstp) и статуса её выполнения (выполяется, завершено, ошибка)
| |
#define | MVCMD_NAME_BITS 0x3F |
Битовая маска активной команды. | |
#define | MVCMD_UKNWN 0x00 |
Неизвестная команда. | |
#define | MVCMD_MOVE 0x01 |
Команда move. | |
#define | MVCMD_MOVR 0x02 |
Команда movr. | |
#define | MVCMD_LEFT 0x03 |
Команда left. | |
#define | MVCMD_RIGHT 0x04 |
Команда rigt. | |
#define | MVCMD_STOP 0x05 |
Команда stop. | |
#define | MVCMD_HOME 0x06 |
Команда home. | |
#define | MVCMD_LOFT 0x07 |
Команда loft. | |
#define | MVCMD_SSTP 0x08 |
Команда плавной остановки(SSTP). | |
#define | MVCMD_ERROR 0x40 |
Состояние завершения движения (1 - команда движения выполнена с ошибкой, 0 - команда движения выполнена корректно). | |
#define | MVCMD_RUNNING 0x80 |
Состояние команды движения (0 - команда движения выполнена, 1 - команда движения сейчас выполняется). | |
Флаги параметров мотора | |
Определяют настройки движения и работу ограничителей. Возращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ.
| |
#define | ENGINE_REVERSE 0x01 |
Флаг реверса. | |
#define | ENGINE_MAX_SPEED 0x04 |
Флаг максимальной скорости. | |
#define | ENGINE_ANTIPLAY 0x08 |
Компенсация люфта. | |
#define | ENGINE_ACCEL_ON 0x10 |
Ускорение. | |
#define | ENGINE_LIMIT_VOLT 0x20 |
Номинальное напряжение мотора. | |
#define | ENGINE_LIMIT_CURR 0x40 |
Номинальный ток мотора. | |
#define | ENGINE_LIMIT_RPM 0x80 |
Номинальная частота вращения мотора. | |
Флаги параметров микрошагового режима | |
Определяют деление шага в микрошаговом режиме. Используются с шаговыми моторами. Возращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ.
| |
#define | MICROSTEP_MODE_FULL 0x01 |
Полношаговый режим. | |
#define | MICROSTEP_MODE_FRAC_2 0x02 |
Деление шага 1/2. | |
#define | MICROSTEP_MODE_FRAC_4 0x03 |
Деление шага 1/4. | |
#define | MICROSTEP_MODE_FRAC_8 0x04 |
Деление шага 1/8. | |
#define | MICROSTEP_MODE_FRAC_16 0x05 |
Деление шага 1/16. | |
#define | MICROSTEP_MODE_FRAC_32 0x06 |
Деление шага 1/32. | |
#define | MICROSTEP_MODE_FRAC_64 0x07 |
Деление шага 1/64. | |
#define | MICROSTEP_MODE_FRAC_128 0x08 |
Деление шага 1/128. | |
#define | MICROSTEP_MODE_FRAC_256 0x09 |
Деление шага 1/256. | |
Флаги, определяющие тип мотора | |
Определяют тип мотора. Возращаются командой get_entype_settings.
| |
#define | ENGINE_TYPE_NONE 0x00 |
Это значение не нужно использовать. | |
#define | ENGINE_TYPE_DC 0x01 |
Мотор постоянного тока. | |
#define | ENGINE_TYPE_2DC 0x02 |
Два мотора постоянного тока, что приводит к эмуляции двух контроллеров. | |
#define | ENGINE_TYPE_STEP 0x03 |
Шаговый мотор. | |
#define | ENGINE_TYPE_BRUSHLESS 0x05 |
Безщеточный мотор. | |
Флаги, определяющие тип силового драйвера | |
Определяют тип силового драйвера. Возращаются командой get_entype_settings.
| |
#define | DRIVER_TYPE_DISCRETE_FET 0x01 |
Силовой драйвер на дискретных мосфет-ключах. | |
#define | DRIVER_TYPE_INTEGRATE 0x02 |
Силовой драйвер с использованием ключей, интегрированных в микросхему. | |
#define | DRIVER_TYPE_EXTERNAL 0x03 |
Внешний силовой драйвер. | |
Флаги параметров питания шагового мотора | |
Возвращаются командой get_power_settings.
| |
#define | POWER_REDUCT_ENABLED 0x01 |
Если флаг установлен, уменьшить ток по прошествии CurrReductDelay. | |
#define | POWER_OFF_ENABLED 0x02 |
Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay. | |
#define | POWER_SMOOTH_CURRENT 0x04 |
Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение. | |
Флаги критических параметров. | |
Возвращаются командой get_secure_settings.
| |
#define | ALARM_ON_DRIVER_OVERHEATING 0x01 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера. | |
#define | LOW_UPWR_PROTECTION 0x02 |
Если установлен, то выключать силовую часть при напряжении меньшем LowUpwrOff. | |
#define | H_BRIDGE_ALERT 0x04 |
Если установлен, то выключать силовую часть при сигнале неполадки в одном из транзисторных мостов. | |
#define | ALARM_ON_BORDERS_SWAP_MISSET 0x08 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала c противоположного концевика. | |
#define | ALARM_FLAGS_STICKING 0x10 |
Если флаг установлен, то только по команде STOP возможен сброс всех флагов ALARM. | |
#define | USB_BREAK_RECONNECT 0x20 |
Если флаг установлен, то будет включен блок перезагрузки USB при поломке связи. | |
Флаги установки положения | |
#define | SETPOS_IGNORE_POSITION 0x01 |
Если установлен, то позиция в шагах и микрошагах не обновляется. | |
#define | SETPOS_IGNORE_ENCODER 0x02 |
Если установлен, то счётчик энкодера не обновляется. | |
Тип обратной связи. | |
#define | FEEDBACK_ENCODER 0x01 |
Обратная связь с помощью энкодера. | |
#define | FEEDBACK_ENCODERHALL 0x03 |
Обратная связь с помощью датчика Холла. | |
#define | FEEDBACK_EMF 0x04 |
Обратная связь по ЭДС. | |
#define | FEEDBACK_NONE 0x05 |
Обратная связь отсутствует. | |
Флаги обратной связи. | |
#define | FEEDBACK_ENC_REVERSE 0x01 |
Обратный счет у энкодера. | |
#define | FEEDBACK_HALL_REVERSE 0x02 |
Обратный счёт позиции по датчикам Холла. | |
Флаги настроек синхронизации входа | |
| |
#define | SYNCIN_ENABLED 0x01 |
Включение необходимости импульса синхронизации для начала движения. | |
#define | SYNCIN_INVERT 0x02 |
Если установлен - срабатывает по переходу из 1 в 0. | |
#define | SYNCIN_GOTOPOSITION 0x04 |
Если флаг установлен, то двигатель смещается к позиции, установленной в Position и uPosition, иначе двигатель смещается на Position и uPosition. | |
Флаги настроек синхронизации выхода | |
| |
#define | SYNCOUT_ENABLED 0x01 |
Синхронизация выхода работает согласно настройкам, если флаг установлен. | |
#define | SYNCOUT_STATE 0x02 |
Когда значение выхода управляется напрямую (см. | |
#define | SYNCOUT_INVERT 0x04 |
Нулевой логический уровень является активным, если флаг установлен, а единичный - если флаг сброшен. | |
#define | SYNCOUT_IN_STEPS 0x08 |
Если флаг установлен использовать шаги/импульсы энкодера для выходных импульсов синхронизации вместо миллисекунд. | |
#define | SYNCOUT_ONSTART 0x10 |
Генерация синхронизирующего импульса при начале движения. | |
#define | SYNCOUT_ONSTOP 0x20 |
Генерация синхронизирующего импульса при остановке. | |
#define | SYNCOUT_ONPERIOD 0x40 |
Выдать импульс синхронизации после прохождения SyncOutPeriod отсчётов. | |
Флаги настройки работы внешнего ввода/вывода | |
| |
#define | EXTIO_SETUP_OUTPUT 0x01 |
Если флаг установлен, то ножка в состоянии вывода, иначе - ввода. | |
#define | EXTIO_SETUP_INVERT 0x02 |
Eсли флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала. | |
Флаги настройки режимов внешнего ввода/вывода | |
| |
#define | EXTIO_SETUP_MODE_IN_NOP 0x00 |
Ничего не делать. | |
#define | EXTIO_SETUP_MODE_IN_STOP 0x01 |
По переднему фронту входного сигнала делается остановка двигателя (эквивалент команды STOP). | |
#define | EXTIO_SETUP_MODE_IN_PWOF 0x02 |
Выполняет команду PWOF, обесточивая обмотки двигателя. | |
#define | EXTIO_SETUP_MODE_IN_MOVR 0x03 |
Выполняется команда MOVR с последними настройками. | |
#define | EXTIO_SETUP_MODE_IN_HOME 0x04 |
Выполняется команда HOME. | |
#define | EXTIO_SETUP_MODE_OUT_OFF 0x00 |
Ножка всегда в неактивном состоянии. | |
#define | EXTIO_SETUP_MODE_OUT_ON 0x10 |
Ножка всегда в активном состоянии. | |
#define | EXTIO_SETUP_MODE_OUT_MOVING 0x20 |
Ножка находится в активном состоянии при движении. | |
#define | EXTIO_SETUP_MODE_OUT_ALARM 0x30 |
Ножка находится в активном состоянии при нахождении в состоянии ALARM. | |
#define | EXTIO_SETUP_MODE_OUT_MOTOR_ON 0x40 |
Ножка находится в активном состоянии при подаче питания на обмотки. | |
#define | EXTIO_SETUP_MODE_OUT_MOTOR_FOUND 0x50 |
Ножка находится в активном состоянии при обнаружении подключенного двигателя (первой обмотки). | |
Флаги границ | |
#define | BORDER_IS_ENCODER 0x01 |
Если флаг установлен, границы определяются предустановленными точками на шкале позиции. | |
#define | BORDER_STOP_LEFT 0x02 |
Если флаг установлен, мотор останавливается при достижении левой границы. | |
#define | BORDER_STOP_RIGHT 0x04 |
Если флаг установлен, мотор останавливается при достижении правой границы. | |
#define | BORDERS_SWAP_MISSET_DETECTION 0x08 |
Если флаг установлен, мотор останавливается при достижении обоих границ. | |
Флаги концевых выключателей | |
#define | ENDER_SWAP 0x01 |
Если флаг установлен, первый концевой выключатель находится справа; иначе - слева. | |
#define | ENDER_SW1_ACTIVE_LOW 0x02 |
1 - Концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте. | |
#define | ENDER_SW2_ACTIVE_LOW 0x04 |
1 - Концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте. | |
Флаги настроек тормоза | |
#define | BRAKE_ENABLED 0x01 |
Управление тормозом включено, если флаг установлен. | |
#define | BRAKE_ENG_PWROFF 0x02 |
Тормоз отключает питание шагового мотора, если флаг установлен. | |
Флаги управления | |
#define | CONTROL_MODE_BITS 0x03 |
Биты управления мотором с помощью джойстика или кнопок влево/вправо. | |
#define | CONTROL_MODE_OFF 0x00 |
Управление отключено. | |
#define | CONTROL_MODE_JOY 0x01 |
Управление с помощью джойстика. | |
#define | CONTROL_MODE_LR 0x02 |
Управление с помощью кнопок left/right. | |
#define | CONTROL_BTN_LEFT_PUSHED_OPEN 0x04 |
Левая кнопка нормально разомкнутая, если флаг установлен. | |
#define | CONTROL_BTN_RIGHT_PUSHED_OPEN 0x08 |
Правая кнопка нормально разомкнутая, если флаг установлен. | |
Флаги джойстика | |
#define | JOY_REVERSE 0x01 |
Реверс воздействия джойстика. | |
Флаги контроля позиции | |
#define | CTP_ENABLED 0x01 |
Контроль позиции включен, если флаг установлен. | |
#define | CTP_BASE 0x02 |
Опорой является датчик оборотов, если флаг установлен; иначе - энкодер. | |
#define | CTP_ALARM_ON_ERROR 0x04 |
Войти в состояние ALARM при расхождении позиции, если флаг установлен. | |
#define | REV_SENS_INV 0x08 |
Сенсор считается активным, когда на нём 0, а инвертирование делает активным уровнем 1. | |
Флаги настроек команды home | |
Определяют поведение для команды home. Могут быть объединены с помощью побитового ИЛИ.
| |
#define | HOME_DIR_FIRST 0x01 |
Определяет направление первоначального движения мотора после поступления команды HOME. | |
#define | HOME_DIR_SECOND 0x02 |
Определяет направление второго движения мотора. | |
#define | HOME_MV_SEC_EN 0x04 |
Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается. | |
#define | HOME_HALF_MV 0x08 |
Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются. | |
#define | HOME_STOP_FIRST_BITS 0x30 |
Биты, отвечающие за выбор сигнала завершения первого движения. | |
#define | HOME_STOP_FIRST_REV 0x10 |
Первое движение завершается по сигналу с Revolution sensor. | |
#define | HOME_STOP_FIRST_SYN 0x20 |
Первое движение завершается по сигналу со входа синхронизации. | |
#define | HOME_STOP_FIRST_LIM 0x30 |
Первое движение завершается по сигналу с концевика. | |
#define | HOME_STOP_SECOND_BITS 0xC0 |
Биты, отвечающие за выбор сигнала завершения второго движения. | |
#define | HOME_STOP_SECOND_REV 0x40 |
Второе движение завершается по сигналу с Revolution sensor. | |
#define | HOME_STOP_SECOND_SYN 0x80 |
Второе движение завершается по сигналу со входа синхронизации. | |
#define | HOME_STOP_SECOND_LIM 0xC0 |
Второе движение завершается по сигналу с концевика. | |
Флаги настроек четности команды uart | |
#define | UART_PARITY_BITS 0x03 |
Биты, отвечающие за выбор четности. | |
#define | UART_PARITY_BIT_EVEN 0x00 |
Бит 1, если чет | |
#define | UART_PARITY_BIT_ODD 0x01 |
Бит 1, если нечет | |
#define | UART_PARITY_BIT_SPACE 0x02 |
Бит четности всегда 0. | |
#define | UART_PARITY_BIT_MARK 0x03 |
Бит четности всегда 1. | |
#define | UART_PARITY_BIT_USE 0x04 |
Бит чётности не используется, если "0"; бит четности используется, если "1". | |
#define | UART_STOP_BIT 0x08 |
Если установлен, один стоповый бит; иначе - 2 стоповых бита | |
Флаг типа двигателя | |
#define | MOTOR_TYPE_STEP 0x01 |
Шаговый двигатель | |
#define | MOTOR_TYPE_DC 0x02 |
DC двигатель | |
#define | MOTOR_TYPE_BLDC 0x03 |
BLDC двигатель | |
Флаги настроек энкодера | |
#define | ENCSET_DIFFERENTIAL_OUTPUT 0x001 |
Если флаг установлен, то энкодер имеет дифференциальный выход, иначе - несимметричный выход | |
#define | ENCSET_PUSHPULL_OUTPUT 0x004 |
Если флаг установлен, то энкодер имеет двухтактный выход, иначе - выход с открытым коллектором | |
#define | ENCSET_INDEXCHANNEL_PRESENT 0x010 |
Если флаг установлен, то энкодер имеет дополнительный индексный канал, иначе - он отсутствует | |
#define | ENCSET_REVOLUTIONSENSOR_PRESENT 0x040 |
Если флаг установлен, то энкодер имеет датчик оборотов, иначе - он отсутствует | |
#define | ENCSET_REVOLUTIONSENSOR_ACTIVE_HIGH 0x100 |
Если флаг установлен, то активное состояние датчика оборотов соответствует логической 1, иначе - логическому 0. | |
#define | MB_AVAILABLE 0x01 |
Если флаг установлен, то магнитный тормоз доступен | |
#define | MB_POWERED_HOLD 0x02 |
Если флаг установлен, то магнитный тормоз находится в режиме удержания (активен) при подаче питания | |
Флаги настроек температурного датчика | |
#define | TS_TYPE_BITS 0x07 |
Биты, отвечающие за тип температурного датчика. | |
#define | TS_TYPE_THERMOCOUPLE 0x01 |
Термопара | |
#define | TS_TYPE_SEMICONDUCTOR 0x02 |
Полупроводниковый температурный датчик | |
#define | TS_AVAILABLE 0x08 |
Если флаг установлен, то датчик температуры доступен | |
#define | LS_ON_SW1_AVAILABLE 0x01 |
Если флаг установлен, то концевик, подключенный к ножке SW1, доступен | |
#define | LS_ON_SW2_AVAILABLE 0x02 |
Если флаг установлен, то концевик, подключенный к ножке SW2, доступен | |
#define | LS_SW1_ACTIVE_LOW 0x04 |
Если флаг установлен, то концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте | |
#define | LS_SW2_ACTIVE_LOW 0x08 |
Если флаг установлен, то концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте | |
#define | LS_SHORTED 0x10 |
Если флаг установлен, то концевики закорочены. |
Определения типов | |
typedef int | device_t |
Тип идентификатора устройства | |
typedef int | result_t |
Тип, определяющий результат выполнения команды. | |
typedef uint32_t | device_enumeration_t |
TODO. | |
typedef struct calibration_t | calibration_t |
Calibration companion structure TODO docme. |
Функции | |
Группа команд настройки контроллера | |
Функции для чтения/записи большинства настроек контроллера. | |
result_t XIMC_API | set_feedback_settings (device_t id, const feedback_settings_t *feedback_settings) |
Запись настроек обратной связи. | |
result_t XIMC_API | get_feedback_settings (device_t id, feedback_settings_t *feedback_settings) |
Чтение настроек обратной связи | |
result_t XIMC_API | set_home_settings (device_t id, const home_settings_t *home_settings) |
Команда записи настроек для подхода в home position. | |
result_t XIMC_API | set_home_settings_calb (device_t id, const home_settings_calb_t *home_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_home_settings (device_t id, home_settings_t *home_settings) |
Команда чтения настроек для подхода в home position. | |
result_t XIMC_API | get_home_settings_calb (device_t id, home_settings_calb_t *home_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_move_settings (device_t id, const move_settings_t *move_settings) |
Команда записи настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта). | |
result_t XIMC_API | set_move_settings_calb (device_t id, const move_settings_calb_t *move_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_move_settings (device_t id, move_settings_t *move_settings) |
Команда чтения настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта). | |
result_t XIMC_API | get_move_settings_calb (device_t id, move_settings_calb_t *move_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_engine_settings (device_t id, const engine_settings_t *engine_settings) |
Запись настроек мотора. | |
result_t XIMC_API | set_engine_settings_calb (device_t id, const engine_settings_calb_t *engine_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_engine_settings (device_t id, engine_settings_t *engine_settings) |
Чтение настроек мотора. | |
result_t XIMC_API | get_engine_settings_calb (device_t id, engine_settings_calb_t *engine_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_entype_settings (device_t id, const entype_settings_t *entype_settings) |
Запись информации о типе мотора и типе силового драйвера. | |
result_t XIMC_API | get_entype_settings (device_t id, entype_settings_t *entype_settings) |
Возвращает информацию о типе мотора и силового драйвера. | |
result_t XIMC_API | set_power_settings (device_t id, const power_settings_t *power_settings) |
Команда записи параметров питания мотора. | |
result_t XIMC_API | get_power_settings (device_t id, power_settings_t *power_settings) |
Команда чтения параметров питания мотора. | |
result_t XIMC_API | set_secure_settings (device_t id, const secure_settings_t *secure_settings) |
Команда записи установок защит. | |
result_t XIMC_API | get_secure_settings (device_t id, secure_settings_t *secure_settings) |
Команда записи установок защит. | |
result_t XIMC_API | set_edges_settings (device_t id, const edges_settings_t *edges_settings) |
Запись настроек границ и концевых выключателей. | |
result_t XIMC_API | set_edges_settings_calb (device_t id, const edges_settings_calb_t *edges_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_edges_settings (device_t id, edges_settings_t *edges_settings) |
Чтение настроек границ и концевых выключателей. | |
result_t XIMC_API | get_edges_settings_calb (device_t id, edges_settings_calb_t *edges_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_pid_settings (device_t id, const pid_settings_t *pid_settings) |
Запись ПИД коэффициентов. | |
result_t XIMC_API | get_pid_settings (device_t id, pid_settings_t *pid_settings) |
Чтение ПИД коэффициентов. | |
result_t XIMC_API | set_sync_in_settings (device_t id, const sync_in_settings_t *sync_in_settings) |
Запись настроек для входного импульса синхронизации. | |
result_t XIMC_API | set_sync_in_settings_calb (device_t id, const sync_in_settings_calb_t *sync_in_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_sync_in_settings (device_t id, sync_in_settings_t *sync_in_settings) |
Чтение настроек для входного импульса синхронизации. | |
result_t XIMC_API | get_sync_in_settings_calb (device_t id, sync_in_settings_calb_t *sync_in_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_sync_out_settings (device_t id, const sync_out_settings_t *sync_out_settings) |
Запись настроек для выходного импульса синхронизации. | |
result_t XIMC_API | set_sync_out_settings_calb (device_t id, const sync_out_settings_calb_t *sync_out_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_sync_out_settings (device_t id, sync_out_settings_t *sync_out_settings) |
Чтение настроек для выходного импульса синхронизации. | |
result_t XIMC_API | get_sync_out_settings_calb (device_t id, sync_out_settings_calb_t *sync_out_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_extio_settings (device_t id, const extio_settings_t *extio_settings) |
Команда записи параметров настройки режимов внешнего ввода/вывода. | |
result_t XIMC_API | get_extio_settings (device_t id, extio_settings_t *extio_settings) |
Команда чтения параметров настройки режимов внешнего ввода/вывода. | |
result_t XIMC_API | set_brake_settings (device_t id, const brake_settings_t *brake_settings) |
Запись настроек управления тормозом. | |
result_t XIMC_API | get_brake_settings (device_t id, brake_settings_t *brake_settings) |
Чтение настроек управления тормозом. | |
result_t XIMC_API | set_control_settings (device_t id, const control_settings_t *control_settings) |
Запись настроек управления мотором. | |
result_t XIMC_API | set_control_settings_calb (device_t id, const control_settings_calb_t *control_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | get_control_settings (device_t id, control_settings_t *control_settings) |
Чтение настроек управления мотором. | |
result_t XIMC_API | get_control_settings_calb (device_t id, control_settings_calb_t *control_settings_calb, const calibration_t *calibration) |
result_t XIMC_API | set_joystick_settings (device_t id, const joystick_settings_t *joystick_settings) |
Запись настроек джойстика. | |
result_t XIMC_API | get_joystick_settings (device_t id, joystick_settings_t *joystick_settings) |
Чтение настроек джойстика. | |
result_t XIMC_API | set_ctp_settings (device_t id, const ctp_settings_t *ctp_settings) |
Запись настроек контроля позиции(для шагового двигателя). | |
result_t XIMC_API | get_ctp_settings (device_t id, ctp_settings_t *ctp_settings) |
Чтение настроек контроля позиции(для шагового двигателя). | |
result_t XIMC_API | set_uart_settings (device_t id, const uart_settings_t *uart_settings) |
Команда записи настроек UART. | |
result_t XIMC_API | get_uart_settings (device_t id, uart_settings_t *uart_settings) |
Команда чтения настроек UART. | |
result_t XIMC_API | set_controller_name (device_t id, const controller_name_t *controller_name) |
Запись пользовательского имени контроллера и настроек в FRAM. | |
result_t XIMC_API | get_controller_name (device_t id, controller_name_t *controller_name) |
Чтение пользовательского имени контроллера и настроек из FRAM. | |
Группа команд управления движением | |
result_t XIMC_API | command_stop (device_t id) |
Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек). | |
result_t XIMC_API | set_add_sync_in_action (device_t id, const add_sync_in_action_t *add_sync_in_action) |
Это команда добавляет один элемент в буфер FIFO команд, выполняемых при получении входного импульса синхронизации. | |
result_t XIMC_API | set_add_sync_in_action_calb (device_t id, const add_sync_in_action_calb_t *add_sync_in_action_calb, const calibration_t *calibration) |
result_t XIMC_API | command_power_off (device_t id) |
Немедленное отключение питания двигателя вне зависимости от его состояния. | |
result_t XIMC_API | command_move (device_t id, int Position, int uPosition) |
При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в полях Position, uPosition. | |
result_t XIMC_API | command_move_calb (device_t id, float Position, const calibration_t *calibration) |
result_t XIMC_API | command_movr (device_t id, int DeltaPosition, int uDeltaPosition) |
При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на количество импульсов указанное в полях DeltaPosition, uDeltaPosition. | |
result_t XIMC_API | command_movr_calb (device_t id, float DeltaPosition, const calibration_t *calibration) |
result_t XIMC_API | command_home (device_t id) |
Поля скоростей знаковые. | |
result_t XIMC_API | command_left (device_t id) |
При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево. | |
result_t XIMC_API | command_right (device_t id) |
При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо. | |
result_t XIMC_API | command_loft (device_t id) |
При получении команды "loft" двигатель смещается из текущей точки на расстояние GENG::Antiplay, затем двигается в ту же точку. | |
result_t XIMC_API | command_sstp (device_t id) |
Плавная остановка. | |
result_t XIMC_API | get_position (device_t id, get_position_t *the_get_position) |
Считывает значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей. | |
result_t XIMC_API | get_position_calb (device_t id, get_position_calb_t *the_get_position_calb, const calibration_t *calibration) |
result_t XIMC_API | set_position (device_t id, const set_position_t *the_set_position) |
Устанавливает произвольное значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей. | |
result_t XIMC_API | set_position_calb (device_t id, const set_position_calb_t *the_set_position_calb, const calibration_t *calibration) |
result_t XIMC_API | command_zero (device_t id) |
Устанавливает текущую позицию и позицию в которую осуществляется движение по командам move и movr равными нулю для всех случаев, кроме движения к позиции назначения. | |
Группа команд сохранения и загрузки настроек | |
result_t XIMC_API | command_save_settings (device_t id) |
При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера. | |
result_t XIMC_API | command_read_settings (device_t id) |
Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки. | |
result_t XIMC_API | command_eesave_settings (device_t id) |
Запись настроек контроллера в EEPROM память позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки. | |
result_t XIMC_API | command_eeread_settings (device_t id) |
Чтение настроек контроллера из EEPROM памяти позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки. | |
result_t XIMC_API | get_chart_data (device_t id, chart_data_t *chart_data) |
Команда чтения состояния обмоток и других не часто используемых данных. | |
result_t XIMC_API | get_serial_number (device_t id, unsigned int *SerialNumber) |
Чтение серийного номера контроллера. | |
result_t XIMC_API | get_firmware_version (device_t id, unsigned int *Major, unsigned int *Minor, unsigned int *Release) |
Чтение номера версии прошивки контроллера. | |
result_t XIMC_API | service_command_updf (device_t id) |
Команда переводит контроллер в режим обновления прошивки. | |
Группа сервисных команд | |
result_t XIMC_API | set_serial_number (device_t id, const serial_number_t *serial_number) |
Запись серийного номера во flash память контроллера. | |
result_t XIMC_API | get_analog_data (device_t id, analog_data_t *analog_data) |
Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин. | |
result_t XIMC_API | get_debug_read (device_t id, debug_read_t *debug_read) |
Чтение данных из прошивки для отладки и поиска неисправновстей. | |
Группа команд работы с EEPROM подвижки | |
result_t XIMC_API | set_stage_name (device_t id, const stage_name_t *stage_name) |
Запись пользовательского имени подвижки в EEPROM. | |
result_t XIMC_API | get_stage_name (device_t id, stage_name_t *stage_name) |
Чтение пользовательского имени подвижки из EEPROM. | |
result_t XIMC_API | set_stage_information (device_t id, const stage_information_t *stage_information) |
Запись информации о позиционере в EEPROM. | |
result_t XIMC_API | get_stage_information (device_t id, stage_information_t *stage_information) |
Чтение информации о позиционере из EEPROM. | |
result_t XIMC_API | set_stage_settings (device_t id, const stage_settings_t *stage_settings) |
Запись настроек позиционера в EEPROM. | |
result_t XIMC_API | get_stage_settings (device_t id, stage_settings_t *stage_settings) |
Чтение настроек позиционера из EEPROM. | |
result_t XIMC_API | set_motor_information (device_t id, const motor_information_t *motor_information) |
Запись информации о двигателе в EEPROM. | |
result_t XIMC_API | get_motor_information (device_t id, motor_information_t *motor_information) |
Чтение информации о двигателе из EEPROM. | |
result_t XIMC_API | set_motor_settings (device_t id, const motor_settings_t *motor_settings) |
Запись настроек двигателя в EEPROM. | |
result_t XIMC_API | get_motor_settings (device_t id, motor_settings_t *motor_settings) |
Чтение настроек двигателя из EEPROM. | |
result_t XIMC_API | set_encoder_information (device_t id, const encoder_information_t *encoder_information) |
Запись информации об энкодере в EEPROM. | |
result_t XIMC_API | get_encoder_information (device_t id, encoder_information_t *encoder_information) |
Чтение информации об энкодере из EEPROM. | |
result_t XIMC_API | set_encoder_settings (device_t id, const encoder_settings_t *encoder_settings) |
Запись настроек энкодера в EEPROM. | |
result_t XIMC_API | get_encoder_settings (device_t id, encoder_settings_t *encoder_settings) |
Чтение настроек энкодера из EEPROM. | |
result_t XIMC_API | set_hallsensor_information (device_t id, const hallsensor_information_t *hallsensor_information) |
Запись информации об датчиках Холла в EEPROM. | |
result_t XIMC_API | get_hallsensor_information (device_t id, hallsensor_information_t *hallsensor_information) |
Чтение информации об датчиках Холла из EEPROM. | |
result_t XIMC_API | set_hallsensor_settings (device_t id, const hallsensor_settings_t *hallsensor_settings) |
Запись настроек датчиков Холла в EEPROM. | |
result_t XIMC_API | get_hallsensor_settings (device_t id, hallsensor_settings_t *hallsensor_settings) |
Чтение настроек датчиков Холла из EEPROM. | |
result_t XIMC_API | set_gear_information (device_t id, const gear_information_t *gear_information) |
Запись информации о редукторе в EEPROM. | |
result_t XIMC_API | get_gear_information (device_t id, gear_information_t *gear_information) |
Чтение информации о редукторе из EEPROM. | |
result_t XIMC_API | set_gear_settings (device_t id, const gear_settings_t *gear_settings) |
Запись настроек редуктора в EEPROM. | |
result_t XIMC_API | get_gear_settings (device_t id, gear_settings_t *gear_settings) |
Чтение настроек редуктора из EEPROM. | |
result_t XIMC_API | set_accessories_settings (device_t id, const accessories_settings_t *accessories_settings) |
Запись информации о дополнительных аксессуарах в EEPROM. | |
result_t XIMC_API | get_accessories_settings (device_t id, accessories_settings_t *accessories_settings) |
Чтение информации о дополнительных аксессуарах из EEPROM. | |
result_t XIMC_API | get_bootloader_version (device_t id, unsigned int *Major, unsigned int *Minor, unsigned int *Release) |
Чтение номера версии прошивки контроллера. | |
result_t XIMC_API | goto_firmware (device_t id, uint8_t *ret) |
TODO Проверка наличия прошивки в контроллере | |
result_t XIMC_API | has_firmware (const char *name, uint8_t *ret) |
Проверка наличия прошивки в контроллере | |
result_t XIMC_API | command_update_firmware (const char *name, const uint8_t *data, uint32_t data_size) |
Обновление прошивки | |
result_t XIMC_API | write_key (const char *name, uint8_t *key) |
Запись ключа защиты TODO fix docs Функция используется только производителем. | |
result_t XIMC_API | command_reset (device_t id) |
Перезагрузка контроллера. | |
result_t XIMC_API | command_clear_fram (device_t id) |
Очистка FRAM памяти контроллера. |
Управление устройством | |
typedef char * | pchar |
Не обращайте на меня внимание | |
typedef void(XIMC_CALLCONV * | logging_callback_t )(int loglevel, const wchar_t *message) |
Прототип функции обратного вызова для логирования | |
device_t XIMC_API | open_device (const char *name) |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству. | |
result_t XIMC_API | close_device (device_t *id) |
Закрывает устройство | |
result_t XIMC_API | probe_device (const char *name) |
Проверяет, является ли устройство с именем name XIMC-совместимым. | |
device_enumeration_t XIMC_API | enumerate_devices (int probe_flags) |
Перечисляет все XIMC-совместимые устройства. | |
result_t XIMC_API | free_enumerate_devices (device_enumeration_t device_enumeration) |
Освобождает память, выделенную enumerate_devices. | |
int XIMC_API | get_device_count (device_enumeration_t device_enumeration) |
Возвращает количество подключенных устройств. | |
pchar XIMC_API | get_device_name (device_enumeration_t device_enumeration, int device_index) |
Возвращает имя подключенного устройства из перечисления устройств. | |
result_t XIMC_API | get_enumerate_device_serial (device_enumeration_t device_enumeration, int device_index, uint32_t *serial) |
Возвращает серийный номер подключенного устройства из перечисления устройств. | |
result_t XIMC_API | get_enumerate_device_information (device_enumeration_t device_enumeration, int device_index, device_information_t *device_information) |
Возвращает серийный номер подключенного устройства из перечисления устройств. | |
result_t XIMC_API | reset_locks () |
Снимает блокировку библиотеки в экстренном случае. | |
result_t XIMC_API | ximc_fix_usbser_sys (const char *device_name) |
Исправление ошибки драйвера USB в Windows. | |
void XIMC_API | msec_sleep (unsigned int msec) |
Приостанавливает работу на указанное время | |
void XIMC_API | ximc_version (char *version) |
Возвращает версию библиотеки | |
void XIMC_API | logging_callback_stderr_wide (int loglevel, const wchar_t *message) |
Простая функция логирования на stderr в широких символах | |
void XIMC_API | logging_callback_stderr_narrow (int loglevel, const wchar_t *message) |
Простая функция логирования на stderr в узких (однобайтных) символах | |
void XIMC_API | set_logging_callback (logging_callback_t logging_callback) |
Устанавливает функцию обратного вызова для логирования. | |
result_t XIMC_API | get_status (device_t id, status_t *status) |
Возвращает информацию о текущем состоянии устройства. | |
result_t XIMC_API | get_status_calb (device_t id, status_calb_t *status, const calibration_t *calibration) |
TODO document me Эта структура содержит основные параметры текущего состоянии контроллера такие как скорость, позиция и флаги состояния. | |
result_t XIMC_API | get_device_information (device_t id, device_information_t *device_information) |
Возвращает информацию об устройстве. |
Заголовочный файл для библиотеки libximc.
#define ALARM_ON_DRIVER_OVERHEATING 0x01 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера.
Иначе - игнорировать подступающий перегрев с драйвера.
#define BORDER_IS_ENCODER 0x01 |
Если флаг установлен, границы определяются предустановленными точками на шкале позиции.
Если флаг сброшен, границы определяются концевыми выключателями.
#define BORDER_STOP_LEFT 0x02 |
Если флаг установлен, мотор останавливается при достижении левой границы.
#define BORDER_STOP_RIGHT 0x04 |
Если флаг установлен, мотор останавливается при достижении правой границы.
#define BORDERS_SWAP_MISSET_DETECTION 0x08 |
Если флаг установлен, мотор останавливается при достижении обоих границ.
Нужен для предотвращения поломки двигателя при неправильных настройках концевиков
#define BRAKE_ENABLED 0x01 |
Управление тормозом включено, если флаг установлен.
#define BRAKE_ENG_PWROFF 0x02 |
Тормоз отключает питание шагового мотора, если флаг установлен.
#define CONTROL_BTN_LEFT_PUSHED_OPEN 0x04 |
Левая кнопка нормально разомкнутая, если флаг установлен.
#define CONTROL_BTN_RIGHT_PUSHED_OPEN 0x08 |
Правая кнопка нормально разомкнутая, если флаг установлен.
#define CONTROL_MODE_BITS 0x03 |
Биты управления мотором с помощью джойстика или кнопок влево/вправо.
#define CONTROL_MODE_JOY 0x01 |
Управление с помощью джойстика.
#define CONTROL_MODE_LR 0x02 |
Управление с помощью кнопок left/right.
#define CONTROL_MODE_OFF 0x00 |
Управление отключено.
#define CTP_ALARM_ON_ERROR 0x04 |
Войти в состояние ALARM при расхождении позиции, если флаг установлен.
#define CTP_BASE 0x02 |
Опорой является датчик оборотов, если флаг установлен; иначе - энкодер.
#define CTP_ENABLED 0x01 |
Контроль позиции включен, если флаг установлен.
#define DRIVER_TYPE_DISCRETE_FET 0x01 |
Силовой драйвер на дискретных мосфет-ключах.
Используется по умолчанию.
#define DRIVER_TYPE_EXTERNAL 0x03 |
Внешний силовой драйвер.
#define DRIVER_TYPE_INTEGRATE 0x02 |
Силовой драйвер с использованием ключей, интегрированных в микросхему.
#define EEPROM_PRECEDENCE 0x01 |
Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM.
#define ENC_STATE_ABSENT 0x00 |
Энкодер не подключен.
#define ENC_STATE_MALFUNC 0x02 |
Энкодер подключен и неисправен.
#define ENC_STATE_OK 0x04 |
Энкодер подключен и работает адекватно.
#define ENC_STATE_REVERS 0x03 |
Энкодер подключен и исправен, но считает в другую сторону.
#define ENC_STATE_UNKNOWN 0x01 |
Cостояние энкодера неизвестно.
#define ENDER_SW1_ACTIVE_LOW 0x02 |
1 - Концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте.
#define ENDER_SW2_ACTIVE_LOW 0x04 |
1 - Концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте.
#define ENDER_SWAP 0x01 |
Если флаг установлен, первый концевой выключатель находится справа; иначе - слева.
#define ENGINE_ACCEL_ON 0x10 |
Ускорение.
Если флаг установлен, движение происходит с ускорением.
#define ENGINE_ANTIPLAY 0x08 |
Компенсация люфта.
Если флаг установлен, позиционер будет подходить к заданной точке всегда с одной стороны. Например, при подходе слева никаких дополнительных действий не совершается, а при подходе справа позиционер проходит целевую позицию на заданное расстояния и возвращается к ней опять же справа.
#define ENGINE_LIMIT_CURR 0x40 |
Номинальный ток мотора.
Если флаг установлен, ток через мотор ограничивается заданным номинальным значением(используется только с DC двигателем).
#define ENGINE_LIMIT_RPM 0x80 |
Номинальная частота вращения мотора.
Если флаг установлен, частота вращения ограничивается заданным номинальным значением.
#define ENGINE_LIMIT_VOLT 0x20 |
Номинальное напряжение мотора.
Если флаг установлен, напряжение на моторе ограничивается заданным номинальным значением(используется только с DC двигателем).
#define ENGINE_MAX_SPEED 0x04 |
Флаг максимальной скорости.
Если флаг установлен, движение происходит на максимальной скорости.
#define ENGINE_REVERSE 0x01 |
Флаг реверса.
Связывает направление вращения мотора с направлением счета текущей позиции. При сброшенном флаге (по умолчанию) прикладываемое к мотору положительное напряжение увеличивает счетчик позиции. И наоборот, при установленном флаге счетчик позиции увеличивается, когда к мотору приложено отрицательное напряжение. Измените состояние флага, если положительное вращение мотора уменьшает счетчик позиции.
#define ENGINE_TYPE_2DC 0x02 |
Два мотора постоянного тока, что приводит к эмуляции двух контроллеров.
#define ENGINE_TYPE_BRUSHLESS 0x05 |
Безщеточный мотор.
#define ENGINE_TYPE_DC 0x01 |
Мотор постоянного тока.
#define ENGINE_TYPE_NONE 0x00 |
Это значение не нужно использовать.
#define ENGINE_TYPE_STEP 0x03 |
Шаговый мотор.
#define ENUMERATE_PROBE 0x01 |
Проверять, является ли устройство XIMC-совместимым.
Будте осторожны с этим флагом, т.к. он отправляет данные в устройство.
#define EXTIO_SETUP_INVERT 0x02 |
Eсли флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.
#define EXTIO_SETUP_MODE_IN_HOME 0x04 |
Выполняется команда HOME.
#define EXTIO_SETUP_MODE_IN_MOVR 0x03 |
Выполняется команда MOVR с последними настройками.
#define EXTIO_SETUP_MODE_IN_NOP 0x00 |
Ничего не делать.
#define EXTIO_SETUP_MODE_IN_PWOF 0x02 |
Выполняет команду PWOF, обесточивая обмотки двигателя.
#define EXTIO_SETUP_MODE_IN_STOP 0x01 |
По переднему фронту входного сигнала делается остановка двигателя (эквивалент команды STOP).
#define EXTIO_SETUP_MODE_OUT_ALARM 0x30 |
Ножка находится в активном состоянии при нахождении в состоянии ALARM.
#define EXTIO_SETUP_MODE_OUT_MOTOR_FOUND 0x50 |
Ножка находится в активном состоянии при обнаружении подключенного двигателя (первой обмотки).
#define EXTIO_SETUP_MODE_OUT_MOTOR_ON 0x40 |
Ножка находится в активном состоянии при подаче питания на обмотки.
#define EXTIO_SETUP_MODE_OUT_MOVING 0x20 |
Ножка находится в активном состоянии при движении.
#define EXTIO_SETUP_MODE_OUT_OFF 0x00 |
Ножка всегда в неактивном состоянии.
#define EXTIO_SETUP_MODE_OUT_ON 0x10 |
Ножка всегда в активном состоянии.
#define EXTIO_SETUP_OUTPUT 0x01 |
Если флаг установлен, то ножка в состоянии вывода, иначе - ввода.
#define FEEDBACK_EMF 0x04 |
Обратная связь по ЭДС.
#define FEEDBACK_ENC_REVERSE 0x01 |
Обратный счет у энкодера.
#define FEEDBACK_ENCODER 0x01 |
Обратная связь с помощью энкодера.
#define FEEDBACK_ENCODERHALL 0x03 |
Обратная связь с помощью датчика Холла.
#define FEEDBACK_HALL_REVERSE 0x02 |
Обратный счёт позиции по датчикам Холла.
#define FEEDBACK_NONE 0x05 |
Обратная связь отсутствует.
#define HOME_DIR_FIRST 0x01 |
Определяет направление первоначального движения мотора после поступления команды HOME.
Если флаг установлен - вправо; иначе - влево.
#define HOME_DIR_SECOND 0x02 |
Определяет направление второго движения мотора.
Если флаг установлен - вправо; иначе - влево.
#define HOME_HALF_MV 0x08 |
Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются.
#define HOME_MV_SEC_EN 0x04 |
Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается.
#define HOME_STOP_FIRST_BITS 0x30 |
Биты, отвечающие за выбор сигнала завершения первого движения.
#define HOME_STOP_FIRST_LIM 0x30 |
Первое движение завершается по сигналу с концевика.
#define HOME_STOP_FIRST_REV 0x10 |
Первое движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_FIRST_SYN 0x20 |
Первое движение завершается по сигналу со входа синхронизации.
#define HOME_STOP_SECOND_BITS 0xC0 |
Биты, отвечающие за выбор сигнала завершения второго движения.
#define HOME_STOP_SECOND_LIM 0xC0 |
Второе движение завершается по сигналу с концевика.
#define HOME_STOP_SECOND_REV 0x40 |
Второе движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_SECOND_SYN 0x80 |
Второе движение завершается по сигналу со входа синхронизации.
#define JOY_REVERSE 0x01 |
Реверс воздействия джойстика.
Отклонение джойстика к большим значениям приводит к отрицательной скорости и наоборот.
#define LOW_UPWR_PROTECTION 0x02 |
Если установлен, то выключать силовую часть при напряжении меньшем LowUpwrOff.
#define LS_SHORTED 0x10 |
Если флаг установлен, то концевики закорочены.
#define MICROSTEP_MODE_FRAC_128 0x08 |
Деление шага 1/128.
#define MICROSTEP_MODE_FRAC_16 0x05 |
Деление шага 1/16.
#define MICROSTEP_MODE_FRAC_2 0x02 |
Деление шага 1/2.
#define MICROSTEP_MODE_FRAC_256 0x09 |
Деление шага 1/256.
#define MICROSTEP_MODE_FRAC_32 0x06 |
Деление шага 1/32.
#define MICROSTEP_MODE_FRAC_4 0x03 |
Деление шага 1/4.
#define MICROSTEP_MODE_FRAC_64 0x07 |
Деление шага 1/64.
#define MICROSTEP_MODE_FRAC_8 0x04 |
Деление шага 1/8.
#define MICROSTEP_MODE_FULL 0x01 |
Полношаговый режим.
#define MOVE_STATE_ANTIPLAY 0x04 |
Выполняется компенсация люфта, если флаг установлен.
#define MOVE_STATE_MOVING 0x01 |
Если флаг установлен, то контроллер пытается вращать двигателем.
#define MOVE_STATE_TARGET_SPEED 0x02 |
Флаг устанавливается при достижении заданной скорости.
#define MVCMD_ERROR 0x40 |
Состояние завершения движения (1 - команда движения выполнена с ошибкой, 0 - команда движения выполнена корректно).
Имеет смысл если MVCMD_RUNNING указывает на завершение движения.
#define MVCMD_HOME 0x06 |
Команда home.
#define MVCMD_LEFT 0x03 |
Команда left.
#define MVCMD_LOFT 0x07 |
Команда loft.
#define MVCMD_MOVE 0x01 |
Команда move.
#define MVCMD_MOVR 0x02 |
Команда movr.
#define MVCMD_NAME_BITS 0x3F |
Битовая маска активной команды.
#define MVCMD_RIGHT 0x04 |
Команда rigt.
#define MVCMD_RUNNING 0x80 |
Состояние команды движения (0 - команда движения выполнена, 1 - команда движения сейчас выполняется).
#define MVCMD_SSTP 0x08 |
Команда плавной остановки(SSTP).
#define MVCMD_STOP 0x05 |
Команда stop.
#define MVCMD_UKNWN 0x00 |
Неизвестная команда.
#define POWER_OFF_ENABLED 0x02 |
Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay.
Иначе - не снимать.
#define POWER_REDUCT_ENABLED 0x01 |
Если флаг установлен, уменьшить ток по прошествии CurrReductDelay.
Иначе - не уменьшать.
#define POWER_SMOOTH_CURRENT 0x04 |
Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение.
#define PWR_STATE_MAX 0x05 |
Обмотки запитаны максимально доступным током, который может выдать схема при данном напряжении питания.
#define PWR_STATE_NORM 0x03 |
Обмотки запитаны номинальным током.
#define PWR_STATE_OFF 0x01 |
Обмотки мотора разомкнуты и не управляются драйвером.
#define PWR_STATE_REDUCT 0x04 |
Обмотки намеренно запитаны уменьшенным током от рабочего для снижения потребляемой мощности.
#define PWR_STATE_UNKNOWN 0x00 |
Неизвестное состояние, которое не должно никогда реализовываться.
#define REV_SENS_INV 0x08 |
Сенсор считается активным, когда на нём 0, а инвертирование делает активным уровнем 1.
То есть если не инвертировать, то действует обычная логика - 0 это срабатывание/активация/активное состояние.
#define SETPOS_IGNORE_ENCODER 0x02 |
Если установлен, то счётчик энкодера не обновляется.
#define SETPOS_IGNORE_POSITION 0x01 |
Если установлен, то позиция в шагах и микрошагах не обновляется.
#define STATE_ALARM 0x00040 |
Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация.
В состоянии ALARM все команды игнорируются пока не будет послана команда STOP и состояние ALARM деактивируется.
#define STATE_BORDERS_SWAP_MISSET 0x08000 |
Достижение неверной границы.
#define STATE_BRAKE 0x0200 |
Состояние вывода управления тормозом(флаг "1" - если на тормоз подаётся питание, "0" - если тормоз не запитан).
#define STATE_BUTTON_LEFT 0x0008 |
Состояние кнопки "влево" (1, если нажата).
#define STATE_BUTTON_RIGHT 0x0004 |
Состояние кнопки "вправо" (1, если нажата).
#define STATE_CONTR 0x0003F |
Флаги состояния контроллера.
#define STATE_CONTROLLER_OVERHEAT 0x00200 |
Перегрелась микросхема контроллера.
#define STATE_CTP_ERROR 0x00080 |
Контроль позиции нарушен(используется только с шаговым двигателем).
#define STATE_DIG_SIGNAL 0xFFFF |
Флаги цифровых сигналов.
#define STATE_EEPROM_CONNECTED 0x00010 |
Подключена память EEPROM с настройками.
#define STATE_ENC_A 0x2000 |
Состояние ножки A энкодера(флаг "1", если энкодер активен).
#define STATE_ENC_B 0x4000 |
Состояние ножки B энкодера(флаг "1", если энкодер активен).
#define STATE_ERRC 0x00001 |
Недопустимая команда.
#define STATE_ERRD 0x00002 |
Нарушение целостности данных.
#define STATE_ERRV 0x00004 |
Недопустимое значение данных.
#define STATE_GPIO_LEVEL 0x0020 |
Состояние ввода/вывода общего назначения.
#define STATE_GPIO_PINOUT 0x0010 |
Если флаг установлен, ввод/вывод общего назначения работает как выход; если флаг сброшен, ввод/вывод работает как вход.
#define STATE_HALL_A 0x0040 |
Состояние вывода датчика холла(a)(флаг "1", если датчик активен).
#define STATE_HALL_B 0x0080 |
Состояние вывода датчика холла(b)(флаг "1", если датчик активен).
#define STATE_HALL_C 0x0100 |
Состояние вывода датчика холла(c)(флаг "1", если датчик активен).
#define STATE_LEFT_EDGE 0x0002 |
Достижение левой границы.
#define STATE_LOW_USB_VOLTAGE 0x02000 |
Слишком низкое напряжение на USB.
#define STATE_OVERLOAD_POWER_CURRENT 0x00800 |
Превышен максимальный ток потребления силовой части.
#define STATE_OVERLOAD_POWER_VOLTAGE 0x00400 |
Превышено напряжение на силовой части.
#define STATE_OVERLOAD_USB_CURRENT 0x04000 |
Превышен максимальный ток потребления USB.
#define STATE_OVERLOAD_USB_VOLTAGE 0x01000 |
Превышено напряжение на USB.
#define STATE_POWER_OVERHEAT 0x00100 |
Перегрелась силовая часть платы.
#define STATE_REV_SENSOR 0x0400 |
Состояние вывода датчика оборотов(флаг "1", если датчик активен).
#define STATE_RIGHT_EDGE 0x0001 |
Достижение правой границы.
#define STATE_SECUR 0x3FFC0 |
Флаги опасности.
#define STATE_SYNC_INPUT 0x0800 |
Состояние входа синхронизации(1, если вход синхронизации активен).
#define STATE_SYNC_OUTPUT 0x1000 |
Состояние выхода синхронизации(1, если выход синхронизации активен).
#define SYNCIN_ENABLED 0x01 |
Включение необходимости импульса синхронизации для начала движения.
#define SYNCIN_INVERT 0x02 |
Если установлен - срабатывает по переходу из 1 в 0.
Иначе - из 0 в 1.
#define SYNCOUT_ENABLED 0x01 |
Синхронизация выхода работает согласно настройкам, если флаг установлен.
В ином случае значение выхода фиксировано и подчиняется SYNCOUT_STATE.
#define SYNCOUT_IN_STEPS 0x08 |
Если флаг установлен использовать шаги/импульсы энкодера для выходных импульсов синхронизации вместо миллисекунд.
#define SYNCOUT_INVERT 0x04 |
Нулевой логический уровень является активным, если флаг установлен, а единичный - если флаг сброшен.
#define SYNCOUT_ONPERIOD 0x40 |
Выдать импульс синхронизации после прохождения SyncOutPeriod отсчётов.
#define SYNCOUT_ONSTART 0x10 |
Генерация синхронизирующего импульса при начале движения.
#define SYNCOUT_ONSTOP 0x20 |
Генерация синхронизирующего импульса при остановке.
#define SYNCOUT_STATE 0x02 |
Когда значение выхода управляется напрямую (см.
флаг SYNCOUT_ENABLED), значение на выходе соответствует значению этого флага.
#define TS_TYPE_BITS 0x07 |
Биты, отвечающие за тип температурного датчика.
#define UART_PARITY_BITS 0x03 |
Биты, отвечающие за выбор четности.
#define WIND_A_STATE_ABSENT 0x00 |
Обмотка A не подключена.
#define WIND_A_STATE_MALFUNC 0x02 |
Короткое замыкание на обмотке A.
#define WIND_A_STATE_OK 0x03 |
Обмотка A работает адекватно.
#define WIND_A_STATE_UNKNOWN 0x01 |
Cостояние обмотки A неизвестно.
#define WIND_B_STATE_ABSENT 0x00 |
Обмотка B не подключена.
#define WIND_B_STATE_MALFUNC 0x20 |
Короткое замыкание на обмотке B.
#define WIND_B_STATE_OK 0x30 |
Обмотка B работает адекватно.
#define WIND_B_STATE_UNKNOWN 0x10 |
Cостояние обмотки B неизвестно.
#define XIMC_API |
Library import macro Macros allows to automatically import function from shared library.
It automatically expands to dllimport on msvc when including header file
typedef void(XIMC_CALLCONV * logging_callback_t)(int loglevel, const wchar_t *message) |
Прототип функции обратного вызова для логирования
loglevel | уровень логирования |
message | сообщение |
Закрывает устройство
id | - идентификатор устройства |
Очистка FRAM памяти контроллера.
Функция используется только производителем.
id | идентификатор устройства |
Чтение настроек контроллера из EEPROM памяти позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.
Эта операция также автоматически выполняется при подключении позиционера с EEPROM памятью. Функция должна использоваться только производителем.
id | идентификатор устройства |
Запись настроек контроллера в EEPROM память позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.
Функция должна использоваться только производителем.
id | идентификатор устройства |
Поля скоростей знаковые.
Положительное направление это вправо. Нулевое значение флага направления инвертирует направление, заданное скоростью. Ограничение, накладываемые концевиками, действуют так же, за исключением того, что касание концевика не приводит к остановке. Ограничения максимальной скорости, ускорения и замедления действуют. 1) Двигает мотор согласно скоростям FastHome, uFastHome и флагу HOME_DIR_FAST до достижения концевика, если флаг HOME_STOP_ENDS установлен, до достижения сигнала с входа синхронизации, если установлен флаг HOME_STOP_SYNC (важно как можно точнее поймать момент срабатывания концевика) или до поступления сигнала с датчика оборотов, если установлен флаг HOME_STOP_REV_SN 2) далее двигает согласно скоростям SlowHome, uSlowHome и флагу HOME_DIR_SLOW до достижения сигнала с входа синхронизации, если установлен флаг HOME_MV_SEC. Если флаг HOME_MV_SEC сброшен, пропускаем этот пункт. 3) далее двигает мотор согласно скоростям FastHome, uFastHome и флагу HOME_DIR_SLOW на расстояние HomeDelta, uHomeDelta. Описание флагов и переменных см. описание команд GHOM/SHOM
id | идентификатор устройства |
При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево.
id | идентификатор устройства |
При получении команды "loft" двигатель смещается из текущей точки на расстояние GENG::Antiplay, затем двигается в ту же точку.
id | идентификатор устройства |
При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в полях Position, uPosition.
Для шагового мотора uPosition задает значение микрошага, для DC мотора это поле не используется.
Position | заданная позиция. Диапазон: -2147483647..2147483647. |
uPosition | часть позиции в микрошагах. Диапазон: -255..255. |
id | идентификатор устройства |
При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на количество импульсов указанное в полях DeltaPosition, uDeltaPosition.
Для шагового мотора uDeltaPosition задает значение микрошага, для DC мотора это поле не используется.
DeltaPosition | смещение. Диапазон: -2147483647..2147483647. |
uDeltaPosition | часть смещения в микрошагах. Диапазон: -255..255. |
id | идентификатор устройства |
Немедленное отключение питания двигателя вне зависимости от его состояния.
Команда предначена для ручного управления питанием двигателя. Не следует использовать эту команду для отключения двигателя во время движения, так как питание может снова включиться для завершения движения. Для автоматического управления питанием двигателя и его отключении после остановки следует использовать систему управления электропитанием.
id | идентификатор устройства |
Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.
id | идентификатор устройства |
Перезагрузка контроллера.
Функция используется только производителем.
id | идентификатор устройства |
При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо.
id | идентификатор устройства |
При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера.
id | идентификатор устройства |
Плавная остановка.
Двигатель останавливается с ускорением замедления.
id | идентификатор устройства |
Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек).
id | идентификатор устройства |
result_t XIMC_API command_update_firmware | ( | const char * | name, |
const uint8_t * | data, | ||
uint32_t | data_size | ||
) |
Обновление прошивки
name | идентификатор устройства |
data | указатель на массив байтов прошивки |
data_size | размер массива в байтах |
Устанавливает текущую позицию и позицию в которую осуществляется движение по командам move и movr равными нулю для всех случаев, кроме движения к позиции назначения.
В последнем случае установить нулём текущую позицию, а позицию назначения пересчитать так, что в абсолютном положении точка назначения не меняется. То есть если мы находились в точке 400 и двигались к 500, то команда Zero делает текущую позицию 0, а позицию назначения - 100. Не изменяет режим движения т.е. если движение осуществлялось, то оно продолжается; если мотор находился в режиме "удержания", то тип удержания сохраняется.
id | идентификатор устройства |
device_enumeration_t XIMC_API enumerate_devices | ( | int | probe_flags | ) |
Перечисляет все XIMC-совместимые устройства.
[in] | probe_flags | флаги поиска устройств |
result_t XIMC_API free_enumerate_devices | ( | device_enumeration_t | device_enumeration | ) |
Освобождает память, выделенную enumerate_devices.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
result_t XIMC_API get_accessories_settings | ( | device_t | id, |
accessories_settings_t * | accessories_settings | ||
) |
Чтение информации о дополнительных аксессуарах из EEPROM.
id | идентификатор устройства | |
[out] | accessories_settings | структура, содержащая информацию о дополнительных аксессуарах |
result_t XIMC_API get_analog_data | ( | device_t | id, |
analog_data_t * | analog_data | ||
) |
Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин.
Эта функция используется для тестирования и калибровки устройства.
id | идентификатор устройства | |
[out] | analog_data | аналоговые данные |
result_t XIMC_API get_bootloader_version | ( | device_t | id, |
unsigned int * | Major, | ||
unsigned int * | Minor, | ||
unsigned int * | Release | ||
) |
Чтение номера версии прошивки контроллера.
id | идентификатор устройства | |
[out] | Major | номер основной версии |
[out] | Minor | номер дополнительной версии |
[out] | Release | номер релиза |
result_t XIMC_API get_brake_settings | ( | device_t | id, |
brake_settings_t * | brake_settings | ||
) |
Чтение настроек управления тормозом.
id | идентификатор устройства | |
[out] | brake_settings | структура, содержащая настройки управления тормозом |
result_t XIMC_API get_chart_data | ( | device_t | id, |
chart_data_t * | chart_data | ||
) |
Команда чтения состояния обмоток и других не часто используемых данных.
Предназначена в первую очередь для получения данных для построения графиков в паре с командой GETS.
id | идентификатор устройства | |
[out] | chart_data | структура chart_data. |
result_t XIMC_API get_control_settings | ( | device_t | id, |
control_settings_t * | control_settings | ||
) |
Чтение настроек управления мотором.
При выборе CTL_MODE=1 включается управление мотором с помощью джойстика. В этом режиме при отклонении джойстика на максимум двигатель стремится двигаться со скоростью MaxSpeed [i], где i=0, если предыдущим использованием этого режима не было выбрано другое i. Кнопки переключают номер скорости i. При выборе CTL_MODE=2 включается управление мотором с помощью кнопок left/right. При нажатии на кнопки двигатель начинает двигаться в соответствующую сторону со скоростью MaxSpeed [0], по истечении времени Timeout[i] мотор двигается со скоростью MaxSpeed [i+1]. При переходе от MaxSpeed [i] на MaxSpeed [i+1] действует ускорение, как обычно.
id | идентификатор устройства | |
[out] | control_settings | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо. |
result_t XIMC_API get_controller_name | ( | device_t | id, |
controller_name_t * | controller_name | ||
) |
Чтение пользовательского имени контроллера и настроек из FRAM.
id | идентификатор устройства | |
[out] | controller_name | структура, содержащая установленное пользовательское имя контроллера и флаги настроек |
result_t XIMC_API get_ctp_settings | ( | device_t | id, |
ctp_settings_t * | ctp_settings | ||
) |
Чтение настроек контроля позиции(для шагового двигателя).
При управлении ШД с энкодером (CTP_BASE 0) появляется возможность обнаруживать потерю шагов. Контроллер знает кол-во шагов на оборот (GENG::StepsPerRev) и разрешение энкодера (GFBS::IPT). При включении контроля (флаг CTP_ENABLED), контроллер запоминает текущую позицию в шагах ШД и текущую позицию энкодера. Далее, на каждом шаге позиция энкодера преобразовывается в шаги и если разница оказывается больше CTPMinError, устанавливается флаг STATE_CTP_ERROR. При управлении ШД с датчиком оборотов (CTP_BASE 1), позиция контролируется по нему. По активному фронту на входе синхронизации контроллер запоминает текущее значение шагов. Далее, при каждом обороте проверяет, на сколько шагов сместились. При рассогласовании более CTPMinError устанавливается флаг STATE_CTP_ERROR.
id | идентификатор устройства | |
[out] | ctp_settings | структура, содержащая настройки контроля позиции |
result_t XIMC_API get_debug_read | ( | device_t | id, |
debug_read_t * | debug_read | ||
) |
Чтение данных из прошивки для отладки и поиска неисправновстей.
Получаемые данные зависят от версии прошивки, истории и контекста использования.
id | идентификатор устройства | |
[out] | DebugData[128] | Данные для отладки. |
int XIMC_API get_device_count | ( | device_enumeration_t | device_enumeration | ) |
Возвращает количество подключенных устройств.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
result_t XIMC_API get_device_information | ( | device_t | id, |
device_information_t * | device_information | ||
) |
Возвращает информацию об устройстве.
Все входные параметры должны быть указателями на выделенные области памяти длиной не менее 10 байт. Команда доступна как из инициализированного состояния, так и из исходного.
id | идентификатор устройства. | |
[out] | device_information | информация об устройстве Информация об устройстве. |
pchar XIMC_API get_device_name | ( | device_enumeration_t | device_enumeration, |
int | device_index | ||
) |
Возвращает имя подключенного устройства из перечисления устройств.
Возвращает имя устройства с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
result_t XIMC_API get_edges_settings | ( | device_t | id, |
edges_settings_t * | edges_settings | ||
) |
Чтение настроек границ и концевых выключателей.
id | идентификатор устройства | |
[out] | edges_settings | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей |
result_t XIMC_API get_encoder_information | ( | device_t | id, |
encoder_information_t * | encoder_information | ||
) |
Чтение информации об энкодере из EEPROM.
id | идентификатор устройства | |
[out] | encoder_information | структура, содержащая информацию об энкодере |
result_t XIMC_API get_encoder_settings | ( | device_t | id, |
encoder_settings_t * | encoder_settings | ||
) |
Чтение настроек энкодера из EEPROM.
id | идентификатор устройства | |
[out] | encoder_settings | структура, содержащая настройки энкодера |
result_t XIMC_API get_engine_settings | ( | device_t | id, |
engine_settings_t * | engine_settings | ||
) |
Чтение настроек мотора.
Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.
id | идентификатор устройства | |
[out] | engine_settings | структура с настройками мотора |
result_t XIMC_API get_entype_settings | ( | device_t | id, |
entype_settings_t * | entype_settings | ||
) |
Возвращает информацию о типе мотора и силового драйвера.
id | идентификатор устройства | |
[out] | EngineType | тип мотора |
[out] | DriverType | тип силового драйвера |
result_t XIMC_API get_enumerate_device_information | ( | device_enumeration_t | device_enumeration, |
int | device_index, | ||
device_information_t * | device_information | ||
) |
Возвращает серийный номер подключенного устройства из перечисления устройств.
Возвращает серийный номер устройства с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
[out] | device_information | информация об устройстве |
result_t XIMC_API get_enumerate_device_serial | ( | device_enumeration_t | device_enumeration, |
int | device_index, | ||
uint32_t * | serial | ||
) |
Возвращает серийный номер подключенного устройства из перечисления устройств.
Возвращает серийный номер устройства с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
[in] | serial | серийный номер устройства |
result_t XIMC_API get_extio_settings | ( | device_t | id, |
extio_settings_t * | extio_settings | ||
) |
Команда чтения параметров настройки режимов внешнего ввода/вывода.
id | идентификатор устройства | |
[out] | extio_settings | настройки EXTIO |
result_t XIMC_API get_feedback_settings | ( | device_t | id, |
feedback_settings_t * | feedback_settings | ||
) |
Чтение настроек обратной связи
id | идентификатор устройства | |
[out] | IPS | Количество измеряемых отсчётов энкодера на оборот. Диапазон: 1..65535 |
[out] | FeedbackType | тип обратной связи |
[out] | FeedbackFlags | флаги обратной связи |
result_t XIMC_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 XIMC_API get_gear_information | ( | device_t | id, |
gear_information_t * | gear_information | ||
) |
Чтение информации о редукторе из EEPROM.
id | идентификатор устройства | |
[out] | gear_information | структура, содержащая информацию о редукторе |
result_t XIMC_API get_gear_settings | ( | device_t | id, |
gear_settings_t * | gear_settings | ||
) |
Чтение настроек редуктора из EEPROM.
id | идентификатор устройства | |
[out] | gear_settings | структура, содержащая настройки редуктора |
result_t XIMC_API get_hallsensor_information | ( | device_t | id, |
hallsensor_information_t * | hallsensor_information | ||
) |
Чтение информации об датчиках Холла из EEPROM.
id | идентификатор устройства | |
[out] | hallsensor_information | структура, содержащая информацию об датчиках Холла |
result_t XIMC_API get_hallsensor_settings | ( | device_t | id, |
hallsensor_settings_t * | hallsensor_settings | ||
) |
Чтение настроек датчиков Холла из EEPROM.
id | идентификатор устройства | |
[out] | hallsensor_settings | структура, содержащая настройки датчиков Холла |
result_t XIMC_API get_home_settings | ( | device_t | id, |
home_settings_t * | home_settings | ||
) |
Команда чтения настроек для подхода в home position.
Эта функция заполняет структуру настроек, использующихся для калибровки позиции, в память контроллера.
id | идентификатор устройства | |
[out] | home_settings | настройки калибровки позиции |
result_t XIMC_API get_joystick_settings | ( | device_t | id, |
joystick_settings_t * | joystick_settings | ||
) |
Чтение настроек джойстика.
При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость, а 100% отклонения соответствует MaxSpeed i, где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следуюящая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Расчёт DeadZone проиллюстрирован на графике: !/attachments/download/5563/range25p.png! Зависимость между отклонением и скоростью экспоненциальная, что позволяет без переключения режимов скорости сочетать высокую подвижность и точность. На графике ниже показан пример экспоненциальной зависимости скорости и работы мертвой зоны. !/attachments/download/3092/ExpJoystick.png! Параметр нелинейнойсти можно менять. Нулевой параметр нелинейности соответствует линейной зависимости.
id | идентификатор устройства | |
[out] | joystick_settings | структура, содержащая настройки джойстика |
result_t XIMC_API get_motor_information | ( | device_t | id, |
motor_information_t * | motor_information | ||
) |
Чтение информации о двигателе из EEPROM.
id | идентификатор устройства | |
[out] | motor_information | структура, содержащая информацию о двигателе |
result_t XIMC_API get_motor_settings | ( | device_t | id, |
motor_settings_t * | motor_settings | ||
) |
Чтение настроек двигателя из EEPROM.
id | идентификатор устройства | |
[out] | motor_settings | структура, содержащая настройки двигателя |
result_t XIMC_API get_move_settings | ( | device_t | id, |
move_settings_t * | move_settings | ||
) |
Команда чтения настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).
id | идентификатор устройства | |
[out] | move_settings | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
result_t XIMC_API get_pid_settings | ( | device_t | id, |
pid_settings_t * | pid_settings | ||
) |
Чтение ПИД коэффициентов.
Эти коэффициенты определяют поведение напряжения. Коэффициенты различны для разных позиционеров.
id | идентификатор устройства | |
[out] | pid_settings | настройки ПИД |
result_t XIMC_API get_position | ( | device_t | id, |
get_position_t * | the_get_position | ||
) |
Считывает значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.
id | идентификатор устройства | |
[out] | position | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
result_t XIMC_API get_power_settings | ( | device_t | id, |
power_settings_t * | power_settings | ||
) |
Команда чтения параметров питания мотора.
Используется только с шаговым двигателем. Используется только с шаговым двигателем.
id | идентификатор устройства | |
[out] | power_settings | структура, содержащая настройки питания шагового мотора |
result_t XIMC_API get_secure_settings | ( | device_t | id, |
secure_settings_t * | secure_settings | ||
) |
Команда записи установок защит.
id | идентификатор устройства | |
[out] | secure_settings | настройки, определяющие максимально допустимые параметры, для защиты оборудования |
Чтение серийного номера контроллера.
id | идентификатор устройства | |
[out] | SerialNumber | серийный номер контроллера |
result_t XIMC_API get_stage_information | ( | device_t | id, |
stage_information_t * | stage_information | ||
) |
Чтение информации о позиционере из EEPROM.
id | идентификатор устройства | |
[out] | stage_information | структура, содержащая информацию о позиционере |
result_t XIMC_API get_stage_name | ( | device_t | id, |
stage_name_t * | stage_name | ||
) |
Чтение пользовательского имени подвижки из EEPROM.
id | идентификатор устройства | |
[out] | stage_name | структура, содержащая установленное пользовательское имя позиционера |
result_t XIMC_API get_stage_settings | ( | device_t | id, |
stage_settings_t * | stage_settings | ||
) |
Чтение настроек позиционера из EEPROM.
id | идентификатор устройства | |
[out] | stage_settings | структура, содержащая настройки позиционера |
Возвращает информацию о текущем состоянии устройства.
id | идентификатор устройства | |
[out] | status | структура с информацией о текущем состоянии устройства Состояние устройства. Эта структура содержит основные параметры текущего состоянии контроллера такие как скорость, позиция и флаги состояния. |
result_t XIMC_API get_status_calb | ( | device_t | id, |
status_calb_t * | status, | ||
const calibration_t * | calibration | ||
) |
TODO document me Эта структура содержит основные параметры текущего состоянии контроллера такие как скорость, позиция и флаги состояния.
result_t XIMC_API get_sync_in_settings | ( | device_t | id, |
sync_in_settings_t * | sync_in_settings | ||
) |
Чтение настроек для входного импульса синхронизации.
Эта функция считывает структуру с настройками синхронизации, определяющими поведение входа синхронизации, в память контроллера.
id | идентификатор устройства | |
[out] | sync_in_settings | настройки синхронизации |
result_t XIMC_API get_sync_out_settings | ( | device_t | id, |
sync_out_settings_t * | sync_out_settings | ||
) |
Чтение настроек для выходного импульса синхронизации.
Эта функция считывает структуру с настройками синхронизации, определяющими поведение выхода синхронизации, в память контроллера.
result_t XIMC_API get_uart_settings | ( | device_t | id, |
uart_settings_t * | uart_settings | ||
) |
Команда чтения настроек UART.
Эта функция заполняет структуру настроек UART.
Speed | Cкорость UART | |
[out] | uart_settings | настройки UART |
TODO Проверка наличия прошивки в контроллере
id | идентификатор устройства | |
[out] | ret | не ноль, если прошивка присутствует |
Проверка наличия прошивки в контроллере
name | имя устройства | |
[out] | ret | не ноль, если прошивка присутствует |
void XIMC_API logging_callback_stderr_narrow | ( | int | loglevel, |
const wchar_t * | message | ||
) |
Простая функция логирования на stderr в узких (однобайтных) символах
loglevel | уровень логирования |
message | сообщение |
void XIMC_API logging_callback_stderr_wide | ( | int | loglevel, |
const wchar_t * | message | ||
) |
Простая функция логирования на stderr в широких символах
loglevel | уровень логирования |
message | сообщение |
void XIMC_API msec_sleep | ( | unsigned int | msec | ) |
Приостанавливает работу на указанное время
msec | время в миллисекундах |
Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству.
[in] | name | - имя устройства, например COM3 или /dev/tty.s123 |
Проверяет, является ли устройство с именем name XIMC-совместимым.
Будьте осторожны с вызовом этой функции для неизвестных устройств, т.к. она отправляет данные.
[in] | name | - имя устройства |
Команда переводит контроллер в режим обновления прошивки.
Получив такую команду, прошивка платы устанавливает флаг (для загрузчика), отправляет эхо-ответ и перезагружает контроллер.
result_t XIMC_API set_accessories_settings | ( | device_t | id, |
const accessories_settings_t * | accessories_settings | ||
) |
Запись информации о дополнительных аксессуарах в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | accessories_settings | структура, содержащая информацию о дополнительных аксессуарах |
result_t XIMC_API set_add_sync_in_action | ( | device_t | id, |
const add_sync_in_action_t * | add_sync_in_action | ||
) |
Это команда добавляет один элемент в буфер FIFO команд, выполняемых при получении входного импульса синхронизации.
Каждый импульс синхронизации либо выполнится то действие, которое описано в SSNI, если буфер пуст, либо самое старое из загруженных в буфер действий временно подменяет скорость и координату в SSNI. В последнем случае это действие стирается из буфера. Количество оставшихся пустыми элементов буфера можно узнать в структуре GETS.
id | идентификатор устройства |
result_t XIMC_API set_brake_settings | ( | device_t | id, |
const brake_settings_t * | brake_settings | ||
) |
Запись настроек управления тормозом.
id | идентификатор устройства | |
[in] | brake_settings | структура, содержащая настройки управления тормозом |
result_t XIMC_API set_control_settings | ( | device_t | id, |
const control_settings_t * | control_settings | ||
) |
Запись настроек управления мотором.
При выборе CTL_MODE=1 включается управление мотором с помощью джойстика. В этом режиме при отклонении джойстика на максимум двигатель стремится двигаться со скоростью MaxSpeed [i], где i=0, если предыдущим использованием этого режима не было выбрано другое i. Кнопки переключают номер скорости i. При выборе CTL_MODE=2 включается управление мотором с помощью кнопок left/right. При нажатии на кнопки двигатель начинает двигаться в соответствующую сторону со скоростью MaxSpeed [0], по истечении времени Timeout[i] мотор двигается со скоростью MaxSpeed [i+1]. При переходе от MaxSpeed [i] на MaxSpeed [i+1] действует ускорение, как обычно.
id | идентификатор устройства | |
[in] | control_settings | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо. |
result_t XIMC_API set_controller_name | ( | device_t | id, |
const controller_name_t * | controller_name | ||
) |
Запись пользовательского имени контроллера и настроек в FRAM.
id | идентификатор устройства | |
[in] | controller_information | структура, содержащая информацию о контроллере |
result_t XIMC_API set_ctp_settings | ( | device_t | id, |
const ctp_settings_t * | ctp_settings | ||
) |
Запись настроек контроля позиции(для шагового двигателя).
При управлении ШД с энкодером (CTP_BASE 0) появляется возможность обнаруживать потерю шагов. Контроллер знает кол-во шагов на оборот (GENG::StepsPerRev) и разрешение энкодера (GFBS::IPT). При включении контроля (флаг CTP_ENABLED), контроллер запоминает текущую позицию в шагах ШД и текущую позицию энкодера. Далее, на каждом шаге позиция энкодера преобразовывается в шаги и если разница оказывается больше CTPMinError, устанавливается флаг STATE_CTP_ERROR. При управлении ШД с датчиком оборотов (CTP_BASE 1), позиция контролируется по нему. По активному фронту на входе синхронизации контроллер запоминает текущее значение шагов. Далее, при каждом обороте проверяет, на сколько шагов сместились. При рассогласовании более CTPMinError устанавливается флаг STATE_CTP_ERROR.
id | идентификатор устройства | |
[in] | ctp_settings | структура, содержащая настройки контроля позиции |
result_t XIMC_API set_edges_settings | ( | device_t | id, |
const edges_settings_t * | edges_settings | ||
) |
Запись настроек границ и концевых выключателей.
id | идентификатор устройства | |
[in] | edges_settings | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей |
result_t XIMC_API set_encoder_information | ( | device_t | id, |
const encoder_information_t * | encoder_information | ||
) |
Запись информации об энкодере в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | encoder_information | структура, содержащая информацию об энкодере |
result_t XIMC_API set_encoder_settings | ( | device_t | id, |
const encoder_settings_t * | encoder_settings | ||
) |
Запись настроек энкодера в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | encoder_settings | структура, содержащая настройки энкодера |
result_t XIMC_API set_engine_settings | ( | device_t | id, |
const engine_settings_t * | engine_settings | ||
) |
Запись настроек мотора.
Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.
id | идентификатор устройства | |
[in] | engine_settings | структура с настройками мотора |
result_t XIMC_API set_entype_settings | ( | device_t | id, |
const entype_settings_t * | entype_settings | ||
) |
Запись информации о типе мотора и типе силового драйвера.
id | идентификатор устройства | |
[in] | EngineType | тип мотора |
[in] | DriverType | тип силового драйвера |
result_t XIMC_API set_extio_settings | ( | device_t | id, |
const extio_settings_t * | extio_settings | ||
) |
Команда записи параметров настройки режимов внешнего ввода/вывода.
Входные события обрабатываются по фронту. Выходные состояния сигнализируются логическим состоянием. По умолчанию нарастающий фронт считается моментом подачи входного сигнала, а единичное состояние считается активным выходом.
id | идентификатор устройства | |
[in] | extio_settings | настройки EXTIO |
result_t XIMC_API set_feedback_settings | ( | device_t | id, |
const feedback_settings_t * | feedback_settings | ||
) |
Запись настроек обратной связи.
id | идентификатор устройства | |
[in] | IPS | Количество измеряемых отсчётов энкодера на оборот. Диапазон: 1..65535 |
[in] | FeedbackType | тип обратной связи |
[in] | FeedbackFlags | флаги обратной связи |
result_t XIMC_API set_gear_information | ( | device_t | id, |
const gear_information_t * | gear_information | ||
) |
Запись информации о редукторе в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | gear_information | структура, содержащая информацию о редукторе |
result_t XIMC_API set_gear_settings | ( | device_t | id, |
const gear_settings_t * | gear_settings | ||
) |
Запись настроек редуктора в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | gear_settings | структура, содержащая настройки редуктора |
result_t XIMC_API set_hallsensor_information | ( | device_t | id, |
const hallsensor_information_t * | hallsensor_information | ||
) |
Запись информации об датчиках Холла в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | hallsensor_information | структура, содержащая информацию об датчиках Холла |
result_t XIMC_API set_hallsensor_settings | ( | device_t | id, |
const hallsensor_settings_t * | hallsensor_settings | ||
) |
Запись настроек датчиков Холла в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | hallsensor_settings | структура, содержащая настройки датчиков Холла |
result_t XIMC_API set_home_settings | ( | device_t | id, |
const home_settings_t * | home_settings | ||
) |
Команда записи настроек для подхода в home position.
Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.
id | идентификатор устройства | |
[out] | home_settings | настройки калибровки позиции |
result_t XIMC_API set_joystick_settings | ( | device_t | id, |
const joystick_settings_t * | joystick_settings | ||
) |
Запись настроек джойстика.
При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость, а 100% отклонения соответствует MaxSpeed i, где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следуюящая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Расчёт DeadZone проиллюстрирован на графике: !/attachments/download/5563/range25p.png! Зависимость между отклонением и скоростью экспоненциальная, что позволяет без переключения режимов скорости сочетать высокую подвижность и точность. На графике ниже показан пример экспоненциальной зависимости скорости и работы мертвой зоны. !/attachments/download/3092/ExpJoystick.png! Параметр нелинейнойсти можно менять. Нулевой параметр нелинейности соответствует линейной зависимости.
id | идентификатор устройства | |
[in] | joystick_settings | структура, содержащая настройки джойстика |
void XIMC_API set_logging_callback | ( | logging_callback_t | logging_callback | ) |
Устанавливает функцию обратного вызова для логирования.
Вызов назначает стандартный логгер (stderr, syslog), если передан NULL
logging_callback | указатель на функцию обратного вызова |
result_t XIMC_API set_motor_information | ( | device_t | id, |
const motor_information_t * | motor_information | ||
) |
Запись информации о двигателе в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | motor_information | структура, содержащая информацию о двигателе |
result_t XIMC_API set_motor_settings | ( | device_t | id, |
const motor_settings_t * | motor_settings | ||
) |
Запись настроек двигателя в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | motor_settings | структура, содержащая настройки двигателя |
result_t XIMC_API set_move_settings | ( | device_t | id, |
const move_settings_t * | move_settings | ||
) |
Команда записи настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).
id | идентификатор устройства | |
[in] | move_settings | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
result_t XIMC_API set_pid_settings | ( | device_t | id, |
const pid_settings_t * | pid_settings | ||
) |
Запись ПИД коэффициентов.
Эти коэффициенты определяют поведение напряжения. Коэффициенты различны для разных позиционеров. Пожалуйста, загружайте новые настройки, когда вы меняете мотор или позиционер.
id | идентификатор устройства | |
[in] | pid_settings | настройки ПИД |
result_t XIMC_API set_position | ( | device_t | id, |
const set_position_t * | the_set_position | ||
) |
Устанавливает произвольное значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.
То есть меняется основной показатель положения.
id | идентификатор устройства | |
[out] | position | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
result_t XIMC_API set_power_settings | ( | device_t | id, |
const power_settings_t * | power_settings | ||
) |
Команда записи параметров питания мотора.
Используется только с шаговым двигателем.
id | идентификатор устройства | |
[in] | power_settings | структура, содержащая настройки питания шагового мотора |
result_t XIMC_API set_secure_settings | ( | device_t | id, |
const secure_settings_t * | secure_settings | ||
) |
Команда записи установок защит.
id | идентификатор устройства |
secure_settings | структура с настройками критических значений |
result_t XIMC_API set_serial_number | ( | device_t | id, |
const serial_number_t * | serial_number | ||
) |
Запись серийного номера во flash память контроллера.
Вместе с новым серийным номером передаётся "Ключ", только при совпадении которого происходит изменение и сохранение серийного номера. Функция используется только производителем.
id | идентификатор устройства | |
[in] | serial | number структура, содержащая серийный номер и ключ. |
result_t XIMC_API set_stage_information | ( | device_t | id, |
const stage_information_t * | stage_information | ||
) |
Запись информации о позиционере в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | stage_information | структура, содержащая информацию о позиционере |
result_t XIMC_API set_stage_name | ( | device_t | id, |
const stage_name_t * | stage_name | ||
) |
Запись пользовательского имени подвижки в EEPROM.
id | идентификатор устройства | |
[in] | stage_name | структура, содержащая установленное пользовательское имя позиционера |
result_t XIMC_API set_stage_settings | ( | device_t | id, |
const stage_settings_t * | stage_settings | ||
) |
Запись настроек позиционера в EEPROM.
Функция должна использоваться только производителем.
id | идентификатор устройства | |
[in] | stage_settings | структура, содержащая настройки позиционера |
result_t XIMC_API set_sync_in_settings | ( | device_t | id, |
const sync_in_settings_t * | sync_in_settings | ||
) |
Запись настроек для входного импульса синхронизации.
Эта функция записывает структуру с настройками входного импульса синхронизации, определяющими поведение входа синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_in_settings | настройки синхронизации |
result_t XIMC_API set_sync_out_settings | ( | device_t | id, |
const sync_out_settings_t * | sync_out_settings | ||
) |
Запись настроек для выходного импульса синхронизации.
Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_in_settings | настройки синхронизации |
result_t XIMC_API set_uart_settings | ( | device_t | id, |
const uart_settings_t * | uart_settings | ||
) |
Команда записи настроек UART.
Эта функция записывает структуру настроек UART в память контроллера.
Speed | Cкорость UART | |
[in] | uart_settings | настройки UART |
Запись ключа защиты TODO fix docs Функция используется только производителем.
name | имя устройства | |
[in] | key | ключ защиты. Диапазон: 0..4294967295 |
Исправление ошибки драйвера USB в Windows.
Перезагружает драйвер, если устройство существует, но в зависшем состояниe.
void XIMC_API ximc_version | ( | char * | version | ) |
Возвращает версию библиотеки
version | буфер для строки с версией, 32 байт достаточно |