Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » HDA и Тренды

   
Автор / Author Тема / Topic: HDA и Тренды
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Имеем OPC сервер, с которого получаем архивные значения по HDA, отображающиеся на тренде, с вводом начального и конечного времени (здесь все в порядке).
Программа ТМ, сама, каждые две минуты подает новые значения границы (начальное и конечное время) в тренд, а также в первые два аргумента (T_FROM и T_TO) канала HDA. Проблема возникла с отображением графика, т.е. каждые две минуты получаем новое количество аргументов в канале HDA, также изменяются границы и в тренде, а сама линия графика не прорисовывается на тренде. Причем если через N-ое время самостоятельно изменить (начальное и конечное) время в тренде (через компоненты), то график дорисовывается.

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А если перейти с экрана на экран кривая перерисовывается?

Пришлите Ваш проект на hotline3@adastra.ru

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Поляков Илья
Active Forum Member / Активный участник форума
Участник № / Member № 3358


Icon 1 отправлено / posted      Профиль для / Profile for Поляков Илья           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да, перерисовывается.
Проект отправил.

Сообщения / Posts 68 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Есть предположение, что у Вас данные поступают в каналы позже, чем границы передаются ГЭ "Тренд". Следовательно, тренд отрисовывается сначала без данных.

Попробуйте разнести эти события, чтобы данные приходили гарантировано раньше.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Поляков Илья
Active Forum Member / Активный участник форума
Участник № / Member № 3358


Icon 1 отправлено / posted      Профиль для / Profile for Поляков Илья           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Каким образом?
Сообщения / Posts 68 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Например разбить программу на две. Первая будет получать данные в каналы и запускать вторую, а вторая будет передавать границы в тренд.

Можно сделать и в одной, на разных тактах пересчета.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Поляков Илья
Active Forum Member / Активный участник форума
Участник № / Member № 3358


Icon 1 отправлено / posted      Профиль для / Profile for Поляков Илья           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Испробовали оба варианта.
Пошли оба, но с одним моментом - пока горизонтальным скролл-баром не пошевелишь, график не перерисовывается.

Сообщения / Posts 68 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Не совсем понятно.

График перерисовывается в момент изменения границ тренда. Каким образом это делается, программно или вручную, неважно.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вот что выявили:
Как было сказано ранее программа ТМ, сама, каждые две минуты подает новые значения границы (начальное и конечное время) в тренд, а также в первые два аргумента (T_FROM и T_TO) канала HDA. Вы посоветовали нам разбить программу на две части или сделать это в разных тактах (см выше)
Заработали оба варианта.

НО, С ОДНИМ НЮАНСОМ: если мы подаем границы в тренд за один час (например с 8:00 до 9:00), а в канале HDA имеем массив за сутки (с 0:00 до 23:59) то все в порядке, график перерисовывается без проблем.
А если границу в тренде увеличим хотя бы на 30 минут (т.е. с 8:00 до 9:30) то график перестает перерисовываться, пока не пошевелишь скролл-баром.

Нам в итоге надо отобразить на трэнде весь массив из HDA, т.е. сутки, потому и запрашиваем в HDA сутки.

Также во всех перечисленных вариантах эксперимента иногда не получаем данные в канале HDA, хотя границы в канал были переданы. После перезагрузки МРВ, данные вновь получаем.

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
"А если границу в тренде увеличим хотя бы на 30 минут (т.е. с 8:00 до 9:30) то график перестает перерисовываться, пока не пошевелишь скролл-баром."
Что значит "не перерисовывается"?
Не изменяется временная шкала на тренде?
Шкала устанавливается "с 8:00 до 9:30", но график прорисован только "с 8:00 до 9:00"?

Если Вы считываете массив за сутки, то зачем Вы повторяете считывание каждые 2 минуты?

В каком релизе Вы работаете?

В релизе 6.06.3 канал CALL_HDA должен иметь период "Однократно" и автоматически выключаться после отработки. Для того, чтобы он снова обратился к OPC-HDA-серверу, надо не только менять его временные границы, надо его включать.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
>>Что значит "не перерисовывается"?
>>Шкала устанавливается "с 8:00 до 9:30", но график прорисован только "с 8:00 до 9:00"?

Да

>>Если Вы считываете массив за сутки, то зачем Вы повторяете считывание каждые 2 минуты?

Так надо. На тренде показываем "окно" изменения параметра за сутки от текущего времени. БД обновляется раз в 2 минуты

>>В каком релизе Вы работаете?

6.06.3 + пакет исправлений IDE_BASE_20091118.RAR

>>В релизе 6.06.3 канал CALL_HDA должен иметь период "Однократно"...

Проверим в течении дня - ответим

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
>>В релизе 6.06.3 канал CALL_HDA должен иметь период "Однократно" ...
Получилось следующее: указали у канала CALL_HDA период "Однократно". Были заданы границы с 8:00 до 10:00. Далее после отработки канал выключился, т.е. атрибут «Выключить – (3, C) Состояние» становится Off+T и были получены соответсвующие значения с 8:00 до 10:00.
После включения канала (через 2 минуты) подали в атрибут канал значение 0. Получили значения в канале с 8:02 до 10:02. На тренде границы изменились соответственно, но сам график был прорисован с 8:00 до 10:00.
Таким образом, прождали 20 минут, т.е. в канале данные были получены с 8:20 – 10:20, границы тренда также были с 8:20 – 10:20, а вот сам график по-прежнему был прорисован лишь с 8:00 до 10:00.
Как только пошевелили горизонтальным скролл-баром, график тут же прорисовался с 8:20 до 10:20
При этом заметили что при задании интервала границ в тренде 1 час (т.е допустим с 8:00 до 9:00) такого бага не замечается все работает стабильно. Но как только интервал увеличиваем больше чем на один час (т.е. с 8:00 до 9:30) прекращается перерисовка графика. Хотя все данные были получены корректно (т.е. данные в канал получены за период с 8:00 до 9:30, и через 2 такта были обновлены границы тренда с 8:00 до 9:30)

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Проведите, пожалуйста, следующий эксперимент.
Считайте суточный архив 2-минутных значений целиком и остановите считывание архива.
Затем запустите Вашу программу изменения границ тренда с периодом 2 мин. - 8:00-10:00, 8:02-10:02, 8:04-10:04 и т.д.
Я провел такой эксперимент на Вашем проекте (который Вы присылали нам). Никаких нарушений не обнаружил. При каждом смещении границ тренда подчитывался новый фрагмент архива.

Поэтому можно преположить, что, введенная задержка между подъемом архива и смещением тренда не достаточна - архив в канале обновляется позже, чем смещается тренд.
В процедуре участвуют 3 потока: программы, чтение архива, отображение на тренде. Все 3 потока друг по отношению к другу асинхронны. И рассинхронизация вполне соизмерима с введенной задержкой (2 цикла основного потока). При этом надо учитывать также и то, что каналы в потоках обрабатываются в порядке своих ID, что также вводит дополнительную рассинхронизацию.
Возможно, что Вам придется увеличивать задержку.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Эксперименты прошли успешно.
Вопрос: как узнать что данные в канале HDA получены полностью?

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Поляков Илья
Active Forum Member / Активный участник форума
Участник № / Member № 3358


Icon 1 отправлено / posted      Профиль для / Profile for Поляков Илья           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
И еще вопрос: по каким критериям каналу HDA выставляется аппаратная недостоверность (004 атрибут)?
Сообщения / Posts 68 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Из документации:
"Атрибут ASK (120) - – переменная DataReady, принимает значение 1, если запрошенные данные успешно считаны;"
"1" запоминается, поэтому после того, как Вы проверили этот атрибут, сбросьте его.

Недостоверность выставляется, если OPC-сервер не отвечает или отвечает с передачей свойства "BAD"
по любому из параметров.

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Поляков Илья
Active Forum Member / Активный участник форума
Участник № / Member № 3358


Icon 1 отправлено / posted      Профиль для / Profile for Поляков Илья           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
>>или отвечает с передачей свойства >>"BAD" по любому из параметров.

Я спрашивал про HDA, а не про DA.

Сообщения / Posts 68 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Прошу прощения, "по любой из возвращаемых записей".
Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320


Icon 1 отправлено / posted      Профиль для / Profile for Ширинкин Андрей           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Провели вот такой эксперимент:
Допустим, в данный момент реальное время 8:00 и дата 21 января 2010, и программа начинает выполнятся в это время.
Эксп №1: Имеем два канала HDA. Программой отсылаем в оба канала HDA значения границ (с 8:00 20.01.2010 по 8:00 21.01.2010), с периодом «1 цикл CALC».
Через 10 циклов после того, как каналам были переданы значения границ, мы передаем значения границ в тренд (с 7:00 21.01.2010 до 8:00 21.01.2010), и каждые две минуты обновляем значения границ в HDA и тренде, т.е. так:

HDA - с 8:00 20.01.2010 по 8:00 21.01.2010;
Тренд - с 7:00 21.01.2010 до 8:00 21.01.2010;
Через 2 минуты программа отсылает новые значения:
HDA - с 8:02 20.01.2010 по 8:02 21.01.2010;
Тренд - с 7:02 21.01.2010 до 8:02 21.01.2010;
Через 2 минуты опять программа отсылает новые значения:
HDA - с 8:04 20.01.2010 по 8:04 21.01.2010;
Тренд - с 7:04 21.01.2010 до 8:04 21.01.2010;
И так далее….
В итоге получаем: ПОЛНОСТЬЮ РАБОТОСПОСОБНЫЙ ТРЕНД

Эксп №2: Имеем два канала HDA. Программой отсылаем в оба канала HDA значения границ (с 8:00 20.01.2010 по 8:00 21.01.2010), с периодом «1 цикл CALC».
Через 50 (затем увеличивали до 75 и 100) тактов, после того как каналам HDA были переданы значения границ, мы передаем значения границ в тренд (с 8:00 20.01.2010 до 8:00 21.01.2010), и тоже обновляем через каждые 2 минуты:

HDA - с 8:00 20.01.2010 по 8:00 21.01.2010;
Тренд - с 8:00 20.01.2010 до 8:00 21.01.2010;
Через 2 минуты программа отсылает новые значения:
HDA - с 8:02 20.01.2010 по 8:02 21.01.2010;
Тренд - с 8:02 20.01.2010 до 8:02 21.01.2010;
Через 2 минуты опять программа отсылает новые значения:
HDA - с 8:04 20.01.2010 по 8:04 21.01.2010;
Тренд - с 8:04 20.01.2010 до 8:04 21.01.2010;
И так далее….
В итоге получаем: в каналах HDA получены данные (причем все, за выбранный промежуток времени). Получены также значения границ в тренде. Но без прорисовки самого графика. Чтобы он прорисовался необходимо пошевелить скролл-баром. При этом иногда каналам (обоим или одному их них) присваивалась недостоверность(4 атрибут), при этом данные были получены полностью (атрибут 120 присваивалась 1))
Хотя количество тактов увеличивали с 10 до 20(30,40,50,60,70, и т.д.). Но результатов это не принесло никаких.

Эксп №3: Имеем два канала HDA. Программой отсылаем в оба канала HDA значения границ (с 8:00 20.01.2010 по 8:00 21.01.2010), с периодом «однократно», через 100 (если ставить кол-во тактов меньше 100, то см. Эксп №2) тактов после того как каналам были переданы значения границ, мы передаем значения границ в тренд. (с 8:00 20.01.2010 до 8:00 21.01.2010), и опять обновляем через 2 минуты:

HDA - с 8:00 20.01.2010 по 8:00 21.01.2010;
Тренд - с 8:00 20.01.2010 до 8:00 21.01.2010;
Через 2 минуты программа отсылает новые значения:
HDA - с 8:02 20.01.2010 по 8:02 21.01.2010;
Тренд - с 8:02 20.01.2010 до 8:02 21.01.2010;

Через 2 минуты опять программа отсылает новые значения:
HDA с 8:04 20.01.2010 по 8:04 21.01.2010;
Тренд с 8:04 20.01.2010 до 8:04 21.01.2010;
И так далее….

Также, при каждой 2-х минутной передачи значений границ в каналы мы их включали 3 атрибут.

В итоге: результаты схожи с эксп. №2. Причем очень часто каналу(ам) присваивалось недостоверность, при этом данные были получены (атрибут 120 = 1), но намного реже чем в эксп. 2.


Далее...
Вы нам писали что, цитирую: «В релизе 6.06.3 канал CALL_HDA должен иметь период "Однократно" и автоматически выключаться после отработки. Для того, чтобы он снова обратился к OPC-HDA-серверу, надо не только менять его временные границы, надо его включать.»

Как показал «Эксп. №1» - это не так.

Теперь вопросы:

Первое: почему в экп. 1 - все работает, а в эксп. 2 и эксп. 3 - не работает?

Второе: как нам все-таки сделать работоспособный СУТОЧНЫЙ график, с автоматической передачей значений границ и ПОЛНОЙ ПРОРИСОВКОЙ ЭКРАНА?

Сообщения / Posts 41 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Тем не менее, Ваш ответ "Эксперименты прошли успешно" говорит о том, что предположение о рассинхронизации справедливо.

Пришлите нам, пожалуйста, Ваш тестовый проект, на котором Вы проводили все эти эксперименты.

Можете ли Вы прислать тот OPC-HDA-сервер (работающий в режиме эмуляции с накопленным архивом), с которым Вы работаете, и с подробными инструкциями, как его заставить работать у нас?

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2