Форум 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_
Forum Member / Участник форума
Участник № / Member № 7778


Icon 1 отправлено / posted      Профиль для / Profile for Alexander_           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 

Сообщения / Posts 33 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


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

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

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

Сообщения / Posts 17329 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Мне нужно записывать данные в архив и затем считывать их на тренде и в архивной таблице. Но я боюсь, что некоторые значения могут изменяться слишком часто, например, показания датчика температуры или уровня. Не хотелось бы записывать множество незначительных колебаний. Поэтому хотелось бы настроить запись в архив, например, один раз в минуту. Хотелось бы узнать какими способами можно это сделать. Как настроить принудительную запись и что такое процедура трансляции?
Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Либо, если это возможно, установить какой-то диапазон изменения величины, при выходе за который значение канала в архив запишется, а если изменение меньше - не запишется.
Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да, для каналов класса Float в их настройках можно задать Апертуру. См. описание в справке в разделах:
Каналы и системные переменные TRACE MODE 6 - Числовые каналы - Канал класса FLOAT - Канал класса FLOAT и Обработка в канале FLOAT

Сообщения / Posts 17329 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да, апертуру нашел, спасибо. Но все-таки, необходимость записывать данные в архив с определенной периодичностью осталась. Это можно сделать при помощи канала call.writer?
Создав канал call.writer, выбор СПАД-архива делается именно для этого канала, а у канала float (значения которого по идее и нужно записывать) можно архив не назначать? Не до конца понял, какой параметр канала нужно выбрать и как определить время, через которое значения будут записываться.

Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Метод с Апертурой позволяет решить озвученную Вами задачу "я боюсь, что некоторые значения могут изменяться слишком часто, например, показания датчика температуры или уровня. Не хотелось бы записывать множество незначительных колебаний. "

Метод принудительной записи в архив записывает любое значение в архив (даже константу) с определенной периодичностью. Таким образом даже незначительные изменения будут записаны в архив.


Вам необходимо определиться с решаемой задачей (затем обсудим метод реализации):

записывать любые значение с определенным периодом (используем процедуру трансляции, см. пост2),

игнорировать несущественные изменения значения (используем метод Апертуры)

или записываем значения при изменении с определенным периодом (просто архивирование и у канала задаем необходимый период пересчета)

Сообщения / Posts 17329 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Задача следующая: записывать значения нескольких каналов float в архив с периодичностью раз в 1 минуту.
Про апертуру я понял, но есть требование по временной периодичности записи. Поэтому хотелось бы это попытаться реализовать.

Для записи нескольких каналов в архив, можно использовать call.writer с параметром = 3? Не понял, как именно в этом канале call задается временная периодичность записи.

Про трансляцию пост2 прочитал, под этим понимается написание программы что ли?

Короче говоря, задача записывать данные нескольких каналов float в архив раз в минуту, не важно, пусть даже за эту минуту значение не изменится, все равно записать. Как лучше это реализовать?

Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Из справки по call.writer не до конца понял, каким образом настраивается этот канал. Какой параметр лучше использовать для записи нескольких каналов в архив и что еще для этого нужно сделать?

"Параметр = 3, 10, 4, 11 – групповая запись в SIAD значений всех архивируемых каналов. Реальное значение канала CALL.Writer задает номер архива; нулевой аргумент (arg0, DATE_AND_TIME) – метку времени для записи; первый аргумент (arg1, UDINT) – условие записи сообщения по каналу (arg0 – <канал>.T > arg1)" - как именно задается временная метка? Про arg1 и условие записи не понял, что нужно сделать. Если мне нужно записать значения нескольких каналов float архив, нужно их привязать к аргументам канала call? Сказано, реальное значение канала call задает номер архива, а откуда это реальное значение взять? В общем, не могу понять как пользоваться call.writer, может быть есть какие-то видео или пример?

Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Задача понятна.
Вы правильно решили использовать Call.Writer.

У нас есть видео-урок с примером (ссылка), в котором продемонстрирован пример использования Call.Writer.
Вас должен интересовать последний пример.

Сообщения / Posts 17329 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Как я понял, в данном примере метка времени передается из контроллера. Мне бы хотелось, чтобы периодическая запись в архив осуществлялась только при помощи средств ТМ, то есть не изменять программу контроллера, просто получать от него данные, но записывать их в архив с определенной периодичностью. Возможно ли это сделать?
Сообщения / Posts 73 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Конечно, возможно.
Это частный пример решения. Вы можете вместо контроллера использовать написанную программу или задавать параметры вручную.

Формально, из описания задачи, следует, что Вам достаточно программно формировать периодическую команду на отработку канала Call.Writer

Сообщения / Posts 17329 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
jenyak542
Active Forum Member / Активный участник форума
Участник № / Member № 9353


Icon 1 отправлено / posted      Профиль для / Profile for jenyak542           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да, вы правы. Просто пока не понял как написать эту программу для необходимой отработки канала call. Буду разбираться
Сообщения / Posts 73 | Из / From: Россия  |  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



Powered by Infopop Corporation
UBB.classic™ 6.7.2