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

NPort 5150. Каждые 4-5 минут происходит потеря соединения


Recommended Posts

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

 

К COM – порту преобразователя интерфейса подключен прибор, эпизодически выдающий строки по 80 символов, плюс символы возврата каретки и новой строки. Обмен осуществляется на скорости 1200 бод.

 

MOXA NPort 5150 работает в режиме TCP Server Mode. TCP Alive Check Timeout = 7 минут, Inactivity Timeout = 0. Прошивка Ver3.3_Build_08061714.

 

Связь осуществляется через IP Serial Library. Программа устанавливает соединение, настраивает скорость и режим работы порта, задает тайм-аут чтения, включает сигнал DTR. Затем, каждые 4 секунды, в отдельном потоке, вызывается функция чтения с 2-х секундным тайм-аутом и функция получения статуса ввода - вывода (nsio_data_status). Каждые 4-5 минут возникают ошибки -202 и реже -203 при операции получения статуса ввода - вывода, и иногда при чтении из порта. При этом, подключенный к преобразователю прибор фиксирует кратковременное пропадание сигнала DTR. Через несколько секунд соединение восстанавливается, но если в этот момент передавались данные, то они теряются (возможно из за разрешенного FIFO). Скорость канал Ethernet как правило устанавливалась 10 Мбит полу-дуплекс. В экспериментах использовалось два экземпляра MOXA NPort 5150, различное коммуникационное оборудование, в том числе и прямое подключение к сетевой плате компьютера – результат одинаковый. Иногда, правда, при круглосуточном прогоне, наблюдалось «аномальное» поведение – несколько часов бесперебойной работы, затем снова возникали ошибки с обычной периодичностью.

 

В чем может быть причина такого поведения? Существуют ли рекомендованные методики работы с удаленным портом?

 

С уважением, Дмитрий.

 

P.S.

На форуме узнал, что существует документация на русском языке, можно ли ее выслать на адрес eberlain@saes.ru?

Link to comment
Здравствуйте!

 

К COM – порту преобразователя интерфейса подключен прибор, эпизодически выдающий строки по 80 символов, плюс символы возврата каретки и новой строки. Обмен осуществляется на скорости 1200 бод.

 

MOXA NPort 5150 работает в режиме TCP Server Mode. TCP Alive Check Timeout = 7 минут, Inactivity Timeout = 0. Прошивка Ver3.3_Build_08061714.

 

Связь осуществляется через IP Serial Library. Программа устанавливает соединение, настраивает скорость и режим работы порта, задает тайм-аут чтения, включает сигнал DTR. Затем, каждые 4 секунды, в отдельном потоке, вызывается функция чтения с 2-х секундным тайм-аутом и функция получения статуса ввода - вывода (nsio_data_status). Каждые 4-5 минут возникают ошибки -202 и реже -203 при операции получения статуса ввода - вывода, и иногда при чтении из порта. При этом, подключенный к преобразователю прибор фиксирует кратковременное пропадание сигнала DTR. Через несколько секунд соединение восстанавливается, но если в этот момент передавались данные, то они теряются (возможно из за разрешенного FIFO). Скорость канал Ethernet как правило устанавливалась 10 Мбит полу-дуплекс. В экспериментах использовалось два экземпляра MOXA NPort 5150, различное коммуникационное оборудование, в том числе и прямое подключение к сетевой плате компьютера – результат одинаковый. Иногда, правда, при круглосуточном прогоне, наблюдалось «аномальное» поведение – несколько часов бесперебойной работы, затем снова возникали ошибки с обычной периодичностью.

 

В чем может быть причина такого поведения? Существуют ли рекомендованные методики работы с удаленным портом?

 

С уважением, Дмитрий.

 

P.S.

На форуме узнал, что существует документация на русском языке, можно ли ее выслать на адрес eberlain@saes.ru?

Добрый день, Дмитрий,

 

Инструкцию на NPort выслал. Но это инструкция по настройке, а не по работе с программными библиотеками.

 

Возвращаясь к Вашей проблеме - по описанию сложно понять, где именно происходит сбой: в самом NPort или в программном обеспечении. Есть ли возможность попробовать опросить прибор не софтом, разработанным с участием библиотеки PComm, а через виртуальный COM-порт? Т.е. настроить NPort в режим Real COM Mode, установить драйвер виртуального COM-порта и исключить влияние софта собственной разработки. Изменится ли поведение системы?

Link to comment

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

 

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

 

В предыдущем варианте вызов функции получения статуса ввода-вывода выполнялся всегда, даже если операция чтения возвращала нулевой результат, т.е. и при отсутствии данных. Предполагалось, что вызов функции nsio_data_status в отличии nsio_read всегда приводит к реальному взаимодействие по IP протоколу с преобразователем интерфейса, что позволит оперативно выявлять проблемы коммуникации.

 

Просмотрев анализатором протоколов трафик между MOXA NPort 5150 и библиотекой IP Serial Library обнаружил, что при вызове функции чтения так же производится обмен и с 966 портом управления. Поэтому вариант с вызовом nsio_read без вызова nsio_data_status при отсутствии данных пока вполне устраивает.

 

Как позволит время, постараюсь провести эксперимент с виртуальным СОМ портом и сообщить о результате.

 

С уважением, Дмитрий.

Link to comment
Спасибо за ответ!

 

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

 

В предыдущем варианте вызов функции получения статуса ввода-вывода выполнялся всегда, даже если операция чтения возвращала нулевой результат, т.е. и при отсутствии данных. Предполагалось, что вызов функции nsio_data_status в отличии nsio_read всегда приводит к реальному взаимодействие по IP протоколу с преобразователем интерфейса, что позволит оперативно выявлять проблемы коммуникации.

 

Просмотрев анализатором протоколов трафик между MOXA NPort 5150 и библиотекой IP Serial Library обнаружил, что при вызове функции чтения так же производится обмен и с 966 портом управления. Поэтому вариант с вызовом nsio_read без вызова nsio_data_status при отсутствии данных пока вполне устраивает.

 

Как позволит время, постараюсь провести эксперимент с виртуальным СОМ портом и сообщить о результате.

 

С уважением, Дмитрий.

Дмитрий,

На самом деле, работа NPort устроена следующим образом:

  • по порту 950 передаются данные в "прозрачном виде"
  • по порту 966 передаются все управляющие команды (изменение формата данных, управление сигналами RTS/DTR и проч.)

поэтому в обычном рабочем режиме, где требуется исключительно чтение/запись данных, можно использовать только порт 950. Более того, поскольку данные по нему передаются в прозрачном виде, даже нет необходимости использовать библиотеку IPSerial, а можно просто открыть сокет по 950 порту и читать/писать данные.

 

В любом случае, ждем от Вас результатов, если будут.

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...