Tools


«Сименс» в России

«Сименс» в России

Ошибка 1007006 Tag timeout, WinCC v7.5

Панели оператора PP/OP/TP/TD/MP, программные пакеты ProTool/WinCC flexible, SCADA система WinCC

Модераторы: nikanorov_vladimir, kosmin_aleksandr, yurchenko_vladimir

Eugene1974
Сообщения: 175
Зарегистрирован: 22 апр 2018, 10:41

Сообщение Eugene1974 » 09 ноя 2020, 19:06

WinCC v7.5 + SP1 + Upd3. Устройства подключены через Modbus TCP с использованием OPC-сервера KEPServerEX v6.9. Устройства активно опрашиваются раз в секунду: визуализация, архивирование и сообщения. Пока устройства были подключены, всё было нормально, а когда их отключили, появились дикие тормоза, обычное переключение экранов толком не работает. Часть тегов периодически считываются глобальными скриптами. При этом сыпятся ошибки 1007006 Tag timeout. Одна попытка чтения занимает примерно 10 секунд, а поскольку всё скриптовое WinCC выполняет последовательно в один поток, то толком уже ничего и не работает. Как не допустить ошибки Tag timeout? Проблема ещё в том, что при разработке проекта на виртуальной машине и без подключенных устройств такой проблемы не возникало. А вот на физическом компьютере возникла.

Негатив
Сообщения: 75
Зарегистрирован: 30 май 2019, 08:25

Сообщение Негатив » 11 ноя 2020, 09:07

Eugene1974 писал(а):
09 ноя 2020, 19:06
Часть тегов периодически считываются глобальными скриптами.
Не надо так.

Почти всегда, когда возникают проблемы с WinCC, начиная с 5 версии, они решались удалением глобальных скриптов и реализацией той же функциональности другими способами.

Eugene1974
Сообщения: 175
Зарегистрирован: 22 апр 2018, 10:41

Сообщение Eugene1974 » 12 ноя 2020, 11:51

Никогда не решал проблемы WinCC именно удалением глобальных скриптов. Обычно это была оптимизация всего и вся, дополнение кода скриптов всевозможной диагностикой. Ошибки Tag timeout никогда не встречал. Вот и интересуюсь подробностями: в каких случаях возникает, как избежать. Всё-таки 10 секунд для чтения одного тега - это нонсенс.

Бронислав
Сообщения: 16
Зарегистрирован: 17 мар 2019, 20:14

Сообщение Бронислав » 14 ноя 2020, 00:34

1. Попробуйте установить 4й апдейт к WinCC 7.5 - в описании указано, что добавили стабильности для OPC-тегов.
https://support.industry.siemens.com/cs ... n&lc=ru-RU
2. Что у вас стоит в настройках OPC канала, данные читаются из устройства или из кэша? Пробовали разные варианты?
3. Возможно, в настройках OPC-сервера стоит большой тайм-аут для определения недоступности устройства.
4. Еще можно попробовать проверять статус тега перед чтением значения.

Eugene1974
Сообщения: 175
Зарегистрирован: 22 апр 2018, 10:41

Сообщение Eugene1974 » 14 ноя 2020, 19:13

1. Попробуйте установить 4й апдейт к WinCC 7.5 - в описании указано, что добавили стабильности для OPC-тегов.
https://support.industry.siemens.com/cs ... n&lc=ru-RU
Спасибо, попробую. Хотя речь идёт не про ту стабильность, которая мне нужна. "Stability of the OPC channel when the OPC item names are faulty."

2. Что у вас стоит в настройках OPC канала, данные читаются из устройства или из кэша? Пробовали разные варианты?
Стоит настройка по умолчанию - из кэша. Пробовал и другой вариант, результат тот же.

3. Возможно, в настройках OPC-сервера стоит большой тайм-аут для определения недоступности устройства.
Настройки OPC-сервера по умолчанию.

4. Еще можно попробовать проверять статус тега перед чтением значения.
Статус тега считывается одновременно с чтением значения при вызове C-функций GetTag... с суффиксами State, StateWait, StateQC и StateQCWait. Чтение статуса (State) и кода качества (QC) даёт нестабильный результат. Функции без Wait почти всегда выдают некорректные статус и код качества, но бывают и исключения. Функции с Wait работают стабильно, но выполняются около 15 секунд, что не годится от слова "совсем". Вот результат последовательного вызова всех фозможных функций:

Код: Выделить всё

GetTagSWord - val = 0, 0 ms
GetTagSWordWait - val = 0, 15531 ms
GetTagSWordState - val = 0, st = 0, 0 ms
GetTagSWordStateWait - val = 0, st = 400, 15469 ms
GetTagSWordStateQC - val = 0, st = 0, qc = 0, 0 ms
GetTagSWordStateQCWait - val = 0, st = 400, qc = 4, 15484 ms
Но бывает и так (та самая ошибка Tag timeout):

Код: Выделить всё

GetTagSWord - ====================================OnErrorExecute====================================
...
dwErrorCode1:		(ThreadId 11300)	1007006
...
szErrorTextTagName:	(ThreadId 11300)	Tag timeout
...
====================================OnErrorExecute====================================
val = 0, 10062 ms
Или то функции без Wait начинают мгновенно считывать корректные статус и код качества, то снова перестают делать это:

Код: Выделить всё

GetTagSWordState - val = 0, st = 400, 0 ms
GetTagSWordStateQC - val = 0, st = 400, qc = 4, 0 ms
GetTagSWordWait - val = 0, 15313 ms
GetTagSWordStateQCWait - val = 0, st = 400, qc = 4, 15282 ms
GetTagSWordState - val = 0, st = 0, 0 ms
GetTagSWordStateQC - val = 0, st = 0, qc = 0, 0 ms
P.S. Установил Update 4. Окно диагностики глобальных скрипов начало "проваливаться" под объекты на экране при манипуляциях с экраном, даже несмотря на то, что находится в слое 31 и Foreground = true. До установки такого точно не было. Поведение OPC-тегов не улучшилось.

cron