При автоматизации розничной торговли и рабочих мест кассиров технические специалисты часто сталкиваются с нестабильной работой торгового оборудования. Типичный пример — периодический отвал электронных весов МАССА-К МК-15.2-ТН21 (или аналогичных моделей), подключенных к компьютеру под управлением Windows 7 с запущенной базой 1С:Управление торговлей 10.3. Каждые 15–20 минут связь прерывается, программа выдает критическую ошибку «Нет связи», а для восстановления работы кассирам приходится перезапускать 1С и перезагружать весы по питанию.
В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем её аппаратные и программные причины, а также составим пошаговую инструкцию по обеспечению стабильной работы весового оборудования.
Для начала проанализируем техническую сторону взаимодействия весов с операционной системой Windows. Весы МАССА-К подключаются с помощью стандартного USB-кабеля. Однако на программном уровне обмен данными происходит не напрямую через USB, а через эмуляцию последовательного порта — так называемый виртуальный COM-порт (Virtual COM Port).
Связующим звеном выступает специализированный микроконтроллер STM32, установленный на плате управления весов. При обмене данными по технологии виртуального COM-порта в Windows действует правило монопольного доступа. Если происходит малейший микросбой в питании, электростатический разряд или задержка в передаче пакета, операционная система мгновенно блокирует или теряет связь с портом. При этом в самой Windows 7 порт физически закрывается на стороне весов, но процесс 1С продолжает удерживать его дескриптор в состоянии «Открыт/Занят». Никакие повторные попытки опроса оборудования со стороны программы не помогут, пока зависший системный процесс удерживает виртуальный порт. Именно поэтому пользователям приходится полностью выключать весы и закрывать 1С.
Рассмотрим пошагово все методы устранения этой неисправности — от простых программных манипуляций до аппаратного ремонта оборудования.
По умолчанию в операционной системе Windows включена функция экономии электроэнергии. Система может принудительно снижать напряжение на USB-портах или временно отключать их, если считает, что устройство простаивает. Для чувствительного контроллера STM32 в весах это критично. Выполним следующие настройки:
После этого операционная система перестанет отключать питание портов, что существенно снизит частоту случайных разрывов соединения.
Часто проблема кроется в некорректно установленном драйвере виртуального COM-порта. Фирменный инсталлятор от STMicroelectronics (например, файл VCP_V1.4.0_Setup.exe) имеет особенность: при его запуске на Windows 7 файлы драйвера лишь распаковываются в системную папку на жестком диске, но фактической установки в систему не происходит.
Выполним ручную установку драйвера по шагам:
C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win7\.dpinst_x86.exe — для 32-разрядных систем;dpinst_amd64.exe — для 64-разрядных систем.Параметры работы COM-порта в Диспетчере устройств Windows должны строго соответствовать внутренним настройкам самих весов. Если в настройках порта установлена неподдерживаемая или нестабильная скорость, пакеты данных будут теряться.
Проверим и изменим настройки порта:
STMicroelectronics Virtual COM Port (COM4)) и откроем его свойства.4800 (согласно технической документации «Масса-К» для Протокола №2) или 9600 (если используется Протокол №100). Важно протестировать стабильность работы на обеих скоростях.Нет (None).Микроконтроллер весов крайне чувствителен к перепадам напряжения на шине USB. Если на кассовом компьютере одновременно работают другие энергоемкие устройства (например, фискальный регистратор, сканер штрихкодов или эквайринговый терминал), при их активном использовании может происходить кратковременная просадка напряжения ниже 3.0V. Это приводит к перезагрузке USB-контроллера весов.
Выполним следующие рекомендации по физическому подключению оборудования:
У моделей серии МК-15.2 есть известная конструктивная особенность: в процессе работы на металлической платформе весов накапливается статическое напряжение (особенно если весовой товар взвешивается в сухом помещении в полиэтиленовых пакетах). Из-за отсутствия надежного заземления статический разряд пробивает на плату интерфейса, весы на секунду зависают, и Windows теряет виртуальный COM-порт.
Для решения этой проблемы необходимо заземлить весы. Убедитесь, что розетки питания на кассовом узле имеют рабочий контур заземления. В сложных случаях сервисные инженеры производят доработку весов внутри корпуса, соединяя медным проводником схемную «землю» (GND) платы электроники с металлической станиной (шасси) весов в районе разъема питания.
Довольно часто программисты предлагают приобретать платные драйверы сторонних производителей (например, АТОЛ) для интеграции весов с 1С. Однако современные конфигурации 1С на управляемых и обычных формах имеют встроенную поддержку весов МАССА-К.
Разберем, как проверить и настроить работу весов напрямую через встроенный бесплатный сертифицированный драйвер:
Использование родного сертифицированного драйвера 1С позволяет избавиться от лишних программных прослоек и обеспечивает более корректную обработку ошибок связи на уровне платформы. При необходимости подключения оборудования к конфигурации УТ 10.3 можно воспользоваться готовой обработкой обслуживания весов Масса-К МК-15.2.
Для наглядности рассмотрим пример программного кода на встроенном языке 1С, который демонстрирует, как система инициализирует устройство и обрабатывает сбои связи при получении веса с весов:
// Пример программного опроса весов в 1С
Функция ПолучитьТекущийВесСВесов(УстройствоСсылка) Экспорт
ПеременнаяВес = 0;
// Попытка установить соединение с обработкой обслуживания
РезультатПодключения = ПолучитьСерверТО().ПодключитьУстройство(УстройствоСсылка);
Если РезультатПодключения = Истина Тогда
// Запрос веса с устройства
РезультатЗапроса = ПолучитьСерверТО().ПолучитьВес(УстройствоСсылка, ПеременнаяВес);
Если РезультатЗапроса = Истина Тогда
Возврат ПеременнаяВес;
Иначе
// Обработка ситуации "Нет связи"
ЗаписатьВЖурналРегистрации("Оборудование.Весы", СистемнаяИнформация.ИмяПользователя,
"Ошибка опроса весов. Порт занят или устройство отключено.");
ВызватьИсключение "Не удалось считать вес. Пожалуйста, проверьте подключение весов!";
КонецЕсли;
Иначе
ВызватьИсключение "Ошибка инициализации драйвера весов. Проверьте параметры порта.";
КонецЕсли;
КонецФункции
Если ни один из вышеперечисленных методов не помог добиться 100% стабильности виртуального порта (что нередко случается на старых материнских платах с изношенной шиной питания USB), самым надежным выходом из ситуации станет переход на классический интерфейс RS-232 (аппаратный COM-порт).
Для реализации этого решения выполним следующие действия:
COM-COM (DB9F - DB9F), предназначенный для весов МАССА-К.Аппаратные COM-порты, в отличие от виртуальных USB-эмуляторов, работают напрямую через прерывания процессора, имеют независимые линии питания и не подвержены зависаниям из-за ошибок операционной системы Windows. Для организации опроса весов серии МК через последовательный порт подойдёт обработка обслуживания весов Масса-К для прямого считывания веса через COM-порт.
Мы подробно проанализировали причины сбоев связи электронных весов МАССА-К при работе в 1С и разобрали весь комплекс мероприятий по настройке стабильной работы оборудования. Рекомендуется выполнять настройки последовательно, начиная с регулировки параметров энергосбережения USB и правильной ручной установки драйверов STM32.