Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Создать Амперметр  (Прочитано 1535 раз)

gps

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Создать Амперметр
« : 02 Мая 2024, 08:02:36 »
Доброго дня! Подскажите как реализовать отображение Амперметра как в примере, с активной стрелкой и красной зоной?

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 246
    • Просмотр профиля
    • Simple-Scada
Re: Создать Амперметр
« Ответ #1 : 02 Мая 2024, 19:00:13 »
Здравствуйте.

В Simple-Scada нет стрелочных индикаторов. В качестве аналога можно использовать "Радиальный индикатор". Начиная с версии Simple-Scada 2.6.8.0, для компонента "Изображение" добавлены текстуры с анимацией кругового и арочного индикатора. Примеры реализации индикаторов можно посмотреть в 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.

pan2000

  • Постоялец
  • ***
  • Сообщений: 210
    • Просмотр профиля
Re: Создать Амперметр
« Ответ #2 : 05 Мая 2024, 08:35:25 »
   Здравствуйте.

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

gps

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Создать Амперметр
« Ответ #3 : 05 Мая 2024, 12:58:33 »
Большое спасибо.
« Изменён: 05 Мая 2024, 13:51:31 от Simple_Scada »