fast flush moxa что это

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 в пределах одного ответа.

Подведем итог: Минимум 3 разных человека писали протокол обмена, 1 писал обработку пользовательской части данных и еще как минимум 1 писал обработчик WEB интерфейса. По моим подсчетам над проектом трудилось примерно 5 программистов.
А сколько насчитали вы?

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

Источник

Трансляция RS-232 и RS-485 интерфейсов по Ethernet при помощи модемов «NPORT 5130» и «NPORT 5150» компании «MOXA Technologies Co»

Продолжение тестирования преобразователей фирмы MOXA. В данном тестировании использовались преобразователи с увеличенным быстродействием NPort 5130 и NPort 5150.

Возможна работа системы «Орион» по ЛВС ethernet с использованием устройств передачи данных NPort 5130 и 5150 фирмы Моха Technologies Co (далее NPort). В качестве опросчика системы были использованы С2000М v.2.03 и АРМ «Орион» выпуск 7.5.1.

Конфигурация NPORT’ов (режим работы, настройки серийного порта, IP адрес) осуществляется по ЛВС с помощью специальной программы «NPort Administrator», входящей в состав ПО.

Для осуществления передачи сообщений по ЛВС использовалось следующее оборудование:

Трансляция с использованием MOXA NPort 5130

Характеристики NPort5130
Системные
Процессор 16-бит
Память 512КБ
Сетевые
Ethernet 100Base-TX (10/100 Mbps)
Серийный порт
Интерфейс RS-485
Разъем male DB9
Скорость от 50 бит/с до 921,6 Кбит/с
Режимы работы виртуальный COM порт
TCP сервер
TCP клиент
передача дейтограмм UDP
точка-точка
Фирма Моха Technologies Co.,(Тайвань)

* Примечание: соответствие выводов прибора с принятым обозначением приведены в таблице.

обозначение выводов на преобразователе обозначение вывода на приборах НВП «Болид»
D + A
D – B
GND

ВАРИАНТЫ ПОДКЛЮЧЕНИЙ NPort 5130

1. Виртуальный COM порт

Компьютер с АРМ «Орион»/АРМ «Орион Про» и NPort 5130 подключаются к локальной сети. На выходе NPort 5130 RS-485 далее к приборам.

Для работы данной схемы необходимо на внутренней плате преобразователя MOXA Nport 5130 выставить джампер JP3.

Для конфигурирования NPort 5130 необходимо подключить его к ПК и запустить программу NPort Administrator.

После чего нажать на кнопку «Search», в результате справа будут отображены все найденные приборы.

Примечание: заводской IP адрес приборов 192.168.127.254, если прибор не находится в программе конфигурирования, то необходимо изменить сетевой адрес ПК на 192.168.127.XXX.

Далее необходимо выбрать конфигурируемый NPort и нажать кнопку «Configure», в результате будет считана текущая конфигурация NPort 5130:

После чего необходимо перейти на вкладку «Network» и настроить IP адрес. Для этого необходимо отметить флаг «Modify» и ввести значение адреса в поле «IP Address».

Далее необходимо перейти на вкладку «Serial», выбрать Nport из списка, отметить опцию «Modify» и нажать на кнопку «Settings». В появившемся окне необходимо задать следующие параметры интерфейса RS-485:

После настройки интерфейса RS-485 необходимо нажать на кнопку «OK» и перейти на вкладку «Operating Mode», выбрать Nport из списка, отметить опцию «Modify» и нажать на кнопку «Settings». В появившемся окне для параметра «Operating Mode» (режим работы) необходимо выставить «Real COM mode».

Далее необходимо нажать кнопку «OK» в подтверждение настроек режима работы. После чего записать конфигурацию в Nport 5130, нажав кнопку «OK» окна Cofiguration.

После чего выбрать в списке «Function» параметр «COM Mapping» и нажать на кнопку «Add». В появившемся окне необходимо выбрать Nport 5130 и нажать кнопку «OK». В результате в списке «COM Mapping» появится новая запись с информацией о подключенном устройстве:

Далее необходимо выбрать запись из списка и нажать на кнопку «Configure», в появившемся окне необходимо настроить следующие параметры.

На вкладке «Basic Settings»:

COM Number – номер виртуального COM порта.

На вкладке «Advanced Settings»:

Tx mode – Hi-Performance;

Читайте также:  lpg в машине что значит

Fast Flush – включен.

На вкладке «Serial Parameters»:

Flow Control – None;

После чего необходимо нажать кнопку «OK» диалогового окна «COM Port Settings» и кнопку «Apply» программы конфигурировании.

Примечание: при данной схеме подключения возможно использовать только одно устройство Nport для каждого номера виртуального COM – порта.

Для АРМ «Орион»/АРМ «Орион Про» необходимо задать используемый номер COM порта в Администраторе базы данных.

При данных настройках качество обменов 100%, скорость составляет 27-28 обменов в секунду.

При использовании сильно загруженной сети Ethernet возможно ухудшение связи между ПК и приборами. Возможное решение этой проблемы – увеличение параметра «Таймаут ожидания запроса» до 70 мсек в программе Settings (http://bolid.ru/production/orion/po-orion/rssettings.html) на вкладках Общие RS и PORT[n], где n – номер используемого COM-порта.

2. Сетевой контроллер АРМ «Орион»/АРМ «Орион Про» подключается к пульту C2000М, один луч RS-485 к приборам, а другой к NPort 5130, далее в Ethernet, потом NPort 5130 на выходе RS-485 далее приборы.

Для работы данной схемы необходимо на внутренней плате преобразователя MOXA Nport 5130 выставить джампер JP3.

Конфигурирование IP адреса и параметров интерфейса RS-485 для всех используемых NPort 5130 описаны в предыдущем варианте подключения. После чего необходимо настроить режим работы (на вкладке «Operating Mode»).

Настройки Nport 5130, подключенного к пульту:

Примечание: заданный адрес 192.168.11.255 – широковещательный адрес для сети 192.168.11. Если используется другая адресация в сети, то необходимо ввести адрес используемой Ethernet сети и в качестве узла задать 255. Если количество удаленных точек не более 2-3, для локализации трафика возможно указывать IP-адреса удаленных Nport’ов.

Настройки Nport 5130, подключенного к приборам:

Примечание: заданный адрес 192.168.11.1 –IP адрес Nport 5130, подключенного к пульту С2000. Если к пульту подключен Nport 5130 с другим адресом, то необходимо ввести используемый IP адрес.

В зависимости от загруженности сети и ее протяженности возможны два варианта настроек для NPort 5130 и АРМ «Орион»/АРМ «Орион Про» (или пульта С2000М):

NPort 5130

Источник

Функция Fast Flush

Быстрая очистка буфера на компьютере.

Производительность встроенного в материнскую плату COM-порта обычно выше, чем виртуального COM-порта, создаваемого драйвером NPort. Есть несколько полезных настроек, которые помогут немного увеличить производительность.

Изменять настройки драйвера можно с помощью специальных утилит: NPort Windows Driver Manager или NPort Administrator.

Зачем нужна очистка буфера?

Некоторые программы используют функцию Win32 PurgeComm () перед тем, как считать или отправить данные последовательному устройству. Вызов этой функции нужен для отбрасывания «мусора», который может находиться в приемном буфере на момент запуска программы, и в некоторых случаях приводящий к ошибкам в работе устройства. Если ваша программа использует функцию Win32 PurgeComm (), это может быть причиной низкой производительности NPort.

Работа без Fast Flush

После того, как программа вызывает функцию PurgeComm (), драйвер NPort-а делает несколько запросов к микропрограмме NPort, чтобы убедиться, что в буфере NPort-а нет данных в очереди, а не просто очищает локальный буфер.

На эти запросы драйвера к NPort уходит нескольких сотен миллисекунд. Вот почему функция PurgeComm () работает значительно быстрее со встроенными в материнскую плату COM-портами, чем с виртуальными портами.

Работа с Fast Flush

Для поддержки приложений, требующих более быстрого времени отклика, в драйвере NPort реализована функция Fast Flush (быстрая очистка). По умолчанию эта функция включена. Драйвер NPort не делает запросов к микропрограмме NPort, а сразу очищает локальный буфер и уведомляет приложение.

Рис. 1 Работа функции Fast Flush

Если вы отключили функцию Fast Flush и обнаружили, что виртуальные COM-порты работают заметно медленнее, чем встроенный в материнскую плату COM-порт, попробуйте проверить, используется ли функция PurgeComm () в вашем приложении.

Если это так, можно попытаться улучшить производительность NPort, включив функцию Fast Flush. Для этого откройте NPort Windows Driver Manager или NPort Administrator, перейдите на страницу Advanced Settings и выберите параметр Fast Flush (Flush local buffer only).

Рис 2. Функция Fast Flush в настройках включена по умолчанию.

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Правильное использование Fast Path и FastTrack в Mikrotik

С самого основания данного ресурса мы не перестаем придерживаться мнения, что практика всегда должна опираться на необходимый теоретический минимум, давая в своих статьях порой обширные теоретические отступления. Без теории практика превращается в подобие шаманских камланий с бубном, когда вроде сделал все тоже самое, но ничего не работает. В этом плане технология FastTrack в Mikrotik, несмотря на всю свою простоту, держит пальму первенства по количеству возникающих с ней проблем, которые, в большинстве своем, возникают именно от незнания и непонимания работы этой технологии.

Что такое Fast Path

Основной проблемой роутеров Mikrotik, особенно недорогих моделей, является достаточно слабая вычислительная мощность процессора, являющаяся сдерживающим фактором для реализации многих сложных сетевых сценариев. Причина этого кроется в достаточно сложном процессе обработки трафика роутером, в чем можно убедиться подробно изучив диаграммы Packet Flow, показывающие порядок прохождения пакетов через устройство. Если вы собираетесь серьезно работать с устройствами Mikrotik, то данный раздел документации рекомендуется знать хотя бы на твердую четверку, так как именно здесь находятся ответы на многочисленные вопросы типа: «я все сделал по инструкции, но ничего не работает» или «работает, но как-то не так».

В настоящий момент Fast Path можно использовать для:

Однако использование данной технологии имеет ряд ограничений, так для IPv4 FastPath требуется среди прочего:

Для мостов требуется:

Это не полный список, с полным списком ограничений вы можете ознакомиться в официальной документации. Но уже этого достаточно, чтобы понять, с Fast Path не все так просто и за производительность приходится расплачиваться возможностями. Если мы хотим использовать быстрый путь, то нам следует отказаться практически от любого контроля и фильтрации трафика.

При этом может возникнуть ситуация, когда один из интерфейсов поддерживает Fast Path, а другой нет. В этом случае возможны два варианта: если входящий интерфейс поддерживает Fast Path, то часть пути (насколько это возможно) пакеты пройдут через него, а затем перейдут на Slow Path (медленный путь) с полной обработкой трафика на CPU. Если интерфейс входа не поддерживает Fast Path, то трафик проделает весь путь по Slow Path, вне зависимости от того, поддерживает Fast Path интерфейс выхода или нет.

Еще один важный момент: Fast Path можно использовать только для IPv4 TCP или UDP соединений. Однако в правилах нет необходимости указывать протокол, для всего неподдерживаемого трафика Fast Path будет игнорироваться.

Практическое применение Fast Path

Для мостов по умолчанию активируется опция Fast Forward, включающая для передаваемых пакетов быстрый путь, но при этом помним, что DHCP-snooping не должен быть включен, а также отсутствовать любая фильтрация трафика или VLAN внутри моста.

А вот дальше уже становится интереснее. Туннельные соединения и L2TP поддерживают Fast Path, но это лишает нас возможности использовать IPsec, поэтому от Fast Path для данных видов соединений придется отказаться. Тем более что система не даст нам создать интерфейс, сочетающий Fast Path и IPsec.

Правда для L2TP-соединений вы можете одновременно установить обе опции, но при включённом IPsec Fast Path будет игнорироваться. Тем не менее мы категорически не рекомендуем использовать такие неоднозначные варианты настройки, потому как при обновлении RouterOS поведение системы может измениться, что способно привести к неожиданным и непредсказуемым результатам.

Практическое использование Fasttrack

Fasttrack можно без преувеличения назвать самой неправильно настраиваемой опцией. Если выполнить поиск в сети интернет, то можно увидеть множество материалов про то, как решить те или иные проблемы с Fasttrack. Но большинство этих проблем также связаны с непониманием работы данной технологии. Давайте разберемся, что же такое Fasttrack, это сочетание Fast Path + Connection Tracking, проще говоря мы можем отправить все уже установленные и связанные с ними соединения по быстрому пути.

При этом нам окажутся недоступны брандмауэр, очереди, IPsec и многое другое. По сути, пакеты, попадающие в Fasttrack проскакивают роутер без обработки, что значительно снижает нагрузку на процессор, но лишает нас возможности гибко управлять трафиком. Насколько это оправдано? Нужно смотреть по задачам, скажем если это выход внутренних устройств в интернет, то Fasttrack тут вполне к месту, позволяя существенно разгрузить роутер. Насколько это безопасно? Безопасность в данном случае не пострадает, так как по быстрому пути идут уже установленные соединения, новый пакет обязательно пройдет по медленному пути с полной обработкой брандмауэром.

Еще один важный момент, вы обязательно должны указать Connection State для этого правила, если вы этого не сделаете, то получите огромную дыру в безопасности, так как мимо брандмауэра по короткому пути пойдут все пакеты. Мы бы не стали заострять на этом внимание, но в нашей практике были случаи, когда администраторы включали Fasttrack для всего транзитного трафика.

Это самая простая реализация Fasttrack, которая приведена в большинстве инструкций, и она же вызывает большинство проблем. Почему так? Да потому, что приведенное выше правило отправляет по быстрому пути все установленные и связанные соединения, без учета их направления и назначения. При этом становятся недоступны фильтрация и маркировка трафика брандмауэром, очереди и политики IPsec. Стоит ли удивляться, что все завязанные на данные технологии настройки перестают работать.

Что изменилось? Теперь по быстрому пути идут пакеты только из локальной сети в интернет и обратно. Все остальные соединения полноценно обрабатываются ядром RouterOS и могут полностью использовать все ее возможности.

Если направлений трафика, который мы хотим направить по быстрому пути несколько, скажем, несколько каналов в интернет, либо межсетевой трафик, то создаем для каждого направления свою пару правил, с указанием входящего и исходящего интерфейсов.

Также обратите внимание, что Fasttrack применяется именно для транзитных соединений, не влияя на входящие и исходящие соединения самого роутера. Мы бы не заостряли на этом внимание, но в сети нам попадались инструкции, когда пакеты маркировались в цепочках INPUT и OUTPUT, а затем эти метки соединений пытались использовать в цепочке FORWARD, надо ли говорить, что подобные конструкции работать не будут.

А теперь выключаем Fasttrack и видим, что роутер полностью лег, но при этом даже не смог прокачать тариф, упершись в планку 80 Мбит/с:

Дополнительные материалы:

Mikrotik

The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Источник

Читайте также:  heic чем открыть на android
Сказочный портал
Настройки большая загрузка сети малая загрузка сети