Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: sir от 27 Января 2026, 21:54:20

Название: Две кнопки - переключатель в шаблоне
Отправлено: sir от 27 Января 2026, 21:54:20
Здравствуйте!
На форуме нашел сообщение от 2014 года, где Вы обещали создать "переключатель", но в Скаде он так и не появился.
Вопрос. Как создать переключатель по двум клавишам ПУСК и СТОП в шаблоне?
Нажимаешь на ПУСК - кнопка подсвечивается "зеленым" и деактивируется, Кнопка СТОП подсвечивается серым, значение по кнопке ПУСК, например 6 - фиксируется в переменной, привязанной к кнопке.
Нажимаешь на кнопку СТОП - кнопка подсвечивается "красным", кнопка ПУСК подсвечивается "серым" и деактивируется, значение по кнопке СТОП, например 5 - фиксируется в переменной, привязанной к кнопке.
В шаблоне мы можем работать только с тем объектом шаблона, который вызвал скрипт. Как обратиться к соседнему объекту в шаблоне (кнопке)?
Название: Re: Две кнопки - переключатель в шаблоне
Отправлено: Simple_Scada от 28 Января 2026, 22:05:14
Здравствуйте.

Для описанной задачи проще всего использовать одну кнопку "с фиксацией" и двумя состояниями: Пуск и Стоп. См. пример в приложенном проекте.

Если обязательно нужно две отдельных кнопки, то потребуется:
1. Создать две кнопки с двумя состояниями (https://clck.ru/3RW9Cg).
2. Настроить требуемые цвета кнопки для каждого состояния и задать нужные значения. Например, у кнопки "ПУСК" для первого состояния задать значение 6 и серый цвет, для второго состояния задать значение 5 и зелёный цвет. По аналогии настроить кнопку "СТОП".
3. Создать универсальный скрипт (https://simple-scada.com/help/script/universal-event.html) для блокировки кнопки:
Код: (delphi)
begin
  if Sender is TM_Button then     // проверяем, что Sender это кнопка
    with Sender as TM_Button do   // приводим Sender к типу "TM_Button"
      // изменить доступ к кнопке в зависимости от значения переменной (сравниваем значение переменной со значением указанным в свойстве "Значение")
      Enabled := not (AsInt = States[0].Value);
end.
4. Назначить скрипт на событие "OnDataChange (https://simple-scada.com/help/script/by-obj-event.html)" кнопок.

Пример проекта во вложении.
Название: Re: Две кнопки - переключатель в шаблоне
Отправлено: sir от 29 Января 2026, 13:30:59
Благодарю за помощь!