Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: gps от 02 Мая 2024, 08:02:36

Название: Создать Амперметр
Отправлено: gps от 02 Мая 2024, 08:02:36
Доброго дня! Подскажите как реализовать отображение Амперметра как в примере, с активной стрелкой и красной зоной?
Название: Re: Создать Амперметр
Отправлено: Simple Scada от 02 Мая 2024, 19:00:13
Здравствуйте.

В Simple-Scada нет стрелочных индикаторов. В качестве аналога можно использовать "Радиальный индикатор". Начиная с версии Simple-Scada 2.6.8.0, для компонента "Изображение (https://simple-scada.com/help/manual/picture.html)" добавлены текстуры с анимацией кругового и арочного индикатора. Примеры реализации индикаторов можно посмотреть в Demo-проекте на странице "Компоненты - Радиальный индикатор". Для изменения цвета индикатора при превышении определенного значения в скрипт "uniImageCircleAnim" можно добавить условие:
Код: (delphi)
var
  aFrame: Integer;
begin
  // скрипт меняет кадр изображения кругового индикатора по значению привязанной переменной
  if Sender is TM_Image then
    with Sender as TM_Image do
    begin
      aFrame := Round(Scaling(Maximum, Minimum, 50, 0, AsFloat));
      Frame := aFrame;
      Visible := aFrame <> 0;

      if AsInt >= 75 then
        Color := clRed
      else
        SetInitialColor;
    end;
end.
Название: Re: Создать Амперметр
Отправлено: pan2000 от 05 Мая 2024, 08:35:25
   Здравствуйте.

  В Simple-Scada можно реализовать стрелку, а в качестве собственно стрелочного прибора использовать пользовательское изображение (да получится амперметр).
Во вложении пример амперметра. Пример построен с использованием шаблонов.
Шаблон имеет подстановки: измеряемая переменная, полный угол отклонения стрелки и внутренний радиус. Последние два параметра исключительно для правильного совмещения изображения и стрелок, и при желании могут быть забиты в объект изображение.
Стрелка состоит из двух тонких прямоугольников, представляющие радиальные сегменты с одинаковым внутренними радиусами и различными наружными. Для вращения такого объекта необходимы следующие параметры: координаты центра вращения, наружный радиус, высота объекта и угол поворота. В этом случае для всех "стрелок" достаточно одного универсального скрипта по изменению измеряемой переменной.
Угол поворота вычисляется из значения измеряемой величины, в пределах минимума и максимума переменной для полного угла отклонения стрелки. Высота объекта есть собственное свойство. Координаты центра вращения определяются при инициализации по одной из стрелок, которая должна быть вертикальна, а ее вертикальная проекция проходит через предполагаемый центр вращения стрелки прибора. Аналогично и для наружного радиуса, при инициализации он вычисляется как высота стрелки плюс внутренний радиус.
Файл примера не содержит графику прибора, и предварительно должен быть считан в пользовательские изображения из вложения предыдущего сообщения.
Название: Re: Создать Амперметр
Отправлено: gps от 05 Мая 2024, 12:58:33
Большое спасибо.