Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: spkzl от 12 Февраля 2023, 09:41:37

Название: Проверка состояния переменной в течении периода
Отправлено: spkzl от 12 Февраля 2023, 09:41:37
День добрый.

Как проверить что переменная bool находиться в состоянии включена/выключена непрерывно определенное время?
попробовал в скрипте 1s делать проверку на состояние переменной и увеличивать счетчик i:=i+1; вывод i в поле не происходит, считает оно или нет как проверить, как определить проблема с кодом или проблема с выводом.

как при инициализации скрипта задать переменной начальное значение, а то у меня получаются значения при старте вида 101841769.
Код
Contin_Pump_Operation_Count: Integer;  // счетчик работы насоса  
я могу где то в этой строке написать = 0?

Код
Contin_Pump_Operation_Count: Integer;  // счетчик работы насоса
begin
  if in_3_1.Value = True Then 
    Contin_Pump_Operation_Count := Contin_Pump_Operation_Count + 1;
end.   

будет ли этот код рабочим?

В инструкции, ниже, но при приведении типов  Contin_Pump_Operation_Count.AsInt вылетает ошибка .Value тоже выдает ошибку. И ошибки не скопировать с редактора.
Код
begin
  Var_1.Value := Var_2.AsInt + Var_3.AsInt;
end.
Название: Re: Проверка состояния переменной в течении периода
Отправлено: Simple_Scada от 12 Февраля 2023, 20:49:33
Здравствуйте.

Цитировать
Как проверить что переменная bool находиться в состоянии включена/выключена непрерывно определенное время?
Для этого можно использовать описанный Вами способ. Только вместо локальной переменной скрипта нужно создать отдельную внутреннюю переменную в редакторе переменных (https://simple-scada.com/help/manual/variable-editor.html) и использовать ее. Почему нельзя использовать локальную переменную скрипта для организации таймеров или счетчиков и как инициализировать локальную переменную скрипта см. по ссылке (https://simple-scada.com/help/script/compilerchange.html)(Изменение 1). К примеру, если создать в редакторе переменных новую переменную с именем "Contin_Pump_Operation_Count", то скрипт будет таким:
Код: (delphi)
begin
  if in_3_1.AsBool = True then 
    Contin_Pump_Operation_Count.Value := Contin_Pump_Operation_Count.AsInt + 1;
end. 

Цитировать
if in_3_1.Value = True Then
В этом условии есть ошибка - подробнее см. по ссылке (https://simple-scada.com/help/script/debugscripts.html?anchor=comptf). Исправленный скрипт см. выше.

Цитировать
В инструкции, ниже, но при приведении типов  Contin_Pump_Operation_Count.AsInt вылетает ошибка .Value тоже выдает ошибку.
Для локальных переменных скрипта использовать приведение типов и свойство Value (https://simple-scada.com/help/script/varvalue.html) не требуется. Данные свойства применяются только для переменных, созданных через редактор переменных (https://simple-scada.com/help/manual/variable-editor.html).
Название: Re: Проверка состояния переменной в течении периода
Отправлено: spkzl от 12 Февраля 2023, 21:53:02
Спасибо так работает.
Как задать переменные которые сохраняются в СКАДе ссылку на руководство. Константы из скрипта хочу перенести на экран, и сразу вопрос при изменении констант с экрана нужно ли перезапускать проект на сервере?
Код
const
 // ТРЕВОЖНЫЕ ИНТЕРВАЛЫ
 Contin_Pump_Operation = 20*60;  // таймер максимального времени работы насоса
 Contin_Pump_Shutdown = 90*60;   // таймер максимального отключенного состояния насоса
 Water_Level_Lower = 4*60;       // таймер нижнего уровня воды
 
Название: Re: Проверка состояния переменной в течении периода
Отправлено: Simple_Scada от 13 Февраля 2023, 13:55:11
Здравствуйте.

Цитировать
Константы из скрипта хочу перенести на экран, и сразу вопрос при изменении констант с экрана нужно ли перезапускать проект
Если требуется изменять значение из клиента и необходимо чтобы оно сохранялось при перезапусках проекта, то нужно использовать внутренние переменные созданные через редактор переменных (https://simple-scada.com/help/manual/variable-editor.html). Для просмотра и редактирования значения переменной используйте компонент "Поле (https://simple-scada.com/help/manual/field.html)", указав в свойстве "Переменная" требуемую переменную. При перезапуске проекта на сервере или при перезапуске сервера скады, переменные принимают "Начальное значение (https://simple-scada.com/help/manual/varmain.html)", установленное в настройках переменной. Если поле "Начальное значение" не заполнено, то переменная будет принимать значение в зависимости от типа данных (для числовых типов данных - 0, для строк - пустая строка, для типа Boolean - False, для переменных даты/времени - начало текущего дня). При необходимости, у переменных можно включить опцию "Автоматическое восстановление (https://simple-scada.com/help/manual/varmain.html)". Тогда скада будет автоматически сохранять значение переменной и восстанавливать его при перезапусках проекта. Перезапускать проект нужно только при внесении в него изменений через редактор (https://simple-scada.com/help/manual/editor.html).
Название: Re: Проверка состояния переменной в течении периода
Отправлено: spkzl от 14 Февраля 2023, 11:33:15
Спасибо