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

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

Автор Тема: Битовый и числовой индикаторы  (Прочитано 1420 раз)

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Битовый и числовой индикаторы
« : 14 Июля 2025, 16:05:21 »
Подскажите как можно сделать индикаторы? Чтоб от значения переменной менялось изображение

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 272
    • Просмотр профиля
    • Simple-Scada
Re: Битовый и числовой индикаторы
« Ответ #1 : 14 Июля 2025, 20:00:49 »
Здравствуйте.

Можно создать PNG изображение, состоящее из необходимых кадров и поместить его в папку "...\Simple-Scada 2\Pictures". Далее, при помощи утилиты Pictures разбить изображение на кадры, как это описано по ссылке. После этого, анимированное изображение станет доступно в редакторе в группе "Пользовательские" и можно будет изменять кадр изображения через скрипты(свойство "Frame"). Для этого изображение нужно связать с соответствующей переменной и на событие "OnDataChange" написать универсальный скрипт. Например:
Код: (delphi)
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      // если значение переменной (в виде целого числа),
      // которая связана с изображением больше нуля, то
      if AsInt > 0 then
        Frame := 1        // показать первый кадр изображения
      else                // иначе
        Frame := 2;       // показать второй кадр изображения
end.
Данный скрипт универсальный, поэтому его можно использовать с любыми изображениями.

Методы для работы с битами переменной в скриптах рассмотрены по ссылке. Чтобы извлечь нужный бит из значения переменной, нужно использовать функцию "GetBit". Примеры можно найти по ссылке. Также, при необходимости целочисленные внешние переменные можно разбить на биты и работать с каждым битом отдельно.

« Изменён: 14 Июля 2025, 20:36:25 от Simple-Scada »

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #2 : 17 Июля 2025, 08:48:25 »
Я создал изображение, у которого 2 кадра. Добавил его в редакторе. Если в свойствах менять номер кадра, то изображение меняется. Добавил скрипт на изменение значения. Но при запуске проекта на экране отображаются срзу оба кадра изображения

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1369
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #3 : 17 Июля 2025, 09:46:47 »
Здравствуйте.

1. Если нужно менять только цвет изображения, то для этого можно использовать изображение без дополнительных кадров и менять цвет через свойство "Color" – см. примеры по ссылке. Для корректного изменения цвета используйте изображения преимущественно белого цвета. Чтобы вернуть изначальный цвет объекта, можно использовать процедуру "SetInitialColor".
2. В случае использования анимации, после создания/редактирования анимированного изображения нужно обязательно перезапустить сервер Simple-Scada, чтобы он загрузил обновленные изображения. При перезапуске сервер загрузит новый файл анимации и отправит его клиентам. Если используется web-клиент, то перезагрузите страницу с очисткой кэша (CTRL + SHIFT + R для браузера Chrome) и протестируйте повторно.

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #4 : 17 Июля 2025, 09:52:52 »
Сервер я перегружаю, но изображение нормально не отображается

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 272
    • Просмотр профиля
    • Simple-Scada
Re: Битовый и числовой индикаторы
« Ответ #5 : 17 Июля 2025, 11:16:29 »
1. Клиент запускается на том же ПК, что и сервер/редактор?
2. Если используется десктоп-клиент, то закройте его полностью и запустите повторно.
3. Откройте редактор, создайте новое изображение и в свойстве "Текстура" укажите Ваше анимированное изображение. После этого сохраните проект, перезапустите сервер Simple-Scada (не проект, а сам сервер), запустите клиент и посмотрите, как отображается анимированное изображение.

Если предыдущие и текущие рекомендации не помогли, то:
1. Значит, у клиента Simple-Scada недостаточно прав, чтобы скопировать файлы изображений с сервера в собственную папку "Pictures\", которая находится в директории пользовательских данных. Директория пользовательских данных задается на этапе установки (по-умолчанию используется путь: "C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Documents\Simple-Scada 2\"). У клиента обязательно должны быть права на запись в папку "Pictures\" для нормальной работы.
2. Возможно, установка Simple-Scada производилась под одним пользователем Windows, а сейчас Вы запускаете клиент под другим пользователем. Например, установка производилась из учетной записи администратора и пользовательские данные по умолчанию расположены в папке "Documents\" администратора. А сейчас запуск клиента производится под другим пользователем, у которого нет доступа к папке "Documents\" администратора. В таком случае, нужно произвести повторную установку и в качестве директории пользовательских данных указать папку, которая доступна всем пользователям (например "D:\Simple-Scada 2").
3. Если с правами разобраться не получится, то скопируйте вручную папку "Pictures\" с серверного ПК на ПК клиент.

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #6 : 17 Июля 2025, 11:22:02 »
1. Клиент запускается на том же ПК, что и сервер
2. Закрываю клиент полностью
3. Так и делаю. Другие картинки отображаются (без анимации)

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #7 : 17 Июля 2025, 11:33:49 »
Заработало.
Еще один вопрос. Как сделать прозрачный фон у поля ввода\вывода?.  В соответсвующем свойстве выбира. "Х" и фон становится черным

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 272
    • Просмотр профиля
    • Simple-Scada
Re: Битовый и числовой индикаторы
« Ответ #8 : 17 Июля 2025, 11:46:15 »
См. свойство "Цвет фона" – в данном свойстве нужно изменить прозрачность (по-умолчанию 255) на 0. См. скриншот во вложении.

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #9 : 17 Июля 2025, 13:57:31 »
Спасибо

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #10 : 24 Июля 2025, 12:24:50 »
Здравствуйте. Подскажите как можно сделать индикатор, например, на 5 состояний, на 2 из которых должны быть мигания? Например, состояния заслонки: открыта, закрыта, промежуточное, открывается(мигание), закрывается (мигание).

pan2000

  • Постоялец
  • ***
  • Сообщений: 217
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #11 : 25 Июля 2025, 05:17:42 »
   Здравствуйте.

Для цветового индикатора подходит объект "фигура", цвето-текстового "Кнопка" или пара "Фигура" - "Текст".
Собственно сам способ реализации индикатора зависит от количества переменных определяющих состояние индикатора: менее трех - объект с изменяемыми свойствами, более - стопка объектов с управлением видимостью.
В примере три варианта индикатора:
- простая последовательность [0-4];
- пара регистров "Управление" и "Состояние" с битовыми полями;
- четыре отдельных булевых переменных, индикатор - шаблон.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1369
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #12 : 25 Июля 2025, 22:04:03 »
Здравствуйте.

Цитировать
Подскажите как можно сделать индикатор, например, на 5 состояний, на 2 из которых должны быть мигания? Например, состояния заслонки: открыта, закрыта, промежуточное, открывается(мигание), закрывается (мигание).
1. Компонент "Заслонка" может работать в трех режимах, перечисленных по ссылке. Если за описанные состояния отвечают отдельные битовые переменные, то можно использовать режим "с анимацией".
2. Если стандартные режимы работы заслонки не подходят, то можно реализовать свой режим через скрипты - пример можно найти по ссылке. Для мигания цветом нужно использовать свойство "FlashColor" – см. примеры по ссылке.

evgeni85

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #13 : 26 Июля 2025, 14:25:57 »
У меня свои рисованные изображения, а не стандартная заслонка. И непонятно как можно мигать цветом у изображения с несколькими кадрами.
« Изменён: 26 Июля 2025, 16:32:03 от Simple_Scada »

pan2000

  • Постоялец
  • ***
  • Сообщений: 217
    • Просмотр профиля
Re: Битовый и числовой индикаторы
« Ответ #14 : 27 Июля 2025, 01:58:58 »
  Здравствуйте.

Для многокадрового изображения возможные варианты: изменение свойства FlashColor по номеру кадра или управлением дополнительными кадрами по номеру и таймеру.
См. пример из вложения. Перед первым вызвом редактора необходимо скопировать файл индикатора из "User Files" проекта в "Pictures" сервера.
Более изощренный способ - стопка из трёх изображений: одно статическое для устойчивых состояний заслонки (открыта, закрыта, промежуточное) и два с анимацией и/или миганием для переходных состояний (открывается, закрывается).
« Изменён: 27 Июля 2025, 16:43:45 от pan2000 »