Почему отключается COM-порт кассы Атол при работе через RDP и как настроить стабильное соединение?

Системный администратор Торговля и дистрибуция
← На главную

Работа с торговым оборудованием в терминальном режиме (через RDP) часто преподносит неприятные сюрпризы. Типичная ситуация: системный администратор проверяет наличие портов командой change port /query, видит проброшенный COM-порт кассы, но стоит только драйверу Атол или базе 1С попытаться инициализировать устройство, как порт «отваливается» и исчезает из системы до перезахода пользователя в сессию. Особенно часто это встречается на старых операционных системах, таких как Windows Server 2003, но проблема актуальна и для современных версий.

В этой статье мы подробно разберем, почему штатный механизм проброса портов Microsoft Remote Desktop Protocol (RDP) дает сбои при работе с ККТ, и изучим пошаговые инструкции по настройке альтернативных, более надежных способов связи.

Выясним причины нестабильности штатного проброса портов

Прежде чем переходить к настройке, проанализируем ситуацию и поймем механику возникновения ошибки. Штатный проброс COM-портов в RDP создавался для передачи простых данных (например, для весов или сканеров штрихкода в режиме эмуляции клавиатуры). Драйвер ККТ работает иначе: он требует высокоскоростного обмена данными в реальном времени с минимальными задержками.

Основные причины сбоев:

  1. Критические тайм-ауты: Когда 1С обращается к драйверу, происходит опрос порта. Если RDP-туннель «заикается» хотя бы на доли секунды, время отклика превышает лимит. Драйвер считает порт потерянным и разрывает логическую связь.
  2. Конфликты USB-to-COM эмуляции: Кассы Атол (например, Атол 30Ф) подключаются по USB, создавая виртуальный COM-порт. При передаче через RDP эти виртуальные прерывания обрабатываются некорректно, что приводит к зависанию порта на уровне ядра системы.
  3. Настройки энергосбережения: Windows на локальном ПК может отключать питание USB-порта в целях экономии, как только по нему начинается интенсивная передача данных.

Решение №1: Настройка EthernetOverUsb (EoU)

Это один из самых стабильных методов для касс Атол, не имеющих физического Ethernet-порта. Мы превратим USB-подключение в сетевое, что позволит серверу 1С обращаться к кассе по IP-адресу, полностью игнорируя нестабильный проброс портов RDP.

Рассмотрим алгоритм настройки:

  1. На локальном компьютере, к которому физически подключена касса, установите Драйвер ККТ Атол (рекомендуется версия 10.х).
  2. В «Диспетчере устройств» убедитесь, что касса видна как два COM-порта (один для данных, другой для службы EoU).
  3. Запустите службу EthOverUsb. В настройках службы укажите номер порта, который зарезервирован под передачу данных в ОФД.
  4. На стороне сервера (в 1С) при настройке оборудования выберите тип подключения TCP/IP вместо COM-порта.
  5. Введите IP-адрес локального компьютера. Важно: если сервер находится в другой сети, потребуется настроить проброс порта 5555 на роутере или использовать VPN-канал.

Решение №2: Использование Веб-сервера Атол (Driver v.10)

Современные драйверы Атол 10-й версии содержат встроенную службу веб-сервера. Это, пожалуй, самый прогрессивный метод работы в терминальной среде. Мы исключаем зависимость от версии Windows Server (будь то 2003 или 2022) и качества проброса портов.

Разберем ситуацию по шагам:

  1. На локальном ПК (где стоит касса) в настройках драйвера включите Веб-сервер.
  2. Служба начнет «слушать» входящие запросы (обычно по порту 16732).
  3. В 1С на сервере, в настройках ККТ, укажите тип подключения «Веб-сервер Атол». Пропишите IP-адрес локального ПК и порт.
  4. Теперь 1С будет отправлять команды в формате JSON через HTTP-запросы. Этот протокол устойчив к микро-разрывам связи и не вызывает «отвала» устройства в системе.

Решение №3: Настройка моста через VSPE (Virtual Serial Ports Emulator)

Если штатные средства Атол по каким-то причинам не подходят, воспользуемся эмулятором стороннего производителя. Посмотрим на пример настройки VSPE для создания надежного туннеля.

На локальном ПК (где касса на COM3):

  1. Запустите VSPE. Создайте новое устройство типа TcpServer.
  2. В поле Local TCP port укажите, например, 5555.
  3. В поле Source serial port выберите COM3 (порт вашей кассы).
  4. Нажмите «Start». Теперь ваш локальный ПК транслирует данные с кассы в сеть.

На сервере (RDP):

  1. Установите VSPE на сервер. Создайте устройство типа TcpClient.
  2. В поле Remote TCP host введите IP-адрес вашего локального компьютера.
  3. В поле Remote TCP port укажите 5555.
  4. В поле Virtual serial port выберите свободный номер порта, например COM10.

В настройках 1С на сервере выберите COM10. Для системы этот порт будет выглядеть как локальный, хотя данные будут передаваться по TCP-протоколу, который гораздо надежнее стандартного механизма RDP.

Регулировка параметров питания для стабильности портов

Проанализируем еще один важный момент, который часто упускают. Даже при использовании VSPE или EoU, физический порт на локальном ПК может «засыпать». Чтобы это предотвратить, выполним следующие действия:

  1. Зайдите в Диспетчер устройств на локальном ПК.
  2. Найдите раздел «Контроллеры USB».
  3. Для каждого устройства типа USB Root Hub (Корневой USB-концентратор) откройте «Свойства».
  4. На вкладке Управление электропитанием обязательно снимите галочку «Разрешить отключение этого устройства для экономии энергии».
  5. Повторите это для всех концентраторов и самого COM-порта кассы.

Специфика работы с Windows Server 2003

Если вы столкнулись с проблемой на Windows Server 2003, важно понимать, что стек протокола RDP версии 5.2 крайне нестабильно работает с современным торговым оборудованием. В этой ОС механизмы изоляции сессий и обработки виртуальных прерываний несовершенны. Если переход на современную ОС невозможен, единственным гарантированным решением будет отказ от проброса портов в пользу Ethernet-подключения кассы (если модель поддерживает установку коммуникационного модуля Wi-Fi/LAN) или использование платных утилит типа USB Network Gate, которые пробрасывают устройство на физическом уровне (USB-шина), а не на логическом (COM-порт).

Подводя итог, можно сказать: для стабильной работы ККТ Атол через RDP следует максимально уходить от стандартного проброса ресурсов в настройках подключения удаленного рабочего стола. Использование сетевых интерфейсов (EoU, Веб-сервер или VSPE) превращает нестабильное соединение в надежный канал передачи данных.

← На главную