Сервер последовательных интерфейсов конвертирует последовательные физические протоколы в IP-пакеты, и позволяет программно управлять ими — подключать удаленный виртуальный COM-порт к компьютеру по сети так, будто он подключен физически, и прозрачно соединять несколько устройств в режиме P2P, без использования компьютеров.
В статье мы разберем сервер последовательных интерфейсов Advantech EKI-1524, имеющий четыре последовательный порта, каждый из которых поддерживает протоколы RS-232/422/485, и два LAN-порта.
Сервер последовательных интерфейсов EKI-1524 имеет четыре порта DB9 и два LAN-порта.
Ключевые функции EKI-1524:
- Виртуальный COM-порт — позволяет программно эмулировать виртуальный COM-порт удаленного устройства на системе Linux.
- Одновременное подключение нескольких клиентов — в режиме сервера дает возможность использовать один последовательный порт для нескольких устройств одновременно.
- Работа в режиме P2P — одновременная работа в режиме клиента и сервера позволяет объединить несколько EKI-1524 напрямую, без использования серверов и компьютеров.
Характеристики
Серия последовательных серверов EKI-1500 представлена широким спектром устройств для различных задач. От серверов с одним последовательным портом: EKI-1511X до серверов на 16 портов, для монтажа в серверную стойку, таких как EKI-1526N.
Дополнительно представлены модели с повышенным уровнем защищенности, для работы в экстремальных условиях, и гальванической развязкой портов, для защиты от высоких напряжений: EKI-1522I, EKI-1524I, и другие.
Все модели поддерживают подключение двух источников питания. Переключение между источниками питания происходит без перезагрузки устройства. Реле индикации обрыва питания замыкается в случае, если на одной из линий отсутствует напряжение.
Виртуальный COM-порт
Сервер последовательных интерфейсов позволяет по TCP/IP получить доступ к удаленным устройствам таким образом, что для прикладного ПО это будет выглядеть так, будто устройства подключены к физическому COM-порту.
Принцип работы виртуального COM-порта по сети Ethernet
Для этого на стороне клиента используется модуль ядра Linux и программа для обмена данными с сервером последовательных интерфейсов. В итоге для пользователя такое подключение выглядит как физический порт (устройство /dev/ttyADV0).
На данный момент Advantech выпускает драйвера виртуального COM-порта только для ОС Linux. Инструкция по сборке модуля ядра VCOM 2.0 на Ubuntu.
Также существуют бинарные пакеты драйвера под разные дистрибутивы: Linux Pseudo TTY
В веб-интерфейсе можно настроить параметры работы в данном режиме:
Дополнительные настройки. Можно вручную задать таймауты и т.д:
Настройки параметров последовательного интерфейса. В этом меню также можно изменить основной протокол (RS-232/422/485), для каждого порта.
Режим RFC 2217
Также доступен открытый протокол перенаправления COM-порта RFC 2217, представляющий собой расширенные команды для протокола Telnet. В этом режиме устройство принимает входящие подключения по TCP, в настройках можно указать порт для входящий соединений.
Режим P2P
Для сложных случаев, когда несколько устройств нельзя соединить напрямую, можно использовать два терминальных сервера в режиме прозрачного моста. Таким образом можно подключить удаленные устройства, используя в качестве транспорта TCP/IP.
Подключение двух удаленных устройств по последовательному протоколу через TCP/IP-транспорт
Таким образом можно программно переключать устройства между собой, соединять удаленные шины по RS-485 и делать много другое, используя все преимущества IP-сетей, включая радиомосты, виртуальные частные сети (VPN) и т.д. Передаваемые данные между двумя серверами можно дополнительно защитить от перехвата, используя шифрование на транспортном уровне.
Уведомления о событиях
Устройство позволяет настроить уведомления о событиях с помощью Email и SNMP Trap. MIB-файл для настройки SNMP-сервера доступен для каждого устройства.
События для уведомлений можно настроить вручную.
Логирование через Syslog
В веб-интерфейсе можно задать адрес удаленного Syslog-сервера для логирования. В лог записываются события подключения клиентов, ошибки аутентификации, статус LAN и последовательных портов и т.д.
Первичная настройка
Первичную конфигурацию сервера последовательных интерфейсов можно выполнить через утилиту EKI Device Configuration Utility. При этом утилита работает через ARP-пакеты и не требует настройки соответствующего IP-адреса на сетевом интерфейсе. Это значит, что можно задать любой IP-адрес устройству, без утраты доступа.
Заключение
Серверы последовательных интерфейсов позволяют обходить ограничения, которые накладывают физические протоколы, и легко масштабировать подключения. Режим P2P позволяет подключать устаревшие устройства, используя интернет в качестве транспорта, при этом обходиться без серверов.
Ссылки
Как общаются машины — протокол MQTT
Как общаются машины — протокол Modbus
ADAM-3600 — многофункциональный промышленный контроллер
Комментарии (15)
irbis_al
10.06.2019 14:13Скажите а может он просто работать не как виртуальный COM (А то непонятно соберётся… не соберётся… я не использую Ubuntu я использую Centos ) Так вот просто кинул я в socket 10.0.3.1:7000 Информацию 0x5f 0xc6 Она в com 1 EKI-1524 попала.
Пришла в EKI-1524(com 1) информация я в Клиенте socket 10.0.3.1:7000 её увиделzhovner
10.06.2019 18:01Полагаю, этот как раз то о чем вы говорите:
Также доступен открытый протокол перенаправления COM-порта RFC 2217, представляющий собой расширенные команды для протокола Telnet.
Dinxor
13.06.2019 00:17Именно с этим сервером интерфейсов не сталкивался, но аналогичное устройство от eWon отлично работает в этом режиме, уже лет 10. Виртуальный COM обычно просто перенаправляет полученные данные в сокет.
Tsvetik
11.06.2019 09:14Переварит ли эта коробочка протокол котором важны тайминги? Скажем, тот же modbus rtu?
eliza-s
11.06.2019 12:02Для протокола Modbus RTU мы советуем наши Modbus шлюзы или Modbus роутеры.
Tsvetik
11.06.2019 12:30вы не ответили на вопрос
eliza-s
11.06.2019 13:03Именно эта продукция не рассчитана на Modbus RTU, только Modbus ASCII, как раз из-за тайминга.
У нас очень большой выбор Modbus шлюзов, более 20 моделей. Какие именно у вас стоят задачи?Tsvetik
11.06.2019 13:19Modbus был указан в качестве примера. У меня легаси протокол с таймингами.
Advantech Автор
13.06.2019 23:05Нужно иметь в виду, что преобразование протоколов, ethernet-коммутаторы и сам TCP/IP безусловно вносит задержку. Более того, в зависимости от загруженности сети, задержка может изменяться. То есть можно вполне говорить о задержках в миллисекунды. Поэтому, если ваш протокол определяется длину пакета по временным интервалам, то такое решение скорее всего не подойдет.
Chugumoto
11.06.2019 13:52ммм… ностальгия нахлынула…
помню через ADAM-4571 (точно не помню, но похож) чтоли банкклиенты бухам подключал на один модем :)
MrNobody
13.06.2019 04:36Что-то я тут задумался, а бывают ли LPT over IP.
Беглый поиск результатов не дал.
Может это не будет работать из-за ограничений или сложности реализации, расскажите пожалуйста.Advantech Автор
13.06.2019 23:13Полагаю, что технических ограничений на инкапсуляцию протокола параллельного порта в TCP/IP нет. Скорее в этом просто не было необходимости. Кстати, разъем DB25, который обычно подразумевается под названием LPT, часто использовался и для последовательных интерфейсов (rs232/485). Так что старые модели serial over ip шлюзов часто имели DB25 разъем.
Gho_st
Когда-то делал аналогичное решение в упрощенном варианте с помощью netcat по такому типу:
Вот только стабильно это работает в локальной сети с предсказуемыми задержками, а через интернет, где задержки могут изменяться, получается нестабильно.
vrangel
Аналогично до сих пор используем. OrangePi, USB-to-serial, netcat — и вот готовый конвертер интерфейсов за копейки.