This is topic Тренд с БД MySQL in forum Работа с приложениями (ODBC-SQL/OPC/DDE) at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/41/t/000080.html

Posted by arkos (Участник № / Member № 6144) on :
 
Пытаемся из динамической базы данных (MySQL)в ТМ выводить тренд в динамике. Везде Вы пишете , что аргументы при этом создаются автоматически. Скажите пожалуйста,в каком канале будут создаваться аргументы автоматически: с типом Call.ChGroupReg, Call.TVC, Call.Move? Как правильно организовать вывод данных в динамике на тренд?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В релизе 6.09 аргументы, адекватные реальному объему выборки, создаются как в каналах Call.ChGroupReg, так и Call.TVC.
Чтобы оперативно выводить данные из БД на архивный тренд через канал Call.TVC, надо к левой границе временной шкалы тренда привязать 140-й атрибут канала Call.TVC.
 
Posted by arkos (Участник № / Member № 6144) on :
 
У нас релиз 6.08. Объясните, пожалуйста, немного поподробнее: создаю шаблон БД с запросом SELECT где вывожу всего 2 параметра ДатаиВремя и Значение, соответственно к ним привязываю CALL. ChGroupReg(Date and Time, Real) Реальные значения. (Нужно ли в этих каналах CALL создавать аргументы?) Далее создаю CALL TVC. В нем создаю 2 служебных аргумента Date and Time и 2 аргумента: Real и Date and Time (И все?) Создаю канал CALL MOVE и в нем 4 аргумента для Date and Time: 2(IN и OUT)и для Real 2 (IN и OUT) (Какие в нем создавать аргументы?). TVC реальное значение привязан к кривой архивного тренда. К левой границе временной шкалы тренда привязан 140-й атрибут канала Call.TVC.Этот вариант не работает. Где может быть ошибка?
 
Posted by arkos (Участник № / Member № 6144) on :
 
В БД пишутся данные 1 раз в сек.То что данные поступают в канал TVC мы контролируем , кроме этого отображаем ГЭ БД. Пытаемся вывести эти данные на архивный тренд. При настройках, описанных в предыдущем посте, мы видим на графике значения в виде точки в определенный момент времени, в легенде значение тоже есть. Динамического изменения кривой нет. Как вывести кривую в динамике???
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У канала TVC, получающего данные из БД, 2 начальных аргумента должны обозначать временной диапазон полученных данных. Это надо увидеть в аргументах канала.
При настройке оси времени тренда надо привязать левую границу через аргумент D&T к 140-у атрибуту канала TVC, а кривую на тренд выводить из 142-го атрибута канала TVC.
 
Posted by arkos (Участник № / Member № 6144) on :
 
В таком варианте кривая не строится вообще.Высылаем Вам наш проект. Проанализируйте его пожалуйста, т.к. вывод динамических графиков из БД одно из основных требований нашего тех. задания. БД - My SQL 5, таблица очень простая (время, значение).
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам отправлен работающий тестовый проект, в котором реализована Ваша задача.
Приложены краткая инструкция и БД.
В качестве БД используется MS Access.
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Решаю такую же задачу. Только применительно к postgreSQL. Прошу вас направить мне пример, упомянутый выше.
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
На форуме в топике с примерами есть пример "Вывод данных из БД на тренд (для базовой и профессиональной версии)":
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/54/t/000001.html
В примере рассматривается Ms.Access для наглядности. Методически подключение со стороны TRACE MODE не будет отличаться, только в Администраторе ODBC надо будет выбрать другой драйвер – для работы с postgreSQL.
Пример разрабатывался в релизе 6.08, перед тестированием необходимо сохранить и скомпилировать его в актуальном релизе.
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Пример работает. Но в рамках примера реализован вывод ограниченного и заранее определенного количества "точек" графика. Но ведь объем выборки из базы может быть примерно любой.
Как решить задачу отображения содержимого базы данных в том случае, если их количество заранее не известно и определяется количеством строк в выборке?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by dus_112:
... в рамках примера реализован вывод ограниченного и заранее определенного количества "точек" графика.

Пример реализован на считывание заранее НЕопределенного количества точек. Считанные данные записываются в канал класса Call с типом вызова TVC. У данного канала аргументы создаются автоматически. Вы можете в приложенной к примеру базе данных добавить несколько дополнительных точек (строк в БД) и убедиться, что при считывании из БД в канале будут все значения, включая добавленные Вами.
Но вот сам графический элемент Тренд настроен на отображение всех значений на заданном интервале времени.

Если в реальном времени (в Профайлере или МРВ) на отображаемом интервале времени не помещаются всех значения, то Вы можете
1. использовать полосы прокрутки (в нижней части ГЭ Тренд, выше Легенды)
2. временно изменить отображаемый интервал времени, с помощью комбинации клавиш Ctrl+<клавиши навигации>
3. в Среде Разработки при редактировании ГЭ Тренд задать другой интервал времени
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Прошу разъяснить назначение канала SQL_TVC программы_1 в направленном вами примере.
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Прошу разъяснить назначение канала SQL_TVC и программы_1 в направленном вами примере. Так правильно.
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Создал свой проект на базе вашего примера. График строится правильно. Но, количество точек графика совпадает с количеством аргументов, пересылаемых в канал типа CALL.TVC. Количество данных в базе больше чем количество аргументов в CALL.TVC. Как отвязать количество выводимых точек графика от количества аргументов, в которые засылаются данные при вызове CALL.MOVE?
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
С графиком все получилось. Но вот вопрос с назначением программы 1 актуален.
Как получить доступ к отдельным аргументам канала SQL.TVC?
 
Posted by dus_112 (Участник № / Member № 9122) on :
 
Добрый день, требуются ваши разъяснения по ситуации, а именно — записываю в базу данных и считываю из нее же случайный значения. В моем случае используется postgresql.
В проекте создано несколько SQL запросов. Один из них — выборка из базы данных по времени и дате. 
Запрос работает правильно. Что подтверждается данными, выводимыми в таблицу.  При попытке вывода данных в архивный тренд данные выводятся, как будто с задержкой на сутки. Т.е. значения правильные, время как будто то же, значение даты +1 день. При этом, если делать выборку за сегодня — то все работает правильно. 
Как сделать так, что бы архивный тренд отображал бы любые данные правильно, а не только данные за сегодня?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by dus_112:
При попытке вывода данных в архивный тренд данные выводятся, как будто с задержкой на сутки. Т.е. значения правильные, время как будто то же, значение даты +1 день.
...
Как сделать так, что бы архивный тренд отображал бы любые данные правильно, а не только данные за сегодня?

На тренд выводятся данные с метками времени, которые были получены из Базы Данных.
На форуме в топике с примерами есть пример "Вывод данных из БД на тренд (для базовой и профессиональной версии)":
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/54/t/000001.html
Если данный проект запустить профессиональной Средой, то на тренд будут выведены данные за 2009(!) год.

Уточните, Вы используете Среду Разработки профессиональной линии или базовой?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by dus_112:
Как получить доступ к отдельным аргументам канала SQL.TVC?

Если Вам необходимо считывать или записывать определенные аргументы канала Call.TVC, то их необходимо предварительно создать, а затем произвести привязку к ним со стороны компонентов, которые будут получать или посылать данные.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2