Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: evgeni85 от 14 Июля 2025, 16:05:21

Название: Битовый и числовой индикаторы
Отправлено: evgeni85 от 14 Июля 2025, 16:05:21
Подскажите как можно сделать индикаторы? Чтоб от значения переменной менялось изображение
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple Scada от 14 Июля 2025, 20:00:49
Здравствуйте.

Можно создать PNG изображение, состоящее из необходимых кадров и поместить его в папку "...\Simple-Scada 2\Pictures". Далее, при помощи утилиты Pictures разбить изображение на кадры, как это описано по ссылке (https://simple-scada.com/help/manual/pictures.html). После этого, анимированное изображение  (https://simple-scada.com/help/manual/picture.html)станет доступно в редакторе в группе "Пользовательские" и можно будет изменять кадр изображения через скрипты(свойство "Frame (https://simple-scada.com/help/script/imgframe.html)"). Для этого изображение нужно связать с соответствующей переменной и на событие "OnDataChange (https://simple-scada.com/help/script/general-events.html)" написать универсальный скрипт. Например:
Код: (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.
Данный скрипт универсальный (https://simple-scada.com/help/script/script-types.html), поэтому его можно использовать с любыми изображениями.

Методы для работы с битами переменной в скриптах рассмотрены по ссылке (https://simple-scada.com/help/script/work-bits.html). Чтобы извлечь нужный бит из значения переменной, нужно использовать функцию "GetBit (https://simple-scada.com/help/script/getbit.html)". Примеры можно найти по ссылке (https://simple-scada.com/help/script/bit-color.html). Также, при необходимости целочисленные внешние переменные можно разбить на биты и работать с каждым битом отдельно (https://simple-scada.com/help/manual/extvarbits.html).

Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 17 Июля 2025, 08:48:25
Я создал изображение, у которого 2 кадра. Добавил его в редакторе. Если в свойствах менять номер кадра, то изображение меняется. Добавил скрипт на изменение значения. Но при запуске проекта на экране отображаются срзу оба кадра изображения
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple_Scada от 17 Июля 2025, 09:46:47
Здравствуйте.

1. Если нужно менять только цвет изображения, то для этого можно использовать изображение без дополнительных кадров и менять цвет через свойство "Color (https://simple-scada.com/help/script/color.html)" – см. примеры по ссылке (https://simple-scada.com/help/script/colorchange.html). Для корректного изменения цвета используйте изображения преимущественно белого цвета. Чтобы вернуть изначальный цвет объекта, можно использовать процедуру "SetInitialColor (https://simple-scada.com/help/script/setinitialcolor.html)".
2. В случае использования анимации, после создания/редактирования анимированного изображения нужно обязательно перезапустить сервер Simple-Scada (https://simple-scada.com/help/manual/server-status.html), чтобы он загрузил обновленные изображения. При перезапуске сервер загрузит новый файл анимации и отправит его клиентам. Если используется web-клиент, то перезагрузите страницу с очисткой кэша (https://www.tkosk.ru/instruction/33) (CTRL + SHIFT + R для браузера Chrome) и протестируйте повторно.
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 17 Июля 2025, 09:52:52
Сервер я перегружаю, но изображение нормально не отображается
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple Scada от 17 Июля 2025, 11:16:29
1. Клиент запускается на том же ПК, что и сервер/редактор?
2. Если используется десктоп-клиент (https://simple-scada.com/help/manual/client.html), то закройте его полностью и запустите повторно.
3. Откройте редактор, создайте новое изображение (https://simple-scada.com/help/manual/picture.html) и в свойстве "Текстура" укажите Ваше анимированное изображение. После этого сохраните проект, перезапустите сервер Simple-Scada (https://simple-scada.com/help/manual/server.html) (не проект (https://simple-scada.com/help/manual/server-project.html), а сам сервер), запустите клиент и посмотрите, как отображается анимированное изображение.

Если предыдущие и текущие рекомендации не помогли, то:
1. Значит, у клиента Simple-Scada недостаточно прав, чтобы скопировать файлы изображений с сервера в собственную папку "Pictures\", которая находится в директории пользовательских данных. Директория пользовательских данных задается на этапе установки (https://simple-scada.com/help/manual/installation.html?anchor=setdir) (по-умолчанию используется путь: "C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Documents\Simple-Scada 2\"). У клиента обязательно должны быть права на запись в папку "Pictures\" для нормальной работы.
2. Возможно, установка Simple-Scada производилась под одним пользователем Windows, а сейчас Вы запускаете клиент под другим пользователем. Например, установка производилась из учетной записи администратора и пользовательские данные по умолчанию расположены в папке "Documents\" администратора. А сейчас запуск клиента производится под другим пользователем, у которого нет доступа к папке "Documents\" администратора. В таком случае, нужно произвести повторную установку и в качестве директории пользовательских данных (https://simple-scada.com/help/manual/installation.html?anchor=setdir) указать папку, которая доступна всем пользователям (например "D:\Simple-Scada 2").
3. Если с правами разобраться не получится, то скопируйте вручную папку "Pictures\" с серверного ПК на ПК клиент.
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 17 Июля 2025, 11:22:02
1. Клиент запускается на том же ПК, что и сервер
2. Закрываю клиент полностью
3. Так и делаю. Другие картинки отображаются (без анимации)
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 17 Июля 2025, 11:33:49
Заработало.
Еще один вопрос. Как сделать прозрачный фон у поля ввода\вывода?.  В соответсвующем свойстве выбира. "Х" и фон становится черным
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple Scada от 17 Июля 2025, 11:46:15
См. свойство "Цвет фона (https://clck.ru/3NACAu)" – в данном свойстве нужно изменить прозрачность (по-умолчанию 255) на 0. См. скриншот во вложении.
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 17 Июля 2025, 13:57:31
Спасибо
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 24 Июля 2025, 12:24:50
Здравствуйте. Подскажите как можно сделать индикатор, например, на 5 состояний, на 2 из которых должны быть мигания? Например, состояния заслонки: открыта, закрыта, промежуточное, открывается(мигание), закрывается (мигание).
Название: Re: Битовый и числовой индикаторы
Отправлено: pan2000 от 25 Июля 2025, 05:17:42
   Здравствуйте.

Для цветового индикатора подходит объект "фигура", цвето-текстового "Кнопка" или пара "Фигура" - "Текст".
Собственно сам способ реализации индикатора зависит от количества переменных определяющих состояние индикатора: менее трех - объект с изменяемыми свойствами, более - стопка объектов с управлением видимостью.
В примере три варианта индикатора:
- простая последовательность [0-4];
- пара регистров "Управление" и "Состояние" с битовыми полями;
- четыре отдельных булевых переменных, индикатор - шаблон.
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple_Scada от 25 Июля 2025, 22:04:03
Здравствуйте.

Цитировать
Подскажите как можно сделать индикатор, например, на 5 состояний, на 2 из которых должны быть мигания? Например, состояния заслонки: открыта, закрыта, промежуточное, открывается(мигание), закрывается (мигание).
1. Компонент "Заслонка" может работать в трех режимах, перечисленных по ссылке (https://simple-scada.com/help/manual/valve.html). Если за описанные состояния отвечают отдельные битовые переменные, то можно использовать режим "с анимацией" (https://simple-scada.com/help/manual/valve.html#:~:text=%D0%A1%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9%20%E2%80%93%20%D0%B7%D0%B0%D1%81%D0%BB%D0%BE%D0%BD%D0%BA%D0%B0%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D0%BF%D0%BE%20%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC%20(%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%BF%D1%80%D0%B8%20%D1%8D%D1%82%D0%BE%D0%BC%20%D0%B4%D0%BE%D0%BB%D0%B6%D0%BD%D0%B0%20%D0%B1%D1%8B%D1%82%D1%8C%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D0%BD%D0%B0)%3A).
2. Если стандартные режимы работы заслонки не подходят, то можно реализовать свой режим через скрипты - пример можно найти по ссылке (https://simple-scada.com/help/script/index.html?colorchangevlv.html). Для мигания цветом нужно использовать свойство "FlashColor (https://simple-scada.com/help/script/flashcolor.html)" – см. примеры по ссылке (https://simple-scada.com/help/script/flashing.html).
Название: Re: Битовый и числовой индикаторы
Отправлено: evgeni85 от 26 Июля 2025, 14:25:57
У меня свои рисованные изображения, а не стандартная заслонка. И непонятно как можно мигать цветом у изображения с несколькими кадрами.
Название: Re: Битовый и числовой индикаторы
Отправлено: pan2000 от 27 Июля 2025, 01:58:58
  Здравствуйте.

Для многокадрового изображения возможные варианты: изменение свойства FlashColor по номеру кадра или управлением дополнительными кадрами по номеру и таймеру.
См. пример из вложения. Перед первым вызвом редактора необходимо скопировать файл индикатора из "User Files" проекта в "Pictures" сервера.
Более изощренный способ - стопка из трёх изображений: одно статическое для устойчивых состояний заслонки (открыта, закрыта, промежуточное) и два с анимацией и/или миганием для переходных состояний (открывается, закрывается).
Название: Re: Битовый и числовой индикаторы
Отправлено: Simple_Scada от 27 Июля 2025, 11:00:17
Цитировать
У меня свои рисованные изображения, а не стандартная заслонка.
Тогда можно использовать способ №2 из нашего прошлого сообщения.

Цитировать
И непонятно как можно мигать цветом у изображения с несколькими кадрами.
Точно так же, как и у простого изображения. В скрипте изменяете кадр на нужный (например на состояние "закрыта") и включаете мигание требуемым цветом. Для мигания не требуется создавать отдельные кадры, достаточно выбрать кадр, с которого должно начаться мигание.

Также, еще раз хотим отметить, что если требуется менять только цвет изображения и включать мигание, то для этого можно использовать изображение без дополнительных кадров и менять цвет через свойство "Color". Например для изображения, которое Вы прикрепляли выше, можно оставить только первый кадр и изменять его цвет или включать мигание.

Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и изображение, о котором идет речь. Сделаем пример для данного изображения.