Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: IvankO от 13 Августа 2019, 14:10:05

Название: Изменение одной кнопкой значений нескольких переменных
Отправлено: IvankO от 13 Августа 2019, 14:10:05
Помогите, ткните носом если есть готовый ответ.
Необходимо при нажатии на кнопку менять значение от 2 до 4 тегов типа bool . Как это реализовать?При нажатии на кнопку я шлю единицы при отпускании нули.
Название: Re: Изменение одной кнопкой значений нескольких переменных
Отправлено: Simple_Scada от 13 Августа 2019, 18:05:02
Здравствуйте.

Для этого можно создать кнопку (https://simple-scada.com/help/manual/button.html), выбрать тип "Без фиксации" и указать в основной переменной кнопки первую переменную(у нас в примере это будет переменная "vrBtn_1"). Затем, необходимо создать скрипт по событию OnDataChange кнопки и написать код:
Код: (delphi)
begin
  if Sender is TM_Button then    // проверяем, что Sender это кнопка
    with Sender as TM_Button do  // приводим Sender к типу "TM_Button"
      begin
      { записываем в переменные значение переменной, которая связана с кнопкой }
        vrBtn_2.Value := Value;
        vrBtn_3.Value := Value;
        vrBtn_4.Value := Value;
      end;
end.
,где vrBtn_2, vrBtn_3, vrBtn_4 переменные, значения которых необходимо менять по значению переменной кнопки. При нажатии на кнопку во все переменные будет записываться 1, при отпускании 0.
Название: Re: Изменение одной кнопкой значений нескольких переменных
Отправлено: IvankO от 14 Августа 2019, 10:22:27
Спасибо большое
Название: Re: Изменение одной кнопкой значений нескольких переменных
Отправлено: IvankO от 15 Августа 2019, 10:15:49
Задача немножко усложнилась  :( надо что бы переменные
        vrBtn_2.Value := Value;
        vrBtn_3.Value := Value;
        vrBtn_4.Value := Value;
меняли свое состояние не мгновенно а через секунду-две. Подскажите знатоки  :(
Название: Re: Изменение одной кнопкой значений нескольких переменных
Отправлено: Neskad от 15 Августа 2019, 16:27:32
Задача немножко усложнилась  :( надо что бы переменные
        vrBtn_2.Value := Value;
        vrBtn_3.Value := Value;
        vrBtn_4.Value := Value;
меняли свое состояние не мгновенно а через секунду-две. Подскажите знатоки  :(
Проще всего через таймеры.
Сам скрипт должен содержать такой код:
Код: (delphi)
const
  TIMEOUT: word = 2; // пауза перед изменением в секундах
begin
  if (TimerGetState(Variable) = 1) then
    if SecondsBetween(Variable.Value, 0) >= TIMEOUT then
      begin
        TimerReset(Variable);
        vrBtn_2.Value := ButtonVar.Value;
        vrBtn_3.Value := ButtonVar.Value;
        vrBtn_4.Value := ButtonVar.Value;
      end;
end.
Название: Re: Изменение одной кнопкой значений нескольких переменных
Отправлено: IvankO от 16 Августа 2019, 12:04:21
Еще раз спасибо