Как восстановить значение тега из архива
WinCC ?
Дмитрий; 20.6.02
Как восстановить значение внутреннего тега из архива WinCC при
перезапуске RT ?
Re: Как восстановить значение тега из архива
WinCC ?
Игорь К; 20.6.02
Привет.
Из какого архива?
Re: Как восстановить значение тега из архива
WinCC ?
Евгений Трунов;
20.6.02
Я делал вручную, при открытии главной формы, путем вызова функций
TLGGetArchiveDataRaw. Может быть, действительно есть путь
попроще?
Re: Как восстановить значение тега из архива
WinCC ?
Дмитрий; 21.6.02
А как именно записть ф-ю ( TLGGetArchiveDataRaw )в скрипте, что
подключить и т.п., чтобы WinCC её поняла и какие у неё аргументы
?
Re: Как восстановить значение тега из архива
WinCC ?
Евгений
Трунов; 21.6.02
В принципе, я лучше ODK не расскажу :). Если нет ODK, то смотри
файл pdertcli.h, там объявления всех функций. Можно догадаться, что
к чему. В общем, примерно так:
PTLG_ARCHIVDATARAW pDataRaw;
SYSTEMTIME stFrom, stTo;
DWORD dwFlags = 0;
DWORD dwNumberOfData = 10000;
CMN_ERROR Error;
//--------------------------------
if (TLGConnect(NULL, &Error)) // подключение к подсистеме
TagLogging
{
TLGGetArchivDataEx(szArchiveName /* имя архива */, szTagName /* имя
архивного тега */, &stFrom /* с... */, &stTo /* ...по */,
&pDataRaw /* куда сохранять */, &dwNumberOfData /*
считанное количество записей */, &dwFlags /* вспомогат. флаги
*/, &Error /* инф-ция о возможной ошибке */);
// Перенос считанного значения в тег szTagName (имя архивного тега
совпадает с таким же тегом в пространстве имен DataManager)
SetTagDouble(szTagName, dwNumberOfData ?
pDataRaw[dwNumberOfData-1].doValue : 0);
TLGFreeMemory(pDataRaw); // освобождение выделенной ф-ей
TLGGetArchivDataEx памяти
}
TLGDisconnect(NULL); // отключение от подсистемы TagLogging
}
Указатель на выделенную ф-ей TLGGetArchivDataEx память,
представляющую собой массив структур типа PTLG_ARCHIVDATARAW и
количеством dwNumberOfData взвращается в аргументе pDataRaw. Его
необходимо освободить. Вроде всё :).