libximc
2.14.27
|
Заголовочный файл для библиотеки libximc. Подробнее...
Структуры данных | |
struct | calibration_t |
Структура калибровок Подробнее... | |
struct | device_network_information_t |
Структура данных с информацией о сетевом устройстве. Подробнее... | |
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 | network_settings_t |
Настройки сети. Подробнее... | |
struct | password_settings_t |
Пароль. Подробнее... | |
struct | calibration_settings_t |
Калибровочные коэффициенты. Подробнее... | |
struct | controller_name_t |
Пользовательское имя контроллера и флаги настройки. Подробнее... | |
struct | nonvolatile_memory_t |
Пользовательские данные для сохранения во FRAM. Подробнее... | |
struct | emf_settings_t |
Настройки EMF. Подробнее... | |
struct | engine_advansed_setup_t |
Настройки EAS. Подробнее... | |
struct | extended_settings_t |
Настройки EST. Подробнее... | |
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 | measurements_t |
Буфер вмещает не более 25и точек. Подробнее... | |
struct | chart_data_t |
Дополнительное состояние устройства. Подробнее... | |
struct | device_information_t |
Информации о контроллере. Подробнее... | |
struct | serial_number_t |
Структура с серийным номером и версией железа. Подробнее... | |
struct | analog_data_t |
Аналоговые данные. Подробнее... | |
struct | debug_read_t |
Отладочные данные. Подробнее... | |
struct | debug_write_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 |
Информация о дополнительных аксессуарах. Подробнее... | |
struct | init_random_t |
Случайный ключ. Подробнее... | |
struct | globally_unique_identifier_t |
Глобальный уникальный идентификатор. Подробнее... |
Макросы | |
#define | XIMC_API |
Макрос импорта библиотеки. | |
#define | XIMC_CALLCONV |
Библиотека вызывающая условные макросы. | |
#define | XIMC_RETTYPE void* |
Возвращаеемый тип потока. | |
#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-устройства | |
#define | ENUMERATE_NETWORK 0x04 |
Проверять сетевые устройства | |
Флаги состояния движения | |
Это битовая маска для побитовых операций. Возвращаются командой 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 0x000003F |
Флаги состояния контроллера. | |
#define | STATE_ERRC 0x0000001 |
Недопустимая команда. | |
#define | STATE_ERRD 0x0000002 |
Обнаружена ошибка целостности данных. | |
#define | STATE_ERRV 0x0000004 |
Недопустимое значение данных. | |
#define | STATE_EEPROM_CONNECTED 0x0000010 |
Подключена память EEPROM с настройками. | |
#define | STATE_IS_HOMED 0x0000020 |
Калибровка выполнена. | |
#define | STATE_SECUR 0x1B3FFC0 |
Флаги опасности. | |
#define | STATE_ALARM 0x0000040 |
Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация. | |
#define | STATE_CTP_ERROR 0x0000080 |
Контроль позиции нарушен(используется только с шаговым двигателем). | |
#define | STATE_POWER_OVERHEAT 0x0000100 |
Перегрев силового драйвера. | |
#define | STATE_CONTROLLER_OVERHEAT 0x0000200 |
Перегрелась микросхема контроллера. | |
#define | STATE_OVERLOAD_POWER_VOLTAGE 0x0000400 |
Превышено напряжение на силовой части. | |
#define | STATE_OVERLOAD_POWER_CURRENT 0x0000800 |
Превышен максимальный ток потребления силовой части. | |
#define | STATE_OVERLOAD_USB_VOLTAGE 0x0001000 |
Не поддерживается. | |
#define | STATE_LOW_USB_VOLTAGE 0x0002000 |
Не поддерживается. | |
#define | STATE_OVERLOAD_USB_CURRENT 0x0004000 |
Не поддерживается. | |
#define | STATE_BORDERS_SWAP_MISSET 0x0008000 |
Достижение неверной границы. | |
#define | STATE_LOW_POWER_VOLTAGE 0x0010000 |
Напряжение на силовой части ниже чем напряжение Low Voltage Protection. | |
#define | STATE_H_BRIDGE_FAULT 0x0020000 |
Получен сигнал от драйвера о неисправности | |
#define | STATE_WINDING_RES_MISMATCH 0x0100000 |
Сопротивления обмоток слишком сильно отличаются друг от друга. | |
#define | STATE_ENCODER_FAULT 0x0200000 |
Получен сигнал от энкодера о неисправности | |
#define | STATE_ENGINE_RESPONSE_ERROR 0x0800000 |
Ошибка реакции двигателя на управляющее воздействие. | |
#define | STATE_EXTIO_ALARM 0x1000000 |
Ошибка вызвана внешним входным сигналом EXTIO. | |
Флаги состояния 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_BRAKE 0x0200 |
Состояние вывода управления тормозом. | |
#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 |
Состояние энкодера неизвестно. | |
#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 |
Состояние обмотки 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 |
Состояние обмотки 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 - команда движения сейчас выполняется). | |
Флаги параметров движения | |
#define | RPM_DIV_1000 0x01 |
Флаг указывает на то что рабочая скорость указанная в команде задана в милли rpm. | |
Флаги параметров мотора | |
#define | ENGINE_REVERSE 0x01 |
Флаг реверса. | |
#define | ENGINE_CURRENT_AS_RMS 0x02 |
Флаг интерпретации значения тока. | |
#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_TEST 0x04 |
Продолжительность включения фиксирована. | |
#define | ENGINE_TYPE_BRUSHLESS 0x05 |
Бесщеточный мотор. | |
Флаги, определяющие тип силового драйвера | |
Это битовая маска для побитовых операций. Определяют тип силового драйвера. Возвращаются командой get_entype_settings.
| |
#define | DRIVER_TYPE_DISCRETE_FET 0x01 |
Силовой драйвер на дискретных мосфет-ключах. | |
#define | DRIVER_TYPE_INTEGRATE 0x02 |
Силовой драйвер с использованием ключей, интегрированных в микросхему. | |
#define | DRIVER_TYPE_EXTERNAL 0x03 |
Внешний силовой драйвер. | |
Флаги параметров питания шагового мотора | |
#define | POWER_REDUCT_ENABLED 0x01 |
Если флаг установлен, уменьшить ток по прошествии CurrReductDelay. | |
#define | POWER_OFF_ENABLED 0x02 |
Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay. | |
#define | POWER_SMOOTH_CURRENT 0x04 |
Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение. | |
Флаги критических параметров. | |
#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 | ALARM_WINDING_MISMATCH 0x40 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала рассогласования обмоток | |
#define | ALARM_ENGINE_RESPONSE 0x80 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала ошибки реакции двигателя на управляющее воздействие | |
Флаги установки положения | |
#define | SETPOS_IGNORE_POSITION 0x01 |
Если установлен, то позиция в шагах и микрошагах не обновляется. | |
#define | SETPOS_IGNORE_ENCODER 0x02 |
Если установлен, то счётчик энкодера не обновляется. | |
Тип обратной связи. | |
#define | FEEDBACK_ENCODER 0x01 |
Обратная связь с помощью энкодера. | |
#define | FEEDBACK_EMF 0x04 |
Обратная связь по ЭДС. | |
#define | FEEDBACK_NONE 0x05 |
Обратная связь отсутствует. | |
#define | FEEDBACK_ENCODER_MEDIATED 0x06 |
Обратная связь по энкодеру, опосредованному относительно двигателя механической передачей (например, винтовой передачей). | |
Флаги обратной связи. | |
#define | FEEDBACK_ENC_REVERSE 0x01 |
Обратный счет у энкодера. | |
#define | FEEDBACK_ENC_TYPE_BITS 0xC0 |
Биты, отвечающие за тип энкодера. | |
#define | FEEDBACK_ENC_TYPE_AUTO 0x00 |
Определяет тип энкодера автоматически. | |
#define | FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40 |
Недифференциальный энкодер. | |
#define | FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80 |
Дифференциальный энкодер. | |
Флаги настроек синхронизации входа | |
#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 |
Если флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала. | |
Флаги настройки режимов внешнего ввода/вывода | |
Это битовая маска для побитовых операций.
| |
#define | EXTIO_SETUP_MODE_IN_BITS 0x0F |
Биты, отвечающие за поведение при переходе сигнала в активное состояние. | |
#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_IN_ALARM 0x05 |
Войти в состояние ALARM при переходе сигнала в активное состояние. | |
#define | EXTIO_SETUP_MODE_OUT_BITS 0xF0 |
Биты выбора поведения на выходе. | |
#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 | 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 |
Управление с помощью кнопок влево/вправо. | |
#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. | |
#define | CTP_ERROR_CORRECTION 0x10 |
Корректировать ошибки, возникающие при проскальзывании, если флаг установлен. | |
Флаги настроек команды home | |
#define | HOME_DIR_FIRST 0x001 |
Определяет направление первоначального движения мотора после поступления команды HOME. | |
#define | HOME_DIR_SECOND 0x002 |
Определяет направление второго движения мотора. | |
#define | HOME_MV_SEC_EN 0x004 |
Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается. | |
#define | HOME_HALF_MV 0x008 |
Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются. | |
#define | HOME_STOP_FIRST_BITS 0x030 |
Биты, отвечающие за выбор сигнала завершения первого движения. | |
#define | HOME_STOP_FIRST_REV 0x010 |
Первое движение завершается по сигналу с Revolution sensor. | |
#define | HOME_STOP_FIRST_SYN 0x020 |
Первое движение завершается по сигналу со входа синхронизации. | |
#define | HOME_STOP_FIRST_LIM 0x030 |
Первое движение завершается по сигналу с концевого переключателя. | |
#define | HOME_STOP_SECOND_BITS 0x0C0 |
Биты, отвечающие за выбор сигнала завершения второго движения. | |
#define | HOME_STOP_SECOND_REV 0x040 |
Второе движение завершается по сигналу с Revolution sensor. | |
#define | HOME_STOP_SECOND_SYN 0x080 |
Второе движение завершается по сигналу со входа синхронизации. | |
#define | HOME_STOP_SECOND_LIM 0x0C0 |
Второе движение завершается по сигналу с концевого переключателя. | |
#define | HOME_USE_FAST 0x100 |
Если флаг установлен, используется быстрый поиск домашней позиции; иначе - традиционный. | |
Флаги настроек четности команды 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_UNKNOWN 0x00 |
Неизвестный двигатель | |
#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_UNKNOWN 0x00 |
Неизвестный сенсор | |
#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 |
Если флаг установлен, то концевые переключатели замкнуты. | |
Флаги автоопределения характеристик обмоток двигателя. | |
#define | BACK_EMF_INDUCTANCE_AUTO 0x01 |
Флаг автоопределения индуктивности обмоток двигателя. | |
#define | BACK_EMF_RESISTANCE_AUTO 0x02 |
Флаг автоопределения сопротивления обмоток двигателя. | |
#define | BACK_EMF_KM_AUTO 0x04 |
Флаг автоопределения электромеханического коэффициента двигателя. |
Определения типов | |
typedef unsigned long long | ulong_t |
typedef long long | long_t |
typedef int | device_t |
Тип идентификатора устройства | |
typedef int | result_t |
Тип, определяющий результат выполнения команды. | |
typedef uint32_t | device_enumeration_t |
Тип, определяющий структуру данных о всех контроллерах, обнаруженных при опросе устройств. | |
typedef struct calibration_t | calibration_t |
Структура калибровок | |
typedef struct device_network_information_t | device_network_information_t |
Структура данных с информацией о сетевом устройстве. |
Функции | |
Группа команд настройки контроллера | |
Функции для чтения/записи большинства настроек контроллера. | |
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) |
Команда записи настроек для подхода в home position с использованием пользовательских единиц. | |
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) |
Команда чтения настроек для подхода в home position с использованием пользовательских единиц. | |
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) |
Команда записи настроек перемещения, с использованием пользовательских единиц (скорость, ускорение, threshold и скорость в режиме антилюфта). | |
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) |
Команда чтения настроек перемещения с использованием пользовательских единиц(скорость, ускорение, threshold и скорость в режиме антилюфта). | |
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_network_settings (device_t id, const network_settings_t *network_settings) |
Команда записи сететвых настроек. | |
result_t XIMC_API | get_network_settings (device_t id, network_settings_t *network_settings) |
Команда чтения сететвых настроек. | |
result_t XIMC_API | set_password_settings (device_t id, const password_settings_t *password_settings) |
Команда записи пароля к веб-странице. | |
result_t XIMC_API | get_password_settings (device_t id, password_settings_t *password_settings) |
Команда чтения пароля к веб-странице. | |
result_t XIMC_API | set_calibration_settings (device_t id, const calibration_settings_t *calibration_settings) |
Команда записи калибровочных коэффициентов. | |
result_t XIMC_API | get_calibration_settings (device_t id, calibration_settings_t *calibration_settings) |
Команда чтения калибровочных коэффициентов. | |
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 | set_nonvolatile_memory (device_t id, const nonvolatile_memory_t *nonvolatile_memory) |
Запись пользовательских данных во FRAM. | |
result_t XIMC_API | get_nonvolatile_memory (device_t id, nonvolatile_memory_t *nonvolatile_memory) |
Чтение пользовательских данных из FRAM. | |
result_t XIMC_API | set_emf_settings (device_t id, const emf_settings_t *emf_settings) |
Запись электромеханических настроек шагового двигателя. | |
result_t XIMC_API | get_emf_settings (device_t id, emf_settings_t *emf_settings) |
Чтение электромеханических настроек шагового двигателя. | |
result_t XIMC_API | set_engine_advansed_setup (device_t id, const engine_advansed_setup_t *engine_advansed_setup) |
Запись расширенных настроек. | |
result_t XIMC_API | get_engine_advansed_setup (device_t id, engine_advansed_setup_t *engine_advansed_setup) |
Чтение расширенных настроек. | |
result_t XIMC_API | set_extended_settings (device_t id, const extended_settings_t *extended_settings) |
Запись расширенных настроек. | |
result_t XIMC_API | get_extended_settings (device_t id, extended_settings_t *extended_settings) |
Чтение расширенных настроек. | |
Группа команд управления движением | |
result_t XIMC_API | command_stop (device_t id) |
Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек). | |
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) |
Перемещение на заданное смещение. | |
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" двигатель смещается из текущей точки на расстояние Antiplay, заданное в настройках мотора (engine_settings), затем двигается в ту же точку. | |
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) |
Устанавливает текущую позицию равной 0. | |
Группа команд сохранения и загрузки настроек | |
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_save_robust_settings (device_t id) |
При получении команды контроллер выполняет операцию сохранения важных настроек (калибровочные коэффициенты и т. | |
result_t XIMC_API | command_read_robust_settings (device_t id) |
Чтение важных настроек (калибровочные коэффициенты и т. | |
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 | command_start_measurements (device_t id) |
Начать измерения и буферизацию скорости, ошибки следования. | |
result_t XIMC_API | get_measurements (device_t id, measurements_t *measurements) |
Команда чтения буфера данных для построения графиков скорости и ошибки следования. | |
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) |
Чтение данных из прошивки для отладки и поиска неисправностей. | |
result_t XIMC_API | set_debug_write (device_t id, const debug_write_t *debug_write) |
Запись данных в прошивку для отладки и поиска неисправностей. | |
Группа команд работы с 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 | get_init_random (device_t id, init_random_t *init_random) |
Чтение случайного числа из контроллера. | |
result_t XIMC_API | get_globally_unique_identifier (device_t id, globally_unique_identifier_t *globally_unique_identifier) |
Считывает уникальный идентификатор каждого чипа, это значение не является случайным. | |
result_t XIMC_API | goto_firmware (device_t id, uint8_t *ret) |
Перезагрузка в прошивку в контроллере | |
result_t XIMC_API | has_firmware (const char *uri, uint8_t *ret) |
Проверка наличия прошивки в контроллере | |
result_t XIMC_API | command_update_firmware (const char *uri, const uint8_t *data, uint32_t data_size) |
Обновление прошивки. | |
result_t XIMC_API | write_key (const char *uri, uint8_t *key) |
Запись ключа защиты Функция используется только производителем. | |
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, void *user_data) |
Прототип функции обратного вызова для логирования | |
device_t XIMC_API | open_device (const char *uri) |
Открывает устройство по имени uri и возвращает идентификатор, который будет использоваться для обращения к устройству. | |
result_t XIMC_API | close_device (device_t *id) |
Закрывает устройство | |
result_t XIMC_API | load_correction_table (device_t *id, const char *namefile) |
Команда загрузки корректирующей таблицы из текстового файла (данная функция устарела). | |
result_t XIMC_API | set_correction_table (device_t id, const char *namefile) |
Команда загрузки корректирующей таблицы из текстового файла. | |
result_t XIMC_API | probe_device (const char *uri) |
Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым. | |
result_t XIMC_API | set_bindy_key (const char *keyfilepath) |
Устарело. | |
device_enumeration_t XIMC_API | enumerate_devices (int enumerate_flags, const char *hints) |
Перечисляет все 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 | get_enumerate_device_controller_name (device_enumeration_t device_enumeration, int device_index, controller_name_t *controller_name) |
Возвращает имя подключенного устройства из перечисления устройств. | |
result_t XIMC_API | get_enumerate_device_stage_name (device_enumeration_t device_enumeration, int device_index, stage_name_t *stage_name) |
Возвращает имя подвижки для подключенного устройства из перечисления устройств. | |
result_t XIMC_API | get_enumerate_device_network_information (device_enumeration_t device_enumeration, int device_index, device_network_information_t *device_network_information) |
Возвращает сетевую информацию о подключенном устройстве из перечисления устройств. | |
result_t XIMC_API | reset_locks () |
Сбрасывает ошибку неправильной передачи данных. | |
result_t XIMC_API | ximc_fix_usbser_sys (const char *device_uri) |
(Устарела) Исправление ошибки драйвера 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, void *user_data) |
Простая функция логирования на stderr в широких символах | |
void XIMC_API | logging_callback_stderr_narrow (int loglevel, const wchar_t *message, void *user_data) |
Простая функция логирования на stderr в узких (однобайтных) символах | |
void XIMC_API | set_logging_callback (logging_callback_t logging_callback, void *user_data) |
Устанавливает функцию обратного вызова для логирования. | |
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) |
Возвращает информацию о текущем состоянии устройства. | |
result_t XIMC_API | get_device_information (device_t id, device_information_t *device_information) |
Возвращает информацию об устройстве. | |
result_t XIMC_API | command_wait_for_stop (device_t id, uint32_t refresh_interval_ms) |
Ожидание остановки контроллера | |
result_t XIMC_API | command_homezero (device_t id) |
Запустить процедуру поиска домашней позиции, подождать её завершения и обнулить позицию в конце. |
Заголовочный файл для библиотеки libximc.
#define ALARM_ON_DRIVER_OVERHEATING 0x01 |
Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера.
Иначе - игнорировать подступающий перегрев с драйвера.
#define BACK_EMF_INDUCTANCE_AUTO 0x01 |
Флаг автоопределения индуктивности обмоток двигателя.
#define BACK_EMF_KM_AUTO 0x04 |
Флаг автоопределения электромеханического коэффициента двигателя.
#define BACK_EMF_RESISTANCE_AUTO 0x02 |
Флаг автоопределения сопротивления обмоток двигателя.
#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 |
Управление с помощью кнопок влево/вправо.
#define CONTROL_MODE_OFF 0x00 |
Управление отключено.
#define CTP_ALARM_ON_ERROR 0x04 |
Войти в состояние ALARM при расхождении позиции, если флаг установлен.
#define CTP_BASE 0x02 |
Управление положением основано на датчике вращения, если установлен этот флаг; в противном случае - на энкодере.
#define CTP_ENABLED 0x01 |
Контроль позиции включен, если флаг установлен.
#define CTP_ERROR_CORRECTION 0x10 |
Корректировать ошибки, возникающие при проскальзывании, если флаг установлен.
Работает только с энкодером. Несовместимо с флагом CTP_ALARM_ON_ERROR.
#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 |
Состояние энкодера неизвестно.
#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_CURRENT_AS_RMS 0x02 |
Флаг интерпретации значения тока.
Если флаг снят, то задаваемое значение тока интерпретируется как максимальная амплитуда тока. Если флаг установлен, то задаваемое значение тока интерпретируется как среднеквадратичное значение тока (для шагового) или как значение тока, посчитанное из максимального тепловыделения (BLDC).
#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 ENGINE_TYPE_TEST 0x04 |
Продолжительность включения фиксирована.
Используется только производителем.
#define ENUMERATE_PROBE 0x01 |
Проверять, является ли устройство XIMC-совместимым.
Будьте осторожны с этим флагом, т.к. он отправляет данные в устройство.
#define EXTIO_SETUP_INVERT 0x02 |
Если флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.
#define EXTIO_SETUP_MODE_IN_ALARM 0x05 |
Войти в состояние ALARM при переходе сигнала в активное состояние.
#define EXTIO_SETUP_MODE_IN_BITS 0x0F |
Биты, отвечающие за поведение при переходе сигнала в активное состояние.
#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_BITS 0xF0 |
Биты выбора поведения на выходе.
#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_ENC_TYPE_AUTO 0x00 |
Определяет тип энкодера автоматически.
#define FEEDBACK_ENC_TYPE_BITS 0xC0 |
Биты, отвечающие за тип энкодера.
#define FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80 |
Дифференциальный энкодер.
#define FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40 |
Недифференциальный энкодер.
#define FEEDBACK_ENCODER 0x01 |
Обратная связь с помощью энкодера.
#define FEEDBACK_ENCODER_MEDIATED 0x06 |
Обратная связь по энкодеру, опосредованному относительно двигателя механической передачей (например, винтовой передачей).
#define FEEDBACK_NONE 0x05 |
Обратная связь отсутствует.
#define HOME_DIR_FIRST 0x001 |
Определяет направление первоначального движения мотора после поступления команды HOME.
Если флаг установлен - вправо; иначе - влево.
#define HOME_DIR_SECOND 0x002 |
Определяет направление второго движения мотора.
Если флаг установлен - вправо; иначе - влево.
#define HOME_HALF_MV 0x008 |
Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются.
#define HOME_MV_SEC_EN 0x004 |
Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается.
#define HOME_STOP_FIRST_BITS 0x030 |
Биты, отвечающие за выбор сигнала завершения первого движения.
#define HOME_STOP_FIRST_LIM 0x030 |
Первое движение завершается по сигналу с концевого переключателя.
#define HOME_STOP_FIRST_REV 0x010 |
Первое движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_FIRST_SYN 0x020 |
Первое движение завершается по сигналу со входа синхронизации.
#define HOME_STOP_SECOND_BITS 0x0C0 |
Биты, отвечающие за выбор сигнала завершения второго движения.
#define HOME_STOP_SECOND_LIM 0x0C0 |
Второе движение завершается по сигналу с концевого переключателя.
#define HOME_STOP_SECOND_REV 0x040 |
Второе движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_SECOND_SYN 0x080 |
Второе движение завершается по сигналу со входа синхронизации.
#define HOME_USE_FAST 0x100 |
Если флаг установлен, используется быстрый поиск домашней позиции; иначе - традиционный.
#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 |
Если флаг установлен, то контроллер пытается вращать двигателем.
Не используйте этот флаг для ожидания завершения команды движения. Вместо него используйте MVCMD_RUNNING из поля MvCmdSts.
#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 RPM_DIV_1000 0x01 |
Флаг указывает на то что рабочая скорость указанная в команде задана в милли rpm.
Применим только для режима обратной связи ENCODER и только для BLDC моторов.
#define SETPOS_IGNORE_ENCODER 0x02 |
Если установлен, то счётчик энкодера не обновляется.
#define SETPOS_IGNORE_POSITION 0x01 |
Если установлен, то позиция в шагах и микрошагах не обновляется.
#define STATE_ALARM 0x0000040 |
Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация.
В состоянии ALARM все команды игнорируются пока не будет послана команда STOP и состояние ALARM деактивируется.
#define STATE_BORDERS_SWAP_MISSET 0x0008000 |
Достижение неверной границы.
#define STATE_BRAKE 0x0200 |
Состояние вывода управления тормозом.
Флаг "1" - если тормоз не запитан(зажат), "0" - если на тормоз подаётся питание(разжат).
#define STATE_BUTTON_LEFT 0x0008 |
Состояние кнопки "влево" (1, если нажата).
#define STATE_BUTTON_RIGHT 0x0004 |
Состояние кнопки "вправо" (1, если нажата).
#define STATE_CONTR 0x000003F |
Флаги состояния контроллера.
#define STATE_CONTROLLER_OVERHEAT 0x0000200 |
Перегрелась микросхема контроллера.
#define STATE_CTP_ERROR 0x0000080 |
Контроль позиции нарушен(используется только с шаговым двигателем).
Флаг устанавливается, когда положение энкодера и положение шага слишком далеки друг от друга.
#define STATE_DIG_SIGNAL 0xFFFF |
Флаги цифровых сигналов.
#define STATE_EEPROM_CONNECTED 0x0000010 |
Подключена память EEPROM с настройками.
Встроенный профиль подвижки загружается из микросхемы памяти EEPROM, что позволяет подключать различные подвижки к контроллеру с автоматической настройкой.
#define STATE_ENC_A 0x2000 |
Состояние ножки A энкодера(флаг "1", если энкодер активен).
#define STATE_ENC_B 0x4000 |
Состояние ножки B энкодера(флаг "1", если энкодер активен).
#define STATE_ENGINE_RESPONSE_ERROR 0x0800000 |
Ошибка реакции двигателя на управляющее воздействие.
Отказ алгоритма управления двигателем означает, что он не может определять правильные решения с помощью полученных данных обратной связи. Единичный отказ может быть вызван механической проблемой. Повторяющийся сбой может быть вызван неправильной настройкой двигателя.
#define STATE_ERRC 0x0000001 |
Недопустимая команда.
Полученная команда отсутствует в списке известных команд контроллера. Наиболее вероятной причиной является устаревшая прошивка.
#define STATE_ERRD 0x0000002 |
Обнаружена ошибка целостности данных.
Данные внутри команды и ее CRC-код не соответствуют, поэтому данные не могут считаться действительными. Эта ошибка может быть вызвана электромагнитными помехами в интерфейсе UART/RS232.
#define STATE_ERRV 0x0000004 |
Недопустимое значение данных.
Обнаружена ошибка в значении. Значения в команде не могут быть применены без коррекции, поскольку они выходят за допустимый диапазон. Вместо исходных значений были использованы исправленные значения.
#define STATE_EXTIO_ALARM 0x1000000 |
Ошибка вызвана внешним входным сигналом EXTIO.
#define STATE_GPIO_LEVEL 0x0020 |
Состояние ввода/вывода общего назначения.
#define STATE_GPIO_PINOUT 0x0010 |
Если флаг установлен, ввод/вывод общего назначения работает как выход; если флаг сброшен, ввод/вывод работает как вход.
#define STATE_IS_HOMED 0x0000020 |
Калибровка выполнена.
Это означает, что шкала относительного положения откалибрована с помощью аппаратного датчика абсолютного положения, такого как концевой переключатель.
#define STATE_LEFT_EDGE 0x0002 |
Достижение левой границы.
#define STATE_LOW_USB_VOLTAGE 0x0002000 |
Не поддерживается.
Слишком низкое напряжение на USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.
#define STATE_OVERLOAD_POWER_CURRENT 0x0000800 |
Превышен максимальный ток потребления силовой части.
#define STATE_OVERLOAD_POWER_VOLTAGE 0x0000400 |
Превышено напряжение на силовой части.
#define STATE_OVERLOAD_USB_CURRENT 0x0004000 |
Не поддерживается.
Превышен максимальный ток потребления USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.
#define STATE_OVERLOAD_USB_VOLTAGE 0x0001000 |
Не поддерживается.
Превышено напряжение на USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.
#define STATE_POWER_OVERHEAT 0x0000100 |
Перегрев силового драйвера.
Управление двигателем отключено до восстановления рабочей температуры драйвера. Этого не должно происходить в коробочных версиях контроллера. Это может произойти в версии контроллера с «голой» платой и с пользовательским радиатором. Решение: используйте другой радиатор.
#define STATE_REV_SENSOR 0x0400 |
Состояние вывода датчика оборотов(флаг "1", если датчик активен).
#define STATE_RIGHT_EDGE 0x0001 |
Достижение правой границы.
#define STATE_SECUR 0x1B3FFC0 |
Флаги опасности.
#define STATE_SYNC_INPUT 0x0800 |
Состояние входа синхронизации(1, если вход синхронизации активен).
#define STATE_SYNC_OUTPUT 0x1000 |
Состояние выхода синхронизации(1, если выход синхронизации активен).
#define STATE_WINDING_RES_MISMATCH 0x0100000 |
Сопротивления обмоток слишком сильно отличаются друг от друга.
Обычно это происходит с поврежденным шаговым двигателем у которого полностью или частично закорочены обмотки.
#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 |
Состояние обмотки 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 |
Состояние обмотки B неизвестно.
#define XIMC_API |
Макрос импорта библиотеки.
Макросы позволяют автоматически импортировать функцию из общей библиотеки. Он автоматически расширяется до dllimport на msvc при включении файла заголовка.
typedef void(XIMC_CALLCONV * logging_callback_t)(int loglevel, const wchar_t *message, void *user_data) |
Прототип функции обратного вызова для логирования
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 | идентификатор устройства |
Запустить процедуру поиска домашней позиции, подождать её завершения и обнулить позицию в конце.
Это удобный путь для калибровки нулевой позиции.
id | идентификатор устройства | |
[out] | ret | RESULT_OK, если контроллер завершил выполнение home и zero корректно или результат первого запроса к контроллеру со статусом отличным от RESULT_OK. |
При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево.
id | идентификатор устройства |
При получении команды "loft" двигатель смещается из текущей точки на расстояние Antiplay, заданное в настройках мотора (engine_settings), затем двигается в ту же точку.
id | идентификатор устройства |
При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в полях Position, uPosition.
Для шагового мотора uPosition задает значение микрошага, для DC мотора это поле не используется.
id | идентификатор устройства |
Position | заданная позиция. |
uPosition | часть позиции в микрошагах. Величина микрошага и диапазон допустимых значений для данного поля зависят от выбранного режима деления шага (см. поле MicrostepMode в engine_settings). |
result_t XIMC_API command_move_calb | ( | device_t | id, |
float | Position, | ||
const calibration_t * | calibration | ||
) |
Перемещение в позицию с использованием пользовательских единиц.
При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в поле Position.
id | идентификатор устройства |
Position | позиция для перемещения |
calibration | настройки пользовательских единиц |
Перемещение на заданное смещение.
При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на количество импульсов указанное в полях DeltaPosition, uDeltaPosition. Для шагового мотора uDeltaPosition задает значение микрошага, для DC мотора это поле не используется.
DeltaPosition | смещение. |
uDeltaPosition | часть смещения в микрошагах. Величина микрошага и диапазон допустимых значений для данного поля зависят от выбранного режима деления шага (см. поле MicrostepMode в engine_settings). |
id | идентификатор устройства |
result_t XIMC_API command_movr_calb | ( | device_t | id, |
float | DeltaPosition, | ||
const calibration_t * | calibration | ||
) |
Перемещение на заданное смещение с использованием пользовательских единиц.
При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на расстояние указанное в поле DeltaPosition.
DeltaPosition | смещение. |
id | идентификатор устройства |
calibration | настройки пользовательских единиц |
Немедленное отключение питания двигателя вне зависимости от его состояния.
Команда предназначена для ручного управления питанием двигателя. Не следует использовать эту команду для отключения двигателя во время движения, так как питание может снова включиться для завершения движения. Для автоматического управления питанием двигателя и его отключения после остановки следует использовать систему управления электропитанием.
id | идентификатор устройства |
Чтение важных настроек (калибровочные коэффициенты и т.
п.) контроллера из flash памяти в оперативную, заменяя текущие настройки. Только для производителя.
id | идентификатор устройства |
Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.
id | идентификатор устройства |
Перезагрузка контроллера.
Функция используется только производителем.
id | идентификатор устройства |
При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо.
id | идентификатор устройства |
При получении команды контроллер выполняет операцию сохранения важных настроек (калибровочные коэффициенты и т.
п.) во встроенную энергонезависимую память контроллера. Только для производителя.
id | идентификатор устройства |
При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера.
id | идентификатор устройства |
Плавная остановка.
Двигатель останавливается с ускорением замедления.
id | идентификатор устройства |
Начать измерения и буферизацию скорости, ошибки следования.
id | идентификатор устройства |
Немедленная остановка двигателя, переход в состояние STOP,
ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек).
При вызове этой команды сбрасывается флаг ALARM.
id | идентификатор устройства |
result_t XIMC_API command_update_firmware | ( | const char * | uri, |
const uint8_t * | data, | ||
uint32_t | data_size | ||
) |
Обновление прошивки.
Команда только для производителя.
uri | идентификатор устройства |
data | указатель на массив байтов прошивки |
data_size | размер массива в байтах |
Ожидание остановки контроллера
id | идентификатор устройства | |
refresh_interval_ms | Интервал обновления. Функция ждет столько миллисекунд между отправками контроллеру запроса get_status для проверки статуса остановки. Рекомендуемое значение интервала обновления - 10 мс. Используйте значения меньше 3 мс только если это необходимо - малые значения интервала обновления незначительно ускоряют обнаружение остановки, но создают существенно больший поток данных в канале связи контроллер-компьютер. | |
[out] | ret | RESULT_OK, если контроллер остановился, в противном случае первый результат выполнения команды get_status со статусом отличным от RESULT_OK. |
Устанавливает текущую позицию равной 0.
Устанавливает позицию, в которую осуществляется движение по командам move и movr, равной нулю во всех случаях, кроме движения к позиции назначения. В последнем случае позиция назначения пересчитывается так, что в абсолютном положении точка назначения не меняется. То есть если мы находились в точке 400 и двигались к 500, то команда Zero делает текущую позицию 0, а позицию назначения - 100. Не изменяет режим движения: т.е. если движение осуществлялось, то оно продолжается; если мотор находился в режиме "удержания", то тип удержания сохраняется.
id | идентификатор устройства |
device_enumeration_t XIMC_API enumerate_devices | ( | int | enumerate_flags, |
const char * | hints | ||
) |
Перечисляет все XIMC-совместимые устройства.
[in] | enumerate_flags | флаги поиска устройств |
[in] | hints | дополнительная информация для поиска |
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_calibration_settings | ( | device_t | id, |
calibration_settings_t * | calibration_settings | ||
) |
Команда чтения калибровочных коэффициентов.
Команда только для производителя. Эта функция заполняет структуру калибровочных коэффициентов. Эти коэффициенты используются для пересчёта кодов АЦП в токи обмоток и полный ток потребления. Коэффициенты сгруппированы в пары, XXX_A и XXX_B; пары представляют собой коэффициенты линейного уравнения. Первый коэффициент - тангенс угла наклона, второй - постоянное смещение. Таким образом, XXX_Current[mA] = XXX_A[mA/ADC]*XXX_ADC_CODE[ADC] + XXX_B[mA].
id | идентификатор устройства | |
[out] | calibration_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_control_settings_calb | ( | device_t | id, |
control_settings_calb_t * | control_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Чтение настроек управления мотором с использованием пользовательских единиц.
При выборе 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_calb | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо. |
calibration | настройки пользовательских единиц |
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] | debug_read | Данные для отладки. |
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_edges_settings_calb | ( | device_t | id, |
edges_settings_calb_t * | edges_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Чтение настроек границ и концевых выключателей с использованием пользовательских единиц.
id | идентификатор устройства | |
[out] | edges_settings_calb | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей |
calibration | настройки пользовательских единиц |
result_t XIMC_API get_emf_settings | ( | device_t | id, |
emf_settings_t * | emf_settings | ||
) |
Чтение электромеханических настроек шагового двигателя.
Настройки различны для разных двигателей.
id | идентификатор устройства | |
[out] | emf_settings | настройки EMF |
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_advansed_setup | ( | device_t | id, |
engine_advansed_setup_t * | engine_advansed_setup | ||
) |
Чтение расширенных настроек.
id | идентификатор устройства | |
[out] | engine_advansed_setup | настройки EAS |
result_t XIMC_API get_engine_settings | ( | device_t | id, |
engine_settings_t * | engine_settings | ||
) |
Чтение настроек мотора.
Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.
id | идентификатор устройства | |
[out] | engine_settings | структура с настройками мотора |
result_t XIMC_API get_engine_settings_calb | ( | device_t | id, |
engine_settings_calb_t * | engine_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Чтение настроек мотора с использованием пользовательских единиц.
Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.
id | идентификатор устройства | |
[out] | engine_settings_calb | структура с настройками мотора |
calibration | настройки пользовательских единиц |
result_t XIMC_API get_entype_settings | ( | device_t | id, |
entype_settings_t * | entype_settings | ||
) |
Возвращает информацию о типе мотора и силового драйвера.
id | идентификатор устройства | |
[out] | entype_settings | структура, содержащая настройки типа мотора и типа силового драйвера |
result_t XIMC_API get_enumerate_device_controller_name | ( | device_enumeration_t | device_enumeration, |
int | device_index, | ||
controller_name_t * | controller_name | ||
) |
Возвращает имя подключенного устройства из перечисления устройств.
Возвращает имя устройства с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
[out] | controller | name имя устройства |
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_network_information | ( | device_enumeration_t | device_enumeration, |
int | device_index, | ||
device_network_information_t * | device_network_information | ||
) |
Возвращает сетевую информацию о подключенном устройстве из перечисления устройств.
Возвращает сетевую информацию о устройстве с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
[out] | device_network_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_enumerate_device_stage_name | ( | device_enumeration_t | device_enumeration, |
int | device_index, | ||
stage_name_t * | stage_name | ||
) |
Возвращает имя подвижки для подключенного устройства из перечисления устройств.
Возвращает имя подвижки устройства с номером device_index.
[in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах |
[in] | device_index | номер устройства |
[out] | stage | name имя подвижки |
result_t XIMC_API get_extended_settings | ( | device_t | id, |
extended_settings_t * | extended_settings | ||
) |
Чтение расширенных настроек.
В настоящее время не используется.
id | идентификатор устройства | |
[out] | extended_settings | настройки EST |
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. Поле устарело, рекомендуется записывать 0 в IPS и использовать расширенное поле CountsPerTurn. Может потребоваться обновление микропрограммы контроллера до последней версии. |
[out] | FeedbackType | тип обратной связи |
[out] | FeedbackFlags | флаги обратной связи |
[out] | CountsPerTurn | количество отсчётов энкодера на оборот вала. Диапазон: 1..4294967295. Для использования поля CountsPerTurn нужно записать 0 в поле IPS, иначе будет использоваться значение из поля IPS. |
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_globally_unique_identifier | ( | device_t | id, |
globally_unique_identifier_t * | globally_unique_identifier | ||
) |
Считывает уникальный идентификатор каждого чипа, это значение не является случайным.
Только для производителя. Уникальный идентификатор может быть использован в качестве инициализационного вектора для операций шифрования бутлоадера или в качестве серийного номера для USB и других применений.
id | идентификатор устройства | |
[out] | globally_unique_identifier | результат полей 0-3 определяет уникальный 128-битный идентификатор. |
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_home_settings_calb | ( | device_t | id, |
home_settings_calb_t * | home_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Команда чтения настроек для подхода в home position с использованием пользовательских единиц.
Эта функция заполняет структуру настроек, использующихся для калибровки позиции, в память контроллера.
id | идентификатор устройства | |
[out] | home_settings_calb | настройки калибровки позиции |
calibration | настройки пользовательских единиц |
result_t XIMC_API get_init_random | ( | device_t | id, |
init_random_t * | init_random | ||
) |
Чтение случайного числа из контроллера.
Только для производителя.
id | идентификатор устройства | |
[out] | init_random | случайная последовательность, сгенерированная контроллером |
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) до правого или левого максимума. Подробнее см. раздел "Управление с помощью джойстика" на сайте https://doc.xisupport.com/ru/8smc5-usb/8SMCn-USB/Technical_specification/Additional_features/Joystick_control.html.
id | идентификатор устройства | |
[out] | joystick_settings | структура, содержащая настройки джойстика |
result_t XIMC_API get_measurements | ( | device_t | id, |
measurements_t * | measurements | ||
) |
Команда чтения буфера данных для построения графиков скорости и ошибки следования.
Заполнение буфера начинается по команде "start_measurements". Буфер вмещает 25 точек, точки снимаются с периодом 1 мс. Для создания устойчивой системы следует считывать данные каждые 20 мс, если буфер полностью заполнен, то рекомендуется повторять считывания каждые 5 мс до момента пока буфер вновь не станет заполнен 20-ю точками.
id | идентификатор устройства | |
[out] | measurements | структура с буфером и его длинной. |
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_move_settings_calb | ( | device_t | id, |
move_settings_calb_t * | move_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Команда чтения настроек перемещения с использованием пользовательских единиц(скорость, ускорение, threshold и скорость в режиме антилюфта).
id | идентификатор устройства | |
[out] | move_settings_calb | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
calibration | настройки пользовательских единиц |
result_t XIMC_API get_network_settings | ( | device_t | id, |
network_settings_t * | network_settings | ||
) |
Команда чтения сететвых настроек.
Только для производителя. Эта функция возвращает текущие сетевые настройки.
DHCPEnabled | DHCP включен (1) или нет (0) |
IPv4Address[4] | Массив[4] с IP-адресом |
SubnetMask[4] | Массив[4] с маской подсети |
DefaultGateway[4] | Массив[4] со шлюзом сети |
result_t XIMC_API get_nonvolatile_memory | ( | device_t | id, |
nonvolatile_memory_t * | nonvolatile_memory | ||
) |
Чтение пользовательских данных из FRAM.
id | идентификатор устройства | |
[out] | nonvolatile_memory | структура, содержащая установленные пользовательские данные |
result_t XIMC_API get_password_settings | ( | device_t | id, |
password_settings_t * | password_settings | ||
) |
Команда чтения пароля к веб-странице.
Только для производителя. Эта функция пользователяет прочитать пользовательский пароль к веб-странице из памяти контроллера.
UserPassword[20] | Строчка-пароль для доступа к веб-странице |
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] | 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 | ||
) |
Считывает значение положения в пользовательских единицах для шагового двигателя и в шагах энкодера всех двигателей.
id | идентификатор устройства | |
[out] | the_get_position_calb | структура, содержащая позицию мотора. |
calibration | настройки пользовательских единиц |
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 | ||
) |
Возвращает информацию о текущем состоянии устройства.
id | идентификатор устройства | |
[out] | status | структура с информацией о текущем состоянии устройства |
calibration | настройки пользовательских единиц Состояние устройства в калиброванных единицах. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния, размерные величины выводятся в калиброванных единицах. |
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_in_settings_calb | ( | device_t | id, |
sync_in_settings_calb_t * | sync_in_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Чтение настроек для входного импульса синхронизации с использованием пользовательских единиц.
Эта функция считывает структуру с настройками синхронизации, определяющими поведение входа синхронизации, в память контроллера.
id | идентификатор устройства | |
[out] | sync_in_settings_calb | настройки синхронизации |
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 | ||
) |
Чтение настроек для выходного импульса синхронизации с использованием пользовательских единиц.
Эта функция считывает структуру с настройками синхронизации, определяющими поведение выхода синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_out_settings_calb | настройки синхронизации |
calibration | настройки пользовательских единиц |
result_t XIMC_API get_uart_settings | ( | device_t | id, |
uart_settings_t * | uart_settings | ||
) |
Команда чтения настроек UART.
Эта функция заполняет структуру настроек UART.
Speed | Cкорость UART | |
[out] | uart_settings | настройки UART |
Перезагрузка в прошивку в контроллере
id | идентификатор устройства | |
[out] | ret | RESULT_OK, если переход из загрузчика в прошивку возможен. После ответа на эту команду выполняется переход. RESULT_NO_FIRMWARE, если прошивка не найдена. RESULT_ALREADY_IN_FIRMWARE, если эта команда была вызвана из прошивки. |
Проверка наличия прошивки в контроллере
uri | уникальный идентификатор ресурса устройства | |
[out] | ret | ноль, если прошивка присутствует |
Команда загрузки корректирующей таблицы из текстового файла (данная функция устарела).
Используйте функцию set_correction_table(device_t id, const char* namefile). Таблица используется для коррекции положения в случае механических неточностей. Работает для некоторых параметров в _calb командах.
id | - идентификатор устройства | |
[in] | namefile | - имя файла должно быть полным. Если используется короткое имя, файл должен находится в директории приложения. Если имя файла равно NULL таблица коррекции будет очищена. Формат файла: два столбца разделенных табуляцией. Заголовки столбцов строковые. Данные действительные разделитель точка. Первый столбец координата. Второй - отклонение вызванное ошибкой механики. Между координатами отклонение расчитывается линейно. За диапазоном константа равная отклонению на границе. Максимальная длина таблицы 100 строк. |
void XIMC_API logging_callback_stderr_narrow | ( | int | loglevel, |
const wchar_t * | message, | ||
void * | user_data | ||
) |
Простая функция логирования на stderr в узких (однобайтных) символах
loglevel | уровень логирования |
message | сообщение |
void XIMC_API logging_callback_stderr_wide | ( | int | loglevel, |
const wchar_t * | message, | ||
void * | user_data | ||
) |
Простая функция логирования на stderr в широких символах
loglevel | уровень логирования |
message | сообщение |
void XIMC_API msec_sleep | ( | unsigned int | msec | ) |
Приостанавливает работу на указанное время
msec | время в миллисекундах |
Открывает устройство по имени uri и возвращает идентификатор, который будет использоваться для обращения к устройству.
[in] | uri | - уникальный идентификатор устройства. URI устройства имеет вид "xi-com:port" или "xi-net://host/serial" или "xi-emu:///abs_path_to_file". На POSIX системах допускается пропуск "рутовского" слэша; например, "xi-emu:///home/user/virt_controller.bin". Для USB-COM устройства "port" это URI устройства в ОС. Например, "xi-com:\\\\.\\COM3" в Windows (с учётом экранирования двойные обратные слэши преобразуются в одинарные) или "xi-com:///dev/ttyACM0" в Linux/Mac. Для сетевого устройства "host" это IPv4 адрес или полностью определённое имя домена, "serial" это серийный номер устройства в шестнадцатеричной системе. Например, "xi-net://192.168.0.1/00001234" или "xi-net://hostname.com/89ABCDEF". Для работы по UDP протоколу используйте "xi-udp://<ip/host>:<port>. Например, "xi-udp://192.168.0.1:1818". Для виртуального устройства "abs_file_to_file" это путь к файлу с сохраненным состоянием устройства. Если файл не существует, он будет создан и инициализирован значениями по умолчанию. Например, "xi-emu:///C:/dir/file.bin" в Windows или "xi-emu:///home/user/file.bin" в Linux/Mac. |
Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым.
Будьте осторожны с вызовом этой функции для неизвестных устройств, т.к. она отправляет данные.
[in] | uri | - уникальный идентификатор устройства |
Команда переводит контроллер в режим обновления прошивки.
Только для производителя. Получив такую команду, прошивка платы устанавливает флаг (для загрузчика), отправляет эхо-ответ и перезагружает контроллер.
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_brake_settings | ( | device_t | id, |
const brake_settings_t * | brake_settings | ||
) |
Запись настроек управления тормозом.
id | идентификатор устройства | |
[in] | brake_settings | структура, содержащая настройки управления тормозом |
result_t XIMC_API set_calibration_settings | ( | device_t | id, |
const calibration_settings_t * | calibration_settings | ||
) |
Команда записи калибровочных коэффициентов.
Команда только для производителя. Эта функция записывает структуру калибровочных коэффициентов в память контроллера. Эти коэффициенты используются для пересчёта кодов АЦП в токи обмоток и полный ток потребления. Коэффициенты сгруппированы в пары, XXX_A и XXX_B; пары представляют собой коэффициенты линейного уравнения. Первый коэффициент - тангенс угла наклона, второй - постоянное смещение. Таким образом, XXX_Current[mA] = XXX_A[mA/ADC]*XXX_ADC_CODE[ADC] + XXX_B[mA].
id | идентификатор устройства | |
[in] | calibration_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_control_settings_calb | ( | device_t | id, |
const control_settings_calb_t * | control_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Запись настроек управления мотором с использованием пользовательских единиц.
При выборе 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_calb | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо. |
calibration | настройки пользовательских единиц |
result_t XIMC_API set_controller_name | ( | device_t | id, |
const controller_name_t * | controller_name | ||
) |
Запись пользовательского имени контроллера и настроек в FRAM.
id | идентификатор устройства | |
[in] | controller_information | структура, содержащая информацию о контроллере |
Команда загрузки корректирующей таблицы из текстового файла.
Таблица используется для коррекции положения в случае механических неточностей. Работает для некоторых параметров в _calb командах.
id | - идентификатор устройства | |
[in] | namefile | - путь до файла должен быть полным или относительным. Если параметр равен NULL, таблица коррекции будет очищена. Формат файла: два столбца, разделенных табуляцией. Заголовки столбцов строковые. Данные действительные, разделитель точка. Первый столбец - координата. Второй - отклонение, вызванное ошибкой механики. Максимальная длина таблицы 100 строк. Координаты должны быть отсортированы по возрастанию. |
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_debug_write | ( | device_t | id, |
const debug_write_t * | debug_write | ||
) |
Запись данных в прошивку для отладки и поиска неисправностей.
Команда только для производителя.
id | идентификатор устройства | |
[in] | debug_write | Данные для отладки. |
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_edges_settings_calb | ( | device_t | id, |
const edges_settings_calb_t * | edges_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Запись настроек границ и концевых выключателей с использованием пользовательских единиц.
id | идентификатор устройства | |
[in] | edges_settings_calb | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей |
calibration | настройки пользовательских единиц |
result_t XIMC_API set_emf_settings | ( | device_t | id, |
const emf_settings_t * | emf_settings | ||
) |
Запись электромеханических настроек шагового двигателя.
Настройки различны для разных двигателей. Пожалуйста, загружайте новые настройки, когда вы меняете мотор.
id | идентификатор устройства | |
[in] | emf_settings | настройки EMF |
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_advansed_setup | ( | device_t | id, |
const engine_advansed_setup_t * | engine_advansed_setup | ||
) |
Запись расширенных настроек.
id | идентификатор устройства | |
[in] | engine_advansed_setup | настройки EAS |
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_engine_settings_calb | ( | device_t | id, |
const engine_settings_calb_t * | engine_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Запись настроек мотора с использованием пользовательских единиц.
Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.
id | идентификатор устройства | |
[in] | engine_settings_calb | структура с настройками мотора |
calibration | настройки пользовательских единиц |
result_t XIMC_API set_entype_settings | ( | device_t | id, |
const entype_settings_t * | entype_settings | ||
) |
Запись информации о типе мотора и типе силового драйвера.
id | идентификатор устройства | |
[in] | entype_settings | структура, содержащая настройки типа мотора и типа силового драйвера |
result_t XIMC_API set_extended_settings | ( | device_t | id, |
const extended_settings_t * | extended_settings | ||
) |
Запись расширенных настроек.
В настоящее время не используется.
id | идентификатор устройства | |
[in] | extended_settings | настройки EST |
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. Поле устарело, рекомендуется записывать 0 в IPS и использовать расширенное поле CountsPerTurn. Может потребоваться обновление микропрограммы контроллера до последней версии. |
[in] | FeedbackType | тип обратной связи |
[in] | FeedbackFlags | флаги обратной связи |
[in] | CountsPerTurn | количество отсчётов энкодера на оборот вала. Диапазон: 1..4294967295. Для использования поля CountsPerTurn нужно записать 0 в поле IPS, иначе будет использоваться значение из поля IPS. |
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_home_settings_calb | ( | device_t | id, |
const home_settings_calb_t * | home_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Команда записи настроек для подхода в home position с использованием пользовательских единиц.
Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.
id | идентификатор устройства | |
[in] | home_settings_calb | настройки калибровки позиции |
calibration | настройки пользовательских единиц |
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) до правого или левого максимума. Подробнее см. раздел "Управление с помощью джойстика" на сайте https://doc.xisupport.com/ru/8smc5-usb/8SMCn-USB/Technical_specification/Additional_features/Joystick_control.html.
id | идентификатор устройства | |
[in] | joystick_settings | структура, содержащая настройки джойстика |
void XIMC_API set_logging_callback | ( | logging_callback_t | logging_callback, |
void * | user_data | ||
) |
Устанавливает функцию обратного вызова для логирования.
Вызов назначает стандартный логгер (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_move_settings_calb | ( | device_t | id, |
const move_settings_calb_t * | move_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Команда записи настроек перемещения, с использованием пользовательских единиц (скорость, ускорение, threshold и скорость в режиме антилюфта).
id | идентификатор устройства | |
[in] | move_settings_calb | структура, содержащая настройки движения: скорость, ускорение, и т.д. |
calibration | настройки пользовательских единиц |
result_t XIMC_API set_network_settings | ( | device_t | id, |
const network_settings_t * | network_settings | ||
) |
Команда записи сететвых настроек.
Только для производителя. Эта функция меняет сетевые настройки на заданные.
DHCPEnabled | DHCP включен (1) или нет (0) |
IPv4Address[4] | Массив[4] с IP-адресом |
SubnetMask[4] | Массив[4] с маской подсети |
DefaultGateway[4] | Массив[4] со шлюзом сети |
result_t XIMC_API set_nonvolatile_memory | ( | device_t | id, |
const nonvolatile_memory_t * | nonvolatile_memory | ||
) |
Запись пользовательских данных во FRAM.
id | идентификатор устройства | |
[in] | nonvolatile_memory | структура, содержащая установленные пользовательские данные |
result_t XIMC_API set_password_settings | ( | device_t | id, |
const password_settings_t * | password_settings | ||
) |
Команда записи пароля к веб-странице.
Только для производителя. Эта функция меняет пользовательский пароль к веб-странице.
UserPassword[20] | Строчка-пароль для доступа к веб-странице |
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] | 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 | ||
) |
Устанавливает произвольное значение положения и значение энкодера всех двигателей с использованием пользовательских единиц.
id | идентификатор устройства | |
[out] | the_set_position_calb | структура, содержащая позицию мотора. |
calibration | настройки пользовательских единиц |
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_in_settings_calb | ( | device_t | id, |
const sync_in_settings_calb_t * | sync_in_settings_calb, | ||
const calibration_t * | calibration | ||
) |
Запись настроек для входного импульса синхронизации с использованием пользовательских единиц.
Эта функция записывает структуру с настройками входного импульса синхронизации, определяющими поведение входа синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_in_settings_calb | настройки синхронизации |
calibration | настройки пользовательских единиц |
result_t XIMC_API set_sync_out_settings | ( | device_t | id, |
const sync_out_settings_t * | sync_out_settings | ||
) |
Запись настроек для выходного импульса синхронизации.
Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | 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 | ||
) |
Запись настроек для выходного импульса синхронизации с использованием пользовательских единиц.
Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.
id | идентификатор устройства | |
[in] | sync_out_settings_calb | настройки синхронизации |
calibration | настройки пользовательских единиц |
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 |
Запись ключа защиты Функция используется только производителем.
uri | идентификатор устройства | |
[in] | key | ключ защиты. Диапазон: 0..4294967295 |
(Устарела) Исправление ошибки драйвера USB в Windows.
Подсистема USB-COM на OC Windows не всегда работает корректно. При работе возможны следующие неисправности: Все попытки открыть устройство заканчиваются неудачно. Устройство можно открыть и отправить в него данные, но ответные данные не приходят. Эти проблемы исправляются переподключением устройства или его переинециализацией в диспетчере устройств. Функция ximc_fix_usbser_sys() автоматизирует процесс удаления-обнаружения.
void XIMC_API ximc_version | ( | char * | version | ) |
Возвращает версию библиотеки
version | буфер для строки с версией, 32 байт достаточно |