Пуск\Стоп архивов
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
Огромное спасибо тебе Прокопенко Вера.