Страница 1 из 1

VBS

Добавлено: 03 ноя 2017, 17:51
nicss
Добрый день. WinCC flex 2008, разбираюсь со скриптами. Скажите, почему при запуске такого "скриптика"
от тэга Б1 отнимается только 100 едениц (иногда 99). Тэг - значение в поле вывода.

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

Dim z
z=SmartTags("Б1")
Do While z>0
	z=z-1
	SmartTags("Б1")=z
Loop

Re: VBS

Добавлено: 04 ноя 2017, 09:39
nicss
Т.е. в тэге Б1 допустим 500 (лежит в DBW контроллера). При запуске скрипта должно быстренько декрементироваться до нуля. Но отнимается только 100. Еще раз запуск скрипта, еще минус 100.(PLC с числом ничего не делает). Если SmartTags("Б1")=z не внутри цикла (после LOOP), тогда все нормально.

Re: VBS

Добавлено: 04 ноя 2017, 13:23
Михайло
SmartTags() - это макрос, он не может выполняться быстро, нехорошо его так зацикливать. Соответственно, я подозреваю там срабатывает типа сторожевой таймер или сторожевой счетчик, который прекращает это безобразие с макросом. Точно не знаю.

Попробуй в цикл добавить запись в еще один смарт-тэг.

Re: VBS

Добавлено: 03 июл 2018, 22:07
fuzzy_l
В винцц нет многозадачности. Все в очередь. Скрипты тормозят все. Могут и картинку тормознуть намертво. Циклические задачи могут поплыть по времени из за низкого уровня приоритета. С ними надо аккуратно