Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 17:55   #1
Vital__33
Новичок
Джуниор
 
Регистрация: 30.03.2010
Сообщений: 4
По умолчанию Контроль потери соединения W3150A+(Wiznet) c ПЭВМ

Подскажите как решить проблему контроля потери соединения мс Wiznet W3150+ с ПЭВМ ?


В настоящее время наше предприятие использует модуль Wiznet NM7010B+ для осуществления удаленного мониторинга оборудования.

Для осуществления мониторинга, оборудование подключается к ПЭВМ по TCP/IP.

ПЭВМ ----------> Хаб-----//----->Хаб-----------> Оборудование с модулем NM7010B+
^
|
место разрыва TCP/IP соединения

ПЭВМ настраивается в качестве TCP-клиента, оборудование (плата) с модулем NM7010B+ - в качестве TCP-сервера. Модуль NM7010B+ выполнен на базе микросхемы W3150A+.

Суть проблемы состоит в невозможности определить факт потери соединения (физического разрыва на участке, указанном на рисунке ) средствами модуля NM7010B+ .
Если установить соединение по TCP/IP компьютер <> NM7010B+ и разорвать в указанном на рисунке месте, то и компьютер и модуль будут оставаться «в соединении» сколь угодно длительное время (по крайней мере более 8 часов). Т.е., факт разрыва не определяется ни компьютером, ни модулем NM7010B+.

Со стороны ПО компьютера, решением является задание низкоуровневых операционных режимов для Socket посредством функция socket.IOControl со значениями:

keepalivetime=3000; // определяет интервал между посылкой сообщений при пассивном состоянии канала.
keepaliveinterval=500; // определяет интервал посылки сообщений, если ответ не получен.

После применения этих параметров, разрыв соединения приводит к генерации ошибки сокета. Что, в свою очередь, может быть обработано программно и позволяет отследить факт разрыва соединения.

Со стороны оборудования подобного решения найти не удалось.

Мы попытались выполнить следующие действия:

1. После того как установлено соединение (между ПЭВМ и NM7010B+ ) и микросхема W3150A+ имеет состояние SOCK_ESTABLISHED , производим физический разрыв соединения, как показано на рисунке выше. Микросхема W3150A+ остается в состоянии SOCK_ESTABLISHED;
2. Записывается регистр RTR=0х07D0 (200мс) и RCR=5;
3 Записывается команда SEND_KEEP в регистр команд сокета Sn_CR и в течении 3 минут происходит ожидание установки бита TIMEOUT в «1» (при чтении регистра прерывания сокета Sn_IR). После истечения 3 минут бит TIMEOUT так и не взвелся, хотя должен был взвестись через 6 секунд.

Таким образом данную последовательность действий мы не можем использовать для сброса состояния соединения блока с модулем NM7010B+.

Подскажите , каким образом можно определить факт потери соединения !!!!
Vital__33 вне форума Ответить с цитированием
Старый 30.03.2010, 20:09   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...сочувствую. обращались-ли вы собственно к разработчикам модуля? судя по структуре модуля Wiznet NM7010B, tcp стек обслуживается контроллером, а значит ситуацию нужно разруливать изменением (модификацией) прошивки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 31.03.2010, 10:59   #3
Vital__33
Новичок
Джуниор
 
Регистрация: 30.03.2010
Сообщений: 4
По умолчанию

С этой проблемой мы обратились к поставщику этих модулей - ЭФО. Они осуществляют тех. поддержку по Wiznet. Пообещали связаться с производителем.
Vital__33 вне форума Ответить с цитированием
Старый 31.03.2010, 11:42   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...лучше сами параллельно напишите производителю ...странная техподдержка у поставщика.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 31.03.2010, 17:14   #5
Vital__33
Новичок
Джуниор
 
Регистрация: 30.03.2010
Сообщений: 4
По умолчанию

Написать самим затруднительно, так как производитель корейская фирма
Vital__33 вне форума Ответить с цитированием
Старый 02.04.2010, 15:15   #6
Vital__33
Новичок
Джуниор
 
Регистрация: 30.03.2010
Сообщений: 4
По умолчанию

Вопрос определения потери соединения модуля Wiznet NM7010B+(реализованном на базе W3150+) с ПЭВМ был решен следующим образом: - находясь в состоянии SOCK_ESTABLISHED выдавалась команда SEND_KEEP. Анализ прерывания и контроль бита TIMEOUT производился с учетом того что микросхема W3150+ находится в состоянии SOCK_ESTABLISHED. В результате проведенной работы было определено, что прерывание в регистре IR и бит TIMEOUT в регистре Sn_IR взводятся когда микросхема W3150+ переходит в состояние SOCK_LISTEN. Зная это, - вопрос потери соединения был решен.
Vital__33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Избежать потери форматирования HellMercenariess Свободное общение 1 26.11.2009 19:59
Indy. Определение потери связи с сервером Pitonio Работа с сетью в Delphi 1 17.11.2009 10:57
Убрать точки без потери данных king13 Microsoft Office Excel 4 07.10.2009 13:54
Копирование таблицы без потери форматирования k1r1ch Microsoft Office Excel 3 09.07.2009 11:00
Можно ли отлавливать событие потери фокуса Control'ом tolikman Microsoft Office Excel 2 09.01.2009 15:02