Статус тега 4с
Прокопенко Вера; 23.8.04

Имеется проект WinCC v5.1 в котором опрашиваются теги контроллеров Allen Bradley SLC-500. Есть теги, которые используются только на вложенных картинках. При открытии картинок теги опрашиваются и значения тегов отображаются. После закрытия этих картинок значения данных тегов в Tag Management равны нулю и статус 4с? Это ошибка или так и должно быть? Разве база не должна хранить последние опрошенные значения? Для внутренних тегов в подобных ситуациях значения сохраняются.


Re: Статус тега 4с
Маслов Дмитрий; 24.8.04

Tag Manager опрашивает значения тегов только если они где-нибудь используются. Т.е. если они у Вас не архивируются, и картинка, на которой они отображаются, закрыта, то теги не опрашиваются. Это нормально. Таким образом уменьшается траффик сети.


Если Вы эти теги добавите в архив, то они будут опрашиваться постоянно, независимо от того, открыта картинка, или нет.
См. http://www.wincc.ru

Re: Статус тега 4с
Харгелия Олег ЗАО "Искра-Энергетика"; 24.8.04

Насколько я понял вопрос был несколько в ином. А именно, почему теги когда их перестаешь использовать обнуляются, а не сохраняют последнее значение?

Re: Статус тега 4с
Прокопенко Вера; 25.8.04

Вопрос именно в том, почему база не хранит однажды опрошенные значения внешних тегов. Вопрос этот возник по следующей причине: в проекте написан скрипт, отрабатывающей по нажатию на горячую клавишу и присваивающий значение внешнего тега внутреннему. И получалось, что внутреннему тегу присваивался ноль вместо реального значения. Использовалась функция GetTagWord. возможно, если бы использовалась функция GetTagWordWait удалось бы получить значение тега (не пробовала), но стараюсь не использовать эту функцию,т.к. скрипт не будет выполнен, пока от контроллера не дождетя ответа, поэтому боюсь, что проект будет подтормаживать (или я не права?).Тогда мы занесли эти внешние теги в архивные, но, по-моему, это не очень хорошо.

Re: Статус тега 4с
Alexis; 25.8.04

Используйте DMGetValueWait, точно считает с контроллера...

Re: Статус тега 4с
Маслов Дмитрий; 25.8.04

Давайте разберемся по порядку.


1. Отвечаю на вопрос "почему база не хранит однажды опрошенные значения внешних тегов?". База данных здесь вообще не при чем. В базе данных хранятся только архивные значения тегов (для которых сконфигурирована архивация в Tag Logging). Текущие значения тегов в базу данных не заносятся.

2. По поводу функций GetTagXXX и GetTagWaitXXX (где XXX - тип тега). Функции GetTagXXX, вызываемые из скрипта WinCC, выполняют следующие действия: постановка запрашиваемого тега в очередь менеджером данных WinCC для циклического опроса с периодом 2 секунды, а если тег уже циклически опрашивается, то получение его значения из менеджера данных. Функции GetTagWaitXXX циклический опрос тега не инициируют, а запрашивают его значение непосредственно из контроллера. Плюсы и минусы каждой функции: GetTagXXX очень медленно (по сравнению с GetTagWaitXXX) отрабатывает в первый раз (когда тег ставится в очередь на опрос), но зато быстрее работает в следующие вызовы. Поэтому ее лучше использовать в скриптах, срабатывающих циклически. Функцию GetTagWaitXXX лучше использовать в скриптах по нажатию кнопок, открытию картинок и т.д. Т.е. в Вашем случае нужна именно GetTagWaitXXX. Подтормаживать ничего не будет - проверено (если Вы не 100 тегов сразу запрашиваете).

3. Alexis'у. А вот ODK'шная функция DMGetValueWait здесь точно не нужна. Это есть аналог GetTagWaitXXX, предназначенный для вызова из внешних приложений и DLL.

См. http://www.wincc.ru

Re: Статус тега 4с
Прокопенко Вера; 30.8.04

Конечно же, я неправильно выразилась. Имелась в виду не Runtime база, а Data Manager, где должны храниться мгновенные значения опрошенных тегов. У меня есть подозрение, что это все таки ошибка WinCC (или ошибка работы канала ввода /вывода для DH+). Надо будет проверить подобную ситуация для тегов котроллеров Simatic. Спасибо за отклики.