Показано с 1 по 7 из 7

Тема: Есть ли возможность динамически менять связи элементов с сигналами (параметрами ПЛК)?

  1. #1

    По умолчанию Есть ли возможность динамически менять связи элементов с сигналами (параметрами ПЛК)?

    Приветствую! Может кто-нибудь подсказать, есть ли в МастерСкаде 4д возможность динамически менять связи?
    т.е. в режиме исполнения при клике на определенный элемент в новом окне показывались сигналы, связанные с этим элементом,
    при клике на другой - связанные с другим, но окно и элементы одни и те же.
    Например, на главной схеме около 200 задвижек, кликая на 1 из них, открывается окно,
    в котором сигналы "открыта"/"закрыта", "% открытия" (цифра), "авария" именно этой задвижки, и есть возможность отправлять команды по этой задвижке -
    "открыть/закрыть", "% открытия".
    Буду благодарна любой подсказке

  2. #2

    По умолчанию

    Цитата Сообщение от Wervicon Посмотреть сообщение
    Приветствую! Может кто-нибудь подсказать, есть ли в МастерСкаде 4д возможность динамически менять связи?
    т.е. в режиме исполнения при клике на определенный элемент в новом окне показывались сигналы, связанные с этим элементом,
    при клике на другой - связанные с другим, но окно и элементы одни и те же.
    Например, на главной схеме около 200 задвижек, кликая на 1 из них, открывается окно,
    в котором сигналы "открыта"/"закрыта", "% открытия" (цифра), "авария" именно этой задвижки, и есть возможность отправлять команды по этой задвижке -
    "открыть/закрыть", "% открытия".
    Буду благодарна любой подсказке
    Не знаю, как в 4D, но в 3 так можно было делать.
    Создаёте объект-шаблон со своими переменными и своим окном управления. Связываете переменные этого объекта с сетевыми переменными (например из ОПС).
    Делаете необходимое количество копий объекта (шаблона), и также связываете переменные этих объектов с соответствующими сетевыми переменными (например из ОПС).
    В дальнейшем правите только объект-шаблон, а копии обновляете через механизм шаблонов.

  3. #3

    По умолчанию

    Здесь эта задача может решаться иначе. Вы просто делаете библиотечный объект-задвижку, имеющую первое окно (символ) для отображения на главной мнемосхеме, и второе окно (открываемое по клику на первом) - для отображения всех нужных параметров. И на его основе тиражируете себе сколько нужно объектов, из которых первые окна вытаскиваете на основную мнемосхему, а вторые - открываются по клику на них.
    Последний раз редактировалось Larrrik; 24.12.2022 в 18:13.

  4. #4

    По умолчанию

    Спасибо за советы!
    Но я так понимаю, никак не обойтись без размножения объектов... а я не хотела бы иметь такую стопку однотипных, но "полноценных" объектов (по одному на каждую задвижку), заметила, что при большом количестве (около 1000) - память сервера занимается на 12Гб, что очень много, т.к. это были "пустые" окна, без связей...
    Нашла способ, но он корявый - через массив значений, индекс массива - это номер задвижки, который подставляю в привязанную на окне переменную через программу C#. Управление - через другую программу C#(в обратную сторону также по индексу). Способ рабочий, но - при одновременном использовании интерфейса >1 пользователя - происходит, естественно, коллизия((( Этого не будет, когда окна управления физически разные. И еще один минус моего способа - очень неинтуитивное добавление нового такого же элемента (необходимость создавать и обвязывать приличное количество параметров в приличном количестве мест - целый клубок)
    Буду выбирать, что лучше, спасибо еще раз!

  5. #5

    По умолчанию

    Цитата Сообщение от Wervicon Посмотреть сообщение
    Спасибо за советы!
    Но я так понимаю, никак не обойтись без размножения объектов... а я не хотела бы иметь такую стопку однотипных, но "полноценных" объектов (по одному на каждую задвижку), заметила, что при большом количестве (около 1000) - память сервера занимается на 12Гб, что очень много, т.к. это были "пустые" окна, без связей...
    Нашла способ, но он корявый - через массив значений, индекс массива - это номер задвижки, который подставляю в привязанную на окне переменную через программу C#. Управление - через другую программу C#(в обратную сторону также по индексу). Способ рабочий, но - при одновременном использовании интерфейса >1 пользователя - происходит, естественно, коллизия((( Этого не будет, когда окна управления физически разные. И еще один минус моего способа - очень неинтуитивное добавление нового такого же элемента (необходимость создавать и обвязывать приличное количество параметров в приличном количестве мест - целый клубок)
    Буду выбирать, что лучше, спасибо еще раз!
    Возможно при использовании механизма шаблонов ситуация с памятью всё же улучшится

  6. #6

    По умолчанию

    На счёт 12 ГБ памяти за 1К задвижек - я бы уточнил все таки в ТП. На глаз выглядит замного...

  7. #7

    По умолчанию

    Механизм как в тройке "Динамические/вызываемые объекты" сейчас в разработке. Пока эту задачу решать нужно через экземпляры объектов (из библиотеки вставлять не копию, ни наследника, а именно экземпляр).
    Еще как вариант использовать специальные контролы например таблица или стековая панель. Когда при нажатию на ячейку открывается окно с уточняющими параметрами.

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 26.09.2022, 14:57
  2. Ответов: 1
    Последнее сообщение: 16.02.2022, 16:02
  3. Ответов: 6
    Последнее сообщение: 16.12.2020, 20:54
  4. Ответов: 3
    Последнее сообщение: 07.11.2016, 14:29
  5. ПР110 Есть ли возможность увеличить количество входов?
    от SaiFeR в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 12.10.2016, 15:11

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •