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. Для этого есть две возможности:
- Рекомендуемая. Использование версии ПО MicroSMC, которая поддерживает как 8SMC1-USBhF так и новые контроллеры. В этом случае ПО MicroSMC открывает все найденные новые контроллеры в режиме эксклюзивного доступа для обеспечения разделения доступа и взаимодействие с ними возможно только с помощью функций API контроллеров 8SMC1-USBhF через библиотеку USMCDLL, использующую MicroSMC. Скачать версию MicroSMC с поддержкой новых контроллеров можно на странице Программное обеспечение.
- Управление только новыми контроллерами без ПО 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. Важно отметить, что стоимость ремонта может быть сопоставима со стоимостью нового контроллера.