Подключаем последовательные интерфейсы по IP

    Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны в промышленности: по ним подключаются диагностические порты, датчики, сканеры штрих-кодов и RFID меток и т.д. Однако последовательные интерфейсы имеют свои ограничения. Иногда возникает необходимость получить доступ к такому интерфейсу по IP-сети, или, например, иметь доступ к одному устройству с RS-232 с нескольких удаленных компьютеров одновременно, или объединить несколько удаленных объектов в одну шину RS-485.

    Сервер последовательных интерфейсов конвертирует последовательные физические протоколы в 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 — многофункциональный промышленный контроллер
    Advantech IIoT
    50,44
    Наша миссия — создание умной планеты.
    Поделиться публикацией

    Комментарии 21

      +3
      Когда-то делал аналогичное решение в упрощенном варианте с помощью netcat по такому типу:

      netcat www.example.com port </dev/ttyS0 >/dev/ttyS0
      

      Вот только стабильно это работает в локальной сети с предсказуемыми задержками, а через интернет, где задержки могут изменяться, получается нестабильно.
        +1
        Аналогично до сих пор используем. OrangePi, USB-to-serial, netcat — и вот готовый конвертер интерфейсов за копейки.
        0

        Скажите а может он просто работать не как виртуальный 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 её увидел

          0

          Полагаю, этот как раз то о чем вы говорите:


          Также доступен открытый протокол перенаправления COM-порта RFC 2217, представляющий собой расширенные команды для протокола Telnet.
            0
            Именно с этим сервером интерфейсов не сталкивался, но аналогичное устройство от eWon отлично работает в этом режиме, уже лет 10. Виртуальный COM обычно просто перенаправляет полученные данные в сокет.
            0
            Как они соотносятся с устоявшейся на рынке классикой, вроде Moxa?
              +2
              В семействе EKI-152x-CE поддерживаются следующие функции, которые уникальны:
              1. “Двойной IP-адрес”:
              Устройство имеет два IP-адреса, это позволяет пользователям создавать резервируемые приложения на основе двойного IP-домена. (большинство устройств MOXA имеют только один IP-адрес)
              2. Система «своевременной диагностики»:
              Система «своевременной диагностики» — это диагностическая система, встроенная в каждое устройство EKI, которое может быть включено/отключено в любое время.
              Это дает пользователю возможность анализировать поведение своего приложения с минимальным влиянием на поведение или производительность своего приложения.
              3. «Резервируемое соединение»:
              Это функция резервирования, которая позволяет двум Ethernet портам устройства EKI подключаться к одному Ethernet коммутатору и совместно использовать «резервируемое IP соединение».
              Устройство EKI заблокирует второй порт Ethernet, чтобы предотвратить «зацикливание»; однако, если первый кабель Ethernet отключен или сломан, второй порт Ethernet «разблокируется» и обеспечит резервное соединение.
              Такое переключение выполняется быстро и не прерывает TCP-соединения, обеспечивая бесшовное подключение к данным для резервируемых приложений.
                0
                Спасибо, стало значительно интересней.
              0

              Переварит ли эта коробочка протокол котором важны тайминги? Скажем, тот же modbus rtu?

                0
                Для протокола Modbus RTU мы советуем наши Modbus шлюзы или Modbus роутеры.
                  0
                  вы не ответили на вопрос
                    0
                    Именно эта продукция не рассчитана на Modbus RTU, только Modbus ASCII, как раз из-за тайминга.
                    У нас очень большой выбор Modbus шлюзов, более 20 моделей. Какие именно у вас стоят задачи?
                      0
                      Modbus был указан в качестве примера. У меня легаси протокол с таймингами.
                        0
                        Нужно иметь в виду, что преобразование протоколов, ethernet-коммутаторы и сам TCP/IP безусловно вносит задержку. Более того, в зависимости от загруженности сети, задержка может изменяться. То есть можно вполне говорить о задержках в миллисекунды. Поэтому, если ваш протокол определяется длину пакета по временным интервалам, то такое решение скорее всего не подойдет.
                0
                ммм… ностальгия нахлынула…
                помню через ADAM-4571 (точно не помню, но похож) чтоли банкклиенты бухам подключал на один модем :)
                  0
                  Что-то я тут задумался, а бывают ли LPT over IP.
                  Беглый поиск результатов не дал.
                  Может это не будет работать из-за ограничений или сложности реализации, расскажите пожалуйста.
                    0
                    Полагаю, что технических ограничений на инкапсуляцию протокола параллельного порта в TCP/IP нет. Скорее в этом просто не было необходимости. Кстати, разъем DB25, который обычно подразумевается под названием LPT, часто использовался и для последовательных интерфейсов (rs232/485). Так что старые модели serial over ip шлюзов часто имели DB25 разъем.
                    0
                    Есть ли у вас модели, где вместо DB9, требующего пайку, применяющегося для RS232, простые клеммники, удобные для RS485? Есть ли встроенные сопротивления: терминаторы и подтяжки?
                      0
                      DB9, требующего пайку

                      А почему DB9 требует пайку? Вроде как раз удобно патчкорды DB9<->DB9 использовать.

                        0
                        А как-же вы будете подключать к DB9 витую пару RS485? Как подключать согласующие сопротивления? Можно через переходник DB9-клеммник, как у ProfiBus, но удобнее сразу сделать клеммник, как, например, у моксы.
                        0
                        У Advantech есть специальный переходник OPT1-DB9-AE, который преобразует DB9 в клеммники. Также есть встроенный резистор внутри OPT1-DB9-AE, он позволяет включать или отключать с помощью DIP-переключателя на корпусе.

                        картинка
                        image

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое