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

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

Автор Тема: Видимость для шаблонов  (Прочитано 62126 раз)

AlexejKa38

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Видимость для шаблонов
« : 14 Мая 2024, 09:49:16 »
Есть проект по дозированию по трубопроводам продуктов .

В 9 миксеров будет подаваться продукт по 4 линиям. В каждую линию подключены по 8-12 ёмкостей. Одновременно на линию продукт может подаваться только из одной емкости. От емкости до расходомеров на трубопроводах будет установлено по 3 крана и одному насосу. Плюс после расходомеров будет установлено ещё по 8 кранов. Итого в общей сложности на один миксер получается примерно 40 емкостей, 40 насосов и 130 кранов.

Разместить такое количество элементов на одной мнемосхеме не получится. Поэтому есть идея отображать для каждой из четырех линий только активную емкость с соответствующими кранами и насосами.

Какие были варианты реализации.

1. Сделать шаблон и менять подстановку шаблона. Но менять с помощью скриптов подстановку шаблона нельзя.   

2. Сделать "накладные" шаблоны. Наложить шаблоны всех элементов друг на друге и управлять их видимостью. Но у шаблонов к сожалению нет свойства Видимость.

3. Сделать шаблонные окна и открывать их. Но из скриптов открыть шаблонное окно нельзя. Также не очень хорошо будет выглядеть из-за тени окна.

4.  Вариант с обычными окнами тоже подошел бы. Вручную создал бы 40 окон. Но из-за тени не очень будет смотреться визуально. Да и заблокировать возможность перемещения окна тоже нельзя. Добавить бы окнам ещё свойства отключения тени и граница, запрет на закрытие крестиком (и скрыть крестик), запрет на перемещение, тогда бы уже получилось не только окно, а область или панель. С помощью такой панели к примеру можно будет создавать окна с вкладками.

5. Сделать в скаде виртуальные краны и насосы. Скриптом "изменились переменные" копировать значения реальных переменны в виртуальные. Но тогда будет 36 скрипта "изменились переменные" и в каждом скрипте будет обрабатываться несколько сотен переменных. Как это скажется на производительности скады неизвестно.

Единственный рабочий вариант номер 5. Пока остановился на нём.

Как ещё можно реализовать данную задачу?

Хотелось чтобы разработчики добавили шаблонам свойства видимость, возможность вызывать шаблонные окна из скриптов (например при вызове события Button1.OnClickEvent) или менять подстановки шаблонов из скриптов.

Как это примерно должно выглядеть на прикрепленном к этому сообщению скриншоте.
« Изменён: 08 Февраля 2026, 21:58:01 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1385
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #1 : 14 Мая 2024, 15:25:18 »
Здравствуйте.

Цитировать
Разместить такое количество элементов на одной мнемосхеме не получится... Как ещё можно реализовать данную задачу?
Вместо окон можно создать требуемое количество подстраниц и распределить объекты по подстраницам. Каких-либо других вариантов предложить не можем. Перечисленные Вами пожелания обязательно учтем, но добавление таких возможностей в обозримом будущем не планируется.

pan2000

  • Постоялец
  • ***
  • Сообщений: 225
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #2 : 15 Мая 2024, 12:16:49 »
   Здравствуйте.

  Вполне рабочий вариант 2 - использование шаблонов, причем возможны два варианта реализации:
- отключить штатную навигацию по страницам, что позволит для мнемосхемы создать необходимое число страниц с двумя шаблонами - мнемосхемы и навигации;
- "замонолитить" шаблон мнемосхемы на этапе инициализации - создается односторонняя цепочка ссылок между объектами шаблона (спасибо разработчикам за свойство объекта UserData). Теперь у шаблона, как единого целого, можно управлять видимостью или перемещением.
Пример с управлением видимостью во вложении.

AlexejKa38

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #3 : 15 Мая 2024, 13:30:43 »
Спасибо большое!

kharit74

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #4 : 05 Февраля 2026, 10:47:18 »
Здравствуйте.

Цитировать
Разместить такое количество элементов на одной мнемосхеме не получится... Как ещё можно реализовать данную задачу?
Вместо окон можно создать требуемое количество подстраниц и распределить объекты по подстраницам. Каких-либо других вариантов предложить не можем. Перечисленные Вами пожелания обязательно учтем, но добавление таких возможностей в обозримом будущем не планируется.

Добрый день! Хочу освежить тему на счет видимости шаблонов. Стоит задача к дизайну интерфейса по управлению видимостью шаблонов с помощью кнопки из шаблонного окна. Стоит ожидать данный функционал?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1385
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #5 : 08 Февраля 2026, 22:48:20 »
Здравствуйте.

Возможности управлять видимостью шаблонов нет и добавление такого функционала не планируется.

AlexejKa38

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #6 : 13 Февраля 2026, 13:22:09 »
Добрый день! Хочу освежить тему на счет видимости шаблонов. Стоит задача к дизайну интерфейса по управлению видимостью шаблонов с помощью кнопки из шаблонного окна. Стоит ожидать данный функционал?

Вариант предложенный pan200 вполне рабочий. Только есть один недостаток. В скриптах внутри шаблона нельзя работать со свойством Visible. Может и можно, но я пока особо с этим не заморачивался. Можно Alpha использовать

pan2000

  • Постоялец
  • ***
  • Сообщений: 225
    • Просмотр профиля
Re: Видимость для шаблонов
« Ответ #7 : 25 Февраля 2026, 14:13:52 »
 Здравствуйте.

Цитировать
Вариант предложенный pan200 вполне рабочий. Только есть один недостаток.
Во устранении недостатка.
Для управления видимостью отдельных объектов шаблона (в количестве до 32) достаточно одного дополнительного тэга целого типа. Скрипт разрешения видимости последовательно переносит биты тэга в свойства видимости объектов, а скрипт запрещения собирает свойства видимости объектов в тег, с последующим переводом объектов в невидимое состояние.
При инициализации шаблона свойство видимости объектов устанавливается по подстановке %начальная_конфигурация%, а объекты из %список_объектов% получают ссылку на начальный объект шаблона для управления/контроля из "внешнего" мира.

Управление видимостью по Alpha, как второй канал управления видимостью, вполне даже подходит для одно-Alpha-ых объектов.