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/000096.html

Posted by Den (Участник № / Member № 75) on :
 
Ставлю опыты по доступу к Отчету Тревог через ODBC. В качестве клиента-ASP.NET. При запросе данных иногда происходит зацикливание отчета-размер фиксируется, данные пишутся с начала. Никакого управления отчетом с помощью каналов не используется. Подозреваю, что драйвер монополизирует доступ к файлу на время выборки данных, но не должен ли МРВ в этом случае ставить сообщения в очередь, почему происходит зацикливание?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Не понял - в момент когда Ваш драйвер обращается к файлу ОТ МРВ начинает помещать записи с начала (то есть как бы зацикливает файл ОТ)? Я правильно понял?
На С# пишите клиента? Если да, то можно попробовать через Interop Service подключиться к МРВ по COM-интерфейсу и по событию OnAlarm получать сообщения от МРВ в режиме реального времени, а файл подчитывать только на старте. Тогда не нужно будет постоянно к файлу обращаться, чтобы получать новые сообщения.
 
Posted by Den (Участник № / Member № 75) on :
 
Совершенно верно.В первой строке отчета пишется CONTINUE и новые сообщения затирают старые. Драйвер стандартный Microsoft Text Driver (*.txt; *.csv)и цепляюсь к нему через ODBC.NET Data Provider. Клиент на VB.NET. Задача-простой просмотр отчета тревог с помощью Web браузера по выбранной дате.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Это действительно так. Если Вы хотите считывать значения из ОТ, с которым в то же время работает и МРВ, то файл должен открываться в Share режиме и только на чтение. Скорее всего драйвер от Microsoft делает это иначе.
Как я уже Вам сказал Выше - лучший выход, это организовать доступ к сообщениям МРВ через событие по СОМ-интерфейсу, а файл подчитывать только один раз при старте - в реальном времени остальные сообщения получать только через событие OnAlarm. А уже дальше передавать можно по любому интерфейсу. У меня есть пара небольших примерчиков на С# как взаимодействовать по СОМ-интерфейсам с сервером МРВ - думаю, что перевести их в VB.NET задача очень простая. Нужны?
 
Posted by Den (Участник № / Member № 75) on :
 
Спасибо, интересно посмотреть.sharov@smw.ru
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Выслал два примера:
1) myTMConsole.rar - пример взаимодействия с МРВ в реальном времени. Обратите внимание на обрабочтик события МРВ TMServer_ItmEventClient_Event_OnEvent - в нем как раз принимаются сообщения для ОТ в реальном времени.
2) AlarmReader.rar - пример чтения файла ОТ с фильтрацией сообщений по годам, месяцам и дням. Сохранение ОТ в XML формат. Планировалось еще и экспорт по ODBC, но все нет времени...

Если функциональность обоих проектов объединить - возможно получится то, что Вам нужно.

Проекты эти не документированы, а также есть ошибки - но это всего лишь пробные варианты для испытаний, а не коммерческие продукты, поэтому строго не судите (что называется "as is"). А код достаточно простой - разобраться будет легко. Но если будут вопросы - спрашивайте, помогу.
 
Posted by ilya (Участник № / Member № 469) on :
 
Не могли бы Вы и мне выслать эти примеры [prey / молящийся] ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправил... [Улыбка / Smile]
 
Posted by ilya (Участник № / Member № 469) on :
 
Спасибо. Получил.
[fun / веселый]
 
Posted by Dismay (Участник № / Member № 760) on :
 
Я бы тоже хотел взглянуть... ivndim@sgres1.te.ru
спасибо
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправил
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2