libximc  2.14.27
Структуры данных | Макросы | Определения типов
Файл ximc.h

Заголовочный файл для библиотеки 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.

См. также
get_status
status_t::MoveSts, get_status_impl
#define MOVE_STATE_MOVING   0x01
 Если флаг установлен, то контроллер пытается вращать двигателем.
#define MOVE_STATE_TARGET_SPEED   0x02
 Флаг устанавливается при достижении заданной скорости.
#define MOVE_STATE_ANTIPLAY   0x04
 Выполняется компенсация люфта, если флаг установлен.
Флаги настроек контроллера

Это битовая маска для побитовых операций.

См. также
set_controller_name
get_controller_name
controller_name_t::CtrlFlags, get_controller_name, set_controller_name
#define EEPROM_PRECEDENCE   0x01
 Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM.
Флаги состояния питания шагового мотора

Это битовая маска для побитовых операций. Возвращаются командой get_status.

См. также
get_status
status_t::PWRSts, get_status_impl
#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
 Обмотки двигателя питаются от максимального тока, который драйвер может обеспечить при этом напряжении.
Флаги состояния

Это битовая маска для побитовых операций. Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.

См. также
get_status
status_t::Flags, get_status_impl
#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 входов

Это битовая маска для побитовых операций. Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.

См. также
get_status
status_t::GPIOFlags, get_status_impl
#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", если энкодер активен).
Состояние энкодера

Это битовая маска для побитовых операций. Состояние энкодера, подключенного к контроллеру.

См. также
get_status
status_t::EncSts, get_status_impl
#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
 Энкодер подключен и работает должным образом.
Состояние обмоток

Это битовая маска для побитовых операций. Состояние обмоток двигателя, подключенного к контроллеру.

См. также
get_status
status_t::WindSts, get_status_impl
#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) и статуса её выполнения (выполняется, завершено, ошибка)

См. также
get_status
status_t::MvCmdSts, get_status_impl
#define MVCMD_NAME_BITS   0x3F
 Битовая маска активной команды.
#define MVCMD_UKNWN   0x00
 Неизвестная команда.
#define MVCMD_MOVE   0x01
 Команда move.
#define MVCMD_MOVR   0x02
 Команда movr.
#define MVCMD_LEFT   0x03
 Команда left.
#define MVCMD_RIGHT   0x04
 Команда rigt.
#define MVCMD_STOP   0x05
 Команда stop.
#define MVCMD_HOME   0x06
 Команда home.
#define MVCMD_LOFT   0x07
 Команда loft.
#define MVCMD_SSTP   0x08
 Команда плавной остановки(SSTP).
#define MVCMD_ERROR   0x40
 Состояние завершения движения (1 - команда движения выполнена с ошибкой, 0 - команда движения выполнена корректно).
#define MVCMD_RUNNING   0x80
 Состояние команды движения (0 - команда движения выполнена, 1 - команда движения сейчас выполняется).
Флаги параметров движения

Это битовая маска для побитовых операций. Определяют настройки параметров движения. Возвращаются командой get_move_settings.

См. также
set_move_settings
get_move_settings
move_settings_t::MoveFlags, get_move_settings, set_move_settings
#define RPM_DIV_1000   0x01
 Флаг указывает на то что рабочая скорость указанная в команде задана в милли rpm.
Флаги параметров мотора

Это битовая маска для побитовых операций. Определяют настройки движения и работу ограничителей. Возвращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ.

См. также
set_engine_settings
get_engine_settings
engine_settings_t::EngineFlags, get_engine_settings, set_engine_settings
#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. Могут быть объединены с помощью логического ИЛИ.

См. также
engine_settings_t::flags
set_engine_settings
get_engine_settings
engine_settings_t::MicrostepMode, get_engine_settings, set_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.

См. также
engine_settings_t::flags
set_entype_settings
get_entype_settings
entype_settings_t::EngineType, get_entype_settings, set_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.

См. также
engine_settings_t::flags
set_entype_settings
get_entype_settings
entype_settings_t::DriverType, get_entype_settings, set_entype_settings
#define DRIVER_TYPE_DISCRETE_FET   0x01
 Силовой драйвер на дискретных мосфет-ключах.
#define DRIVER_TYPE_INTEGRATE   0x02
 Силовой драйвер с использованием ключей, интегрированных в микросхему.
#define DRIVER_TYPE_EXTERNAL   0x03
 Внешний силовой драйвер.
Флаги параметров питания шагового мотора

Это битовая маска для побитовых операций. Возвращаются командой get_power_settings.

См. также
get_power_settings
set_power_settings
power_settings_t::PowerFlags, get_power_settings, set_power_settings
#define POWER_REDUCT_ENABLED   0x01
 Если флаг установлен, уменьшить ток по прошествии CurrReductDelay.
#define POWER_OFF_ENABLED   0x02
 Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay.
#define POWER_SMOOTH_CURRENT   0x04
 Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение.
Флаги критических параметров.

Это битовая маска для побитовых операций. Возвращаются командой get_secure_settings.

См. также
get_secure_settings
set_secure_settings
secure_settings_t::Flags, get_secure_settings, set_secure_settings
#define ALARM_ON_DRIVER_OVERHEATING   0x01
 Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера.
#define LOW_UPWR_PROTECTION   0x02
 Если установлен, то выключать силовую часть при напряжении меньшем LowUpwrOff.
#define H_BRIDGE_ALERT   0x04
 Если установлен, то выключать силовую часть при сигнале неполадки в одном из транзисторных мостов.
#define ALARM_ON_BORDERS_SWAP_MISSET   0x08
 Если флаг установлен, то войти в состояние Alarm при получении сигнала c противоположного концевого выключателя.
#define ALARM_FLAGS_STICKING   0x10
 Если флаг установлен, то только по команде STOP возможен сброс всех флагов ALARM.
#define USB_BREAK_RECONNECT   0x20
 Если флаг установлен, то будет включен блок перезагрузки USB при поломке связи.
#define ALARM_WINDING_MISMATCH   0x40
 Если флаг установлен, то войти в состояние Alarm при получении сигнала рассогласования обмоток
#define ALARM_ENGINE_RESPONSE   0x80
 Если флаг установлен, то войти в состояние Alarm при получении сигнала ошибки реакции двигателя на управляющее воздействие
Флаги установки положения

Это битовая маска для побитовых операций. Возвращаются командой get_position.

См. также
get_position
set_position
set_position_t::PosFlags, set_position
#define SETPOS_IGNORE_POSITION   0x01
 Если установлен, то позиция в шагах и микрошагах не обновляется.
#define SETPOS_IGNORE_ENCODER   0x02
 Если установлен, то счётчик энкодера не обновляется.
Тип обратной связи.

Это битовая маска для побитовых операций.

См. также
set_feedback_settings
get_feedback_settings
feedback_settings_t::FeedbackType, get_feedback_settings, set_feedback_settings
#define FEEDBACK_ENCODER   0x01
 Обратная связь с помощью энкодера.
#define FEEDBACK_EMF   0x04
 Обратная связь по ЭДС.
#define FEEDBACK_NONE   0x05
 Обратная связь отсутствует.
#define FEEDBACK_ENCODER_MEDIATED   0x06
 Обратная связь по энкодеру, опосредованному относительно двигателя механической передачей (например, винтовой передачей).
Флаги обратной связи.

Это битовая маска для побитовых операций.

См. также
set_feedback_settings
get_feedback_settings
feedback_settings_t::FeedbackFlags, get_feedback_settings, set_feedback_settings
#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
 Дифференциальный энкодер.
Флаги настроек синхронизации входа

Это битовая маска для побитовых операций.

См. также
sync_in_settings_t::SyncInFlags, get_sync_in_settings, set_sync_in_settings
#define SYNCIN_ENABLED   0x01
 Включение необходимости импульса синхронизации для начала движения.
#define SYNCIN_INVERT   0x02
 Если установлен - срабатывает по переходу из 1 в 0.
#define SYNCIN_GOTOPOSITION   0x04
 Если флаг установлен, то двигатель смещается к позиции, установленной в Position и uPosition, иначе двигатель смещается на Position и uPosition.
Флаги настроек синхронизации выхода

Это битовая маска для побитовых операций.

См. также
sync_out_settings_t::SyncOutFlags, get_sync_out_settings, set_sync_out_settings
#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 отсчётов.
Флаги настройки работы внешнего ввода/вывода

Это битовая маска для побитовых операций.

См. также
get_extio_settings
set_extio_settings
extio_settings_t::EXTIOSetupFlags, get_extio_settings, set_extio_settings
#define EXTIO_SETUP_OUTPUT   0x01
 Если флаг установлен, то ножка в состоянии вывода, иначе - ввода.
#define EXTIO_SETUP_INVERT   0x02
 Если флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.
Флаги настройки режимов внешнего ввода/вывода

Это битовая маска для побитовых операций.

См. также
extio_settings_t::extio_mode_flags
get_extio_settings
set_extio_settings
extio_settings_t::EXTIOModeFlags, get_extio_settings, set_extio_settings
#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
 Ножка находится в активном состоянии при подаче питания на обмотки.
Флаги границ

Это битовая маска для побитовых операций. Типы границ и поведение позиционера на границах. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_edges_settings
set_edges_settings
edges_settings_t::BorderFlags, get_edges_settings, set_edges_settings
#define BORDER_IS_ENCODER   0x01
 Если флаг установлен, границы определяются предустановленными точками на шкале позиции.
#define BORDER_STOP_LEFT   0x02
 Если флаг установлен, мотор останавливается при достижении левой границы.
#define BORDER_STOP_RIGHT   0x04
 Если флаг установлен, мотор останавливается при достижении правой границы.
#define BORDERS_SWAP_MISSET_DETECTION   0x08
 Если флаг установлен, мотор останавливается по достижении любой из границ.
Флаги концевых выключателей

Это битовая маска для побитовых операций. Определяют направление и состояние границ. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_edges_settings
set_edges_settings
edges_settings_t::EnderFlags, get_edges_settings, set_edges_settings
#define ENDER_SWAP   0x01
 Если флаг установлен, первый концевой выключатель находится справа; иначе - слева.
#define ENDER_SW1_ACTIVE_LOW   0x02
 1 - Концевой переключатель, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте.
#define ENDER_SW2_ACTIVE_LOW   0x04
 1 - Концевой переключатель, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте.
Флаги настроек тормоза

Это битовая маска для побитовых операций. Определяют поведение тормоза. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_brake_settings
set_brake_settings
brake_settings_t::BrakeFlags, get_brake_settings, set_brake_settings
#define BRAKE_ENABLED   0x01
 Управление тормозом включено, если флаг установлен.
#define BRAKE_ENG_PWROFF   0x02
 Тормоз отключает питание шагового мотора, если флаг установлен.
Флаги управления

Это битовая маска для побитовых операций. Определяют параметры управления мотором с помощью джойстика или кнопок. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_control_settings
set_control_settings
control_settings_t::Flags, get_control_settings, set_control_settings
#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
 Нажатая правая кнопка соответствует открытому контакту, если этот флаг установлен.
Флаги джойстика

Это битовая маска для побитовых операций. Управляют состояниями джойстика.

См. также
set_joystick_settings
get_joystick_settings
joystick_settings_t::JoyFlags, get_joystick_settings, set_joystick_settings
#define JOY_REVERSE   0x01
 Реверс воздействия джойстика.
Флаги контроля позиции

Это битовая маска для побитовых операций. Определяют настройки контроля позиции. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_ctp_settings
set_ctp_settings
ctp_settings_t::CTPFlags, get_ctp_settings, set_ctp_settings
#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

Это битовая маска для побитовых операций. Определяют поведение для команды home. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_home_settings
set_home_settings
command_home
home_settings_t::HomeFlags, get_home_settings, set_home_settings
#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

Это битовая маска для побитовых операций.

См. также
uart_settings_t::UARTSetupFlags, get_uart_settings, set_uart_settings
#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 стоповых бита
Флаги типа двигателя

Это битовая маска для побитовых операций.

См. также
motor_settings_t::MotorType, get_motor_settings, set_motor_settings
#define MOTOR_TYPE_UNKNOWN   0x00
 Неизвестный двигатель
#define MOTOR_TYPE_STEP   0x01
 Шаговый двигатель
#define MOTOR_TYPE_DC   0x02
 DC двигатель
#define MOTOR_TYPE_BLDC   0x03
 BLDC двигатель
Флаги настроек энкодера

Это битовая маска для побитовых операций.

См. также
accessories_settings_t::MBSettings, get_accessories_settings, set_accessories_settings
#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
 Если флаг установлен, то магнитный тормоз находится в режиме удержания (активен) при подаче питания
Флаги настроек температурного датчика

Это битовая маска для побитовых операций.

См. также
accessories_settings_t::LimitSwitchesSettings, get_accessories_settings, set_accessories_settings
#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
 Если флаг установлен, то концевые переключатели замкнуты.
Флаги автоопределения характеристик обмоток двигателя.

Это битовая маска для побитовых операций.

См. также
set_emf_settings
get_emf_settings
emf_settings_t::BackEMFFlags, get_emf_settings, set_emf_settings
#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_CALLCONVlogging_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сообщение

Функции

result_t XIMC_API close_device ( device_t id)

Закрывает устройство

Аргументы
id- идентификатор устройства
Заметки
Параметр id в данной функции является Си указателем, в отличие от большинства функций библиотеки использующих данный параметр
result_t XIMC_API command_clear_fram ( device_t  id)

Очистка FRAM памяти контроллера.

Функция используется только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_eeread_settings ( device_t  id)

Чтение настроек контроллера из EEPROM памяти позиционера.

Эта операция также автоматически выполняется при подключении позиционера с EEPROM памятью. Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_eesave_settings ( device_t  id)

Запись настроек контроллера в EEPROM память позиционера Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_home ( device_t  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идентификатор устройства
См. также
home_settings_t
get_home_settings
set_home_settings
result_t XIMC_API command_homezero ( device_t  id)

Запустить процедуру поиска домашней позиции, подождать её завершения и обнулить позицию в конце.

Это удобный путь для калибровки нулевой позиции.

Аргументы
idидентификатор устройства
[out]retRESULT_OK, если контроллер завершил выполнение home и zero корректно или результат первого запроса к контроллеру со статусом отличным от RESULT_OK.
result_t XIMC_API command_left ( device_t  id)

При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево.

Аргументы
idидентификатор устройства
result_t XIMC_API command_loft ( device_t  id)

При получении команды "loft" двигатель смещается из текущей точки на расстояние Antiplay, заданное в настройках мотора (engine_settings), затем двигается в ту же точку.

Аргументы
idидентификатор устройства
result_t XIMC_API command_move ( device_t  id,
int  Position,
int  uPosition 
)

При получении команды "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настройки пользовательских единиц
Заметки
Параметр Position корректируется таблицей коррекции.
result_t XIMC_API command_movr ( device_t  id,
int  DeltaPosition,
int  uDeltaPosition 
)

Перемещение на заданное смещение.

При получении команды "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настройки пользовательских единиц
Заметки
Конечная координата вычисляемая с помощью DeltaPosition, корректируется таблицей коррекции. Однако корректировка не может быть применена в случае поступления команды movr во время движения. Команда movr устанавливает целевую позицию равной текущей целевой плюс дельта. Но точно определить текущую целевую координату во время движения библиотека не может. Поэтому она не может рассчитать конечную позицию и соответсвующую ей коррекцию.
result_t XIMC_API command_power_off ( device_t  id)

Немедленное отключение питания двигателя вне зависимости от его состояния.

Команда предназначена для ручного управления питанием двигателя. Не следует использовать эту команду для отключения двигателя во время движения, так как питание может снова включиться для завершения движения. Для автоматического управления питанием двигателя и его отключения после остановки следует использовать систему управления электропитанием.

Аргументы
idидентификатор устройства
См. также
get_power_settings
set_power_settings
result_t XIMC_API command_read_robust_settings ( device_t  id)

Чтение важных настроек (калибровочные коэффициенты и т.

п.) контроллера из flash памяти в оперативную, заменяя текущие настройки. Только для производителя.

Аргументы
idидентификатор устройства
result_t XIMC_API command_read_settings ( device_t  id)

Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.

Аргументы
idидентификатор устройства
result_t XIMC_API command_reset ( device_t  id)

Перезагрузка контроллера.

Функция используется только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_right ( device_t  id)

При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо.

Аргументы
idидентификатор устройства
result_t XIMC_API command_save_robust_settings ( device_t  id)

При получении команды контроллер выполняет операцию сохранения важных настроек (калибровочные коэффициенты и т.

п.) во встроенную энергонезависимую память контроллера. Только для производителя.

Аргументы
idидентификатор устройства
result_t XIMC_API command_save_settings ( device_t  id)

При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера.

Аргументы
idидентификатор устройства
result_t XIMC_API command_sstp ( device_t  id)

Плавная остановка.

Двигатель останавливается с ускорением замедления.

Аргументы
idидентификатор устройства
result_t XIMC_API command_start_measurements ( device_t  id)

Начать измерения и буферизацию скорости, ошибки следования.

Аргументы
idидентификатор устройства
result_t XIMC_API command_stop ( device_t  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размер массива в байтах
result_t XIMC_API command_wait_for_stop ( device_t  id,
uint32_t  refresh_interval_ms 
)

Ожидание остановки контроллера

Аргументы
idидентификатор устройства
refresh_interval_msИнтервал обновления. Функция ждет столько миллисекунд между отправками контроллеру запроса get_status для проверки статуса остановки. Рекомендуемое значение интервала обновления - 10 мс. Используйте значения меньше 3 мс только если это необходимо - малые значения интервала обновления незначительно ускоряют обнаружение остановки, но создают существенно больший поток данных в канале связи контроллер-компьютер.
[out]retRESULT_OK, если контроллер остановился, в противном случае первый результат выполнения команды get_status со статусом отличным от RESULT_OK.
result_t XIMC_API command_zero ( device_t  id)

Устанавливает текущую позицию равной 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дополнительная информация для поиска
hints это строка вида "ключ=значение \n ключ2=значение2". Неизвестные пары ключ-значение игнорируются. Список ключей: addr (обязательный!) - используется вместе с флагом ENUMERATE_NETWORK. Ненулевое значение - это адрес или список адресов с перечислением через запятую удаленных хостов, на которых происходит поиск устройств. Пример: "addr=192.168.1.1,172.16.2.3". Отсутствующее значение - это подключение посредством широковещательного запроса. Пример: "addr=". adapter_addr - используется вместе с флагом ENUMERATE_NETWORK. Ненулевое значение это IP адрес сетевого адаптера. Сетевое устройство ximc должно быть в локальной сети, к которой подключён этот адаптер. Пример: "addr= \n adapter_addr=192.168.0.100".
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].

См. также
calibration_settings_t
Аргументы
idидентификатор устройства
[out]calibration_settingsкалибровочные коэффициенты
result_t XIMC_API get_chart_data ( device_t  id,
chart_data_t chart_data 
)

Команда чтения состояния обмоток и других не часто используемых данных.

Предназначена в первую очередь для получения данных для построения графиков в паре с командой GETS.

См. также
chart_data_t
Аргументы
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информация об устройстве Информация об устройстве.
См. также
get_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 
)

Чтение настроек границ и концевых выключателей.

См. также
set_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 
)

Чтение настроек границ и концевых выключателей с использованием пользовательских единиц.

См. также
set_edges_settings_calb
Аргументы
idидентификатор устройства
[out]edges_settings_calbнастройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
calibrationнастройки пользовательских единиц
Заметки
Внимание! Некоторые параметры структуры edges_settings_calb корректируются таблицей коррекции координат.
result_t XIMC_API get_emf_settings ( device_t  id,
emf_settings_t emf_settings 
)

Чтение электромеханических настроек шагового двигателя.

Настройки различны для разных двигателей.

См. также
set_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 
)

Чтение расширенных настроек.

См. также
set_engine_advansed_setup
Аргументы
idидентификатор устройства
[out]engine_advansed_setupнастройки EAS
result_t XIMC_API get_engine_settings ( device_t  id,
engine_settings_t engine_settings 
)

Чтение настроек мотора.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
set_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 
)

Чтение настроек мотора с использованием пользовательских единиц.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
set_engine_settings
Аргументы
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]controllername имя устройства
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]stagename имя подвижки
result_t XIMC_API get_extended_settings ( device_t  id,
extended_settings_t extended_settings 
)

Чтение расширенных настроек.

В настоящее время не используется.

См. также
set_extended_settings
Аргументы
idидентификатор устройства
[out]extended_settingsнастройки EST
result_t XIMC_API get_extio_settings ( device_t  id,
extio_settings_t extio_settings 
)

Команда чтения параметров настройки режимов внешнего ввода/вывода.

См. также
set_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.

Эта функция заполняет структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_t
Аргументы
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 с использованием пользовательских единиц.

Эта функция заполняет структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_calb_t
Аргументы
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-ю точками.

См. также
measurements_t
Аргументы
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 
)

Команда чтения сететвых настроек.

Только для производителя. Эта функция возвращает текущие сетевые настройки.

Аргументы
DHCPEnabledDHCP включен (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 
)

Чтение ПИД коэффициентов.

Эти коэффициенты определяют поведение позиционера. Коэффициенты различны для разных позиционеров.

См. также
set_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настройки пользовательских единиц
Заметки
Внимание! Некоторые параметры структуры get_position_calb корректируются таблицей коррекции координат.
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настройки, определяющие максимально допустимые параметры, для защиты оборудования
См. также
status_t::flags
result_t XIMC_API get_serial_number ( device_t  id,
unsigned int *  SerialNumber 
)

Чтение серийного номера контроллера.

Аргументы
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структура, содержащая настройки позиционера
result_t XIMC_API get_status ( device_t  id,
status_t status 
)

Возвращает информацию о текущем состоянии устройства.

Аргументы
idидентификатор устройства
[out]statusструктура с информацией о текущем состоянии устройства Состояние устройства. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния.
См. также
get_status
result_t XIMC_API get_status_calb ( device_t  id,
status_calb_t status,
const calibration_t calibration 
)

Возвращает информацию о текущем состоянии устройства.

Аргументы
idидентификатор устройства
[out]statusструктура с информацией о текущем состоянии устройства
calibrationнастройки пользовательских единиц Состояние устройства в калиброванных единицах. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния, размерные величины выводятся в калиброванных единицах.
См. также
get_status
result_t XIMC_API get_sync_in_settings ( device_t  id,
sync_in_settings_t sync_in_settings 
)

Чтение настроек для входного импульса синхронизации.

Эта функция считывает структуру с настройками синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
set_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 
)

Чтение настроек для входного импульса синхронизации с использованием пользовательских единиц.

Эта функция считывает структуру с настройками синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
set_sync_in_settings_calb
Аргументы
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 
)

Чтение настроек для выходного импульса синхронизации с использованием пользовательских единиц.

Эта функция считывает структуру с настройками синхронизации, определяющими поведение выхода синхронизации, в память контроллера.

См. также
set_sync_in_settings_calb
Аргументы
idидентификатор устройства
[in]sync_out_settings_calbнастройки синхронизации
calibrationнастройки пользовательских единиц
result_t XIMC_API get_uart_settings ( device_t  id,
uart_settings_t uart_settings 
)

Команда чтения настроек UART.

Эта функция заполняет структуру настроек UART.

См. также
uart_settings_t
Аргументы
SpeedCкорость UART
[out]uart_settingsнастройки UART
result_t XIMC_API goto_firmware ( device_t  id,
uint8_t *  ret 
)

Перезагрузка в прошивку в контроллере

Аргументы
idидентификатор устройства
[out]retRESULT_OK, если переход из загрузчика в прошивку возможен. После ответа на эту команду выполняется переход. RESULT_NO_FIRMWARE, если прошивка не найдена. RESULT_ALREADY_IN_FIRMWARE, если эта команда была вызвана из прошивки.
result_t XIMC_API has_firmware ( const char *  uri,
uint8_t *  ret 
)

Проверка наличия прошивки в контроллере

Аргументы
uriуникальный идентификатор ресурса устройства
[out]retноль, если прошивка присутствует
result_t XIMC_API load_correction_table ( device_t id,
const char *  namefile 
)

Команда загрузки корректирующей таблицы из текстового файла (данная функция устарела).

Используйте функцию set_correction_table(device_t id, const char* namefile). Таблица используется для коррекции положения в случае механических неточностей. Работает для некоторых параметров в _calb командах.

Аргументы
id- идентификатор устройства
[in]namefile- имя файла должно быть полным. Если используется короткое имя, файл должен находится в директории приложения. Если имя файла равно NULL таблица коррекции будет очищена. Формат файла: два столбца разделенных табуляцией. Заголовки столбцов строковые. Данные действительные разделитель точка. Первый столбец координата. Второй - отклонение вызванное ошибкой механики. Между координатами отклонение расчитывается линейно. За диапазоном константа равная отклонению на границе. Максимальная длина таблицы 100 строк.
Заметки
Параметр id в данной функции является Си указателем, в отличие от большинства функций библиотеки использующих данный параметр
См. также
command_move
command_movr
get_position_calb
get_position_calb_t
get_status_calb
status_calb_t
get_edges_settings_calb
set_edges_settings_calb
edges_settings_calb_t
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время в миллисекундах
device_t XIMC_API open_device ( const char *  uri)

Открывает устройство по имени 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.
result_t XIMC_API probe_device ( const char *  uri)

Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым.

Будьте осторожны с вызовом этой функции для неизвестных устройств, т.к. она отправляет данные.

Аргументы
[in]uri- уникальный идентификатор устройства
result_t XIMC_API service_command_updf ( device_t  id)

Команда переводит контроллер в режим обновления прошивки.

Только для производителя. Получив такую команду, прошивка платы устанавливает флаг (для загрузчика), отправляет эхо-ответ и перезагружает контроллер.

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_bindy_key ( const char *  keyfilepath)

Устарело.

Оставлено для совместимости. Ничего не делает.

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].

См. также
calibration_settings_t
Аргументы
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структура, содержащая информацию о контроллере
result_t XIMC_API set_correction_table ( device_t  id,
const char *  namefile 
)

Команда загрузки корректирующей таблицы из текстового файла.

Таблица используется для коррекции положения в случае механических неточностей. Работает для некоторых параметров в _calb командах.

Аргументы
id- идентификатор устройства
[in]namefile- путь до файла должен быть полным или относительным. Если параметр равен NULL, таблица коррекции будет очищена. Формат файла: два столбца, разделенных табуляцией. Заголовки столбцов строковые. Данные действительные, разделитель точка. Первый столбец - координата. Второй - отклонение, вызванное ошибкой механики. Максимальная длина таблицы 100 строк. Координаты должны быть отсортированы по возрастанию.
См. также
command_move
command_movr
get_position_calb
get_position_calb_t
get_status_calb
status_calb_t
get_edges_settings_calb
set_edges_settings_calb
edges_settings_calb_t
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 
)

Запись настроек границ и концевых выключателей.

См. также
get_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 
)

Запись настроек границ и концевых выключателей с использованием пользовательских единиц.

См. также
get_edges_settings_calb
Аргументы
idидентификатор устройства
[in]edges_settings_calbнастройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
calibrationнастройки пользовательских единиц
Заметки
Внимание! Некоторые параметры структуры edges_settings_calb корректируются таблицей коррекции координат.
result_t XIMC_API set_emf_settings ( device_t  id,
const emf_settings_t emf_settings 
)

Запись электромеханических настроек шагового двигателя.

Настройки различны для разных двигателей. Пожалуйста, загружайте новые настройки, когда вы меняете мотор.

См. также
get_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 
)

Запись расширенных настроек.

См. также
get_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 
)

Запись настроек мотора.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
get_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 
)

Запись настроек мотора с использованием пользовательских единиц.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
get_engine_settings
Аргументы
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 
)

Запись расширенных настроек.

В настоящее время не используется.

См. также
get_extended_settings
Аргументы
idидентификатор устройства
[in]extended_settingsнастройки EST
result_t XIMC_API set_extio_settings ( device_t  id,
const extio_settings_t extio_settings 
)

Команда записи параметров настройки режимов внешнего ввода/вывода.

Входные события обрабатываются по фронту. Выходные состояния сигнализируются логическим состоянием. По умолчанию нарастающий фронт считается моментом подачи входного сигнала, а единичное состояние считается активным выходом.

См. также
get_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.

Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_t
Аргументы
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 с использованием пользовательских единиц.

Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_calb_t
Аргументы
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 
)

Команда записи сететвых настроек.

Только для производителя. Эта функция меняет сетевые настройки на заданные.

Аргументы
DHCPEnabledDHCP включен (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 
)

Запись ПИД коэффициентов.

Эти коэффициенты определяют поведение позиционера. Коэффициенты различны для разных позиционеров. Пожалуйста, загружайте новые настройки, когда вы меняете мотор или позиционер.

См. также
get_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структура с настройками критических значений
См. также
status_t::flags
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 
)

Запись настроек для входного импульса синхронизации.

Эта функция записывает структуру с настройками входного импульса синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
get_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 
)

Запись настроек для входного импульса синхронизации с использованием пользовательских единиц.

Эта функция записывает структуру с настройками входного импульса синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
get_sync_in_settings_calb
Аргументы
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 
)

Запись настроек для выходного импульса синхронизации.

Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.

См. также
get_sync_in_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 
)

Запись настроек для выходного импульса синхронизации с использованием пользовательских единиц.

Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.

См. также
get_sync_in_settings_calb
Аргументы
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 в память контроллера.

См. также
uart_settings_t
Аргументы
SpeedCкорость UART
[in]uart_settingsнастройки UART
result_t XIMC_API write_key ( const char *  uri,
uint8_t *  key 
)

Запись ключа защиты Функция используется только производителем.

Аргументы
uriидентификатор устройства
[in]keyключ защиты. Диапазон: 0..4294967295
result_t XIMC_API ximc_fix_usbser_sys ( const char *  device_uri)

(Устарела) Исправление ошибки драйвера USB в Windows.

Подсистема USB-COM на OC Windows не всегда работает корректно. При работе возможны следующие неисправности: Все попытки открыть устройство заканчиваются неудачно. Устройство можно открыть и отправить в него данные, но ответные данные не приходят. Эти проблемы исправляются переподключением устройства или его переинециализацией в диспетчере устройств. Функция ximc_fix_usbser_sys() автоматизирует процесс удаления-обнаружения.

void XIMC_API ximc_version ( char *  version)

Возвращает версию библиотеки

Аргументы
versionбуфер для строки с версией, 32 байт достаточно