Почему постоянно пропадает связь с весами МАССА-К в 1С и как это исправить?

Системный администратор 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При автоматизации розничной торговли и рабочих мест кассиров технические специалисты часто сталкиваются с нестабильной работой торгового оборудования. Типичный пример — периодический отвал электронных весов МАССА-К МК-15.2-ТН21 (или аналогичных моделей), подключенных к компьютеру под управлением Windows 7 с запущенной базой 1С:Управление торговлей 10.3. Каждые 15–20 минут связь прерывается, программа выдает критическую ошибку «Нет связи», а для восстановления работы кассирам приходится перезапускать 1С и перезагружать весы по питанию.

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

Выясняем причину: почему виртуальный COM-порт постоянно «зависает»?

Для начала проанализируем техническую сторону взаимодействия весов с операционной системой Windows. Весы МАССА-К подключаются с помощью стандартного USB-кабеля. Однако на программном уровне обмен данными происходит не напрямую через USB, а через эмуляцию последовательного порта — так называемый виртуальный COM-порт (Virtual COM Port).

Связующим звеном выступает специализированный микроконтроллер STM32, установленный на плате управления весов. При обмене данными по технологии виртуального COM-порта в Windows действует правило монопольного доступа. Если происходит малейший микросбой в питании, электростатический разряд или задержка в передаче пакета, операционная система мгновенно блокирует или теряет связь с портом. При этом в самой Windows 7 порт физически закрывается на стороне весов, но процесс 1С продолжает удерживать его дескриптор в состоянии «Открыт/Занят». Никакие повторные попытки опроса оборудования со стороны программы не помогут, пока зависший системный процесс удерживает виртуальный порт. Именно поэтому пользователям приходится полностью выключать весы и закрывать 1С.

Рассмотрим пошагово все методы устранения этой неисправности — от простых программных манипуляций до аппаратного ремонта оборудования.

Шаг 1. Отключение энергосбережения USB-контроллеров в Windows

По умолчанию в операционной системе Windows включена функция экономии электроэнергии. Система может принудительно снижать напряжение на USB-портах или временно отключать их, если считает, что устройство простаивает. Для чувствительного контроллера STM32 в весах это критично. Выполним следующие настройки:

  1. Откроем Диспетчер устройств в Windows 7.
  2. Развернем ветку Контроллеры USB.
  3. Найдем все устройства с названиями Корневой USB-концентратор (USB Root Hub) и Generic USB Hub.
  4. Кликнем правой кнопкой мыши по каждому из них, зайдем в Свойства и перейдем на вкладку Управление электропитанием.
  5. Снимем флажок с параметра Разрешить отключение этого устройства для экономии энергии.
  6. Нажмем кнопку ОК для сохранения настроек.

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

Шаг 2. Корректная установка оригинального драйвера STM32

Часто проблема кроется в некорректно установленном драйвере виртуального COM-порта. Фирменный инсталлятор от STMicroelectronics (например, файл VCP_V1.4.0_Setup.exe) имеет особенность: при его запуске на Windows 7 файлы драйвера лишь распаковываются в системную папку на жестком диске, но фактической установки в систему не происходит.

Выполним ручную установку драйвера по шагам:

  1. Запустим официальный инсталлятор драйвера виртуального порта STM32.
  2. Перейдем в каталог установки драйвера на компьютере. Обычно файлы находятся по пути: C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win7\.
  3. В зависимости от разрядности установленной операционной системы Windows найдем и запустим нужный исполняемый файл с правами администратора:
    • dpinst_x86.exe — для 32-разрядных систем;
    • dpinst_amd64.exe — для 64-разрядных систем.
  4. Завершим процесс установки драйвера с помощью мастера и обязательно перезагрузим компьютер.

Шаг 3. Настройка скорости передачи данных в свойствах порта

Параметры работы COM-порта в Диспетчере устройств Windows должны строго соответствовать внутренним настройкам самих весов. Если в настройках порта установлена неподдерживаемая или нестабильная скорость, пакеты данных будут теряться.

Проверим и изменим настройки порта:

  1. В Диспетчере устройств откроем ветку Порты (COM и LPT).
  2. Найдем виртуальный порт весов (например, STMicroelectronics Virtual COM Port (COM4)) и откроем его свойства.
  3. Перейдем на вкладку Параметры порта.
  4. Установим значение параметра Бит в секунду (скорость) равным 4800 (согласно технической документации «Масса-К» для Протокола №2) или 9600 (если используется Протокол №100). Важно протестировать стабильность работы на обеих скоростях.
  5. Параметр Управление потоком переведем в значение Нет (None).

Шаг 4. Устранение аппаратных конфликтов и проблем с питанием USB

Микроконтроллер весов крайне чувствителен к перепадам напряжения на шине USB. Если на кассовом компьютере одновременно работают другие энергоемкие устройства (например, фискальный регистратор, сканер штрихкодов или эквайринговый терминал), при их активном использовании может происходить кратковременная просадка напряжения ниже 3.0V. Это приводит к перезагрузке USB-контроллера весов.

Выполним следующие рекомендации по физическому подключению оборудования:

  1. Подключайте весы только к портам USB 2.0 (разъемы черного цвета). Избегайте портов USB 3.0 (синего цвета), так как их контроллеры на старых материнских платах под управлением Windows 7 часто работают некорректно с виртуальными COM-портами.
  2. Используйте только порты на задней панели системного блока, которые распаяны непосредственно на материнской плате. Порты на передней панели корпуса ПК или внешние разветвители (USB-хабы) без собственного блока питания использовать категорически запрещено из-за высокого сопротивления проводов и просадок напряжения.
  3. Замените интерфейсный кабель USB. Длина кабеля не должна превышать 1.8 метра. Желательно использовать качественный экранированный кабель с ферритовыми кольцами для защиты от высокочастотных электромагнитных помех.

Шаг 5. Проблема статического электричества и заземления оборудования

У моделей серии МК-15.2 есть известная конструктивная особенность: в процессе работы на металлической платформе весов накапливается статическое напряжение (особенно если весовой товар взвешивается в сухом помещении в полиэтиленовых пакетах). Из-за отсутствия надежного заземления статический разряд пробивает на плату интерфейса, весы на секунду зависают, и Windows теряет виртуальный COM-порт.

Для решения этой проблемы необходимо заземлить весы. Убедитесь, что розетки питания на кассовом узле имеют рабочий контур заземления. В сложных случаях сервисные инженеры производят доработку весов внутри корпуса, соединяя медным проводником схемную «землю» (GND) платы электроники с металлической станиной (шасси) весов в районе разъема питания.

Шаг 6. Настройка интеграции в 1С без платных драйверов

Довольно часто программисты предлагают приобретать платные драйверы сторонних производителей (например, АТОЛ) для интеграции весов с 1С. Однако современные конфигурации 1С на управляемых и обычных формах имеют встроенную поддержку весов МАССА-К.

Разберем, как проверить и настроить работу весов напрямую через встроенный бесплатный сертифицированный драйвер:

  1. Откроем 1С и перейдем в меню Сервис — Торговое оборудование — Подключение и настройка торгового оборудования (в конфигурации УТ 10.3).
  2. Перейдем на вкладку Электронные весы.
  3. При добавлении нового устройства выберем обработку обслуживания Масса-К: Электронные весы. Этот драйвер поставляется бесплатно в составе Библиотеки подключаемого оборудования (БПО) 1С.
  4. В параметрах подключения укажем номер нашего виртуального COM-порта и выберем Протокол №100 (или Протокол №2 в зависимости от поддержки прошивкой весов).

Использование родного сертифицированного драйвера 1С позволяет избавиться от лишних программных прослоек и обеспечивает более корректную обработку ошибок связи на уровне платформы. При необходимости подключения оборудования к конфигурации УТ 10.3 можно воспользоваться готовой обработкой обслуживания весов Масса-К МК-15.2.

Для наглядности рассмотрим пример программного кода на встроенном языке 1С, который демонстрирует, как система инициализирует устройство и обрабатывает сбои связи при получении веса с весов:


// Пример программного опроса весов в 1С
Функция ПолучитьТекущийВесСВесов(УстройствоСсылка) Экспорт
    ПеременнаяВес = 0;
    
    // Попытка установить соединение с обработкой обслуживания
    РезультатПодключения = ПолучитьСерверТО().ПодключитьУстройство(УстройствоСсылка);
    
    Если РезультатПодключения = Истина Тогда
        // Запрос веса с устройства
        РезультатЗапроса = ПолучитьСерверТО().ПолучитьВес(УстройствоСсылка, ПеременнаяВес);
        
        Если РезультатЗапроса = Истина Тогда
            Возврат ПеременнаяВес;
        Иначе
            // Обработка ситуации "Нет связи"
            ЗаписатьВЖурналРегистрации("Оборудование.Весы", СистемнаяИнформация.ИмяПользователя, 
                "Ошибка опроса весов. Порт занят или устройство отключено.");
            ВызватьИсключение "Не удалось считать вес. Пожалуйста, проверьте подключение весов!";
        КонецЕсли;
    Иначе
        ВызватьИсключение "Ошибка инициализации драйвера весов. Проверьте параметры порта.";
    КонецЕсли;
КонецФункции

Альтернативное решение: переход на физический COM-порт

Если ни один из вышеперечисленных методов не помог добиться 100% стабильности виртуального порта (что нередко случается на старых материнских платах с изношенной шиной питания USB), самым надежным выходом из ситуации станет переход на классический интерфейс RS-232 (аппаратный COM-порт).

Для реализации этого решения выполним следующие действия:

Аппаратные COM-порты, в отличие от виртуальных USB-эмуляторов, работают напрямую через прерывания процессора, имеют независимые линии питания и не подвержены зависаниям из-за ошибок операционной системы Windows. Для организации опроса весов серии МК через последовательный порт подойдёт обработка обслуживания весов Масса-К для прямого считывания веса через COM-порт.

Мы подробно проанализировали причины сбоев связи электронных весов МАССА-К при работе в 1С и разобрали весь комплекс мероприятий по настройке стабильной работы оборудования. Рекомендуется выполнять настройки последовательно, начиная с регулировки параметров энергосбережения USB и правильной ручной установки драйверов STM32.

← На главную