TrendWorX (архивирование среднего значения) |
Ответить |
Автор | |
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
Опубликовано: 21 Декабрь 2007 18:06 |
Решил в прошлую тему не писать, т.к. уже пошло отклонение от названия. Ситуация такая: Я пишу в БД каждую минуту среднее значение за эту минуту. Т.е. в TrendWorX Configurator, в свойствах тега, в разделе "запись на диск" выбираю пункт "среднее". В свойствах группы тегов задаю "период сбора данных"=1 мин., "период вычислений"=1 мин. (Кстати, так до конца и не разобрался, за что эти поля отвечают?. Если можно - расскажите кратко). Далее пишу в БД. Смотрю, что получилось. На первый взгляд вроде бы все правильно: раз в минуту записываются какие-то значения. Но как проверить какие? Т.е. я пробую писать значения одного и того же тега в 2 разные таблицы БД, но в одну таблицу эти значения должны писаться каждую секунду, а в другую - среднее значение за минуту. В этом случае можно пересчитать секундные данные вручную и убедиться, что SCADA все вычисляет верно. Я их пересчитал - не сходится. Предположил, что возникает задержка между записью в разные таблицы и за время этой задержки значение тега может поменяться (тогда в таблицы запишутся 2 разных значения). Далее, чтоб определить совпадают ли данные в разных таблицах, сделал следующее: изменил для группы тегов интервал записи с 1 мин. до 1 сек., т.е. теперь в 2 разные таблицы должны записываться одинаковые значения одного и того же тега с одинаковыми интервалами времени (в идеале таблицы были бы равны). Но во второй таблице вместо значений тегов записались нули. Это минимизация БД, моя невнимательность при настройке, специальная программная реализация SCADA-системы или еще что-то? Попробывал то же самое, но писать в одну таблицу в разные теги, но у тегов один и тот же источник - тоже нули. Попробывал то же самое, но писать в разные таблицы в разные теги с разными источниками, но источники генерировали одинаковые значения - появляются задержки (это уже OPC-сервер), так что тоже не прошел приемчик. Как можно это проверить? Я доверяю разработчикам, но когда закончу проект и буду сдавать его, то думаю, что с меня потребуют доказать, что пишется действительно среднее значение. |
|
Действительный член Присоединился: 27 Июль 2006 Online Status: Offline Публикации: 304 |
|
1. "Период сбора данных" должен означать период обновления информации из OPC DA-тега. Т.е. если вы хотите вычислять среднее значение по ежесекундным записям, это число должно быть равно 1 сек. "Период вычислений" - это период, за который должны вычисляться значения типа "среднее", "минимум" и т.д. В вышеприведенном примере нужно установить его на 1 мин, а также установить галку в окне настройки тега "Использовать период". По крайней мере, в 8.04 нужно делать так. И нужно учесть путаницу с обозначениями полей ввода в диалоге Gen9, если она не исправлена патчем.
2. Ситуация с нулями в таблице не совсем понятна. В первой таблице меняете период, но во _второй_ начинают идти нули? Во втором случае - 2 тега с одним источником - я проверил ситуацию на Gen 32 8.04 (9ю не используем), и все было нормально: в оба сигнала оказались занесены одинаковые ряды данных (Ненулевых). Либо бага 9-ки (установлены ли все существующие патчи и хот-фиксы?), либо вы не перезапустили логгер после изменения конфигурации. Лучше всего это делать из GenTray. |
|
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как. |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
нули пишутся только с нашим OPC-сервером. С сервером ICONICS все работает нормально. Будем разбираться с OPC-сервером. |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
еще один вопрос: Каждую минуту в БД Access заносятся средние значения за минуту некоторого тега (mytag). В GraphWorX нужно отображать эти архивные данные на графике. В параметрах пера компонента TWXView32 в разделе фильтр указано значение "среднее" Когда период сбора данных компонента TWXView32 равен 1 мин., то все нормально работает: с шагом в 1 мин. отображаются значения тега mytag. Но когда период сбора данных устанавливаем 5 мин., то все вообщем-то тоже нормально, но есть одна трудность: TWXView32 берет данные за 5 мин., вычисляет среднее значение и ставит его в начало обрабатываемого интервала. Мне же нужно, чтобы результат записывался в конец интервала. Т.е. есть интервал от 10.01 до 10.05 с шагом в минуту, значения 1, 2, 3, 4, 5 соответственно. Среднее за этот интервал TWXView32 выдает равным 3 ((1+2+3+4+5)/5) и привязывает это значение к времени 10.01. Мне нужно, чтоб среднее также равнялось 3-м, но привязывалось бы оно к времени 10.05. Можно ли так сделать? |
|
Действительный член Присоединился: 27 Сентябрь 2006 Online Status: Offline Публикации: 125 |
|
Mожет, поможет, если в TWXSQL Tool Control Properties выбрать фильтр Moving Average (скользящее среднее)?
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
TWXSQL Tool Control Properties - это свойства тега конфигуратора TrendWorX'а? Если так, то я попробовал сменить фильтр (больше ничего не менял). Результат получился не таким, как я хотел. Как работает этот фильтр? Как он считает? |
|
Действительный член Присоединился: 27 Сентябрь 2006 Online Status: Offline Публикации: 125 |
|
Я просто пока читаю Help. Ещё есть такой фильтр в Report Configurator. Скользящее среднее - это и есть среднее арифметическое, но результат привязывается к последнему по времени значению (а не к первому или среднему). Есть ещё RunningAvg - это взвешенное среднее (веса по экспоненте).
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
даже если он и привязывает среднее к последнему значению, то, насколько я понимаю, только в БД. Т.е. получается, что в БД Access записываются средние значения за одну минуту и привязываются к последнему. Но когда я в GraphWorX'е кликаю на графике и в появившейся панели меняю период с 1 мин до 5 минут... Какая связь между скользящим средним в TrendWorX'е и графиком в GraphWorX'е, который просто читает данные из БД? Другое дело, что для каждого пера графика можно настраивать отдельный фильтр. Вот здесь бы "скользящее среднее", может быть, и помогло бы. Но для фильтра пера нет значения "скользящего среднего", есть просто "среднее" и все. Беда! |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
А кто-нибудь работал с фильтром "totalizer" в TrendWorX32 Server или в TrendWorX32 Reporting? У меня он как-то странно работает. В TrendWorX32 Server значения записываются как есть (т.е. без обработки фильтром), а в TrendWorX Reporting значения, как я понял, вычисляются путем деления (а вот что на что делится я пока не выяснил). В любом случае totalizer должен суммировать значения, так ведь? В helpe на TrendWorX я ничего особенного не заметил, только описание полей. Как с ним работать? У меня еще была ситуация с TrendWorX Reporting, когда не создавались отчеты. Помог hotfix, скачанный с ftp.prosoft.ru. Может быть и в этом случае ситуация похожая. На ftp я уже смотрел, но подходящего обновления для TrendWorX'а вроде бы нет. |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |