Soyuz
Forum Member / Участник форума
Участник № / Member № 2028
отправлено / posted
Добрый день компания AdAstra! В очередной раз решили проверить функционирование СПАД архива, но к сожалению, не получили желаемого результата. Заявленные функции работы со СПАД архивом не работают. Скажите, пожалуйста, когда будет реализовано функционирование СПАД архива в полном заявленном объеме, так как от версии к версии полной работоспособности в СПАД архиве мы не обнаружили?
Перед нами поставлена задача, значение канала писать в архив СПАД. Выводить на экран первое (Arg_002) и поcледнее (Arg_026) значение канала за текущие, и прошедшие сутки. Интервал выборки - текущий день и предыдущий день . Для реализации извлечения данных из СПАД архива был использован канал CALL с типом вызова LocalStatistic. Настройка канала в соответствии с документацией на IDE. Запустили проект в среде исполнения TraceMode RTM 6.06.2. Значение канала инкрементируется вручную по нажатию на кнопку. Во время работы обнаружили следующие ошибки: МРВ стартовал в 10:00 (первый запуск, архив СПАД пустой), первые данные получили через 5 минут, за текущие сутки получили ожидаемые данные, а вот за предыдущие сутки, вместо нулей, получили первое и последнее значение за текущие сутки ; Проработав час, файл архива СПАД «вырос» до 2 ГБ , извлечение данных стало невозможным (значение канала изменялось редко).
отправлено / posted
Достижение большого размера файла означает какой-то сбой при работе архива. Это может быть по различным причинам. В релизе 6.06.2 при корректной работе с архивом этого быть не должно. Остальные проблемы, возможно, вызваны этим сбоем.
1. Вы работали со старым архивом из предыдущих релизов или создавали новый?
2. Какие из заявленных функций архива не работают?
Soyuz
Forum Member / Участник форума
Участник № / Member № 2028
отправлено / posted
1 Создали новый архив (релиз 6.06.2); 2 Не работает LocalStatistic выборка за предыдущие сутки (день); 3 Можем выслать.
Сообщения / Posts 52 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Задание диапазона выборки на данный момент можно либо с помощью функции OFFSET, либо параметр >=32.
Подробнее можно почитать в разделе "Временной интервал выборки".
Остальные виды могут либо вообще не работать, либо работать не корректно, т.к. являются устаревшими.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Soyuz
Forum Member / Участник форума
Участник № / Member № 2028
отправлено / posted
1 На основании чего, вы решили, что инетрвал выборки "за предыдущие сутки" являеться устаревшим? Описание этого интервала выборки присутствует в хелпе на IDE 6.06.2, а также есть возможность выбора этого интервала в среде разработке.
Как быть со старыми проектами, в которых использовались "устаревшие" инетрвалы выборки?
2 Объясните, как с помощью OFFSET или параметр >=32, задать интервал выборки за предыдущие сутки?
отправлено / posted
1. Функция организации выборки через "Интервал выборки" не отменена, но является устаревшим механизмом, функционально менее гибким, чем функции выборки с новым механизмом, реализуемым при задании ПАРАМЕТР>=32. Везде в старых проектах, где эта функция применялась, она будет работать. Если записи за предыдущие сутки в архиве имеются, они будут выбраны заданием интервала "За предыдущие сутки". Но и в старых, и в новых проектах при использовании любых механизмов (и старых, и новых) при попытке задания временных границ выборки, выходящих за пределы начала архива, заказываемые границы выборки будут выравниваться таким образом, чтобы они попали в пределы временного диапазона имеющихся в архиве записей. В дальнейшем мы добавим вывод кодов ошибки при попытках реализации подобных выборок. Кстати, диагностическая переменная @q_SIAD_Q при соответствующих настройках позволит Вам отслеживать реальные временные границы в архиве и соответственно оценивать корректность осуществляемых выборок.
2. Чтобы задать произвольный временной диапазон с помощью параметров OFFSET (АППАРАТНОЕ ЗНАЧЕНИЕ) и DELTA (ARG001), надо вычислить программным путем в формате UDINT - "Конец временного диапазона" OFFSET и записать его в АППАРАТНОЕ ЗНАЧЕНИЕ канала - величину временного интервала DELTA = T_TO - T_FROM и записать его в аргумент ARG001 канала.
3. При использовании ПАРАМЕТР>=32 первые 2 аргумента канала выборки должны иметь формат DATE&TIME и границы временного интервала задаются в этих аргументах в явном виде.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Soyuz
Forum Member / Участник форума
Участник № / Member № 2028
отправлено / posted
1 Если Вы говорите, что интервал "За предыдущие сутки" является полностью рабочим, но просто устаревший механизм, тогда почему данные извлекаемые из архива за предыдущие сутки не правильные (смотрите первое сообщение темы)?
2 Как Вы писали, "Но и в старых, и в новых проектах при использовании любых механизмов (и старых, и новых) при попытке задания временных границ выборки, выходящих за пределы начала архива, заказываемые границы выборки будут выравниваться таким образом, чтобы они попали в пределы временного диапазона имеющихся в архиве записей.", выравнивается нижняя и верхняя граница запроса, или только нижняя граница?
3 Объясните на примере, как задавать диапазон с помощью OFFSET, чтобы извлечь данные за прошедшие сутки. То есть, что и куда писать?
Сообщения / Posts 52 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
1. У Вас за этот период не было данных в архиве.
2. Левая граница сдвигается на первую запись в архив. Конечная граница принимает значение либо значение "начало архива + 1 минута", либо остается той, которую Вы задали, в зависимости от того, существует ли архив на этот момент времени.
3. В аппаратное значение посылаете значение 23:59:59 предыдущих суток. Например, 20.07.2009 23:59:59 (1248119999 в формате Long).
Soyuz
Forum Member / Участник форума
Участник № / Member № 2028
отправлено / posted
1. Данных не было, но по запросу за предыдущие сутки, из SIAD вместо нулей, выдаёт первое значение за текущие сутки. Так и должно быть?
Сообщения / Posts 52 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Да, именно так. В следующем релизе мы уисилим диагностику и в этом случае будем выставлять признак недостоверности.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |