Доступ к базе архива из C++Builder или
Delphi
ion; 28.9.04
Подскажите, плиз, в какую базу и какую таблицу архивируются теги
TagLogging'ом, чтоб можно было из C++Builder'а или Delphi (или VB)
вытащить архивные теги.
Re: Доступ к базе архива из C++Builder или
Delphi
Руденко Алексей Невисс-комплекс; 29.9.04
Попробуй через ODBC соединение - там все поймешь...
Re: Доступ к базе архива из C++Builder или
Delphi
ion; 29.9.04
я знаю как подсоединяться.
Вопрос в том:
к чему подсоединяться?!
к какой базе и таблице базы?!
где лежат архивные теги?
Re: Доступ к базе архива из C++Builder или
Delphi
Alexis; 30.9.04
Версия то WinCC какая интересует?
А самый простой вариант получения данных TLG - это использовать
TLGGetArchivDataEx.
Re: Доступ к базе архива из C++Builder или
Delphi
Nick Gashevsky; 30.9.04
Посмотри пример на
http://www.automation-drives.ru/as/products/doc.php?l1=SIMATIC%20HMI&l2=WinCC&l3=doc
правда на VC++6, но на C++Builder подправить нетрудно+почитай
ODK
Re: Доступ к базе архива из C++Builder или
Delphi
Руденко Алексей Невисс-комплекс; 30.9.04
При соединении через ODBC - на выбор в списке доступных баз
предлагается выбор - и там есть строчка с названием твоего проекта
WinCC и датой его создания с приписками RT еще что то.
Так вот выбрать надо RT, после этого нужно выбрать таблицу этой
базы данных...
При использовании Delphi и её компонента ADOTable или ADOQuery есть
вариант посмотреть все содержание базы - покопайся - найдешь...
Ежли уж совсем не в моготу, то открой эсель (MS Office который) и
через вкладку "данные" -> "импорт внешних данных"-> "создать
запрос" а там он тебе высветит что есть в этой базе и т.д.
Удачи
Re: Доступ к базе архива из C++Builder или
Delphi
Руденко Алексей Невисс-комплекс; 30.9.04
Хотя в 6-ой версии там лежит лишь информация о названии тегов и
т.д. - но я думаю если покопаться то, можно найти...
Метод научного тыка еще никто не отменял...
И не забудь запустить ВИНСИСЮ а то тебя не допустят к базе...
Re: Доступ к базе архива из C++Builder или
Delphi
ion; 30.9.04
Re: Доступ к базе архива из C++Builder или
Delphi
Alexis; 30.9.04
Открываешь RT-шную базу, в таблице AMT берешь нужный DSN (либо для
Slow либо для Fast), открываешь базу с нужным DSN и копаешься в
табличках Archive (имена переменных и их ID), TagCompressed (сжатые
данные Fast-ов) и TagUncompressed (данные Slow архивов).
То что сжато - тебе прийдется ручками расжать :))
Re: Доступ к базе архива из C++Builder или
Delphi
Павел Кобелев; 1.10.04
Для доступа к архивным тегам есть WinCC OLEDB Provider for
Archives. Драйвер устанавливается вместе с WinCC
Re: Доступ к базе архива из C++Builder или
Delphi
ion; 5.10.04
> Открываешь RT-шную базу, в таблице > > AMT берешь нужный
DSN (либо для Slow > либо для Fast), открываешь базу с
> нужным DSN и копаешься в табличках
> Archive (имена переменных и их ID),
> TagCompressed (сжатые данные Fast-ов)
> и TagUncompressed (данные Slow
> архивов).
> То что сжато - тебе прийдется ручками > расжать :))
А вот в архивах в этих почему то пусто :(
Re: Доступ к базе архива из C++Builder или
Delphi
ion; 5.10.04
> Открываешь RT-шную базу, в таблице > > AMT берешь нужный
DSN (либо для Slow > либо для Fast), открываешь базу с
> нужным DSN и копаешься в табличках
> Archive (имена переменных и их ID),
> TagCompressed (сжатые данные Fast-ов)
> и TagUncompressed (данные Slow
> архивов).
> То что сжато - тебе прийдется ручками > расжать :))
А вот в архивах в этих почему то пусто :(
Re: Доступ к базе архива из C++Builder или
Delphi
ASH; 5.10.04
А ведь действительно, эти таблицы пусты. В некоторых базах в
TagCompressed лежит непонятно что (названия полей - ValueID,
Timebegin, Timeend и BinValues мне ну ничего не говорят, также как
и содержащаяся в этой таблице информация), ну да ладно, допустим
там действительно надо, как сказали "ручками разжимать". Но таблица
TagUncompressed, вроде бы действительно та самая необходимая
таблица (поля Timestamp и Realvalue говорят именно об этом) всегда
пуста!!! Хотя в рантайме я же с помощью ТрендКонтрола вижу, что
теги нормально архивируются и где-то ведь они сохраняются! В
Си-Билдере я без проблем получаю доступ с помощью ADO-компонент к
любой винсисишной базе, но вот где хранятся архивированные теги и
как получить к ним доступ - я так и не понял:( Кто может -
помогите, плиз!
Re: Доступ к базе архива из C++Builder или
Delphi
Alexis; 6.10.04
Дык в RT-шной базе в таблице AMT лежит как минимум три DSN-а на
базу с алармами, на базу Fast-архивов и на базу с
Slow-архивами.
Если хотим Slow, то берем нужный DSN, открываем базу и копаемся в
табличке TagUncompressed - сопоставление ID и ИмяПеременной в
табличке Archive.
Если хотим Fast, то ... и копаемся в табличке TagCompressed - но
тут ситуация хуже - данные лежат в бинарном поле (max 2Kb) - с
наскока расжать я не смог, но попытаться попробуйте - в шапке
(размер не помню) точно есть время, а в теле лежат 32битные floatы
и на них накручен сдвиг: 33 байтные отрезки - 8 float-ов + байт,
первый флоат чистый, второй получается сдвигом оставшихся 29 байт
на один бит (недастающий бит приходит из 33-ого байта) и тд... Но
когда наткнулся на 25 байтный отрезок - сказал ООППСС...
Это то до чего я доковырялся когда захотелось данные самому
выцарапывать, потом лень стало...
А чем Вас все таки ОДКшная TLGGetArchivDataEx не устраивает?
Работает нормально...
Re: Доступ к базе архива из C++Builder или
Delphi
ASH; 8.10.04
Да бог с ней, с TLGGetArchivDataEx... И И забудем про
компрессирование... Объясните кто-нибудь почему таблица
TagUncompressed пуста?? Ведь там же теги Slow-архивов должны
храниться?
Re: Доступ к базе архива из C++Builder или
Delphi
Alexis; 8.10.04
А ты в базе для Slow-архивов смотришь?
Re: Доступ к базе архива из C++Builder или
Delphi
ion; 8.10.04
А можно примерчик на использование ф-ции TLGGetArchivDataEx.
Если конкретнее, то как в ней задавать параметр PTLG_ARCHIVDATARAW*
ppTlgData?
Re: Доступ к базе архива из C++Builder или
Delphi
ASH; 8.10.04
To Alexis
Да я везде смотрю! И в Фаст, и в Слоу базах, во всех базах ВинСиСи,
которые видны в Enterprise Manager'e MS SQL Server'a либо через АДО
из VB, таблицы TagUncompressed пусты:(
Re: Доступ к базе архива из C++Builder или
Delphi
Alexis; 11.10.04
2 ASH:
Плохо смотришь :) А может у тебя нет переменных которые в Slow
пишутся?
2 ion:
TLG_ARCHIVDATARAW *pDataRaw=NULL;
DWORD dwDataCount=10000;
DWORD dwFlag=0;
TLGGetArchivDataEx(lpszArcName, lpszVarName, &stFrom,
&stTo, &pDataRaw, &dwDataCount, &dwFlag,
&dmError);
...
if ( pDataRaw ) TLGFreeMemory(pDataRaw);
Re: Доступ к базе архива из C++Builder или
Delphi
ASH; 11.10.04
To Alexis
Действительно, стормозил:) Эх ручки мои кривенькие - в настройках
границу частоты архивирования для быстрых архивов выставил равной
частоте архивирования тегов, потому все писалось в фаст, а не в
слоу.
Спасибо:)
Re: Доступ к базе архива из C++Builder или
Delphi
Маслов
Дмитрий; 11.10.04
Предлагаю поставить точку в этой затянувшейся дискуссии.
1. В WinCC 6.0 имеются два типа архивов: быстрые и медленные.
2. Вплоть до версии 6.0 SP1 в быстрые попадали все теги с циклом
архивации <= 1 мин., в медленные - остальные.
3. Начиная с версии 6.0 SP2 Вы сами можете сконфигурировать, что
попадает в быстрый, а что - в медленный архив.
4. Содержимое медленных архивов пишется в базу данных в таблицу с
полями "метка времени", "идентификатор тега", "значение". Вывод:
прочитать содержимое медленного архива можно просто обратившись к
нужной табличке БД, например, через ODBC.
5. Содержимое быстрых архивов пишется в БД в сжатом виде. Прочитать
их можно через WinCC OLE DB Provider, который производит расжатие
"на лету". Пример чтения тегов можно скачать с этого сайта, ПРИЧЕМ
НИКОЛАЙ ГАШЕВСКИЙ УЖЕ ДАВАЛ ССЫЛКУ НА ЭТОТ ПРИМЕР НЕСКОЛЬКИМИ
СООБЩЕНИЯМИ ВЫШЕ!
http://www.automation-drives.ru/as/products/doc.php?l1=SIMATIC%20HMI&l2=WinCC&l3=doc
См. http://www.wincc.ru
Re: Доступ к базе архива из C++Builder или
Delphi
Евгений;
12.11.04
Прошу прощения за то что влезаю в разговор. Может кто-нибудь
подсказать, как из с++ builder работать с файловым dsn? Компонент
Query системные и пользовательские dsn видит, а файловые - нет. А
нужен именно файловый.
Заранее спасибо за помощь!
Re: Доступ к базе архива из C++Builder или
Delphi
Евгений;
12.11.04
Прошу прощения за то что влезаю в разговор. Может кто-нибудь
подсказать, как из с++ builder работать с файловым dsn? Компонент
Query системные и пользовательские dsn видит, а файловые - нет. А
нужен именно файловый.
Заранее спасибо за помощь!
Re: Доступ к базе архива из C++Builder или
Delphi
Евгений;
12.11.04
Прошу прощения за то что влезаю в разговор. Может кто-нибудь
подсказать, как из с++ builder работать с файловым dsn? Компонент
Query системные и пользовательские dsn видит, а файловые - нет. А
нужен именно файловый.
Заранее спасибо за помощь!
Re: Доступ к базе архива из C++Builder или
Delphi
Евгений; 12.11.04
Прошу прощения, на кнопку отправить я нажал только один раз -
браузер сбоит похоже.