отправлено / posted
Вопрос следующий СПАД в настройках выставлен размер 256Мб. Запускаем проект, в проекте 70 каналов с разной интенсивностью изменений. Проект проработав 3 дня. Заполнил СПАД на 37Мб(Фактический размер СПАД файла который находится в папке узла). Переменная q_SIAD_Q правильно показывает процент заполнения там что то около 15-20%. После перезапуска проекта переменная q_SIAD_Q становится неожиданно равной 0.06...%. Вопрос такой, это связанно с тем что в СПАД пишутся каналы с разной интенсивностью?
Сообщения / Posts 112 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В каком релизе Вы работаете? Перепроверено в релизе 6.09 с переменной @q_SIAD_Q/User SIAD1 - начальное значение переменной совпадает с тем значением, которое было при выгрузке RTM. Так будет до предельного заполнения архива.
Согласно документации "Параметр=32…43 – приблизительный процент заполнения соответствующего архива. При старте МРВ значение этого параметра соответствует текущему уровню заполнения архива. После достижения значения 100 параметр обнуляется и затем снова растет до 100 по мере затирания старых записей новыми;" Теперь данная переменная будет контролировать заполнение архива условно. При запуске контроль будет начинаться с того значения, которым штатно закончился предыдущий сеанс.
Если Вы используете переменную "@q_SIAD_Q/K SIAD1 – коэффициент полезного использования объема соответствующего архива (в процентах);", то она не имеет отношения к контролю фактического размера файла архива, но указывает на эффективность использования объема файла текущими записями. Ее значение действительно определяется текущей интенсивностью записи в архив. Близость значения "15-20%" к оценке реального объема файла - случайна.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Данная проблема на релизе 6.06 Это происходит если в СПАД пишутся каналы с разной интенсивностью изменения. При одной интенсивности такой проблемы не замечено. Причем на проекте где 9 узлов только проблема. Накидал тестовый проект с 1 узлом все работает нормально. q_SIAD_Q можно создать одну в слое источники\приемники и патом просто привязывать к ней каналы в узлах или для каждого узла нужно отдельную q_SIAD_Q создавать.
Сообщения / Posts 112 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
"Источник" @q_SIAD_Q можно создать в одном экземпляре и привязывать его к каналам в разных узлах.
Возможно, в многоузловом проекте какие-либо данные передаются из одного узла в другой узел и там архивируются. В таком случае значение @q_SIAD_Q/K SIAD1 будет существенным образом зависеть от потока данных, получаемых по сети. Пока не установится связь между узлами и будет данных, интенсивность потока архивирования будет низкой.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by AdAstra Technical Support: "Источник" @q_SIAD_Q можно создать в одном экземпляре и привязывать его к каналам в разных узлах.
Возможно, в многоузловом проекте какие-либо данные передаются из одного узла в другой узел и там архивируются. В таком случае значение @q_SIAD_Q/K SIAD1 будет существенным образом зависеть от потока данных, получаемых по сети. Пока не установится связь между узлами и будет данных, интенсивность потока архивирования будет низкой.
Данные сохраняются строго в том узле где настроен СПАД. Передачи данных в другие узлы для архивации нету. Как быть? Ведь именно при помощи этого канала я смотрю за заполнением СПАД и копирую его.
Сообщения / Posts 112 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Для копирования нельзя использовать переменные @q_SIAD_Q/K SIAD1 (тем более, что она поддерживается только профайлером) и @q_SIAD_Q/User SIAD1. Они не отражают никоим образом реальное состояние архива. В особенности это важно после первого же заполнения архива до заданного объема. В этом случае для копирования правильно использовать переменные First SIAD1 и Last SIAD1. Сравнивая эти времена для текущего архива с временами для последней копии (First SIAD1 Copy1), можно автоматически формировать сигнал для копирования архива.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |
VaBo1966
Junior Member / Новичок
Участник № / Member № 6398
отправлено / posted
Также прошу выслать этот пример. Кроме этого, такой вопрос: На рабочем проекте примерно 100 каналов пишется в СПАД1, 6 каналов - в СПАД2 (хотел увеличить глубину просмотра по времени именно этих каналов). Наблюдаю за заполнением архивов при помощи @q_SIAD_Q/User SIAD1(2), но архивы, судя по этим переменным, заполняются практически синхронно. Сляпал тестовый пример с 10 синусоидами, 9 в СПАД1, 1 в СПАД2, картина получилась более похожа на дело, соотношение переменных порядка 5 к 1. Прокомментируйте, пожалуйста.
Сообщения / Posts 28 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Чем меньше интенсивность записи в архив, тем больший промежуток времени можно записать в него. К примеру, есть два СПАД-архива одинакового объема. В первый записывается один канал, а во второй десять. Когда оба архива заполнятся на 100%, то сохраненный интервал времени в первом архиве будет больше, чем во втором.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607
отправлено / posted
Можно и мне пример копирования архива с использованием переменных First SIAD1, Last SIAD1 и First SIAD1 Copy1.
Сообщения / Posts 168 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607
отправлено / posted
Спасибо за пример.
Но в релизе 6.10.2 (Win 10 Pro) пример не заработал должным образом. Переменная Time_Last_siad_copy_1 не изменяется и равна 00.01.1900 0:00:00, копии создаются каждую секунду.
В релизе 6.09 всё работает нормально. В релизе 6.09.2 уже не работает.
юный_инженер
Forum Member / Участник форума
Участник № / Member № 8204
отправлено / posted
очень замороченно звучит. можно мне тоже образец на почту правильного, окончательно точного диагностирования наполнения архива для запуска скрипта копирования архива. пример с использованием переменных First SIAD1, Last SIAD1 и First SIAD1 Copy1
Сообщения / Posts 57 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Принципиально ничего сложного нет. Необходимо в Источниках/Приемниках (Диагностика и сервис - Диагностика) создать диагностическую переменную q_SIAD_Q. Открыть ее на редактирование и в списке выбрать необходимый параметр (First SIAD1, Last SIAD1...). Затем в непосредственно узле RTM создать канал Time, к нему привязать q_SIAD_Q.
Проект сохранить, скомпилировать (сохранить для МРВ) и запустите под Профайлером. Канал Time будет отображать время первой записи в первый архив.
Для получения расширенной информации об архиве, диагностическую переменную q_SIAD_Q привяжите к каналу Call с типом вызова ChGroupReq (у канала должен быть минимум 1 аргумент). Такой канал в своих аргументах будет содержать всю необходимую информацию (время первой и последней записи в архив, примерное заполнение архива, количество записей и т.д).
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |