В промышленной автоматизации часто возникает ситуация, когда весовой терминал находится на значительном удалении от учетного компьютера, а прокладка кабеля RS-232 невозможна или нецелесообразна. Рассмотрим подробно, как организовать стабильную передачу данных с весов из удаленной "Весовой" точки в центральный офис, используя существующую Wi-Fi сеть и платформу 1С.
Если на весовой точке отсутствует компьютер, самым надежным и профессиональным решением будет установка промышленного преобразователя интерфейсов. Проанализируем работу таких устройств, как Moxa NPort W или USR-W610.
Эти устройства работают по следующему принципу: весы подключаются физическим кабелем к порту RS-232 конвертера. Конвертер подключается к вашей Wi-Fi сети как клиент. На компьютере в офисе устанавливается специальный драйвер Virtual COM Port, который создает в системе виртуальный порт (например, COM10). Программа 1С "думает", что весы подключены локально, хотя данные передаются через Wi-Fi.
Разберем по шагам настройку такого решения:
В ситуациях, когда бюджет ограничен или требуется предварительная обработка данных, рассмотрим вариант с использованием мини-компьютеров типа Orange Pi Zero. Это решение может оказаться дешевле промышленных конвертеров и гибче в настройке.
Проанализируем схему работы через мини-ПК:
ser2net или socat. Эти утилиты транслируют поток данных из последовательного порта в TCP-сокет.Пример настройки трансляции порта на Linux (файл конфигурации /etc/ser2net.conf):
# Трансляция порта /dev/ttyUSB0 на сетевой порт 4000
4000:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT
Посмотрим на ситуацию со стороны конфигурации 1С. Если мы используем виртуальный COM-порт, то интеграция ничем не отличается от обычного подключения. Однако важно учитывать особенности работы через беспроводную сеть.
Разберем основные настройки в 1С:
Рассмотрим еще один эффективный метод, упомянутый специалистами: использование распределенной архитектуры драйверов 1С. Если на весовой точке все же есть какой-либо компьютер с Windows, можно задействовать "Сервер торгового оборудования".
Алгоритм действий будет следующим:
Для продвинутых разработчиков проанализируем способ получения данных без использования виртуальных COM-портов. Это повышает стабильность, так как исключает лишнее звено в виде системных драйверов. Мы можем считывать данные напрямую из IP-адреса конвертера.
Посмотрим на пример логики, которую можно реализовать в обработке 1С (используя объект ЧтениеДанных или внешние компоненты):
// Пример логики подключения к TCP-сокету конвертера
АдресКонвертера = "192.168.1.50";
ПортКонвертера = 4001;
// Использование объекта для работы с TCP (зависит от версии платформы и доступных ВК)
Соединение = Новый TCPСоединение(АдресКонвертера, ПортКонвертера);
Поток = Соединение.ПолучитьПоток();
Чтение = Новый ЧтениеДанных(Поток);
// Читаем данные из потока весов
Пока Истина Цикл
СтрокаВеса = Чтение.ПрочитатьСтроку();
Если ЗначениеЗаполнено(СтрокаВеса) Тогда
// Парсим полученную строку согласно протоколу весов
Вес = ИзвлечьЧислоВеса(СтрокаВеса);
Прервать;
КонецЕсли;
КонецЦикла;
Выясним причины возможных ошибок при работе по радиоканалу. Главная проблема — кратковременные разрывы связи и накопление данных в буфере. Если связь прервалась, а весы продолжают слать данные, то при восстановлении соединения 1С может получить "пачку" старых значений веса.
Для решения этой проблемы рекомендуем:
Подводя итог, наиболее надежным решением для промышленной эксплуатации является использование аппаратного конвертера RS-232 to Wi-Fi в режиме TCP Server в сочетании с увеличенными тайм-аутами в драйвере 1С. Это минимизирует количество промежуточного ПО и обеспечивает прозрачную работу для пользователя.