В процессе эксплуатации торгового оборудования на базе ККТ АТОЛ 22Ф (FPrint-22ПТК) технические специалисты часто сталкиваются со следующими симптомами: связь с кассой периодически пропадает с ошибкой -3 / 10060 / Тайм-аут, чеки начинают печататься крайне медленно (с задержкой после каждой позиции), а нормальная работа восстанавливается сама по себе лишь через 15–30 минут. При этом перезагрузка кассы, компьютера или сетевого роутера не приносит мгновенного результата.
В данной статье мы подробно разберем, как локализовать и устранить эти неисправности. Мы рассмотрим как аппаратные проблемы физического уровня передачи данных (которые и стали причиной сбоя в рассматриваемом случае на форуме), так и тонкие программные настройки драйверов АТОЛ, параметров 1С и сетевой инфраструктуры.
Если связь пропадает волнообразно, а индикатор сетевого разъема ККТ (LAN-порта) начинает быстро и хаотично мигать, в первую очередь необходимо исключить проблемы с физической средой передачи данных. Проанализируем ситуацию: поврежденная жила в сетевом кабеле (витой паре) или разбитый пластиковый коннектор RJ-45 могут приводить к огромному количеству потерянных пакетов (коллизиям). Сетевой стек кассы переполняется попытками переспросить поврежденные данные, из-за чего устройство зависает на некоторое время.
Выполним следующие шаги по локализации физической проблемы:
ping 192.168.1.190 -t
Если мы наблюдаем периодическое пропадание пакетов («Превышен интервал ожидания для запроса») или время отклика (RTT) скачет от единиц до сотен миллисекунд, проблема носит сетевой характер.
Медленная печать чеков (когда касса задумывается на 1–2 секунды после формирования каждой строки в чеке) практически всегда связана со способом подключения оборудования в терминальной сессии. Если ККТ физически подключена к локальному ПК по USB, а на сервере RDP настроен проброс виртуального COM-порта, то протокол RDP накладывает колоссальные задержки на передачу служебных пакетов драйвера.
Для исправления этой проблемы переведем кассу на прямую работу по сети:
5555).Посмотрим на пример инициализации ККТ из кода 1С 7.7 (в которой работал автор темы) с использованием прямого сетевого подключения:
// Пример настройки сетевого подключения для старых версий драйвера АТОЛ (v8) в 1С 7.7
Попытка
ЗагрузитьВнешнююКомпоненту("FPrnM1C.dll");
ККТ = СоздатьОбъект("AddIn.FPrnM45");
Исключение
Предупреждение("Не удалось загрузить драйвер ККТ АТОЛ!");
Возврат;
КонецПопытки;
ККТ.DeviceEnabled = 0; // Отключаем устройство для изменения настроек
ККТ.Protocol = 0; // Протокол АТОЛ
ККТ.Model = 67; // Код модели АТОЛ 22Ф / FPrint-22ПТК
ККТ.PortNumber = 13; // Код порта для работы по TCP/IP (обычно 13 в старых драйверах)
ККТ.IPAddress = "192.168.1.190";
ККТ.BaudRate = 115200; // Для TCP/IP параметр формален, но важен драйверу
ККТ.ConnectionTimeout = 2000; // Увеличиваем таймаут связи до 2 секунд
ККТ.DeviceEnabled = 1; // Активируем связь
Если ККТ.ResultCode <> 0 Тогда
Сообщить("Ошибка подключения: " + ККТ.ResultDescription, "!");
Иначе
Сообщить("Связь с кассой АТОЛ по сети успешно установлена!");
КонецЕсли;
В условиях загруженной локальной сети стандартного таймаута ожидания ответа от ККТ, заданного в драйвере по умолчанию (обычно около 100–300 мс), бывает недостаточно. Драйвер отправляет команду на печать позиции, коммутатор задерживает пакет на доли секунды, драйвер не получает подтверждения вовремя и аварийно разрывает сессию с ошибкой -3 (Порт недоступен).
Разберем, как исправить эту настройку:
fptr_t.exe, для ДТО 10 — fptr10.exe).Если касса физически подключена по сетевому кабелю LAN, но в ее внутренних таблицах настроен обмен с ОФД через компьютер, по которому идет печать (например, по протоколу Ethernet over USB или Ethernet over Transport), плата ККТ начинает путать интерфейсы обработки трафика. Это приводит к блокировкам сетевого чипа. При необходимости массовой корректировки параметров на парке устройств можно использовать обработку для группового исправления настроек ОФД в кассах АТОЛ.
Проанализируем конфигурацию обмена:
При использовании автоматического получения IP-адресов по протоколу DHCP касса может периодически терять связь. Это происходит из-за того, что при истечении времени аренды адреса (Lease Time) роутер выдает кассе новый IP-адрес, либо передает старый адрес кассы другому устройству в сети (возникает конфликт IP-адресов).
Выполним правильную сетевую настройку по шагам:
Онлайн-касса в режиме простоя практически не генерирует сетевого трафика. Современные управляемые коммутаторы и роутеры с поддержкой стандарта энергоэффективности IEEE 802.3az (Green Ethernet) могут ошибочно решить, что к порту ничего не подключено, и перевести LAN-порт в спящий режим. При попытке отправить чек из 1С драйвер стучится в «спящий» порт ККТ и получает ошибку 10060 (Тайм-аут соединения).
Для предотвращения этой проблемы зайдем в настройки сетевого коммутатора или свойства сетевой карты ПК (если касса подключена через вторую сетевую плату компьютера) и деактивируем любые функции, связанные с энергосбережением (Energy Efficient Ethernet, Green Ethernet, «Разрешить отключение этого устройства для экономии энергии»).
Сетевой порт касс АТОЛ (порт 5555) спроектирован для работы по принципу «одно подключение в один момент времени». Если к кассе по сети пытается одновременно подключиться фоновое задание из другой информационной базы 1С, служба ОФД, ККМ-сервер или другой бухгалтер, сетевой порт моментально блокируется для всех остальных сессий. Для организации совместного доступа без конфликтов блокировки можно применить расширение для совместной работы нескольких рабочих мест с одной кассой.
Выясним причину блокировки порта:
DeviceEnabled = 0 в старых версиях драйвера или метод disconnect() в современных версиях).Если все вышеперечисленные сетевые и программные методы настройки были проверены, кабель заменен, но касса все равно стабильно отваливается несколько раз в день и возвращается в сеть строго через 15–30 минут — мы имеем дело с типичной аппаратной проблемой платформы АТОЛ 22Ф.
На материнской плате кассы установлен сетевой трансивер (LAN-чип), работающий в связке с центральным процессором ККТ LPC1778. Со временем, из-за естественной деградации полупроводниковых компонентов или из-за скачков напряжения в сети, этот чип начинает испытывать сильный перегрев во время работы под нагрузкой. При достижении критической температуры чип уходит в аварийную термозащиту и полностью отключает сетевой интерфейс (при этом диоды на LAN-разъеме могут хаотично и быстро мерцать). Связь отсутствует до тех пор, пока чип физически не остынет в корпусе кассы (на что и уходит порядка получаса).
Решение: Данная проблема не может быть исправлена программно. Кассу необходимо передать в авторизованный сервисный центр (АСЦ) для диагностики платы ККТ. Специалисты заменят перегревающийся сетевой чип (трансивер) и его обвязку либо произведут замену системной платы устройства целиком.