This is topic Данные в спад in forum Архивирование в TRACE MODE / Data Logging in Trace Mode at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/10/t/000076.html

Posted by zem21 (Участник № / Member № 418) on :
 
Почему при сохранении данных в спад архиве такие большие потери данных, неважно даже сколько каналов пишется в архив хоть 1 хоть 100 потери одинаковые 35-45 потерянных значений из 100 при ETHERNET 100Мбит/сек. Добавлены NCB блоки, на прием, на верхнем уровне, установлен флаг – интенсивный прием, тип каналов как InNet так и InAutoNet потери одинаковые. Цикл пересчета 0,01сек, тип протокола NetBEUI, WinXP SP1.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
А в контроллере какой цикл пересчета?
 
Posted by zem21 (Участник № / Member № 418) on :
 
Также 0,01сек.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) 10мс - довольно критичный цикл для MS Windows (это предел его таймера).
2) Проверьте лог-файлы Микро МРВ и МРВ - может все же не хватает NCB-на прием или передачу? Тогда сервер об этом обязательно напишет в лог.
3) Уберите InNet с цикла 10 мс - это создает дополнительный перерасход NCB в системе.
 
Posted by zem21 (Участник № / Member № 418) on :
 
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


Проводил ли кто-нибудь аналогичное тестирование? Какие результаты?
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
У меня работают дублированные узлы без DoubleForce, я там оцениваю состояние партнера по присылаемым им системным секундам, при этом тоже случаются пропуски (остальные каналы меняются не чаще).
На АСУТП нашего первого блока (ТюмТЭЦ-1) те же вопросы - передача большого количества данных по автопосылке вовсе не гарантирует доставку (по крайней мере немедленную). Все управляющие сигналы обязательно должны проверяться обратным запросом на предмет доставки.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно также лог-файл МРВ здесь показать?
 
Posted by zem21 (Участник № / Member № 418) on :
 
Лог-файл МРВ.

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
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Ну где Вы установили 20 мс?? [Недоумение / Confused]
У МРВ - "CalcPeriod=9ms", а у Микро МРВ - "CalcPeriod=4ms". Это значит, что Микро МРВ отправляет посылки в два раза быстрее, чем МРВ может принять - как минимум половину посылок в МРВ у Вас должно теряться! [crazy / сумасшедший]
 
Posted by zem21 (Участник № / Member № 418) on :
 
Прошу прощения, недосмотрел, просто производилось множество тестов с различными временными характеристиками.;-)
Для того, чтобы разъяснить ситуацию, выслал вам проект, zem21.rar, с циклом 20мс, архивом и лог-файлами (NODE1.txt) для верхнего и (NOD.txt) для нижнего уровней.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) Попробуйте увеличить число каналов до нескольких десятков или сотен. Тест на таких скоростях всего для одного канала не всегда показателен, потому как 1-2 NCB блока на один канал - это не эффективно.
2) Если есть "хаб" или "свитч", то рекомендую во время обмена посмотреть число коллизий в сети, если конечно МРВ и контроллер в ней не одни.
 
Posted by zem21 (Участник № / Member № 418) on :
 
1. Тестовый проект увеличил до 128 каналов - ситуация осталась без изменения, идут потери 35-45 значений из 100, ошибок в лог файле связанных с NCB-блоками нет, увеличил проект до 512 каналов – потери идентичны, ошибок в лог файле связанных с NCB-блоками нет. Среда разработки – профессиональная версия.
2. Тесты проводились и через patchcord, и через switch (с несколькими компьютерами в сети), результат в принципе одинаковый. Каким образом просмотреть количество коллизий?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Попробуйте изолировать Вашу сеть, соединив контроллер и ПК как точка-точка.
Обычно на панели "хаба" или "свича" есть индикатор коллизий - по интенсивности его свечения можно судить о количестве коллизий в сети.
 
Posted by zem21 (Участник № / Member № 418) on :
 
По поводу изоляции сети я уже писал, что проводил тесты на patchcord’e и результат идентичен тестам через switch.
Количество коллизий в сети определить у нас не получится, нет аппаратных средств.
Проводил тестирование на двух МРВ 512 каналов, цикл пересчета 10мс, получил в результате 25 потерянных значений из 500 ????????
 
Posted by zem21 (Участник № / Member № 418) on :
 
Господа ответьте пожалуйста на вопрос заданный выше.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
08.04.2004 Вы же уже сообщили, что у Вас все нормально и Вы с проблемой разобрались?
 
Posted by zem21 (Участник № / Member № 418) on :
 
Нет, проблема стоит в полный рост.
Наличие коллизий мы определить не можем, ввиду отсутствия соответствующего индикатора на коммутаторе.
Большие потери значений. Как следствие – невозможность применения Trace Mode 5 в системах диагностики.
Если у Вас подобный тест дает отличные результаты - пришлите Ваш тестовый проект (с архивом и логами) и мы попробуем его у себя? Так мы сможем определить в чем проблема – в железе или программах, если в программах, то в драйверах или в Trace Mode.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) Избежать потерь в сети Ethernet все равно невозможно - это не та среда, где 100% гарантирована доставка данных.
2) При передаче данных Вы допускаете одну ошибку - (вспоминаем знаменитую теорему Котельникова) чтобы достоверно принять сигнал из канала с чатотой дискретизаци F приемник должен иметь частоту дискретизацию как минимум 2*F. Иначе сигнал будет искажен!
Я провел тест на следующем проекте:
Узел контроллера - 50 каналов генераторов пилы с циклом пересчета 20 мс все каналы посылают значения в сеть.
Узел АРМ - принимает 50 каналов по сети с периодом в 10 мс. Значения по каналам архивируются в СПАД.
В результате теста потери данных составляли около 2-3 значений на 1000 принятых (по каждому каналу).
Учитывая то, что контроллер и АРМ были подключены в общую сеть нашего офиса, к тому же контроллер подключался через коаксиальный кабель и хаб - то показатель потерь в 0,3% очень даже хороший.

3) Вторая ошибка - "невозможность применения Trace Mode 5 в системах диагностики", правильней будет: невозможность построения системы диагностики исходя из той архитектуры, которую Вы пытаетесь реализовать.
Если стоит задача собрать большой объем достаточно динамичных данных и передать их на другой узел и при этом НЕ ПОТЕРЯТЬ НИ ОДНОГО ЗНАЧЕНИЯ, то решать эту задачу надо соответсвующим образом. Для этого надо собирать данные в блоки по месту их регистрации и отправлять приемнику в виде этих самых блоков (буферизация данных), а не отправлять каждое значение с частотой его изменения.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2