6.3. Совместимость с ПО для 8SMC1-USBhF

Важно

Протоколы связи для контроллеров 8SMC1 и 8SMC4/5 несовместимы. Протокол связи для 8SMC4/5 описан в Описание протокола обмена.
Из-за различий в протоколах определенное количество функций как 8SMC1, так и 8SMC4/5 не может быть сопоставлено друг с другом. Рекомендуемый способ работы с 8SMC4/5 - адаптировать ваше программное обеспечение для использования библиотеки libximc.

Программное обеспечение XiLab предназначено для контроллеров 8SMC4 и 8SMC5, оно не будет работать с 8SMC1. Для 8SMC1 есть два пакета программ: MicroSMC и SMCVieW.

  • SMCView - это графический интерфейс на основе Labview для контроллеров 8SMC1. Для работы с 8SMC1 используется драйвер одного типа.
  • MicroSMC - это программный драйвер для контроллеров 8SMC1. Он использует драйвер другого типа для работы с 8SMC1 (не тот, который использует SMCView).

Новые контроллеры можно использовать с программами, написанными для контроллеров 8SMC1-USBhF. Для этого есть две возможности:

  1. Рекомендуемая. Использование версии ПО MicroSMC, которая поддерживает как 8SMC1-USBhF так и новые контроллеры. В этом случае ПО MicroSMC открывает все найденные новые контроллеры в режиме эксклюзивного доступа для обеспечения разделения доступа и взаимодействие с ними возможно только с помощью функций API контроллеров 8SMC1-USBhF через библиотеку USMCDLL, использующую MicroSMC. Скачать версию MicroSMC с поддержкой новых контроллеров можно на странице Программное обеспечение.
  2. Управление только новыми контроллерами без ПО MicroSMC с помощью переходной библиотеки USMCDLL/libximc. Используйте эту возможность, если вам требуется одновременная работа ПО MicroSMC (для управления контроллерами 8SMC1-USBhF) и работа с контроллерами новыми с помощью библиотеки libximc. Скачать переходную библиотеку USMCDLL/libximc можно по этой ссылке.

При переходе с контроллера 8SMC1 на 8SMC4/5 мы советуем заменить функции вашей программы на используемые функции библиотеки libximc. Ниже в таблице описано соответствие функций API контроллеров 8SMC1-USBhF и новых контроллеров: в первом столбце указана функция библиотеки USMCDLL, во втором - соответствующий параграф в описании контроллера 8SMC1-USBhF, в третьем - особенности этой функции в переходной библиотеке при использовании с новыми контроллерами.

Функция 8SMC1-USBhF Новый контроллер
USMC_Init 7.5.3 Использует функцию libximc enumerate_devices, которая опрашивает все COM-порты в системе, а также функции get_enumerate_device_information,* get_enumerate_device_serial, get_device_count*, get_device_name, open_device.
USMC_GetState 7.5.4 Использует функции libximc get_status и get_engine_settings. Флаги AReset, EMReset, RotTrErr возвращаемой структуры USMC_State всегда принимают значение false.
USMC_SaveParametersToFlash 7.5.5 Использует функцию libximc command_save_settings.
USMC_GetMode 7.5.6 Использует функции libximc get_edges_settings, get_power_settings, get_control_settings, get_ctp_settings, get_sync_out_settings. В возвращаемой структуре USMC_Mode флаги EMReset, ResetRT, SyncOUTR, EncoderEn, EncoderInv, ResBEnc, ResEnc всегда принимают значение false, флаг SyncINOp всегда равен true.
USMC_SetMode 7.5.7 Использует те же функции, что и USMC_GetMode, а также их «set_» аналоги, игнорирует флаги RotTeEn, RotTrOp, ResetRT, SyncOUTR, SyncINOp, EncoderEn.
USMC_GetParameters 7.5.8 Использует функции libximc get_secure_settings, get_engine_settings, get_move_settings, get_feedback_settings, get_power_settings, get_control_settings, get_ctp_settings, get_home_settings, get_sync_out_settings. Возвращает нулевые значения параметров BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos.
USMC_SetParameters 7.5.9 Использует те же функции, что и USMC_GetParameters, а также их «set_» аналоги, игнорирует параметры BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos.
USMC_GetStartParameters 7.5.10 Использует функции libximc get_move_settings, get_engine_settings. Флаги WSyncIN, SyncOUTR, ForceLoft возвращаемой структуры USMC_StartParameters всегда принимают значение false.
USMC_Start 7.5.11 Использует функции libximc get_move_settings, get_engine_settings, а также их «set_» аналоги и функцию command_move.
USMC_Stop 7.5.12 Использует функцию libximc command_stop.
USMC_SetCurrentPosition 7.5.13 Использует функцию libximc set_position.
USMC_GetEncoderState 7.5.14 Использует функцию libximc get_status.
USMC_GetLastErr 7.5.15 Не модифицирует передаваемый ей параметр. Ошибку выполнения функций USMC_ можно отследить по ненулевому коду возврата.
USMC_Close 7.5.16 Использует функцию libximc close_device.

Переходная библиотека USMCDLL не требует для своей работы запущенного в фоне приложения MicroSMC.exe и использует библиотеку libximc.dll для взаимодействия с новыми контроллерами.

Все функции USMC_, включающие в себя несколько вызовов функций libximc, прерывают своё выполнение, если одна из составляющих их функций libximc возвращает ошибку. В этом случае возможна неполная запись настроек в контроллер. Ненулевой код возврата функции USMC_ равен коду возврата выполненной с ошибкой функции libximc.

Тестовая программа: usmcdll_libximc_test.zip

Чтобы контроллер 8SMC1-USBhF работал под управлением Windows 10, необходимо обновить микропрограмму контроллера до последней версии (25.05).
Все соответствующие программы можно найти на этой странице.
Полный пакет программного обеспечения и поддержки для Windows 8.
Последняя прошивка v.2505 - обновлена для windows 8 и 10.

Важно

Для обновления прошивки вам потребуется или Windows 7 или Windows 8.1. Скорее всего, вы не сможете обновить прошивку под управлением Windows 10

Если вы хотите отремонтировать контроллеры 8SMC1-USBhF, обратитесь к менеджеру, который продал оборудование. Если контакты менеджера были утеряны, вы можете написать на sales@standa.lt. Важно отметить, что стоимость ремонта может быть сопоставима со стоимостью нового контроллера.