Форум 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 » SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE » Чтение данных с файла txt

   
Автор / Author Тема / Topic: Чтение данных с файла txt
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. Может ли ТМ6 читать данные с текстового файла и выгружать их на тренд? И если может, то как это реализовать
Сообщения / Posts 139 | Из / 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 
Да, выводить данные на тренд из внешнего источника можно, есть пример с выводом из БД: http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/54/t/000001.html "Вывод данных из БД на тренд (для базовой и профессиональной версии)".

Данные из текстового файла можно паредать в БД сторонними средствами в БД или Excel и запрашивать в TRACE MODE через ODBC драйвер, аналогично любым данным из СУБД.

Можно забирать данные через Call.STRING (в справке см. Каналы и системные переменные TRACE MODE 6 - Канал класса CALL - Запись длинных строк в канал CALL). Файл должен быть определённого формата.

Или можно переименовать файл в *.dat, задать ему определенный формат и читать через 128 атрибут канала CALL (в справке см. Каналы и системные переменные TRACE MODE 6 - Канал класса CALL - Атрибуты канала класса CALL - Чтение из файла).

Далее для этих двух случаев данные обработать и выводить как в вышеописанном примере.

Сообщения / Posts 16526 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если делается выгрузка с Excel. Есть возможность как-то выбирать файл excel пользователю?
Сообщения / Posts 139 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Как данные из Excel выгрузить на тренд?
Сообщения / Posts 139 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Опишу всю ситуацию. В папку поступают новые файлы excel. И все имеют разные названия. Требуется читать эти файлы средствами скады и выводить их на тренд в зависимости от даты (дата пишется в названии файлов).
Удобнее было бы если бы пользователь сам выбирал какой файл ему выгрузить на тренд в зависимости от даты которая ему требуется. Но возможно ли это реализовать?

Сообщения / Posts 139 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Если делается выгрузка с Excel. Есть возможность как-то выбирать файл excel пользователю?

Как было указано выше, информационный обмен с Excel файлами рекомендуется организовать через ODBC драйвер, аналогично любым данным из СУБД.
Возможность изменить настройки Источника данных относится к функциональным возможностям драйвера ODBC.

quote:
Отправитель / Originally posted by Yurchik1:
Как данные из Excel выгрузить на тренд?

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

quote:
Отправитель / Originally posted by Yurchik1:
Опишу всю ситуацию. В папку поступают новые файлы excel. И все имеют разные названия. Требуется читать эти файлы средствами скады и выводить их на тренд в зависимости от даты (дата пишется в названии файлов).
Удобнее было бы если бы пользователь сам выбирал какой файл ему выгрузить на тренд в зависимости от даты которая ему требуется. Но возможно ли это реализовать?

Спасибо за подробное описание. Ответ был дан выше - Данные из текстового файла можно паредать в БД сторонними средствами в БД или Excel и запрашивать в TRACE MODE через ODBC драйвер, аналогично любым данным из СУБД.

Так же стоит повторно рассмотреть возможность использования механизма работы с dat-файлами (см. ответ выше). Канал Call можно в реальном времени переименовать и подчитывать данные с нового dat-файла.
Или использовать традиционные методы передачи данных

Сообщения / Posts 16526 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В вашем примере куча ссылок на одну и ту же БД, куча каналов CALL с кучей аргументов. Как я должна понять что именно мне нужно сделать для вывода данных из БД на тренд?
Пример аж 2009 года, сделан в старом релизе. В одном из топиков 2012 года вы пишете что скоро этот пример обновится, обновления до сих пор нет. То есть данный алгоритм устарел.
Про выбор пользователем файла excel никакого ответа я не получила.
Про файл dat. Я не просто так написала подробно, что файлы все разные, имена разные. Как мне в этой ситуации может помочь файл dat?
Спрошу еще раз. Есть ли возможность дать пользователю доступ менять файл базы данных в odbc драйвере?
Можно ли по нажатию кнопки в реальном времени открыть администратора odbc?
Есть ли вообще какие-нибудь варианты решения моей задачи? Мне главное чтобы скада могла тянуть данные с разных файлов, а не с одного, заложенного на этапе разработки проекта.

Сообщения / Posts 139 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
В вашем примере куча ссылок на одну и ту же БД, куча каналов CALL с кучей аргументов. Как я должна понять что именно мне нужно сделать для вывода данных из БД на тренд?

Вы можете задать конкретные вопросы по примеру и мы Вам предоставим ответы.
Для начала попробуйте запустить пример и отобразить данные из access-файла на тренде.

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Пример аж 2009 года, сделан в старом релизе. В одном из топиков 2012 года вы пишете что скоро этот пример обновится, обновления до сих пор нет. То есть данный алгоритм устарел.

Демо-проект "Вывод данных из БД на тренд (для базовой и профессиональной версии)", который можно скачать по ссылке выше, сохранен в 2013 году. Верно, он разработан в релизе 6.08, но механизм актуален и в релизе 6.10.2. Вы можете открыть данный проект в Среде Разработки, пересохранить, скомпилировать и запустить.
Повторюсь, пример актуален.

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Про выбор пользователем файла excel никакого ответа я не получила.

Ответ был дан выше.
Так как у Вас этот вопрос остался не закрыт, то я распишу подробнее.

Как было описано выше, мы рекомендуем для работы с excel-файлами использовать подключение через ODBC-драйвер (в Среде Разработки это "Шаблон связи с СУБД"). Используемый файл базы данных выбирается в Администраторе источников данных ODBC (ПО, встроенное в Windows) при настройке Источника данных. Это делается без участия Trace Mode.

Так как у Вас все файлы имеют разное название, то было предложено "Так же стоит повторно рассмотреть возможность использования механизма работы с dat-файлами (см. ответ выше). Канал Call можно в реальном времени переименовать и подчитывать данные с нового dat-файла.
Или использовать традиционные методы передачи данных".

Отдельно отмечу, просто так взять любой файл и извлечь из него данные на тренд нельзя. Файл необходимо предварительно подготовить. Либо передать данные в Базу Данных, либо сформировать этот с определенной внутренней структурой (dat-файл).

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Про файл dat. Я не просто так написала подробно, что файлы все разные, имена разные. Как мне в этой ситуации может помочь файл dat?

Прошу внимательно читать ответы.
Так же стоит повторно рассмотреть возможность использования механизма работы с dat-файлами (см. ответ выше). Канал Call можно в реальном времени переименовать и подчитывать данные с нового dat-файла.

В Справочной Системе (ссылка на описание дана выше) указано, что канал Call подчитывает dat-файл с тем именем, которое у канала Call. Если канал Call переименовать в реальном времени, то можно подчитать второй dat-файл. Таким образом одним каналом можно по очереди читать разные dat-файлы. Эти dat-файлы должны иметь определенную внутреннюю структуру. Создайте dat-файл, согласно Справочной Системе, и далее создавайте свои dat-файлы с аналогичной внутренней структурой.

Отдельно отмечу, что рядом с примером "Вывод данных из БД на тренд (для базовой и профессиональной версии)" есть пример по чтению из файла "Пример записи/чтения аргументов канала CALL через файл"

[ 07.09.2022, 10:24: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Спрошу еще раз. Есть ли возможность дать пользователю доступ менять файл базы данных в odbc драйвере?

Это скорее организационный вопрос и решается Разработчиком проекта совместно с Заказчиком.
Встроенные средства Windows позволяют менять файл базы данных в Источнике данных ODBC. Trace Mode в данном вопросе (замена файла в источнике данных ODBC) не участвует.

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Можно ли по нажатию кнопки в реальном времени открыть администратора odbc?

Для вызова внешнего приложения используется канал Call с типом вызова EXEC.
(в справке см. Каналы и системные переменные TRACE MODE 6 - Канал класса CALL - Канал CALL.Exec)

Для вызова внешнего приложения необходимо знать точное местоположение exe-файла вызываемого приложения.

Однако, описанный Вами план реализации не оптимален. А предоставление доступа Оператору к настройкам источника данных можно считать нарушением целостности готового проекта.

Оптимальным решением является запись данных из файла в БД, с последующим чтением из БД и выводе на тренд (см. пример "Вывод данных из БД на тренд (для базовой и профессиональной версии)")

[ 07.09.2022, 10:52: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]

Сообщения / Posts 16526 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Есть ли вообще какие-нибудь варианты решения моей задачи? Мне главное чтобы скада могла тянуть данные с разных файлов, а не с одного, заложенного на этапе разработки проекта.

Варианты решения предоставлены в самом начале топика
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/40/t/000187/p/1.html#000001

Сообщения / Posts 16526 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by АдАстра. Техподдержка:
quote:
Отправитель / Originally posted by Yurchik1:
В вашем примере куча ссылок на одну и ту же БД, куча каналов CALL с кучей аргументов. Как я должна понять что именно мне нужно сделать для вывода данных из БД на тренд?

Вы можете задать конкретные вопросы по примеру и мы Вам предоставим ответы.
Для начала попробуйте запустить пример и отобразить данные из access-файла на тренде.

Мне нужен алгоритм по которому можно выгрузить с бд данные на тренд. Запускать проект который вы делали и выгружать данные на тренд у меня получилось. Мне не понятен алгоритм реализации такой выгрузки
Сообщения / Posts 139 | Из / 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 
В проекте демонстрируется ряд механизмов.
Конкретно по выводу данных на тренд.

Данные из БД запрашивает Call.SQLQuery с названием "База_данных#1:1" (изучите его привязки)
Первый его аргумент передает метку времени. Второй передает считанное значение в канал Call.TVC с названием "SQL_TVC".
В атрибутах канала Call.TVC в первых двух аргументах фиксируется временной интервал, в остальных непосредственно значение и метка времени.
Далее, Тренд имеет две привязки:
1. в настройках оси времени привязка к аргументу шаблона экрана, который привязан к первому аргументу канала Call.TVC
2. непосредственно кривая привязана к аргументу экрана, который привязан к третьему атрибуту(!) 142 канала Call.TVC.

Сообщения / Posts 16526 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Haunter / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Уважаемая техподдержка, скажите понятным языком. Перезаписывается ли сторонняя бд при переполнении? Вот имеется бд sql на 10 Гб. Будет ли trace mode записывать старые значения на новые при достижении этих 10 Гб, или он просто перестанет посылать туда значения?
Сообщения / Posts 139 | Из / 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 
Здравствуйте!
Вопросы по сторонним базам данных (в особенности по работе сторонних баз данных) не входит в обязанности Службы технической поддержки. Мы Вам можем помочь с вопросами по Trace Mode.

Контролирование переполнения базы данных прерогатива непосредственно базы данных.

Согласно встроенной Справочной Системе (Распределенные АСУ - Обмен с базами данных - Создание и выполнение SQL-запросов - Выполнение SQL-запросов в реальном времени) MPB нe упpaвляeт тpaнзaкциями и нe кoнтpoлиpуeт иx; т.e., зa цeлocтнocть БД oтвeчaeт CУБД.

Если упрощенно:
Взаимодействие с БД осуществляется с помощью драйвера ODBC (Источник данных ODBC). SQL-запрос от TM передается драйверу ODBC. Он взаимодействует с БД. Результат взаимодействия (результат выполнения sql-запроса или сообщение об ошибке) возвращается в ТМ.

Сообщения / Posts 16526 | Из / 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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2