- Как настроить преобразователь NPort в режиме виртуального COM-порта (Real COM Mode)?
- Связанные материалы
- База знаний / F.A.Q
- О стандарте Telcordia
- Преобразователь NPort IA-5150
- NPort IA-5150
- Другие модификации
- Основные свойства
- Документация
- Windows driver manager moxa
- Настройка устройства NPort
- Как работает NPort?
- Сервер последовательных интерфейсов – что это?
- Как работает NPort?
- Упаковка данных и буфер памяти
- Работа драйвера NPort
- Как выбрать режим работы NPort?
- Режимы, для работы которых требуется установка драйвера:
- Socket режимы:
- Специальные режимы:
- MOXA Nport — взгляд изнутри
- Часть 1. Вводная
- Часть 2. Эмулируем MOXA
- Часть 3. Ищем и находим
- Часть 4. Считаем индусов*
Как настроить преобразователь NPort в режиме виртуального COM-порта (Real COM Mode)?
Руководство предназначено для работы NPort в локальной сети. Убедитесь, что ПК и NPort находятся в одной подсети.
Для начала работы необходимо установить драйвер через утилиту Windows NPort Driver Manager. Скачать утилиту Windows NPort Driver Manager можно на сайте производителя www.moxa.com
Запустите Windows NPort Driver Manager и нажмите кнопку Add.
В появившемся окне нажмите кнопку Search. Будет выполнен поиск NPort в сети.
После нажатия кнопки ОК утилита предложит активировать COM-порты. Нажмите Yes. После чего виртуальные COM-порты появятся в системе. Работать с ними можно также, как и с “родными” COM-портами компьютера.
Режим работы Виртуальный COM-порт (Real COM Mode) установлен в настройках NPort по умолчанию. Выставить параметры последовательного порта или сменить интерфейс можно через WEB-интерфейс или утилиту NPort Administrator.
Связанные материалы
База знаний / F.A.Q
- Найдите распиновку на подключаемое устройство и на NPort. MOXA придерживается стандартов и определяет сигнал B как положительный, а сигнал A как отрицательный. Во всех устройствах MOXA с разъемом DB9 сигнал B выведен на PIN3, сигнал A на PIN4.
Соедините положительный сигнал (B) NPort с положительным сигналом (B) устройства и отрицательный сигнал (A) NPort с отрицательным сигналом (A) устройства.
Некоторые производители используют не стандартное обозначение выводов, и возможно, придется поменять местами контакты A и B.
Известно, что такая ситуация возникает с устройствами, построенными на микросхеме Maxim MAX483.
NPort серии 5000 поддерживает до 4-ех одновременных подключений.
Серии NPort 5000A (Advanced), NPort 6000 и выше поддерживают до 8-ми одновременных подключений.
MTBF (среднее время между отказами) является индикатором надежности.
Для расчета значения MTBF MOXA использует стандарт Telcordia (ранее известный как Bellcore).
Значения MTBF можно посмотреть в карточке товара на нашем сайте или в спецификации на оборудование.
Вы также можете получить официальный отчет MTBF, направив обращение на нашу почту russia@moxa.pro
О стандарте Telcordia
Метод основан на военном стандарте MIL-HDBK 217, но с изменениями и дополнениями для учёта параметров, полученных в режиме реальной коммерческой эксплуатации оборудования, и при этом также содержит обновленную информацию о надежности компонентов. Методика сфокусирована на прогнозировании надёжности системы с учётом характеристик отдельных составляющих путём присвоения различных значений интенсивности отказов каждому электронному компоненту, а также присвоением соответствующих значений интенсивности отказов для характерных стрессовых условий (например – температуры), определённых на основании анализа результатов стрессовых испытаний.
Хотя значение MTBF является показателем надежности, тем не менее, оно не отражает предполагаемый срок эксплуатации изделия.
Стандартный пароль NPort по умолчанию: moxa
(Раньше был пустым).
Для сброса пароля и возврата к заводским настройкам NPort нажмите и удерживайте кнопку Reset в течение 5 секунд. Иного способа восстановить забытый пароль NPort не существует.
Если у вас есть NPort с двумя или более портами, то вы можете при необходимости переслать данные, приходящие на один из его COM-портов, в другой COM-порт.
Для этого необходимо выбрать режим работы портов TCP Server и TCP Client.
Количество COM-портов зависит от того, какой драйвер используется.
NPort Administrator поддерживает до 256 COM портов.
NPort Windows Driver Manager поддерживает до 4096 COM портов.
В устройствах MOXA используется стандартная распайка интерфейса RS-485 для разъема DB9 Male.
В устройствах MOXA используется стандартная распайка интерфейса RS-232 для разъема DB9 Male.
Функция COM Grouping позволяет работать с несколькими устройствам NPort через один виртуальный COM-порт компьютера.
Для преобразователей серии NPort 6000 производителем предустановлен пароль на вход в web-интерфейс.
Преобразователь NPort IA-5150
NPort IA-5150
Другие модификации
Основные свойства
Документация
Datasheet (англ.): скачать (2 Мб)
Руководство по аппаратной части (англ.): скачать (0,8 Мб)
Руководство по аппаратной части (рус.): скачать (0,3 Мб)
Руководство пользователя (англ.): скачать (16 Мб)
Руководство по использованию устройств NPort в режиме удаленного виртуального COM-порта компьютера (режим Real COM Mode) (рус.): скачать (0,9 Мб)
Отладка системы передачи данных RS-232/422/485 по сетям Ethernet. Мониторинг устройств NPort (рус.): скачать (0,6 Мб)
Руководство по использованию устройств NPort для «прозрачного» удлинения последовательной линии связи RS-232/422/485 по сетям Ethernet TCP/IP (режим Pair Connection) (рус.): скачать (0,9 Мб)
Настройка функции Force Tx Timeout в устройствах MOXA NPort. Для режимов Real COM, TCP Client, TCP Server, UDP Mode (рус.): скачать (0,4 Мб)
Чертеж для AutoCAD 2D (dwg): скачать (0,3 Мб)
Windows driver manager moxa
Устройства NPort могут работать в различных режимах в зависимости от поставленной задачи:
- В режиме RealCOM на компьютере с помощью драйвера создается виртуальный СОМ-порт. Программное обеспечение, связывающееся с конечным последовательным оборудованием, обращается к этому СОМ — порту как к СОМ — порту самого компьютера.
- В режиме TCP Server между устройством NPort и программным обеспечением устанавливается TCP — соединение. При обращении к конечным устройствам необходимо указать ip — адрес преобразователя NPort и ТСР — порт.
Настройка устройства NPort
1. Сетевые настройки
В браузере в адресной строке вводим 192.168.127.254 (ip-адрес устройства NPort по умолчанию). Вводим пароль для доступа к устройству (пароль по умолчанию moxa).
В разделе Network Settings указываем ip-адрес, маску и шлюз в соответствии с параметрами локальной сети.
После внесения любых изменений в настройки преобразователя необходимо сохранить и перезагрузить устройство.
. Обратите внимание, что в Web-браузере теперь необходимо будет ввести новый IP-адрес устройства NPort
2. Настройки последовательного интерфейса
В разделе Serial Sittings указываем параметры последовательного порта аналогичные с настройками устройства, которое будет подключаться к NPort по интерфейсу RS-232/422/485.
3. Настройки режима работы
В разделе Operating Settings выбираем необходимый режим работы:
Для режима TCP Server —
В этом режиме работы необходимо указать Local ТСР port, через который будет устанавливаться соединение
Для режима RealCOM –
В этом режиме работы на компьютере необходимо создать виртуальный СОМ-порт. Для этого установим и запустим утилиту NPort Windows Driver Manager. В ней осуществим поиск устройства и добавим СОМ-порт.
Созданный виртуальный СОМ-порт будет отображать в диспетчере устройств и можно будет к нему обращаться с любой пользовательской программы для открытия СОМ-портов.
Как работает NPort?
Не знаете, чем отличаются режимы работы NPort, и какой выбрать? Мы всё объяснили!
Данная статья поможет понять принцип действия NPort, правильно выбрать режим работы и понять назначение каждого из них
Сервер последовательных интерфейсов – что это?
Для рядового пользователя NPort представляет собой устройство, которое пробрасывает данные между локальной сетью Ethernet и последовательным портом устройства (COM-портом).
Обычно, особенно в англоязычной литературе, такие устройства называют серверами последовательных интерфейсов. Используется слово «сервер», потому что устройства собирают на себя данные с одного или нескольких последовательных портов, а потом, обработав, передают дальше по сети. При этом такие приборы подменивают данные на 1-м (физическом) и 2-м (канальном) уровне модели OSI, преобразовывая среду передачи и форматы кадров между стандартами Ethernet и RS-232/422/485. В контексте такого взгляда на функционал понятие «сервер» скорее синоним слова «буфер», а не компьютер (сервер в классическом понимании обычно выполняет немного другие задачи, а именно: предоставление общего доступа к ресурсам и услугам).
В русскоязычной среде больше прижились понятия «преобразователь» или «конвертер» последовательных интерфейсов, что, в принципе, лучше передаёт смысл задач, выполняемых такими устройствами, но не принцип их работы. На самом деле многие не знают, как происходят эти преобразования, из-за чего пользователи иногда сталкиваются с проблемами при использовании серверов/конвертеров/преобразователей (полюбившееся подчеркнуть) последовательных интерфейсов.
Как работает NPort?
Упаковка данных и буфер памяти
Одна из проблем, с которой сталкиваются производители преобразователей последовательных интерфейсов – различие в скоростях передачи данных по сети Ethernet (10/100 Мбит/с) и последовательной линии связи RS-232/422/485 (до 921.6 кбит/с). Поэтому данные, приходящие на COM-порт сервера последовательных интерфейсов, помещаются в буфер памяти, где хранятся до его переполнения/получения спец. символа/истечения времени хранения.
После этого все данные из буфера “упаковываются” в IP-пакет и передаются по Ethernet-сети в рамках TCP- или UDP-сессии.
К данным добавляется заголовок TCP-сегмента: — Data over TCP
Работа драйвера NPort
Для работы NPort в режиме виртуального COM-порта на компьютере обязательно должен быть драйвер. Он инсталлируется на вычислительную машину автоматически при установке утилиты NPort Administrator или NPort Windows Driver Manager. Читайте также: В чем отличие NPort Administrator и NPort Windows Driver Manager?
При отправке информации через приложение драйвер перехватывает данные, отправляемые на COM-порт, упаковывает их в пакеты TCP/IP и затем отправляет через сетевую карту ПК.
При приеме данных с COM-порта драйвер принимает данные, приходящие на сетевую карту ПК, распаковывает TCP/IP пакет и передает приложению в корректном для приложения формате.
Таким образом на аппаратном уровне компьютер общается только с Ethernet-сетью, в то же время на программном – приложение на ПК отправляет данные в том же виде, как если бы работало с реальной платой с COM-портами, вставленной в PCI-слот машины.
В свою очередь на другом конце соединения NPort принимает Ethernet-кадры, затем распаковывает IP-пакет, отбрасывает TCP-заголовок и затем прозрачно отправляет оставшиеся данные на соответствующее последовательное устройство, подключенное к одному из последовательных портов NPort.
Как выбрать режим работы NPort?
NPort поддерживает 11 групп режимов работы для различных задач. Диаграмма ниже поможет правильно выбрать режим работы.
Принято считать, что именно обилие режимов сделало NPort самым продаваемым сервером последовательных интерфейсов в мире.
Рассмотрим все это подробнее в отдельных мини-статьях.
Режимы, для работы которых требуется установка драйвера:
Эти режимы можно назвать классическими, и их основная задача – оснастить современные компьютеры, у которых есть только Ethernet-порт виртуальным COM-портом, чтобы продолжать использовать программы, написанные под старое оборудование.
Socket режимы:
Эта группа режимов используется в случае, если Ваше приложение или устройство поддерживает стек TCP/IP. Они представляют прямой доступ к серверам последовательных устройств через сети TCP/IP без предварительной установки драйвера.
Специальные режимы:
Эти режимы используются для частных случаев, понятных из названий. Более подробную информацию о них можно получить, кликнув по ссылкам.
MOXA Nport — взгляд изнутри
Серверы сбора данных по последовательным портам 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$. Но учитывая что на любом автоматизированном производстве таких устройств может быть установлено сотни а то и тысячи — вырисовывается довольно лакомый кусочек для отечественных «импортозамещальщиков».
Им то я сегодня и попытаюсь помочь.
Что будем делать?
Во первых — разберемся в теории, как оно устроено внутри.
Во вторых — вычленим минимальный функционал для запуска работы в режиме 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 файла описание всех разобранных запросов, ответов и передаваемых параметров.
Скачать: Описание разбора протокола MOXA.pdf
То есть данный набор знаний позволяет реализовать устройство, которое может работать в паре с родным драйвером и передавать данные как MOXA. Половина работы выполнена, но есть один момент — как поменять конфигурацию? Было бы здорово использовать для этих целей родную утилиту NPort Administration Suite.
Часть 3. Ищем и находим
В первых двух частях было описано что нужно сделать, но ни слова не было о том, как получить данные для реализации протоколов.
В этой части копнем немного глубже и посмотрим, как же проводился анализ самого обмена.
Мы знаем, что на устройстве открыт UDP порт 4800, давайте подключим устройство, запустим NPort Administration Suite, Wireshark и посмотрим что происходит при поиске устройств родной утилитой.
Смотрим отправленные пакеты:
Видим, что NPort Administration Suite отправляет бродкаст на адрес 255.255.255.255 то есть надеется, что пакет разлетится по всей сети.
В payload пакета содержатся данные:
Данный запрос отправляется несколько раз, видимо в надежде что хотя бы один из них достигнет цели.
На данный запрос отзываются все MOXы.
Конкретно наша ответила:
Вроде все элементарно просто, смущает только значение 12 03 00 80 32 03, отвечающее за интерпретацию конкретной модели устройства.
Но, так как данное значение сверяется с каким то эталонным справочным — значит оно должно где то хранится.
Немного изучив директорию с ПО — находим, что в NPort Administrator Suite v1.22 данные значения хранятся в файле C:\Program Files\NPortAdminSuite\bin\dsci.dll
Посидев с Wireshark и устройством несколько дней — получаем полный лог обмена и понимание какие коды функций что получают в ответ. Для удобства восприятия — все найденное описано в том же pdf файле, ссылка на который указана в статье ранее.
Для полноты понимания картины — лишь напомню, что по UDP 4800 идет получение первичных сведений о устройстве, все параметры которые требуют настройки и установки — настраиваются посредством запросов на TCP порт 4900.
Правильно обработав все поступающие запросы на 4800 и 4900 порты — мы сможем полноценно прикинуться устройством, так что даже родное ПО не заметит подвох.
Часть 4. Считаем индусов*
В ходе анализа протокола — меня не покидало ощущение, что различные куски протокола обмена писали разные люди, слишком отличаются значения функций и их интерпретации.
UDP порт 4800 коды функций начинаются с:
TCP порт 4900 коды функций начинаются с:
TCP порты 966, 967, 968, 969 коды функций начинаются с:
То есть используется уже одно байтовый идентификатор функции, а не двухбайтовый как ранее.
Тут кстати вылез забавный момент. По портам 966, 967, 968, 969 ответ на установку параметров всегда состоит из 3х байт.
Первый — это номер функции, а остальные 2 это 4f 4b или есть посмотреть в таблицу ASCII — «O» «K»
Ну OK с ним, идем далее.
Вторая замеченная особенность — мешанина Big и Little Endian в пределах одного ответа.
Размер пакета кодируется одним образом, а все числовые значения (год, месяц, день . ) другим. Отсюда можно сделать вывод, что обработку пользовательской части начиная с 75 00 04 00…… писал другой программист.
Подведем итог: Минимум 3 разных человека писали протокол обмена, 1 писал обработку пользовательской части данных и еще как минимум 1 писал обработчик WEB интерфейса. По моим подсчетам над проектом трудилось примерно 5 программистов.
А сколько насчитали вы?
*Под понятием «Индус» в данном случае подразумевается наемный работник, выполняющий свои обязанности за еду и ипотеку, способный кодить отсюда и до обеда не особо вникая в глобальные планы компании работодателя.