Серверы сбора данных по последовательным портам MOXA Nport и им подобные — в настоящее время являются стандартом де факто в области построения систем передающих или принимающих данные через интерфейсы RS-232,RS-485 и RS-422.
Счетчики электроэнергии, управляемые вентили и задвижки, расходомеры, датчики вибрации, устройства телемеханики.
Все, что может генерировать данные или управляться удаленно и имеет интерфейс RS-232, RS-485 и RS-422 — работает через данные преобразователи.
Общий смысл их использования — обычно заключается в следующем: пробросить интерфейсы RS-232,RS-485 и RS-422 через существующую локальную сеть, подключить устройство или прибор имеющий один из последовательных интерфейсов к ПК (серверу, SCADA) через Ethernet, подключится к прибору имеющему последовательный интерфейс через Internet для удаленного управления и т.п.
Цены на данные преобразователи не сильно высоки, младшие модели можно взять за 100-200$. Но учитывая что на любом автоматизированном производстве таких устройств может быть установлено сотни а то и тысячи — вырисовывается довольно лакомый кусочек для отечественных «импортозамещальщиков».
Настройка преобразователей интерфейсов MOXA серии NPort
Им то я сегодня и попытаюсь помочь.
Что будем делать?
Во первых — разберемся в теории, как оно устроено внутри.
Во вторых — вычленим минимальный функционал для запуска работы в режиме Real Com Mode (то есть по сути для проброса виртуального COM порта до устройства через Ethernet).
В третьих — ради интереса разберем протокол поиска и конфигурирования устройства через утилиту NPort Administration Suite. Получим полное понимание, как создать pin-to-pin аналог железки, которую можно воткнуть вместо существующей MOXA Nport при этом получив полную поддержку со стороны родного ПО и драйвера.
Ну и на последок — попробуем посчитать, сколько индусов писало код прошивки MOXA.
Часть 1. Вводная
Итак, у нас на столе подопытный (на самом деле их было несколько, поэтому не удивляйтесь если увидите в статье различные идентификаторы моделей и различные MAC адреса)
На нем есть порт Ethernet и два порта RS-422/RS-485 — это физически.
А в программном плане — на устройстве открыты:
UDP порт 4800 — он отвечает за ловлю пакетов поиска устройства и отдает данные о самом устройстве в утилиту конфигурирования.
TCP порт 4900 — на него приходят команды конфигурирования устройства. Через этот порт настраивается время устройства, имя, IP адрес, режим работы, скорости и настройки портов и прочие базовые параметры, которые можно настроить через основной интерфейс утилиты NPort Administration Suite:
TCP порт 80 — отвечает за работу WEB интерфейса
TCP порты 966, 967, (и 968, 969 у 4х портовых устройств) — это порты управления передачей. По ним бегают команды открытия/закрытия соответствующего COM порта, установка скорости порта, проталкивание данных, мониторинг заполненности буфера передачи / приема и тд. Порт 966 отвечает за работу первого порта соответственно.
TCP порты (по умолчанию) 950, 951, (и 952, 953 у 4х портовых устройств) — это порты непосредственной передачи данных. То есть то, что непосредственно должно оказаться на RS-232/485/422 порте у устройства — передается в данные порт. Только данные, управление потоком в данном порту идет по 966, 967, 968, 969 портам соответственно.
Надеюсь общая картинка понимания работы устройства в голове сложилась. Давайте перейдем к следующей части:
Часть 2. Эмулируем MOXA
Наверняка многим уже стало понятно, что для того чтобы прикинутся MOXA Nport в минимальной конфигурации — необходимо на своем железе поднять TCP сервер на 2х портах: 966 для управления передачей и 950 для непосредственно передачи данных. Естественно придется корректно отвечать и обрабатывать запросы драйвера по 966 порту, но как показал анализ средствами wireshark — запросов не так много и они простейшие.
Дабы не перегружать текст статьи выкладками с описанием запросов и ответов — подготовил и выложил отдельно в виде pdf файла описание всех разобранных запросов, ответов и передаваемых параметров.
Часть 3. Ищем и находим
В первых двух частях было описано что нужно сделать, но ни слова не было о том, как получить данные для реализации протоколов.
В этой части копнем немного глубже и посмотрим, как же проводился анализ самого обмена.
Мы знаем, что на устройстве открыт UDP порт 4800, давайте подключим устройство, запустим NPort Administration Suite, Wireshark и посмотрим что происходит при поиске устройств родной утилитой.
Смотрим отправленные пакеты:
Видим, что NPort Administration Suite отправляет бродкаст на адрес 255.255.255.255 то есть надеется, что пакет разлетится по всей сети.
В payload пакета содержатся данные:
01 00 00 08 00 00 00 00, где: 01 00 – код функции 00 08 – размер пакета в байтах в формате Big Endian. 00 00 00 00 – не определено
Настройка адаптеров датчиков Moxa NPort com ip tcp
Для настройки адаптера требуется воспользоваться утилитой от производителя LAN-адаптера — NPort Administrator. Запустив утилиту Вы можете запустить поиск устройств. При этом Ваш компьютер должен находится в одной подсети с LAN-адптером. Утилита найдет Ваше устройство и покажет его текущие настройки — модель адаптера, имя, IP-адрес и MAC-адрес. Дважды щелкнув по необходимому адаптеру ВЫ попадете в настройки этого устройства.
логин пароль admin/moxa
https://moxa.ru/support/download/ http://www.logika.spb.ru/catalog/4/
https://moxa.ru/support/download/
https://www.youtube.com/watch?v=o_Hig0UhgVU
web интерфейс moxa моха — Operation Modes Port 1 RealCom
Как настроить преобразователь NPort в режиме виртуального COM-порта (Real COM Mode)?
Руководство предназначено для работы NPort в локальной сети. Убедитесь, что ПК и NPort находятся в одной подсети.
Для начала работы необходимо установить драйвер через утилиту Windows NPort Driver Manager. Скачать утилиту Windows NPort Driver Manager можно на сайте производителя www.moxa.com
В режиме Real COM сервер NPort работает как удаленный COM-порт компьютера: после установки драйвера виртуального порта пользовательское приложение работает с интерфейсами RS-232, RS422 или RS-485 сетевого NPort-сервера так же, как с «родными» COMпортами компьютера.
Запустите Windows NPort Driver Manager и нажмите кнопку Add.
настройки moxa моха могут слетать затираться сбрасываться из-за старой прошивки firmware,
Для обновления прошивки используйте файл вида «moxa-nport-ia5000a-series-nport-ia5250a-series-firmware-v1_4.rom» np51x0_ver3_8_build_17102516.rom для модели вашего устройства.
Источник: 5house.win
Как настроить NPort? На примере NPort IA5150
В статье рассматриваем настройку самых востребованных режимов работы: RealCOM — виртуальный СОМ порт на ПК, TCP Client, TCP Server.
Не путайте NPort со шлюзами MGate. NPort преобразует только интерфейсы СОМ в Ethernet и не изменяет данные, а MGate преобразует интерфейсы и протоколы , подробнее в статье об отличиях NPort и MGate .
- Настройка NPort
- Режим RealCOM или Виртуальный COM-порт
- Режим TCP Client
- Режим TCP Server
- Как проверить работает ли NPort?
- Подтягивающие и согласующие резисторы
Настройка NPort
Режим RealCOM
Для работы с NPort IA5150 в режиме RealCOM установите драйвер или NPort Administration Suite .
Сначала нужно настроить NPort, а затем добавить СОМ порт либо через драйвер, либо через NPort Administration Suite.
Вы можете посмотреть короткий видеоролик по настройке NPort:
Если вы используете драйвер, то после настройки NPort вы увидите СОМ порт в диспетчере устройств. Если вы используете NPort Administration Suite для добавления СОМ порта, то СОМ порт в диспетчере устройств не отображается .
Настроим NPort в режим RealCOM и добавим виртуальный СОМ порт через NPort Administration Suite. Также можно использовать WEB-интерфейс для настройки.
Найдем NPort выделив поле Configuration и нажав кнопку Search .
После этого нужно разблокировать NPort: нажать правой кнопкой на нем, выбрать Unlock и ввести пароль из документации.
Далее выделяем наш NPort и нажимаем кнопку Configure .
В этом окне можно изменить настройки NPort, достаточно поставить галочку возле поля Modify .
Во вкладке Network можно изменить IP адрес NPort.
Во вкладке Serial настраиваются параметры COM порта: его скорость, тип интерфейса и др.
Для режима RealCOM скорость COM порта будет автоматически изменяться при открытии СОМ порта, а в других режимах здесь нужно указать правильную скорость.
Перейдем во вкладку Operation Mode для настройки режима работы конкретного COM порта.
Выберем режим работы RealCOM , а другие параметры оставим по умолчанию.
После сохранения настроек, NPort перезагрузиться и издаст характерный звук.
Далее добавим виртуальный СОМ порт на ПК (также для этого можно использовать драйвер NPort).
Выделим поле COM Mapping и нажмем кнопку Add.
В программе появится NPort и он будет иметь синий цвет, что значит эта настройка еще не сохранена.
Вы можете изменить номер СОМ порта через кнопку Configure .
После установки всех настроек сохраним их, нажав на кнопку Apply .
Надпись стала черного цвета , что означает все изменения были сохранены.
Для работы с СОМ портом нужна программа, которая позволит открыть СОМ порт и отправить в него данные. MOXA предлагает воспользоваться бесплатной утилитой.
Для проверки работы NPort можно воспользоваться рекомендациями ниже.
Режим TCP Client
Для режима TCP Client во вкладке Serial нужно указать правильную скорость, т.к. она сама не перестраивается.
Во вкладке Operation Mode нужно выбрать режим TCP Client .
Для правильной работы нужно указать IP адрес TCP Server с которым будет установлено соединение и TCP порт. Остальные параметры можно оставить по умолчанию.
Режим TCP Server
Для режима TCP Server во вкладке Serial нужно указать правильную скорость, т.к. она сама не перестраивается.
Во вкладке Operation Mode нужно выбрать режим TCP Server .
Для правильной работы нужно указать TCP порт по которому будет подключаться TCP Client .
Остальные параметры можно оставить по умолчанию.
Как проверить работает ли NPort?
Для проверки RS-232 можно воспользоваться простым способом, достаточно замкнуть контакты RX и TX между собой, что позволяет сделать петлю. Тогда все переданные данные в NPort будут возвращены обратно.
Откройте программу PComm Terminal Emulator, во вкладке Port Manager откройте СОМ порт , соответствующий NPort(в режиме RealCOM). Скорость и другие параметры можно оставить по умолчанию, т.к. драйвер автоматически применяет такие же параметры на NPort.