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-портом, чтобы продолжать использовать программы, написанные под старое оборудование.

Читайте также:  Ошибка при регистрации компонентов windows

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 файла описание всех разобранных запросов, ответов и передаваемых параметров.

Читайте также:  Обзор сети для linux

Скачать: Описание разбора протокола 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 программистов.
А сколько насчитали вы?

*Под понятием «Индус» в данном случае подразумевается наемный работник, выполняющий свои обязанности за еду и ипотеку, способный кодить отсюда и до обеда не особо вникая в глобальные планы компании работодателя.

Как настроить NPort? На примере NPort IA5150

В статье рассматриваем настройку самых востребованных режимов работы: RealCOM — виртуальный СОМ порт на ПК, TCP Client, TCP Server.

Не путайте NPort со шлюзами MGate. NPort преобразует только интерфейсы СОМ в Ethernet и не изменяет данные, а MGate преобразует интерфейсы и протоколы , подробнее в статье об отличиях NPort и MGate .

  • Настройка NPort
  • Режим RealCOM или Виртуальный COM-порт
  • Режим TCP Client
  • Режим TCP Server
  • Как проверить работает ли NPort?
  • Подтягивающие и согласующие резисторы
Читайте также:  Удалить все статические маршруты windows

Настройка 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.

Мы отправили несколько единиц в СОМ порт и получили их обратно, также видим одинаковые значения счетчиков TX и RX, что подтверждает получение всех отправленных данных.

Подтягивающие и согласующие резисторы

В некоторых моделях NPort есть встроенные резисторы, которые обеспечивают правильную работу линий RS-422/485.

Согласующий резистор или терминатор 120 Ом – ставится в начале и конце линии для предотвращения отражения сигнала от конца линии и искажении полезного сигнала в RS-422/485.

Подтягивающие резисторы (pull high/low resistors) – предназначены для ограничения тока, протекающего по сигнальным цепям, и чтобы сделать состояние цифрового входа по умолчанию высоким или низким.

NPort IA5150 не имеет встроенных резисторов, но у некоторых моделей они есть, пример для других моделей:

Оцените статью
Adblock
detector