Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: kknm от 04 Октября 2017, 09:09:01

Название: Инициализация и OnDataChange
Отправлено: kknm от 04 Октября 2017, 09:09:01
Проясните ситуацию. Есть поле и внутренняя переменная( состояние 1 или 2) с событием  OnDataChange или OnDataChangeEx. При запуске проекта всегда происходит это событие - хоть инициализируй при запуске клиента, хоть нет. Как избавиться от этого момента ? Событие нужно в процессе работы, а не при включении.
Название: Re: Инициализация и OnDataChange
Отправлено: Teodor от 04 Октября 2017, 10:08:29
Нарисовать переменную varInit, которую установить в тру после первого OnDataChange (с 0 на 1 или 2)  если она тру, то исполнить скрипт.
Название: Re: Инициализация и OnDataChange
Отправлено: kknm от 04 Октября 2017, 10:22:17
Это напрашивалось само собой, но ,мне кажется ,правильнее было бы по OnInit установить все переменные (как обычно при программировании) ,а потом начинать опрос и нормальную работу.
Еще не ясен момент, когда с датчиков данные еще не пришли при начале работы - также возникает неопределенная ситуация.
Название: Re: Инициализация и OnDataChange
Отправлено: Teodor от 04 Октября 2017, 16:46:40
У переменных есть свойство "качество". Если данные не пришли, нет связи или еще кака фигня, то и качество фальшивое. Это можно учитывать в скриптах. Например, если качество плохое, то значение переменной игнорировать, или не писать в нее, чтобы не срабатывал он ченж.
Название: Re: Инициализация и OnDataChange
Отправлено: Simple-Scada от 06 Октября 2017, 15:31:59
Цитировать
При запуске проекта всегда происходит это событие - хоть инициализируй при запуске клиента, хоть нет. Как избавиться от этого момента ?
Верно, т.к. переменная принимает свое первое значение. Переменные-числа инициализируются 0, а строки пустой строкой. Чтобы проигнорировать первое изменение можно создать дополнительную виртуальную переменную с типом Boolean и выставлять её значение в true когда изменилась основная переменная. Тогда по значению этой доп. переменной можно будет понять первое изменение это (=false), или нет (=true).