Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: СПК1хх[M01],вывод окна с сообщением.

  1. #1

    По умолчанию СПК1хх[M01],вывод окна с сообщением.

    Добрый день.Подскажите ,пожалуйста,как можно реализовать вывод диалогового окна(MessageBox)с текстовым сообщением,например,при выполнении xB1=TRUE.

  2. #2

    По умолчанию

    Прошу закрыть тему,нашел решение.

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

    По умолчанию

    Добрый день.
    Если нужен именно MessageBox, то вот пример:
    https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

    Если подойдет вариант со своим диалогом (созданным в проекте), то проще будет использовать его:
    https://youtu.be/_kA9WVtbg3A

  4. #4

    По умолчанию

    Благодарю,как раз нашел решение на Вашем Ю-канале.

  5. #5

    По умолчанию

    Здравствуйте.
    Вариант со своим диалогом из Ю-видео (тыц) отличная идея. Просто и быстро.
    Но есть нюанс (c):
    При переименовании экрана визуализации (рефакторинг) все проходит нормально, но в коде не переименовывается. Рефакторинг не видит то, что в кавычках (выделил жирным).
    Код:
    fbError(xExecute:=TRUE,itfClientFilter:=VU.Globals.AllClients,sDialogName:='SomethingPushMessageBox',xModal:=TRUE);
    Т.е. окно визуализации переименовалось, а название этого окна в коде - нет. При компиляции и последующей отработке кода функциональный блок fbError не вызывает видимых ошибок из-за отсутствующего экрана визуализации, вписанного в аргумент "sDialogName". Код работает в ПЛК, но окно не появляется: SomethingPushMessageBox был переименован в Something2. При большом количестве экранов визуализации и всплывающих окон можно запутаться и начать вспоминать чью-то маму (с). Но это мелочь, так сказать - особенности применения и понимания.

    Вопрос в другом:
    Я создаю проект, в котором использую глобальную переменную VisuElems.CURRENTVISU. Я хочу чтобы у всех пользователей был виден всегда одинаковый экран (в web, target и service). Т.е. однопользовательская система.
    Но этот метод всплывающих окон с применением функционального блока нарушает эту концепцию и всплывающие окна работают независимо.
    Печаль.
    Последний раз редактировалось ВладОвен; 07.06.2022 в 11:16.

  6. #6

  7. #7

    По умолчанию

    Имеется ввиду следующее:
    В проекте используется переменная VisuElems.CURRENTVISU. Она дает однопользовательский режим - где бы вы не переключали визуализацию, она будет переключаться везде синхронно: web (много клиентов), target, service (внутри IDE).
    Если же попадается ситуация, при которой выскакивает окно, созданное при помощи библиотеки VisuUtils и ее функционального блока FbOpenDialog, эта концепция нарушается. Окно выскакивает, но вы можете его в web закрыть, а в target оно продолжает висеть и ждет, когда вы его закроете именно в target.
    Т.е. рассинхронизация получается: в web вы уже сняли ошибку и начали снова работать, настраивать, "ходить" по экранам визуализации. А в target все еще висит то окно ошибки.
    Нарушается концепция глобальной переменной
    VisuElems.CURRENTVISU и однопользовательской системы.

    Последний раз редактировалось ВладОвен; 07.06.2022 в 11:06.

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Окно выскакивает, но вы можете его в web закрыть, а в target оно продолжает висеть и ждет, когда вы его закроете именно в target.
    Тогда нужно настроить кнопку закрытия диалога таким образом, чтобы при ее нажатии в коде программы выполнялось закрытие этого диалога для всех клиентов.
    См. пример: https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

    Для нашего СПК прошивок с V3.5 SP17 Patch 3 еще нет (но мы усиленно работаем над их выпуском) - для них можно использовать старую версию примера:
    https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

  9. #9

    По умолчанию

    Привет.
    Настроил три таких окна для отображения ошибок при помощи VU.FbOpenDialog. Но планирую в последствии их сделать 100500. Потому что это очень удобно.

    Код:
    IF xFlag1 THEN fbError(xExecute:=TRUE,itfClientFilter:=VU.Globals.AllClients,sDialogName:='Push_Error1',xModal:=TRUE);                   // Вывод окна ошибки 1
    IF xFlag2 THEN fbError(xExecute:=TRUE,itfClientFilter:=VU.Globals.AllClients,sDialogName:='Push_Error2',xModal:=TRUE);                   // Вывод окна ошибки 2
    ...
    IF xFlag3 THEN fbError(xExecute:=TRUE,itfClientFilter:=VU.Globals.AllClients,sDialogName:='Push_Error3',xModal:=TRUE);                   // Вывод окна ошибки 3
    Скажите, а такой подход будет работать даже и при 100 таких условиях в коде программы?
    У меня почему-то при срабатывании условия с xFlag3 выскакивает окно от xFalg1 (т.е. Push_Error1).
    Что я делаю не так?
    Спасибо.

    P.S. Разобрался!!! Там в окне был еще "Динамический текст" (языковая локализация), который я забыл исправить при Copy-Paste!
    Всем спасибо за молчание и удачных выходных!
    Последний раз редактировалось ВладОвен; 08.07.2022 в 17:19.

  10. #10

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Вызов окна объекта
    от Александр N в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 29.07.2019, 19:14
  2. Закрыть окна
    от Vitamin в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 20.01.2015, 15:26
  3. Окна
    от evg3798 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 22.03.2013, 03:26
  4. Модальные окна в MS 3.5
    от Olegis в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 21.03.2013, 08:17
  5. окна сп270
    от nili`ch в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 26.10.2010, 08:12

Метки этой темы

Ваши права

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