This is topic Архивирование in forum SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Стоит задача: С периодичностью в 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 с уточненным описанием задачи: - какова реальная динамика изменения значений каналов, - каковы перспективы использования именно этих архивных данных.