Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Мониторы Реального Времени / Real Time Monitors » Принудительная запись в архив: особенности реализации

   
Автор / Author Тема / Topic: Принудительная запись в архив: особенности реализации
Alexander_
Junior Member / Новичок
Участник № / Member № 7778


Icon 1 отправлено / posted      Профиль для / Profile for Alexander_           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте, уважаемая техподдержка. ДокМРВ+, ИС 6.10.02.

С помощью системной переменной @Data_from_SIAD pеализована принудительная запись значений каналов в архив по началу каждой новой минуты времени. Время цикла монитора -- 1 сек.

Так, при смене минуты (цикл в период [00;01)сек.) перво наперво программно разрешается (ранее запрещенная) запись в архив по всем каналам -- @Logging:=0, далее в системную переменную @Data_from_SIAD посылается фрейм 16#800: всё действо происходит в рамках одной программы (период пересчета CALL.Program=CALC).

В следующем цикле монитора(период [01;02)сек.) через всё ту же программу по всем каналам происходит запрет архивации (@Logging:=1), лавочка переменной @Data_from_SIAD принудительно закрывается (@Data_from_SIAD:=0).
______________________________________________________________________________

Замечены следующие проблемы:

1. Если в период по-видимому [01;02)сек. (возможно и [00;01)сек.) архивируемый канал изменит свое реальное значение и таким образом станет подвержен штатному механизму архивации, то помимо принудительной записи, сделанной силами @Data_from_SIAD в 00 сек. времени, в архиве появляется запись (уже с другим реальным значением) аккурат в 01 сек. времени.

2. По логике вещей, если в период [59;00)сек. канал вдруг изменит свое значение, то абсолютное время его изменения вроде как перестает быть меньше времени Т1=Т0-сдвиг (где Т0 всегда 00 сек., сдвиг=1 сек.), однако функция @Data_from_SIAD по всем каналам всегда отрабатывается бесподобно. Но эта "проблема" нам вообще-то на руку.
_______________________________________________________________________________

Да, запрет на архивацию происходит в следующем цикле, очевидно уже после отработки и пересчета числовых каналов типа Input, поэтому пробовал запрещать архивацию в конце того же цикла [00;01)сек., в котором происходит ее разрешение, создавая отдельную программку с различными циклами пересчета. В итоге, как ни старался я уменьшить время разрешения на запись в архив, у меня порой и принудительная запись не по всем каналам успевала отрабатываться, а вот запись в [01;02)сек. -- всегда как штык, если канал менял свое значение.

Особенности проекта:

- приоритеты всех потоков МРВ -- по умолчанию.

- каналы, которые меняют свое реальное значение, получают его от источников/приемников по мере поступления раз в 10-15 сек.

- цикл пересчета всего и вся (за искл. отдельно оговоренных случаев) -- CALC,0.

- в конфигурационном файле *.cnf из раздела SIAD не прописан ни один ключ.
_______________________________________________________________________________
ВОПРОС: Как избавится от проблемы 1? Почему имеет место проблема 2?

Спасибо за поддержку.

Сообщения / Posts 22 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Бороться с естественными состязаниями в асинхронных процедурах сложно.
Принудительная архивация в данном случае непродуктивна.

Если Вам необходимо сократить поток записей в архив, можно создать программную процедуру трансляции (общий шаблон для всех архивируемых каналов).
В процедуре трансляции надо организовать передачу полученного в канале значения в его атрибут РЕАЛЬНОЕ_ЗНАЧЕНИЕ 1 РАЗ В МИНУТУ.
Архивируемый атрибут РЕАЛЬНОЕ_ЗНАЧЕНИЕ будет записываться в архив не чаще, чем 1 РАЗ В МИНУТУ.

Для оперативного отображения значений этих каналов на экранах выводите на экран атрибут ВХОДНОЕ_ЗНАЧЕНИЕ или АППАРАТНОЕ_ЗНАЧЕНИЕ, которые будут изменяться "по мере поступления раз в 10-15 сек".

Сообщения / Posts 15704 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2