Jump to content
Форум по продукции MOXA

Помогите выбрать оборудование


Recommended Posts

Здравствуйте, какое оборудование позволит связать сервер, работающий по двухпроводному RS485, с тремя объектами, связанными между собой и серверной единой лвс? Напрашивается такой вариант: установить на каждом объекте преобразователь 485-ethernet и настроить на сервере виртуальные com-порты. Но не всё так просто. Приложение на сервере может работать только с одним com-портом. Подскажите, как решить вопрос "малой кровью", не хотелось бы ставить три сервера по одному на каждый объект. Спасибо.

Link to comment

Здравствуйте!

 

Специально для такого случая, в драйвере NPort предусмотрена настройка COM Grouping, когда несколько NPort соответствуют только одному COM-порту на компьютере. При этом, данные, которые компьютер отправляет в COM-порт, отправляются на все NPort, а данные, которые попадают в последовательный порт одного из NPort, отправляются только на компьютер.

Link to comment

Здравствуйте!

 

Специально для такого случая, в драйвере NPort предусмотрена настройка COM Grouping, когда несколько NPort соответствуют только одному COM-порту на компьютере. При этом, данные, которые компьютер отправляет в COM-порт, отправляются на все NPort, а данные, которые попадают в последовательный порт одного из NPort, отправляются только на компьютер.

То есть если я поставлю три преобразователя, скажем Nport 5150, то я смогу их всех привязать к одному виртуальному COM-порту? Если это так, то это отличная новость!

Link to comment

Разве устройства с двусторонним обменом не будут мешаться друг-другу на сгруппированных портах?

 

Вот например несколько телефонных станций, и каждой надо управлять по отдельности, как можно разделить команды и ответы между ними?

 

Или другой пример, те же три телефонные станции, с которых снимается лог звонков по СОМ-портам. Допустим, меня устраивает, что все логи пишутся в один файл, но если две станции одновременно начнут скидывать лог - не перемешаются ли их данные? Допустим, станция передает строку единым потоком, смешаются ли потоки, или второй поток станет приниматься только когда первый завершится?

 

----

 

Практика показала, что в случае с логизацией данные идут в куче :(

 

не вышел фокус...

Edited by Starkite
Link to comment

Добрый день!

Спасибо за грамотное замечание! Вы правы на 100%.

 

Такой режим группировки портов призван, по сути, эмулировать шину RS-485. Если есть несколько приборов, которые надо опрашивать по очереди, и эти приборы адресуемы (т.е. прибор будет отвечать только на "свой" запрос и будет игнорировать "чужие"), то вариант группировки портов иногда очень удобен.

Если же NPort использовать для консолного управления оборудованием, снятия лог-файлов с АТС и прочее, то это, конечно, плохой вариант.

 

Ещё раз спасибо за комментарий!

Link to comment

Подключил два контроллера к двум преобразователям nport 5150, которые объединены в единый com порт. В программе, управляющей работой этих контроллеров, копятся очереди команд и через некоторое время работа приложения останавливается с ошибкой (System. Out of memory exception). Какие параметры следует изменить в настройках nport или это не поможет?

 

ps

В течение нескольких минут после запуска приложние съедает всю свободную оперативную память (около 1,7Гб) и вываливается ошибка переполнения памяти, Если подключить оба контроллера к одному nport 5150, то приложение работает идеально, забирая около 50мб опер. памяти. Куда копать?

Link to comment

Здравствуйте,

Судя по всему, проблема не в настройках NPort (раз уж по одному устройства работают), а в утилите NPort Administrator. Какая у Вас версия утилиты установлена? Попробуйте последнюю версию (высылаю вложением)

version.txt

Npadm_Setup_Ver1.19.5_Build_13031911.zip

Link to comment

О!

Вопрос:

Можно реализовать такую вещь, как "револьверный опрос" сгруппированных портов?

 

Что имеется в виду:

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

 

В частности такая возможность пригодится в моем случае - снятие логов с нескольких однотипных АТС. Каждая из них имеет свой буфер, хранящий по 30-50 записей. При открытии порта все накопленные записи скидываются одним потоком. После получения плотного потока данных, если за заданное время (в моем случае достаточно секунд 5) не передано ни одного бита - порт можно закрыть (буфер АТС пуст) и перейти к следующему.

Характерная особенность этого процесса в том, что при снятии логов на АТС не передается никакой информации, порты работают только на прием.

 

 

И еще вопрос:

Можно ли создать настройку, обратную группировке портов?

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

Применение: на работающей (круглосуточно) системе логизации требуется сменить оборудование и ПО, собирающее логи. Не все сразу можно поменять, а потеря части логов нежелательна. Если данные будут приходить одновременно на два порта, то на одном будет продолжать работать действующая система, а на другом будет отлаживаться новая.

Как вариант - виртуальные порты могут находиться на разных компьютерах.

Как вариант - один порт "мастер", работающий на прием/передачу, а другой "слейв" - только на прием.

Link to comment

Можно реализовать такую вещь, как "револьверный опрос" сгруппированных портов?

 

Что имеется в виду:

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

 

В частности такая возможность пригодится в моем случае - снятие логов с нескольких однотипных АТС. Каждая из них имеет свой буфер, хранящий по 30-50 записей. При открытии порта все накопленные записи скидываются одним потоком. После получения плотного потока данных, если за заданное время (в моем случае достаточно секунд 5) не передано ни одного бита - порт можно закрыть (буфер АТС пуст) и перейти к следующему.

Характерная особенность этого процесса в том, что при снятии логов на АТС не передается никакой информации, порты работают только на прием.

 

Здравствуйте!

"Револьверный опрос" организовать с помощью утилит Moxa не получится. Могу подсказать утилиту, которая позволит считывать данные из портов NPort по TCP - VSPE. Она как раз подходит для работы только на прием, если, например, АТС выдают свои логи в порт по расписанию. Для этого порты NPort необходимо перевести в режим TCP Server (в данном примере, можно настроить и в режиме TCP Client). Далее в VSPE необходимо добавить виртуальное устройство Bridge. Оно позволяет связать два источника данных, такие как файл, COM-порт, TCP Server и TCP Client. В Вашем случае нужны файл и TCP Client. В настройках файла необходимо указать расположение текстового файла в поле Output path (поле Input path можно оставить пустым), а в настройках TCP Client указать IP адрес NPort и порт подключения. Виртуальные устройства Bridge могут быть созданы для каждой АТС в отдельности, таким образом логи каждой АТС будут писаться в отдельный файл. Если необходимо предварительно на АТС отправлять запрос, то можно написать простой lua скрипт, правда при этом немного меняется схема подключения (добавляется промежуточный COM-порт, из которого уже пишутся данные в файл).

 

Можно ли создать настройку, обратную группировке портов?

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

Применение: на работающей (круглосуточно) системе логизации требуется сменить оборудование и ПО, собирающее логи. Не все сразу можно поменять, а потеря части логов нежелательна. Если данные будут приходить одновременно на два порта, то на одном будет продолжать работать действующая система, а на другом будет отлаживаться новая.

Как вариант - виртуальные порты могут находиться на разных компьютерах.

Как вариант - один порт "мастер", работающий на прием/передачу, а другой "слейв" - только на прием.

 

Да, можно. Для этого необходимо увеличить на NPort значение параметра Max Connection (по умолчанию 1). Однако утилиты NPort имеют некоторые ограничения - для случая одновременного подключения с разных компьютеров все замечательно, а вот создать 2 виртуальных порта, соответствующих одному и тому же порту NPort не выйдет. Можно, конечно, создать 1 порт Administrator, а 2-й Driver Manager. А можно воспользоваться все той же VSPE. Она позовляет создать виртуальный порт (устройство Connector), а затем связать его с NPort через виртуальное устройство TCP Client (с возможностью установки только на прием или только на передачу и активацией дополнительного скрипта). Таким образом с одного компьютера можно будет работать с портом NPort одновременно через 4 или 8 виртуальных COM-портов (NPort поддерживают до 8 TCP сессий на порт в зависимости от модели).

 

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

post-4189-0-35073600-1380284368_thumb.png

post-4189-0-08857900-1380284384_thumb.png

post-4189-0-14159000-1380284400_thumb.png

Link to comment

Спасибо за новости!

Будет что не так - обращайтесь! :)

Все эти дни занимался тестированием стабильности работы системы. К сожалению, у меня не получилось получить стабильную работу хотя бы в течение суток. Перебор и подгон различных параметров передачи не помог. Обычно через час-два работы (реже через 5-10 часов) начинает падать rs485, устройства отваливаются. Периодически они подключаются на несколько секунд и снова отваливаются. Сервер должен управлять контроллерами в режиме реального времени и обмен данными происходит практически постоянно, поэтому частое и длительное падение сети недопустимо.

PS

RS485 в контроллерах на MAX1480BEPI

Link to comment
  • 2 weeks later...

Здравствуйте!

Извините, что поздно.

Уточните, пожалуйста, по нестабильности работы. Раньше шла речь о переполнении памяти, сейчас же сбои в передаче данных.

Я правильно понимаю, что предыдущая проблема решена?

Что именно происходит теперь? Что значит "устройства отваливаются"? Становится недоступен COM-порт или приходят некорректные данные?

Link to comment

Здравствуйте. COM-порт остаётся доступным, судя по логам, к серверу приходят команды с побайтовым смещением внутри посылки. Скажем сервер передаёт одному устройству команду: А2 00 15 00 00 00 00, а обратно получает из сети что-то вроде эха со смещением: А2 00 00 15 00 00 00. Через некоторое время индикаторы TX на контроллерах перестают моргать и приложение на сервере сообщает, что контроллеры не в сети ( отвалились).

Проблема с переполнением памяти решена, это верно.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...