Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: kknm от 04 Октября 2017, 09:09:01
-
Проясните ситуацию. Есть поле и внутренняя переменная( состояние 1 или 2) с событием OnDataChange или OnDataChangeEx. При запуске проекта всегда происходит это событие - хоть инициализируй при запуске клиента, хоть нет. Как избавиться от этого момента ? Событие нужно в процессе работы, а не при включении.
-
Нарисовать переменную varInit, которую установить в тру после первого OnDataChange (с 0 на 1 или 2) если она тру, то исполнить скрипт.
-
Это напрашивалось само собой, но ,мне кажется ,правильнее было бы по OnInit установить все переменные (как обычно при программировании) ,а потом начинать опрос и нормальную работу.
Еще не ясен момент, когда с датчиков данные еще не пришли при начале работы - также возникает неопределенная ситуация.
-
У переменных есть свойство "качество". Если данные не пришли, нет связи или еще кака фигня, то и качество фальшивое. Это можно учитывать в скриптах. Например, если качество плохое, то значение переменной игнорировать, или не писать в нее, чтобы не срабатывал он ченж.
-
При запуске проекта всегда происходит это событие - хоть инициализируй при запуске клиента, хоть нет. Как избавиться от этого момента ?
Верно, т.к. переменная принимает свое первое значение. Переменные-числа инициализируются 0, а строки пустой строкой. Чтобы проигнорировать первое изменение можно создать дополнительную виртуальную переменную с типом Boolean и выставлять её значение в true когда изменилась основная переменная. Тогда по значению этой доп. переменной можно будет понять первое изменение это (=false), или нет (=true).