Пуск\Стоп архивов
miha-CC; 3.6.03

WinCC 4.00. Только начал разбираться.

Помогите пожалуйсто разобраться с запуском архивов по событию.Например
начать архивировать когда тег процесса ровняется определенному числу.Не могу понять как это делать с помощью глобальных сценариев.Синтаксис не понятен, да и в С++ я не очень силен.
Re: Пуск\Стоп архивов
Василенко; 4.6.03

Можно в Tag Logging нажав правой мышкой на архивируемом теге вывести Properties of process tag.Выбрать тип архивирования Cyclic-selective на закладке Archive Tag. Выбрать закладку Events в которой задать Start Event и Stop Event. Написать два скрипта в проекте один для старта и один для стопа архивирования.

Например начать если Tag>100
и кончить если <50
Скрипт начала:
return (GetTagWord("Tag")>100);
Скрипт конца:
return (GetTagWord("Tag")<50);

Re: Пуск\Стоп архивов
miha-CC; 5.6.03

Огромное спасибо, я еще не пробывал но мне кажется теперь что все очень просто.

Re: Пуск\Стоп архивов
miha-CC; 9.6.03



Re: Пуск\Стоп архивов
Василенко; 9.6.03

В папке Project Functions например.

Re: Пуск\Стоп архивов
miha-cc; 11.6.03

Все здаюсь.Пробывал так и этак, не получается.Как должен этот скрипт выглядеть полностью.Мне бы один раз увидеть чем много раз слышать.

Re: Пуск\Стоп архивов
Василенко; 11.6.03

Наверно что-то не так. Давай по шагам:

1.В Global Script в разделе Project functions создаешь новую функцию например-
BOOL StartArch()
{
return (GetTagWord("Tag")>100);
}
Нажми кнопку Compile, Generate Heading и сохрани.
2.В Tag Logging в нужном архиве смотришь св-ва нужного тега.
-На 1-ой закладке Archive Tag выбираешь в окошке acquisition type значение Cyclic-selective.
-На 4-ой закладке Events в окне Start Event жмешь Select... и в разделе Project Function выбираешь созданный скрипт. Можно руками задать имя скрипта не выбирая.

Если не получилось-переставляй WinCC.
Re: Пуск\Стоп архивов
miha-CC; 13.6.03

Огромное спасибо за помощь! Все получилось.Вот что значит недостаток знаний С++.Дело то было в синтаксисе написания функции.

Re: Пуск\Стоп архивов
Прокопенко Вера; 13.6.03

На архивирование по событию, если оно сконфигурировано в TagLogging через Evevt start / Even stop есть ограничения: не рекомендуется более чем для 10 тегов. Если отследить работу этих событийных функций, то видно, что они запускаются несколько раз в секунду для каждого тега, что нагружает систему. Лучше использовать разрешение и запрет на запись всего архива (если это возможно по условиям работы проекта) с использованием ODK функции TLGLockArchiv(...).

Re: Пуск\Стоп архивов
miha-CC; 17.6.03

Я недавно только с WinCC разобрался, а тут еще ODK.Что это и как с этим работать? Заранее примного благодарен за краткую информацию.

Re: Пуск\Стоп архивов
Прокопенко Вера; 23.6.03

Чтобы запустить и остановить запись конкоретного архива можно использовать следующий скрипт:


#pragma code("kernel32.dll");
void GetLocalTime(SYSTEMTIME* lpst);
#pragma code ();

SYSTEMTIME time;
CMN_ERROR pError;
TLG_ARCHIVDATARAW pTlgData;
DWORD dwNumberOfData=1;
DWORD dwFlags=0; //0 -останов, 1 -пуск архива

char *szArchivName="arch_sec"; //имя архива

GetLocalTime(&time);
pTlgData.dwFlags=0;
pTlgData.stTime=time;

TLGConnect(NULL,NULL);
TLGLockArchiv (NULL,szArchivName,dwFlags, &pError );
TLGDisconnect(NULL);

скрипт можно привязать на изменение тега
Re: Пуск\Стоп архивов
miha-CC; 27.6.03

Огромное спасибо тебе Прокопенко Вера.