Страница 158 из 275 ПерваяПервая ... 58108148156157158159160168208258 ... ПоследняяПоследняя
Показано с 1,571 по 1,580 из 3052

Тема: CODESYS V3.5. Визуализация

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от СергейНовосиб Посмотреть сообщение
    Создается одинаковый набор экранов, но с разными ветками переходов и они не должны перекрещиваться.
    У меня так работает две ветки. Одна на СПК с возможностью изменения уставок и вторая для инета без возможности изменений.
    Если не ошибаюсь, в CODESYS возможны два способа переходов-навигации по страницам интерфейса. Первый, это когда к определенной кнопке непосредственно привязана команда (действие) на переход к другой странице интерфейса. И второй, когда страницы интерфейса можно отрывать программно, по командам от контроллера. Мне потребуется второй способ.

    P.S. Видимо, цепочка рассуждений должна быть примерно такая:

    MySetVisu: VU.FbChangeVisu;
    MySetVisu(itfClientFilter:=VU.Globals.AllClients, xExecute:=TRUE, sVisuName:=MyVisuName);

    А вот далее, как я понимаю (или пока не понимаю) фильтра по конкретному клиенту, хотя бы по IP, и нет.
    Последний раз редактировалось Петр Петрович; 06.09.2022 в 12:33.

  2. #2

    По умолчанию

    Подумалось. Судя по всему, даже если в VU.Globals.AllClients заменить AllClients на CurrentClient, то это позволяет указать пользователя, который сам делал что-то с элементом визуализации (тут не понятно до конца, если честно),
    т.е. опять по направленияю от страницы с визуализацией к контроллеру.

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

  3. #3
    Пользователь Аватар для DenisV
    Регистрация
    20.11.2020
    Адрес
    Санкт-Петербург
    Сообщений
    96

    По умолчанию

    Цитата Сообщение от Петр Петрович Посмотреть сообщение
    Подумалось. Судя по всему, даже если в VU.Globals.AllClients заменить AllClients на CurrentClient, то это позволяет указать пользователя, который сам делал что-то с элементом визуализации (тут не понятно до конца, если честно),
    т.е. опять по направленияю от страницы с визуализацией к контроллеру.

    Но. Нельзя ли подобрать такой элемент визуализации (или не визуальный элемент страницы), что поддерживает "Конфигурация ввода" а в ней "Изменить показанную визуализацию". Тогда, посылая этому элементу (элементам) данные в переменные, можно было бы переключать страницы визуализации на нужном клиенте.
    Если я вас правильно понял, то вам нужен элемент визуализации "Фрейм" содержащий несколько визуализаций (мб подойдёт ещё "Набор вкладок") и кнопки для переключения этих визуализаций. Единственное, если вы используете "Переменную-переключатель фрейма" Визуализация сменится на всех активных клиентах.
    Последний раз редактировалось DenisV; 06.09.2022 в 17:08.

  4. #4

    По умолчанию

    > Визуализация сменится на всех активных клиентах.
    Спасибо за ответ. Но вот тут как раз и проблема - хотелось бы сделать так, что бы я мог по команде контроллера, а не оператора, открывать на одной из панелей (в браузере) нужную мне страницу или фрейм, причем это никак не должно отражаться на остальных панелях с интерфейсом. Год назад я делал нечто подобное через:

    MyOpenDialog: VU.FbOpenDialog;
    MyCloseDialog: VU.FbCloseDialog;
    MySetVisu: VU.FbChangeVisu;

    Но я умею применять это только для всех клиентов (браузеров).
    Вызов там такой: MySetVisu(itfClientFilter:=VU.Globals.AllClients, xExecute:=TRUE, sVisuName:=MyVisuName);
    И вот этот самый itfClientFilter, как я понял, допускает ограниченный набор ситуаций, без выбора нужного браузера, по IP например.

    В теории, в нужный браузер, а точнее, страницу которая будет на нем открыта, мы можеи отправить что-то в переменную, которая для него индивидуальна (переменная). Вот как от нее, от самого факта изменения этой переменной, или ее значения, перейти к смене страницы интерфейса - я пока не могу придумать. У текстового поля нет, например, Сhange. А только Mouse Down ("Конфигурация ввода" а в ней "Изменить показанную визуализацию"). Иначе бы уже получилось.

  5. #5

    По умолчанию

    Добрый день! Подскажите, возможно ли использовать анимацию в визуализации? Например, при изменении переменной лопасти вентилятора начинали вращаться

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    14,010

    По умолчанию

    Цитата Сообщение от service Посмотреть сообщение
    Добрый день! Подскажите, возможно ли использовать анимацию в визуализации? Например, при изменении переменной лопасти вентилятора начинали вращаться
    Добрый день.
    См. пример: https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    14,010

    По умолчанию

    MySetVisu(itfClientFilter:=VU.Globals.AllClients, xExecute:=TRUE, sVisuName:=MyVisuName);

    А вот далее, как я понимаю (или пока не понимаю) фильтра по конкретному клиенту, хотя бы по IP, и нет.
    Фильтры, конечно же, есть.
    Можно с помощью VU.FbIterateClients пройтись по всем клиентам и найти нужного, после чего передать его интерфейс в вызове VU.FbChangeVisu.

    В примере по ссылке есть всё необходимое для решения вашей задачи - потребуется только изучить и осмыслить его:
    https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

  8. #8

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Фильтры, конечно же, есть.
    Можно с помощью VU.FbIterateClients пройтись по всем клиентам и найти нужного, после чего передать его интерфейс в вызове VU.FbChangeVisu.
    [/url]
    Евгений! Более или менее заработало, но пока по такой схеме: VU.Visu_Globals.g_VisuManager.SetMainVisu(pClient, 'Vis2');
    где pClient указывает на клиента визуализации, отобранного по нужному признаку.

    Но как скрестить pClient с более новым VU.FbChangeVisu что-то пока не понимаю. Если будет врямя, покажите?

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    14,010

    По умолчанию

    Цитата Сообщение от Петр Петрович Посмотреть сообщение
    Евгений! Более или менее заработало, но пока по такой схеме: VU.Visu_Globals.g_VisuManager.SetMainVisu(pClient, 'Vis2');
    где pClient указывает на клиента визуализации, отобранного по нужному признаку.

    Но как скрестить pClient с более новым VU.FbChangeVisu что-то пока не понимаю. Если будет врямя, покажите?
    При вызове VU.FbIterateClients вы передаете на его вход itfIterationCallback имя экземпляра ФБ, реализующего интерфейс VU.IVisualizationClientIteration.
    В примере такой ФБ называется VisuClientIteration. Методы этого ФБ вызываются автоматически.
    При вызове метода HandleClient на вход itfClient подставляется экземпляр интерфейса очередного клиента визуализации.
    Через этот интерфейс вы получаете доступ к данным клиента (в том числе, к указателю на его контекст - pClient) и можете определить, интересут ли он вас или нет.

    Предположим, вам нужно вызывать VU.FbChangeVisu для конкретных клиентов.

    Тогда вы должны создать ФБ с реализацией (EXTENDS) интерфейса IVisualizationClientFilter, объявить его экземпляр и передать его на вход FbChangeVisu.itfClientFilter при его вызове.
    В блоке есть единственный метод - IsAccepted. Этот метод будет вызываться автоматически; на вход itfClient подставляется экземпляр интерфейса очередного клиента визуализации.
    Для тех клиентов, которые вас интересуют - необходимо на выход метода присвоить TRUE.

  10. #10

    По умолчанию

    Привет.
    Подскажите, есть ли способ перевести курсор (фокус ввода) сразу в текстовое поле?
    Вот открылась визуализация N5 и на ней есть текстовое поле. И курсор (фокус ввода) уже там сразу и стоит. Так сказать без "трогательного прикосновения" или "мышечного движения".
    На прикрепленном рисунке курсор должен попасть сразу же в поле "введите значение".
    Спасибо.
    ТекстовоеПоле.png
    Последний раз редактировалось ВладОвен; 07.09.2022 в 12:29.

Страница 158 из 275 ПерваяПервая ... 58108148156157158159160168208258 ... ПоследняяПоследняя

Похожие темы

  1. Визуализация CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 24.04.2018, 15:26
  2. Визуализация в CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.05.2017, 21:11
  3. Визуализация CodeSys
    от DanJer в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 30.08.2012, 03:53
  4. Визуализация Codesys
    от Slipknot в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 31.10.2008, 11:36
  5. Визуализация в CoDeSys 2.3
    от Slawa в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 29.08.2008, 17:30

Ваши права

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