This is topic Архивирование in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. 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/40/t/000120.html

Posted by Eman1982 (Участник № / Member № 5619) on :
 
Здравствуйте!
Стоит задача:
С периодичностью в 20 минут архивировать значения параметра в БД.
Как я понимаю, это нужно делать с помощью Call.Writer. Но в справке о работе этого канала написано весьма пространно.
Уважаемая техподдержка, прошу выслать пример с Call.Writer, если есть.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Запись в Базу Данных осуществляется каналами CALL с типом вызова SQL (см."Распределенные АСУ/Обмен с базами данных").
 
Posted by Eman1982 (Участник № / Member № 5619) on :
 
Под БД я имел ввиду именно СПАД.
Т.е. фактически в СПАДЕ мне нужно реализовать модель SQL- делать принудительные записи параметров (в т.ч. с произвольной меткой времени), а потом их считать в отчет.

[ 15.04.2013, 14:01: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пример отправлен.
 
Posted by sPavel (Участник № / Member № 5461) on :
 
Здравствуйте! Отправьте мне тоже пример, пожалуйста.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
 
Posted by Eman1982 (Участник № / Member № 5619) on :
 
Спасибо, пример получил. В продолжение темы еще вопрос:

Допустим, в СПАД архиве имеется 20 значений, с временной меткой от г.д.м 0ч. 0м.- г.д.м. 23ч. 59м., т.е. 20 значений за сутки.
Я хотел бы просто считать эти 20 значений, без разбития на диапазоны и получение статистики. Т.е., опять же, провести операцию, аналогичную SELECT в SQL, но в СПАДе.
Какой канал для этого использовать, LocalList или LocalQuick?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
LocalList.
 
Posted by Eman1982 (Участник № / Member № 5619) on :
 
Спасибо за ответ! Пробую использовать LocalList, но отчего-то не выходит. Прочел все мануалы.

Вот, что я делаю:
1. Создаю канал Call.LocalList с параметром 37 (32+5, где 5- разбиение диапазона на 20 мин.)
2. Создаю в Call.LocalList ARG_001 и ARG_002 формата DATA_AND_TIme
3. Привязываю к Call.LocalList ARG_001 и ARG_002 2 ГЭ "Дата и время".
4. Привязываю Call.LocalList к Параметр#1.Реальное_значение.
5. Параметр#1 архивируется в СПАД №1.
6. Создаю кнопку. По нажатию на кнопку в Call.LocalList.In передается 1.

Для праверки работы системы ввожу ГЭ "Дата и время" (кратное 20 мин.), нажимаю кнопку. И ничего не происходит.
В мануале написано, что атрибут 92 Call.LocalList после выборки должен содержать количество выбранных записей. А содержит 0.
Правильно ли я понимаю, что при проведенной выборке в аргументах Call.LocalList начиная с ARG_002 записываются пары ARG_003 Real - ARG_004 DT... ARG_X REAL-ARG_X+1 DT? И количество этих пар равно количеству заданных интервалов?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы хотите считать все имеющиеся в архиве за сутки 20 значений, Вам надо:
- ПАРАМЕТР приравнять 32 (без разбиения на интервалы),
- создать в Call.LocalList ARG_000 и ARG_001 формата DATA_AND_TIME,
- создать в Call.LocalList еще 20 пар аргументов (REAL и DATA_AND_TIME),
- задать в ARG_000 и ARG_001 канала Call.LocalList нужный временной диапазон,
- послать в Call.LocalList.In "1".
 
Posted by Eman1982 (Участник № / Member № 5619) on :
 
Я пришел к выводу, что мне лучше все-таки разбить данные на блоки по 20 минут- меньше потом обрабатывать эти данные придется.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы хотите сначала прочитать все данные за 20 минут без обработки, то по сравнению с рекомендацией предыдущего поста Вам только надо оценить количество возможных записей за 20 минут и создать для них нужное количество пар аргументов.

А вот тезис "меньше потом обрабатывать", на мой взгляд, требует обсуждения.

Если у Вас есть четкое представление о необходимом регламенте обработки, опишите его, пожалуйста, в запросе на hotline @adastra.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Неправильная привязка одного ChGrReq и неправильная структура аргументов в другом.
Откорректированный проект отправлен почтой.
 
Posted by Eman1982 (Участник № / Member № 5619) on :
 
Спасибо за коррекцию, теперь все понятно!
 
Posted by NickBEP (Участник № / Member № 6122) on :
 
Здравствуйте! Отправьте мне пример принудительные записи параметров в СПАД, пожалуйста.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
 
Posted by DmitryL (Участник № / Member № 6247) on :
 
Здраствуйте!

Помогите пожалуйста с CALL.LocalList. К сожалению, по вашему примеру и по справочной литературе сам разобраться не смог. Сделал тестовый проект в профессиональной версии.
Требуется чтобы по нескольким каналам за заданный промежуток времени из архива формировалось максимальное, минимальное и средневзвешенное значение параметра (в рассматриваемом проекте 2 канала (sinus и pila) и эти значения отображались на экране.
Прошу, по возможности, ответить побыстрее. Заранее спасибо.
Тестовый файл повторно отправлен по почте.

[ 05.12.2013, 10:34: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Ответ направлен Вам по почте.
 
Posted by DmitryL (Участник № / Member № 6247) on :
 
Спасибо. За ответ, но сразу же возник еще вопрос. Мне не понятно в каких конкретно аргументах ChGroupReq будут образовываться минимальные, максимальные и средневзвешенные значения заданного интервала. (В LocalStatistic все понятно написано и все работает, но нет средневзвешенных значений). Если у вас есть возможность, поправьте проект для наглядности.
 
Posted by Nico (Участник № / Member № 5342) on :
 
одновременно max-min-avr в аргументы ChGReq не заносятся
можно TVC на 3 кривых
 
Posted by DmitryL (Участник № / Member № 6247) on :
 
Спасибо NICO!

Все равно что у меня не получается.
Подскажите где у меня ошибка.
создал канал LocalList Параметр 32. С аргументами IN:
- ARG_000 и ARG_001 (DATE_AND_TIME) привязал 2 канала TIME (реальное значение) (с помощью которых буду задавать интервал выборки)
- ARG_002 привязал CALL.TVC (реальное значение)

CALL.TVC Параметр 1 привязал к каналу (синусоида).
Аргументы IN:
- первые 2 не привязанные
- ARG_002

Три ГЭ текст экрана привязываю к аргументу ARG_002 CALL.TVC с атрибутами 141, 142, 143 для отображения на экране средневзвешенного, максимального и минимального значения.
После запуска профайлера в части ГЭ текст отображаются цифры, но они ничего не имеют общего с требуемыми мне величинами.
 
Posted by Nico (Участник № / Member № 5342) on :
 
CALL.TVC Параметр 1 привязал к каналу (синусоида). ????????????????

.перетащить архивируемый канал на TVC
..не привязывать аргументы TVC и смотреть их в окне компонентов
...в TVC задать число кривых
....dbg_bit в TVC -> 1
info будет в <файле имя канала TVC>

[ 18.12.2013, 09:15: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by DmitryL (Участник № / Member № 6247) on :
 
Nico, еще раз спасибо за оказанную поддержку, но видимо, сказывается новизна ПО для меня, а так же отсутствие интуитивно понятного интерфейса у программы. К сожалению, я так и не понял как задавать количество кривых в TVC.
 
Posted by Nico (Участник № / Member № 5342) on :
 
параметр там же где Local.List.параметр=32(34 атрибут)
 
Posted by DmitryL (Участник № / Member № 6247) on :
 
Специально не писал сразу, решил, что сам подумаю над этим вопросом, но разобраться не получилось.


«...не привязывать аргументы TVC и смотреть их в окне компонентов»
Не понятно где именно можно посмотреть значения аргументов канала TVC в окне компонентов.
Ведь там можно посмотреть только значения атрибутов, при этом 142, 143, 144 атрибут не показаны.

«...в TVC задать число кривых»
Где указать я понял, а вот что туда написать, для того чтобы в аргументах канала формировалось min, мax и средневзвешенное значение не понятно.

«....dbg_bit в TVC -> 1»
Не понял, что это значит, и нужно ли это мне. (я с помощью кнопки подаю значение на вход LocalList) для запуска процесса обработки архива.

«…info будет в <файле имя канала TVC>»
Где этот файл находится и что в нем смотреть не понятно.

Я ценю помощь коллег, но хотелось бы получить ответ и от службы поддержки.

[ 18.12.2013, 09:15: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by Nico (Участник № / Member № 5342) on :
 
.раскрыть число аргументов
..3
...бит отладки(59)
....появится в каталоге узла
возможно некоторую полезную инф о выполнении запроса
 
Posted by Ilgeneer (Участник № / Member № 5896) on :
 
Здравствуйте.
Есть подобная задача, с заданной периодичностью записывать данные в архив.
Имеется несколько каналов FLOAT, надо записывать данные в архив не по изменению значения, а один раз в час например.
Есть ли подобный пример или как лучше это организовать ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Проблемы DmitryL разрешены в почтовом диалоге с разбором проекта.

Для Ilgeneer.
Обратитесь в техподдержку по hotline3@adastra.ru с уточненным описанием задачи:
- какова реальная динамика изменения значений каналов,
- каковы перспективы использования именно этих архивных данных.

Топик закрывается.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2