zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
Почему при сохранении данных в спад архиве такие большие потери данных, неважно даже сколько каналов пишется в архив хоть 1 хоть 100 потери одинаковые 35-45 потерянных значений из 100 при ETHERNET 100Мбит/сек. Добавлены NCB блоки, на прием, на верхнем уровне, установлен флаг – интенсивный прием, тип каналов как InNet так и InAutoNet потери одинаковые. Цикл пересчета 0,01сек, тип протокола NetBEUI, WinXP SP1.
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
1) 10мс - довольно критичный цикл для MS Windows (это предел его таймера). 2) Проверьте лог-файлы Микро МРВ и МРВ - может все же не хватает NCB-на прием или передачу? Тогда сервер об этом обязательно напишет в лог. 3) Уберите InNet с цикла 10 мс - это создает дополнительный перерасход NCB в системе.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
1) Установили цикл на обоих уровнях 20мс - ситуация аналогична, даже в проекте где всего 1 канал InAutoNet - потери 35-45 значений из 100. 2) Все лог-файлы проверили, ошибок не обнаружили. В скобках указаны значения для МикроМРВ … NET:NCB for AutoSend = 0(2) NET:NCB for AutoSend float value = 0(1) NET:NCB for SendToNet = 0 NET:NCB for CopyFrom = 0 NET:NCB for Registrator = 0 NET:NCB for Recieving = 7 (40) NET:iname ARG@@S1 NET:gname ARG@@S° NET:found 5(1) adapters NET: select 3(0) adapter with 3(0) number NET:init 3(0) adapter … NET:total NCB send 0(3912),error 0 = 0 NET:total NCB recieve 1406(3912),error 0 = 0 …
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
У меня работают дублированные узлы без DoubleForce, я там оцениваю состояние партнера по присылаемым им системным секундам, при этом тоже случаются пропуски (остальные каналы меняются не чаще). На АСУТП нашего первого блока (ТюмТЭЦ-1) те же вопросы - передача большого количества данных по автопосылке вовсе не гарантирует доставку (по крайней мере немедленную). Все управляющие сигналы обязательно должны проверяться обратным запросом на предмет доставки.
Сообщения / Posts 340 | Из / From: Russia
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
Лог-файл МРВ.
Professional Editional DRAWSERV 5.12 SUPPORT: NetBios INFO:Load Starting... C:\TraceMode5_Professional\mli2\node1.dbb INFO:Detected NT 5.1 INFO:Found 1 channels NET:NCB for AutoSend = 0 NET:NCB for AutoSend float value = 0 NET:NCB for SendToNet = 0 NET:NCB for CopyFrom = 0 NET:NCB for Registrator = 0 NET:NCB for Recieving = 7 NET:iname ARG@@S1 NET:gname ARG@@S° NET:found 4 adapters NET: select 3 adapter with 3 number NET:init 3 adapter INFO: LoadTime=3.125s CalcPeriod=9ms NET:starting... SIAD:starting... SIAD: opening file: C:\TraceMode5_Professional\mli2\p.rep SIAD: starting server... RTM:math kernel starting... INFO: start time is 0.484 s SCREEN load error screen.000 INFO:work mode INFO:stoping... SIAD: stopped. NET:total NCB send 0,error 0 = 0 NET:total NCB recieve 25707,error 0 = 0 NET:rasf=25703 rash=0 = 0 INFO: stop time is 0.437 s INFO:number of calculation = 13959 END OF WORK
Лог-файл МикроМРВ.
Professional Editional MRT 5.091 INFO:Load Starting... c:\mrt\demo\MLI2\nod.dbb INFO:Detected DOS = <1802 70a> INFO:Found 1 channels FBD_DLL not found fbd0.dld FBD_DLL not found fbd1.dld FBD_DLL not found fbd2.dld FBD_DLL not found fbd3.dld FBD_DLL not found fbd4.dld FBD_DLL not found fbd5.dld FBD_DLL not found fbd6.dld FBD_DLL not found fbd7.dld FBD_DLL not found fbd8.dld FBD_DLL not found fbd9.dld NET:VECTOR 5C found NET:NCB for AutoSend = 2 NET:NCB for AutoSend float value = 1 NET:NCB for SendToNet = 0 NET:NCB for CopyFrom = 0 NET:NCB for Registrator = 0 NET:NCB for Recieving = 40 NET:iname ARG@@S2 NET:gname ARG@@S° NET:found 1 adapters NET: select 0 adapter with 0 number NET:init 0 adapter INFO: LoadTime=5.71s CalcPeriod=4ms INFO: resolution=0.005 NET:starting... RTM:math kernel starting... INFO: start time is 0.22 s JRT:timer constant is = <5950 173e> INFO:work mode INFO:stoping... JRT: mem lock 0 0 NET:total NCB send 25892,error 0 = 0 NET:total NCB recieve 25892,error 0 = 0 INFO: stop time is 0.05 s INFO:number of calculation = 25892 END OF WORK
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Ну где Вы установили 20 мс?? У МРВ - "CalcPeriod=9ms", а у Микро МРВ - "CalcPeriod=4ms". Это значит, что Микро МРВ отправляет посылки в два раза быстрее, чем МРВ может принять - как минимум половину посылок в МРВ у Вас должно теряться!
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
Прошу прощения, недосмотрел, просто производилось множество тестов с различными временными характеристиками.;-) Для того, чтобы разъяснить ситуацию, выслал вам проект, zem21.rar, с циклом 20мс, архивом и лог-файлами (NODE1.txt) для верхнего и (NOD.txt) для нижнего уровней.
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
1) Попробуйте увеличить число каналов до нескольких десятков или сотен. Тест на таких скоростях всего для одного канала не всегда показателен, потому как 1-2 NCB блока на один канал - это не эффективно. 2) Если есть "хаб" или "свитч", то рекомендую во время обмена посмотреть число коллизий в сети, если конечно МРВ и контроллер в ней не одни.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
1. Тестовый проект увеличил до 128 каналов - ситуация осталась без изменения, идут потери 35-45 значений из 100, ошибок в лог файле связанных с NCB-блоками нет, увеличил проект до 512 каналов – потери идентичны, ошибок в лог файле связанных с NCB-блоками нет. Среда разработки – профессиональная версия. 2. Тесты проводились и через patchcord, и через switch (с несколькими компьютерами в сети), результат в принципе одинаковый. Каким образом просмотреть количество коллизий?
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Попробуйте изолировать Вашу сеть, соединив контроллер и ПК как точка-точка. Обычно на панели "хаба" или "свича" есть индикатор коллизий - по интенсивности его свечения можно судить о количестве коллизий в сети.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
По поводу изоляции сети я уже писал, что проводил тесты на patchcord’e и результат идентичен тестам через switch. Количество коллизий в сети определить у нас не получится, нет аппаратных средств. Проводил тестирование на двух МРВ 512 каналов, цикл пересчета 10мс, получил в результате 25 потерянных значений из 500 ????????
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
08.04.2004 Вы же уже сообщили, что у Вас все нормально и Вы с проблемой разобрались?
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
zem21
Active Forum Member / Активный участник форума
Участник № / Member № 418
отправлено / posted
Нет, проблема стоит в полный рост. Наличие коллизий мы определить не можем, ввиду отсутствия соответствующего индикатора на коммутаторе. Большие потери значений. Как следствие – невозможность применения Trace Mode 5 в системах диагностики. Если у Вас подобный тест дает отличные результаты - пришлите Ваш тестовый проект (с архивом и логами) и мы попробуем его у себя? Так мы сможем определить в чем проблема – в железе или программах, если в программах, то в драйверах или в Trace Mode.
Сообщения / Posts 82 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
1) Избежать потерь в сети Ethernet все равно невозможно - это не та среда, где 100% гарантирована доставка данных. 2) При передаче данных Вы допускаете одну ошибку - (вспоминаем знаменитую теорему Котельникова) чтобы достоверно принять сигнал из канала с чатотой дискретизаци F приемник должен иметь частоту дискретизацию как минимум 2*F. Иначе сигнал будет искажен! Я провел тест на следующем проекте: Узел контроллера - 50 каналов генераторов пилы с циклом пересчета 20 мс все каналы посылают значения в сеть. Узел АРМ - принимает 50 каналов по сети с периодом в 10 мс. Значения по каналам архивируются в СПАД. В результате теста потери данных составляли около 2-3 значений на 1000 принятых (по каждому каналу). Учитывая то, что контроллер и АРМ были подключены в общую сеть нашего офиса, к тому же контроллер подключался через коаксиальный кабель и хаб - то показатель потерь в 0,3% очень даже хороший.
3) Вторая ошибка - "невозможность применения Trace Mode 5 в системах диагностики", правильней будет: невозможность построения системы диагностики исходя из той архитектуры, которую Вы пытаетесь реализовать. Если стоит задача собрать большой объем достаточно динамичных данных и передать их на другой узел и при этом НЕ ПОТЕРЯТЬ НИ ОДНОГО ЗНАЧЕНИЯ, то решать эту задачу надо соответсвующим образом. Для этого надо собирать данные в блоки по месту их регистрации и отправлять приемнику в виде этих самых блоков (буферизация данных), а не отправлять каждое значение с частотой его изменения.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |