PDA

Просмотр полной версии : CODESYS V3.5. Визуализация



Страницы : 1 2 3 4 5 6 [7] 8 9 10 11

pro100user
02.02.2022, 14:39
Добрый вечер.

Используйте параметр Переключить переменную фрейма. Записывайте туда индекс экрана. Индексы соответствуют порядку экранов в конфигурации фрейма - первый экран имеет индекс 0, следующий - 1 и т.д.

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

Есть ли библиотечные функции, которые возвращают индекс экрана? Например, переменная CurrentVisu возвращает имя экрана визуализации. А нужно получить индекс экрана визуализации.

Евгений Кислов
02.02.2022, 15:54
Есть ли библиотечные функции, которые возвращают индекс экрана? Например, переменная CurrentVisu возвращает имя экрана визуализации. А нужно получить индекс экрана визуализации.

Добрый день.
Зачем вам потребовался такой индекс?
Опишите, пожалуйста, задачу, которую вы пытаетесь решить.

pro100user
02.02.2022, 16:51
Добрый день.
Зачем вам потребовался такой индекс?
Опишите, пожалуйста, задачу, которую вы пытаетесь решить.

Добрый день!
Например, мне нужно вывести динамический текст в зависимости от отображаемого экрана визуализации. Индекс нужен для ссылки на номер строки списка текстов.

Евгений Кислов
02.02.2022, 17:21
Добрый день!
Например, мне нужно вывести динамический текст в зависимости от отображаемого экрана визуализации. Индекс нужен для ссылки на номер строки списка текстов.

Тогда проще всего самостоятельно написать функцию, которая принимает на вход имя экрана и на выход отдает подходящий вам индекс.

pro100user
02.02.2022, 17:38
Тогда проще всего самостоятельно написать функцию, которая принимает на вход имя экрана и на выход отдает подходящий вам индекс.

Проще чего? Проще, если бы была такая функция в библиотеке?
Я сам и изворачиваюсь, изобретая свой код. Но эту функцию каждый раз придется править при добавлении нового экрана или изменении имени существующего экрана.
Если есть CurrentVisu, то почему бы не предусмотреть CurrentVisuID?

Евгений Кислов
02.02.2022, 17:47
Проще чего? Проще, если бы была такая функция в библиотеке?
Я сам и изворачиваюсь, изобретая свой код. Но эту функцию каждый раз придется править при добавлении нового экрана или изменении имени существующего экрана.
Если есть CurrentVisu, то почему бы не предусмотреть CurrentVisuID?

Ок, как скажете.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

ФБ ClientManager, строка 18.
pstClientData^.GlobalData.VisuHistory._iCurrent - это тот индекс, о котором вы говорите, получаемый через "функцию библиотеки".

pro100user
02.02.2022, 18:32
Ок, как скажете.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

ФБ ClientManager, строка 18.
pstClientData^.GlobalData.VisuHistory._iCurrent - это тот индекс, о котором вы говорите, получаемый через "функцию библиотеки".
Спасибо! То, что надо.

Dmitrij_
07.02.2022, 09:52
Проблема в невозможности назначить любому из трендов свою ось Y. Всегда доступна только ось Y по умолчанию. Как это исправить?
CODESYS v3.5 SP14 Patch 3
5915459155

Mr Helper
07.02.2022, 10:34
Проблема в невозможности назначить любому из трендов свою ось Y. Всегда доступна только ось Y по умолчанию. Как это исправить?
CODESYS v3.5 SP14 Patch 3
5915459155

5915759158

Значит проверяйте настройки созданной оси

Евгений Кислов
07.02.2022, 10:38
Проблема в невозможности назначить любому из трендов свою ось Y. Всегда доступна только ось Y по умолчанию. Как это исправить?
CODESYS v3.5 SP14 Patch 3
5915459155

Добрый день.
У меня SP14 Patch 3 не воспроизводится.
Сможете показать через удаленный доступ? (TeamViewer или AnyDesk)

Mr Helper
07.02.2022, 10:40
Проблема в невозможности назначить любому из трендов свою ось Y. Всегда доступна только ось Y по умолчанию. Как это исправить?
CODESYS v3.5 SP14 Patch 3
5915459155

Вы показываете стандартную ось, перейдите во вкладки справа (созданные вами оси) и там исправляйте ошибки где будет промигивать восклицательный знак

Dmitrij_
07.02.2022, 11:54
Вы показываете стандартную ось, перейдите во вкладки справа (созданные вами оси) и там исправляйте ошибки где будет промигивать восклицательный знак

В других вкладках ошибок нет, все настройки на авто.
Создавая новый проект и помещая только тренд, с несколькими осями, все работает правильно и возможность выбора оси есть.


Добрый день.
У меня SP14 Patch 3 не воспроизводится.
Сможете показать через удаленный доступ? (TeamViewer или AnyDesk)

К сожалению, пока такой возможности нет.

Евгений Кислов
07.02.2022, 11:57
В других вкладках ошибок нет, все настройки на авто.
Создавая новый проект и помещая только тренд, с несколькими осями, все работает правильно и возможность выбора оси есть.



К сожалению, пока такой возможности нет.

Тогда выложите простейший проект, в котором эта проблема наблюдается.

Dmitrij_
07.02.2022, 12:14
простейший проект
архив проекта

Евгений Кислов
07.02.2022, 12:33
архив проекта

Насколько я понимаю - проблема в том, что у вас в элементе визуализации выбран отсутствующий в проекте тренд.
Но даже если выбрать существующий - осей и правда не будет видно.
Нужно с нуля создать новый тренд, указав для него существующую trend recording - тогда появится выбор осей.

59165

Dmitrij_
07.02.2022, 13:12
Изначально в Trend Recording Manager было PID_Trend1. В процессе подготовки для загрузки на форум не обратил внтмания.
Сейчас, даже если в настройках тренда выбираю TrendRecording ситуация та же. Компиляция ошибок не выдает.
Только создание тренда с нуля поможет?

Евгений Кислов
07.02.2022, 13:33
Изначально в Trend Recording Manager было PID_Trend1. В процессе подготовки для загрузки на форум не обратил внтмания.
Сейчас, даже если в настройках тренда выбираю TrendRecording ситуация та же. Компиляция ошибок не выдает.

Как я уже написал - с вашим текущим элементом Тренд уже ничего не сделать. Удалите его и добавьте на экран новый.

ultra76
10.02.2022, 02:09
Коллеги, добрый день!
Подскажите пожалуйста, есть ли функция, которая возвращает имя (или номер) текущей визуализации?
Мне нужно в программе использовать имя визуализации, на которой сейчас находится оператор.
Просмотрел библиотеки, не увидел такой функции...

Евгений Кислов
10.02.2022, 06:45
Коллеги, добрый день!
Подскажите пожалуйста, есть ли функция, которая возвращает имя (или номер) текущей визуализации?
Мне нужно в программе использовать имя визуализации, на которой сейчас находится оператор.
Просмотрел библиотеки, не увидел такой функции...

Добрый день.
Если в системе будет работать только один оператор (т.е. не будет многопользовательского доступа к web-визуализации*), то можно воспользоваться системной переменной VisuElems.CURRENTVISU.
Она имеет тип STRING и содержит имя текущего экрана визуализации (и позволяет переключать их путем записи имени нужного экрана).
Для доступа к переменной нужно установить соответствующую галочку в менеджере визуализации:

59231

* при установке галочки визуализация будет обрабатываться идентично для всех клиентов - т.е. при наличии нескольких веб-клиентов переключение экрана любым их клиентов затронет и всех остальных.

vapik
14.02.2022, 11:16
Добрый день.
ПЛК210-03
Codesys V3.5 SP16 Patch 3+ (32bit)

Некоторые изображения при обновлении экрана начинают крутиться (в приложенном файле обратите внимание на кнопку "Быстро вниз").
В приложенной gif-анимации крутится символ из стандартной библиотеки Sybmols (при этом другие иконки не крутятся), также крутятся некоторые изображения из своего ImagePool.
К свойству Rotate никакие перменные не привязаны.
Rebuild не помогает

Евгений Кислов
14.02.2022, 11:22
Добрый день.
Выложите, пожалуйста, простейший проект, на котором я смогу это воспроизвести.

Валерий "mad Dog" Шмараев
25.02.2022, 05:41
Здравствуйте, есть ли возможность изменять прозрачность пользовательского .svg?

Евгений Кислов
25.02.2022, 06:15
Здравствуйте, есть ли возможность изменять прозрачность пользовательского .svg?

Такой возможности нет.

Валерий "mad Dog" Шмараев
25.02.2022, 08:07
прокатило:

59473

если использовать .png с УЖЕ прозрачностью.

gecha
28.02.2022, 19:06
Что я делаю ни так?
В визуализации 4 одинаковых скруглённых прямоугольника, одному присвоил переменную, второму хотел записать %d в тексте, удалось написать только %, дальше ничего не воспринимает, вернее назначаю переменную или после % пишу d, нажимаю ВВОД - всё исчезает. Ничего не понимаю

Евгений Кислов
28.02.2022, 19:29
Что я делаю ни так?
В визуализации 4 одинаковых скруглённых прямоугольника, одному присвоил переменную, второму хотел записать %d в тексте, удалось написать только %, дальше ничего не воспринимает, вернее назначаю переменную или после % пишу d, нажимаю ВВОД - всё исчезает. Ничего не понимаю

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

gecha
28.02.2022, 21:33
Разобрался

vapik
16.03.2022, 18:48
Добрый день.
ПЛК210-03
Codesys V3.5 SP16 Patch 3+ (32bit)

Некоторые изображения при обновлении экрана начинают крутиться (в приложенном файле обратите внимание на кнопку "Быстро вниз").
В приложенной gif-анимации крутится символ из стандартной библиотеки Sybmols (при этом другие иконки не крутятся), также крутятся некоторые изображения из своего ImagePool.
К свойству Rotate никакие перменные не привязаны.
Rebuild не помогает

Добрый день.
В прошлый раз проблему я решил тем, что заново удалил проблемные изображения и добавил их снова.
Но, вернувшись к установке обнаружил, что они опять скачут.
Крутятся именно изображения, у которых свойство Angle не нулевое.
Скажите почту куда можно выложить проект.

Евгений Кислов
16.03.2022, 18:50
Добрый день.
В прошлый раз проблему я решил тем, что заново удалил проблемные изображения и добавил их снова.
Но, вернувшись к установке обнаружил, что они опять скачут.
Крутятся именно изображения, у которых свойство Angle не нулевое.
Скажите почту куда можно выложить проект.

Почта в подписи.
Выложите проект на файлообменник и пришлите ссылку.
Кроме того, пришлите скриншоты или видео, по которым будет понятно, куда смотреть, чтобы увидеть проблему.

RV9WFJ
27.03.2022, 07:09
Эдуард_Н. Почему вы считаете что можно вот так появиться и закидывать все ветки форума сразу своими, извините но глупыми вопросами. Вас 4 года не было на форуме и форум можно было читать. И вот вы вернулись. Проявляйте уважение к собеседникам и к Овну в первую очередь.

Евгений Кислов
27.03.2022, 08:40
Почему на экране СПК все элементы чуть сплющены с верху? В Видео 2. Создание простейшего алгоритма и визуализации как раз такое тоже видно.

Вероятно, вы задаете для элементов одинаковую ширину и высоту в пикселях - но пиксели не квадратные.
Об этом упомянуто в РЭ:

59919

https://owen.ru/uploads/314/re_spk1hh_m01__1-ru-44362-1.19.pdf

Можете учитывать этот факт при задании ширины/высоты элементов - тогда "сплющивания" не будет.

Эдуард_Н
27.03.2022, 11:31
Эдуард_Н. Почему вы считаете что можно вот так появиться и засерать все ветки форума сразу своими, извините но глупыми вопросами. Вас 4 года не было на форуме и форум можно было читать. И вот вы вернулись. Проявляйте уважение к собеседникам и к Овну в первую очередь.

Извините, исправился, всё удалил.

Евгений Кислов
27.03.2022, 11:45
59922Пожалуйста уберите имя из пятого пункта.

Выполнено.

Эд_Т
28.03.2022, 15:31
Подскажите, есть ли ограничения по использованию изображений, с какими расширениями нельзя использовать картинки?59965 59966во фрейме теряется изображение.

Евгений Кислов
28.03.2022, 16:06
Подскажите, есть ли ограничения по использованию изображений, с какими расширениями нельзя использовать картинки?59965 59966во фрейме теряется изображение.

Поддерживаются графические файлы форматов .bmp, .jpg, jpeg, .png, .svg.
В таргет-визуализации СПК не поддерживается .gif (но при этом поддерживается в web-визуализации).
Если вы используете один из поддерживаемых форматов - то, пожалуйста, сделайте простейший проект, на котором я смогу воспроизвести проблему, и выложите его сюда.

Эд_Т
28.03.2022, 16:33
Поддерживаются графические файлы форматов .bmp, .jpg, jpeg, .png, .svg.
В таргет-визуализации СПК не поддерживается .gif (но при этом поддерживается в web-визуализации).
Если вы используете один из поддерживаемых форматов - то, пожалуйста, сделайте простейший проект, на котором я смогу воспроизвести проблему, и выложите его сюда.
На форум не даёт выложить, может ещё куда можно выложить?

Евгений Кислов
28.03.2022, 16:39
На форум не даёт выложить, может ещё куда можно выложить?

На любой файлообменник - и выложить ссылку.

Эд_Т
28.03.2022, 16:55
На любой файлообменник - и выложить ссылку.

Отправил на почту вам.

Евгений Кислов
28.03.2022, 17:14
Отправил на почту вам.

Письмо получил. Завтра утром посмотрю проект и отвечу вам здесь.

Евгений Кислов
28.03.2022, 17:22
После беглого просмотра:

- .gif в таргет-визуализации (на экране СПК) отображаться не будут
- картинки с кириллическими ID ("спк-график2.BMP" и т.п.) отображаться не будут
- картинки со спецсимволами в ID ("PlcLogic\visu\знаки инфо копия.gif" и т.п.) отображаться не будут

Эд_Т
28.03.2022, 18:00
После беглого просмотра:

- .gif в таргет-визуализации (на экране СПК) отображаться не будут
- картинки с кириллическими ID ("спк-график2.BMP" и т.п.) отображаться не будут
- картинки со спецсимволами в ID ("PlcLogic\visu\знаки инфо копия.gif" и т.п.) отображаться не будут

Хорошо, спасибо. Утром тоже попробую изменить.

Эдуард_Н
29.03.2022, 09:17
После беглого просмотра:

- .gif в таргет-визуализации (на экране СПК) отображаться не будут
- картинки с кириллическими ID ("спк-график2.BMP" и т.п.) отображаться не будут
- картинки со спецсимволами в ID ("PlcLogic\visu\знаки инфо копия.gif" и т.п.) отображаться не будут

А картинки со спецсимволами, это как?

Евгений Кислов
29.03.2022, 09:22
А картинки со спецсимволами, это как?

"картинки со спецсимволами в ID"

"PlcLogic\visu\знаки инфо копия.gif" - в ID картинки используется обратный слэш (https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_% D0%BA%D0%BE%D1%81%D0%B0%D1%8F_%D1%87%D0%B5%D1%80%D 1%82%D0%B0).

Эдуард_Н
29.03.2022, 09:42
Пытаюсь присвоить типу аварий значок, в старых версиях нормально всё было, а в новых КДС и СПК не отображаются. Имена картинок не на кириллице.599815998259983

Евгений Кислов
29.03.2022, 09:51
Пытаюсь присвоить типу аварий значок, в старых версиях нормально всё было, а в новых КДС и СПК не отображаются. Имена картинок не на кириллице.

Чтобы я мог как-то прокомментировать ситуацию - выложите, пожалуйста, проект, файл значка и пошаговую инструкцию, как мне воспроизвести проблему.

Эдуард_Н
29.03.2022, 10:47
Чтобы я мог как-то прокомментировать ситуацию - выложите, пожалуйста, проект, файл значка и пошаговую инструкцию, как мне воспроизвести проблему.

Отправил на почту, заранее благодарен.

Евгений Кислов
29.03.2022, 10:51
Отправил на почту, заранее благодарен.

Как я уже вчера писал - gif в таргет-визуализации (на экране СПК) отображаться не будут.

https://owen.ru/forum/showthread.php?t=22038&p=377902&viewfull=1#post377902

Эдуард_Н
29.03.2022, 11:02
Как я уже вчера писал - gif в таргет-визуализации (на экране СПК) отображаться не будут.

https://owen.ru/forum/showthread.php?t=22038&p=377902&viewfull=1#post377902

Раньше отображались нормально. СПАСИБО.

Newcomer
31.03.2022, 12:56
Сделал визуализацию с одним экраном. После запуска проекта на СПК визуализация должна появиться на экране без лишних телодвижений ?

Евгений Кислов
31.03.2022, 12:59
Сделал визуализацию с одним экраном. После запуска проекта на СПК визуализация должна появиться на экране без лишних телодвижений ?

Зависит от настроек проекта.
Если действовать по инструкциям из наших документов - то да.

Newcomer
31.03.2022, 13:29
Если действовать по инструкциям из наших документов - то да.

Ваш документ - это CODESYS V3.5 FAQ ?

Евгений Кислов
31.03.2022, 13:34
Ваш документ - это CODESYS V3.5 FAQ ?

У нас больше документов - еще, например, есть CODESYS V3.5. Первый старт и CODESYS V3.5. Визуализация.

Newcomer
31.03.2022, 13:44
У нас больше документов - еще, например, есть CODESYS V3.5. Первый старт и CODESYS V3.5. Визуализация.

И в каком из этих трех документов ответ на мой вопрос ?

Евгений Кислов
31.03.2022, 13:46
И в каком из этих трех документов ответ на мой вопрос ?

Ответ на ваш вопрос дан несколько постов выше.
Поскольку вы не уточняете, что называете "лишними телодвижениями" - то я не могу дать более развернутый комментарий.

Newcomer
31.03.2022, 13:50
Ответ на ваш вопрос дан несколько постов выше.
Поскольку вы не уточняете, что называете "лишними телодвижениями" - то я не могу дать более развернутый комментарий.

Лишние телодвижения - это полное отсутствие телодвижений. Т.е. подаю питание на СПК, в которую загружен проект и на экране появляется моя визуализация.

Евгений Кислов
31.03.2022, 13:52
Лишние телодвижения - это полное отсутствие телодвижений. Т.е. подаю питание на СПК, в которую загружен проект и на экране появляется моя визуализация.

Если ваш проект содержит визуализацию - то после подачи питания и загрузки контроллера она автоматически отобразится на экране.

Newcomer
31.03.2022, 13:55
Если ваш проект содержит визуализацию - то после подачи питания и загрузки контроллера она автоматически отобразится на экране.

А что означает ваша фраза - "Зависит от настроек проекта".

Евгений Кислов
31.03.2022, 14:39
А что означает ваша фраза - "Зависит от настроек проекта".

На определенных прошивках можно было создать проект без визуализации - тогда, соответственно, визуализации не будет.
Можно создать проект, который при запуске будет вылетать в исключение - тогда визуализации тоже не будет.

Spawn
08.04.2022, 12:49
Всем доброго времени суток.

Добавил в проект OwenVisuDialogs_v3.5.16.3.library, теперь CODESYS "ругается" на отсутствующую StringUtils 3.5.14.0.

Как быть?

Евгений Кислов
08.04.2022, 13:09
Всем доброго времени суток.

Добавил в проект OwenVisuDialogs_v3.5.16.3.library, теперь CODESYS "ругается" на отсутствующую StringUtils 3.5.14.0.

Как быть?

Добрый день.
Можете открыть ее как проект и вручную заменить StringUtils на 3.5.15.0.

Это наша недоработка - поправим в следующей сборке.

Spawn
08.04.2022, 13:11
Добрый день.
Можете открыть ее как проект и вручную заменить StringUtils на 3.5.15.0.

Это наша недоработка - поправим в следующей сборке.

Евгений, спасибо за помощь, сейчас попробую.

Spawn
08.04.2022, 13:19
Поменял, теперь в проекте ошибок нет.

Spawn
08.04.2022, 13:59
Евгений, не подскажите еще пару моментов (по СПК110[M01])?

Тренды в SP16 Patch 3 "умеют" переключать видимость кривых? Т.е. у меня на тренде отображаются кривые трех переменных. Я могу отключить, например, отображение кривой одной из них?

И еще вопрос по сохранению трендов. Куда он (компонент Тренд) "складирует" свои данные, во внутреннюю память или SD (при ее наличии в СПК)? Не нашел данную информацию в документации (или плохо искал).

Евгений Кислов
08.04.2022, 14:02
Евгений, не подскажите еще пару моментов (по СПК110[M01])?

Тренды в SP16 Patch 3 "умеют" переключать видимость кривых? Т.е. у меня, например, на тренде отображаются кривые трех переменных. Я могу отключить, например, отображение кривой одной из них?

И еще вопрос по сохранению трендов. Куда он (компонент Тренд) "складирует" свои данные, во внутреннюю память или SD (при ее наличии в СПК)? Не нашел данную информацию в документации (или плохо искал).

1. Да, можно управлять видимостью из кода.

ПКМ на тренд - Параметры отображения тренда

60229

2. Тренд хранит свои файлы во внутренней памяти.
В грядущей прошивке мы поддержали возможность сохранения файлов тренда на USB/SD-накопители.

Spawn
08.04.2022, 14:04
1. Да, можно управлять видимостью из кода.

ПКМ на тренд - Параметры отображения тренда

60229

2. Тренд хранит свои файлы во внутренней памяти.
В грядущей прошивке мы поддержали возможность сохранения файлов на тренда на USB/SD-накопители.

Понял, спасибо большое.

Spawn
09.04.2022, 13:54
Евгений, не подскажите, в чем проблема?

60254

Добавил на экран визуализации прямоугольник (с текущим временем). У прямоугольника конфигурация ввода: OnMouseClick -> Открыть диалог -> OVD.TimeSetOwen.

При нажатии на поле в RunTime появляется сообщение, указанное выше.

Евгений Кислов
09.04.2022, 13:58
Евгений, не подскажите, в чем проблема?

60254

Добавил на экран визуализации прямоугольник (с текущим временем). У прямоугольника конфигурация ввода: OnMouseClick -> Открыть диалог -> OVD.TimeSetOwen.

При нажатии на поле в RunTime появляется сообщение, указанное выше.

В настройках действия Открыть диалог обязательно надо к tNewTime привязать какую-то переменную типа TIME.

Spawn
10.04.2022, 13:07
В настройка действия Открыть диалог обязательно надо к tNewTime привязать какую-то переменную типа TIME.

Евгений, спасибо.

sslaventiy_85
17.04.2022, 15:09
Подскажите, как создать свой список для "Комбинированное окно - Целочисленный"? Чтоб при нажатии на треугольник справа высвечивался мой список.

Евгений Кислов
17.04.2022, 15:13
Подскажите, как создать свой список для "Комбинированное окно - Целочисленный"? Чтоб при нажатии на треугольник справа высвечивался мой список.

ПКМ на Application - Добавление объекта - Список текстов.
Указываете в нем соответствие между значениями целочисленной переменной и соответствующими им текстами.
Привязываете этот список к параметру Список текстов элемента "Комбинированное окно - Целочисленный".

sslaventiy_85
17.04.2022, 15:18
ПКМ на Application - Добавление объекта - Список текстов.
Указываете в нем соответствие между значениями целочисленной переменной и соответствующими им текстами.
Привязываете этот список к параметру Список текстов элемента "Комбинированное окно - Целочисленный".

Спасибо, Евгений.

gom
19.04.2022, 17:43
обновил CODESYS_3.5_SP16_Patch3 с CODESYS_3.5_SP14_Patch3 и плк 210 обновил прошивку до 1.3.0812.1315 всё делал по видеоинструкции.всё обновилось и все датчики, движки работает как раньше, но панель ВП110 (самой первой версии прошивки) все экраны стали выходить за границы панели-как бы не помещаются теперь. настройки как были так и остались - опции масштабирования 980*582, галочка стоит "фикс". в чём может быть причина?

Евгений Кислов
19.04.2022, 18:27
обновил CODESYS_3.5_SP16_Patch3 с CODESYS_3.5_SP14_Patch3 и плк 210 обновил прошивку до 1.3.0812.1315 всё делал по видеоинструкции.всё обновилось и все датчики, движки работает как раньше, но панель ВП110 (самой первой версии прошивки) все экраны стали выходить за границы панели-как бы не помещаются теперь. настройки как были так и остались - опции масштабирования 980*582, галочка стоит "фикс". в чём может быть причина?

Пришлите, пожалуйста, ваш проект (достаточно оставить один экран) и фото панели с ним, на котором видно проблему.

alexander.kinsfator@gmail.com
20.04.2022, 12:22
Здравствуйте!
Как то можно очистить старые данные в тренде?
ПЛК200.

Евгений Кислов
20.04.2022, 12:27
Здравствуйте!
Как то можно очистить старые данные в тренде?
ПЛК200.

Добрый день.
В настоящий момент нормального способа нет.
Он появится в грядущей прошивке.

Евгений Кислов
20.04.2022, 14:46
обновил CODESYS_3.5_SP16_Patch3 с CODESYS_3.5_SP14_Patch3 и плк 210 обновил прошивку до 1.3.0812.1315 всё делал по видеоинструкции.всё обновилось и все датчики, движки работает как раньше, но панель ВП110 (самой первой версии прошивки) все экраны стали выходить за границы панели-как бы не помещаются теперь. настройки как были так и остались - опции масштабирования 980*582, галочка стоит "фикс". в чём может быть причина?

Проблема связана со следующим.

В CODESYS V3.5 SP16 Patch 3 изменилось содержимое файла webvisu.htm (он расположен в директории /root/CODESYS/PlcLogic/visu).

В CODESYS V3.5 SP14 Patch 3 оно выглядело так:



<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="user-scalable=no">
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<script language="javascript" src="webvisu.js"></script>
<script language="javascript" src="browsercontrol_ext0.js"></script>

</head>
<body onload="new Webvisu('background', 'foreground', false, false)">
<div id="cdsRoot" style="position: absolute; left: 0px; top: 0px; width: 980px; height:582px; overflow:hidden">
<canvas id="background" width="980" height="582" style="position: absolute; left: 0px; top: 0px;">Webvisu not supported due to missing browser feature HTML5-Canvas</canvas>
<canvas id="foreground" width="980" height="582" style="position: absolute; left: 0px; top: 0px;">Webvisu not supported due to missing browser feature HTML5-Canvas</canvas>
</div>
</body>
</html>


В CODESYS V3.5 SP16 Patch 3 оно выглядит так:



<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<script language="javascript" src="webvisu.js"></script>
<script language="javascript" src="browsercontrol_ext0.js"></script>

</head>
<body onload="new Webvisu('background', 'foreground', false, false)">
<div id="cdsRoot" style="position: absolute; left: 0px; top: 0px; width: 980px; height:582px; overflow:hidden">
<canvas id="background" width="980" height="582" style="position: absolute; left: 0px; top: 0px;">Webvisu not supported due to missing browser feature HTML5-Canvas</canvas>
<canvas id="foreground" width="980" height="582" style="position: absolute; left: 0px; top: 0px;">Webvisu not supported due to missing browser feature HTML5-Canvas</canvas>
</div>
</body>
</html>


Если вы отредактируете эту страницу и перезаграгрузите панель - то все будет отображаться корректно.

60400

Есть нюанс - этот файл перезатирается при загрузке нового проекта.

Spawn
28.04.2022, 16:38
Всем доброго времени суток.

Столкнулся с такой проблемой на СПК110[М01]. В проекте, на одной из визуализаций добавил таблицу с выводом в нее определенных значений. Значения в таблицу выводятся из массива структур. Все работает отлично. Как только я начинаю работать с библиотеками SysDir (3.5.15.0), SysFile (3.5.15.0) и писать массив в файл, то при открытии визуализации с таблицей, СПК начинает "падать" в Exception. CodeSys показывает сообщение с текстом "Отсутствует исходный код для данного объекта, поскольку он относится к компилированной библиотеке 'collections, 3.5.13.0 (system). Выполнить поиск исходного кода библиотеки для отображения исходного кода?", в журнале появляются "маты" на компонент CmpIecTask, СПК показывает "Rised exception. Access violation". Запись (перезапись - старый удаляется, новый создается) данных в файл происходит по тригеру, можно писать n-ое количество раз, пока не "трогаешь" таблицу, как только выполняешь переход на визуализацию с таблицей, СПК уходит в Exception.

Куда копать?

Евгений Кислов
28.04.2022, 16:54
Куда копать?

Как обычно - в сторону отладки. Ссылка на статью по теме - в подписи.

Spawn
28.04.2022, 17:27
Как обычно - в сторону отладки. Ссылка на статью по теме - в подписи.

Евгений, какую ссылку Вы имеете в виду?

Не понятно какая взаимосвязь между SysDir/SysFile и отображением таблицы на экране СПК...

Евгений Кислов
28.04.2022, 17:34
Евгений, какую ссылку Вы имеете в виду?

Не понятно какая взаимосвязь между SysDir/SysFile и отображением таблицы на экране СПК...

Я имею в виду вот эту ссылку:
https://oscat.ru/?p=382


Access violation - это значит, что кто-то испортил память (https://ru.wikipedia.org/wiki/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%D1%81%D0%B5% D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0 %B8).
Отображение, как ни странно, производится путем работы с памятью.
Если она испорчена, то исключение - совершенно закономерный результат.
SysDir / SysFile - это работа с хэндлами и указателями - допустить ошибку несложно.

hermano
05.05.2022, 10:16
Здравствуйте, вопрос по созданию стиля в visualization style editor

1. Создаю новый элемент (типа переключателя) привязываю svg, но в visualization toolbox он не добавляется. Что нужно сделать, чтобы он добавлялся автоматически в toolbox?
2. Меняю уже существующие элементы (которые из родителя пришли), все нормально, но иконка в toolbox старая остается. Т.е. когда вставляешь, то картинка новая, но в меню старая. Можно это изменить.
3. Не могу создать свойства в Arbitary values с тем же именем как и элемент, хотя базовые элементы совпадают по имени.

Есть вообще подробная инструкция по этому приложению или описание xml?
Смотрю xml default style и непонятно откуда берется иконка для toolbox.

Евгений Кислов
05.05.2022, 10:23
Здравствуйте, вопрос по созданию стиля в visualization style editor

1. Создаю новый элемент (типа переключателя) привязываю svg, но в visualization toolbox он не добавляется. Что нужно сделать, чтобы он добавлялся автоматически в toolbox?
2. Меняю уже существующие элементы (которые из родителя пришли), все нормально, но иконка в toolbox старая остается. Т.е. когда вставляешь, то картинка новая, но в меню старая. Можно это изменить.
3. Не могу создать свойства в Arbitary values с тем же именем как и элемент, хотя базовые элементы совпадают по имени.

Есть вообще подробная инструкция по этому приложению или описание xml?
Смотрю xml default style и непонятно откуда берется иконка для toolbox.

Добрый день.

1. Редактор стилей не позволяет создавать новые элементы.
2. Насколько я знаю - иконку элемента через стиль поменять нельзя.
3. По описанию - неясно, что вы делаете и с какой целью, так что не могу дать какой-либо комментарий.

По стилям визуализации могу порекомендовать только эту статью:
https://oscat.ru/?p=352

hermano
05.05.2022, 12:41
Добрый день.

1. Редактор стилей не позволяет создавать новые элементы.
2. Насколько я знаю - иконку элемента через стиль поменять нельзя.
3. По описанию - неясно, что вы делаете и с какой целью, так что не могу дать какой-либо комментарий.

По стилям визуализации могу порекомендовать только эту статью:
https://oscat.ru/?p=352

Спасибо,
пункт 3 был про атрибуты, которые определяют некоторые параметры элементов после вставки, но учитывая ответ на пункты 1 и 2, это не имеет смысла.

Будем ждать новых версий, может допилят стилизацию.

v_xxx
05.05.2022, 22:48
Добрый вечер. Подскажите пожалуйста новички вот по такому вопросу.
Использую CODESYS V3.5 SP14 Patch 3 (CFC) СПК107[M01]
Как определит в коде программы какое окно визуализации открыто на данный момент?
И как открыть определенное окно визуализации из кода программы?
Заранее спасибо!

Евгений Кислов
06.05.2022, 06:28
Добрый вечер. Подскажите пожалуйста новички вот по такому вопросу.
Использую CODESYS V3.5 SP14 Patch 3 (CFC) СПК107[M01]
Как определит в коде программы какое окно визуализации открыто на данный момент?
И как открыть определенное окно визуализации из кода программы?
Заранее спасибо!

Добрый день.
Насколько я понимаю - "окном" вы называете экран визуализации.

1. Если с визуализацией работает только один клиент (например, оператор работает с дисплеем СПК) - то можно использовать системную переменную VisuElems.CurrentVisu (тип STRING).
Для этого нужно поставить соответствующую галочку в менеджере визулизации:

60567

После этого можно использовать ее в коде:

60568

2. Если с визуализацией могут одновременно работать несколько клиентов (это касается веб-визуализации), то ситуация становится сложнее.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

v_xxx
06.05.2022, 09:55
Спасибо за ответ! Я так понимаю что VisuElems.CurrentVisu можно использовать для открытия экрана визуализации из кода, например записав в эту переменную стоку типа 'Viz1' а также читая из этой переменной строку в ней будет имя экрана открытого в данный момент?

Евгений Кислов
06.05.2022, 10:42
Спасибо за ответ! Я так понимаю что VisuElems.CurrentVisu можно использовать для открытия экрана визуализации из кода, например записав в эту переменную стоку типа 'Viz1' а также читая из этой переменной строку в ней будет имя экрана открытого в данный момент?

Да, именно так.

v_xxx
06.05.2022, 10:43
Ок. Спасибо.

v_xxx
06.05.2022, 19:16
Возник новый вопрос! Я правильно понял что переменная VisuElems.CurrentVisu работает только с экранами? А как вызвать диалог?
Пробывал поменять в свойствах экрана галочку на диалог и экран перестаёт вызываться, при галочке экран всё работает.

Евгений Кислов
06.05.2022, 22:20
Возник новый вопрос! Я правильно понял что переменная VisuElems.CurrentVisu работает только с экранами? А как вызвать диалог?
Пробывал поменять в свойствах экрана галочку на диалог и экран перестаёт вызываться, при галочке экран всё работает.

Да, CurrentVisu работает только с экранами.
Вызвать диалог из кода можно с помощью библиотеки Visu Utils:
https://youtu.be/_kA9WVtbg3A

v_xxx
06.05.2022, 22:33
Спасибо, буду пробывать!

v_xxx
09.05.2022, 18:17
Добрый день. Помогите пожалуйста еще с одним вопросом!
В проекте на СПК107 [m01] (CODESYS V3.5 SP14 Patch 3) выводится на экран тренд, настройки такие - число переменных - 1 сохранение каждые N мс - 10000 максимальный размер 1Мб пишет одну переменную INT.
Выведен на экран селектор времени. от 10сек. до 5 часов.
Сам проект очень простой. Идет опрос 2 устройств по modbus rtu rs485. (с двух разных RS портов) читается около 30 регистров (в основном WORD)
Сама программа на CFC - около 100 блоков.
Реализована WEB-визуализация. (копия основного экрана)

Проблемы начинаются после заполнения графика больше 2-3 часов. График начинает сильно тормозить и практически перестаёт переключатся масштаб времени. И начинаются тормоза интерфейса - но только на том экране на котором выведен график!

Есть-ли решение данной проблемы? или это особенность работы СПК107?

Евгений Кислов
09.05.2022, 19:59
Добрый день. Помогите пожалуйста еще с одним вопросом!
В проекте на СПК107 [m01] (CODESYS V3.5 SP14 Patch 3) выводится на экран тренд, настройки такие - число переменных - 1 сохранение каждые N мс - 10000 максимальный размер 1Мб пишет одну переменную INT.
Выведен на экран селектор времени. от 10сек. до 5 часов.
Сам проект очень простой. Идет опрос 2 устройств по modbus rtu rs485. (с двух разных RS портов) читается около 30 регистров (в основном WORD)
Сама программа на CFC - около 100 блоков.
Реализована WEB-визуализация. (копия основного экрана)

Проблемы начинаются после заполнения графика больше 2-3 часов. График начинает сильно тормозить и практически перестаёт переключатся масштаб времени. И начинаются тормоза интерфейса - но только на том экране на котором выведен график!

Есть-ли решение данной проблемы? или это особенность работы СПК107?

Добрый день.
Тормоза наблюдаются только на экране СПК или в веб-визуализации тоже?
Вообще, тренд - это довольно ресурсоемкий элемент, но настолько сильных тормозов с ним быть не должно.

v_xxx
09.05.2022, 22:04
Тормоза везде одинаковые. И в WEB и на экране!

Евгений Кислов
11.05.2022, 06:17
Тормоза везде одинаковые. И в WEB и на экране!

Выложите проект, на котором можно воспроизвести проблему - посмотрим, в чем может быть дело.

v_xxx
11.05.2022, 14:36
Буду очень признателен за помощь.
Выкладываю проект он пока не полностью доделан, осталось подправить графику, но в целом проект готов.
Для теста на график выводится "пила" затем будет выводится температура.
Напомню - что проблема провялятся после заполнения графика на 2-3 часа.
По проекту, если что не так, то сильно не пинайте!!! ))) Это моя первая программа на codesys 3.5. (да и на codesys 2.3 всего насколько программ делал)
Если не сложно пробегитесь по проекту, может есть какие грубые ошибки!
Заранее благодарю!

https://disk.yandex.ru/d/EfnoSeMRySqIjw

Евгений Кислов
13.05.2022, 06:19
Буду очень признателен за помощь.
Выкладываю проект он пока не полностью доделан, осталось подправить графику, но в целом проект готов.
Для теста на график выводится "пила" затем будет выводится температура.
Напомню - что проблема провялятся после заполнения графика на 2-3 часа.
По проекту, если что не так, то сильно не пинайте!!! ))) Это моя первая программа на codesys 3.5. (да и на codesys 2.3 всего насколько программ делал)
Если не сложно пробегитесь по проекту, может есть какие грубые ошибки!
Заранее благодарю!

https://disk.yandex.ru/d/EfnoSeMRySqIjw

Ваш проект в моем СПК работал в течение суток, и после этого я проверил работу тренда.
Переключение масштаба графика занимает около секунды, прокрутка происходит без "тормозов".
Т.е. у меня проблема не повторяется.

Но я проводил тест на последней доступной прошивке СПК (с CODESYS V3.5 SP16 Patch 3).
Могу порекомендовать вам обновить прошивку (см. файл !!!Readme.txt перед начало прошивки) и перенести проект в новую версию CODESYS.

v_xxx
13.05.2022, 11:42
Спасибо за помощь. В этом проекте вывел график при помощи трассировки. (уже пора сдавать объект) работает всё достаточно хорошо. По поводку перехода на SP16 тоже думал! Немного позже буду опробовать этот вариант уже та тестовом стенде.
Подскажите пожалуйста, есть-ли какие либо грубые ошибки в проекте? (если конечно у вас была возможность посмотреть!)

Евгений Кислов
13.05.2022, 11:49
Подскажите пожалуйста, есть-ли какие либо грубые ошибки в проекте? (если конечно у вас была возможность посмотреть!)

Извините, я не занимаюсь рецензированием проектов.
Кроме того, ошибка - это несоответствие между требуемым поведением и реальным - а я не знаю, какое поведение требуется в рамках вашей конкретной задачи.

v_xxx
13.05.2022, 12:32
Понял. В любом случае спасибо за помощь.

Vos-svar
17.05.2022, 11:50
Добрый день!
Подскажите пожалуйста есть ли возможность узнать какой кнопкой было закрыто окно сообщений OVD.MessageBoxOwen?
Конструкция OVD.DialogsSettings.g_stClosedDialogInfo.eDialogCl osingResult позволяет узнать кнопки для OVD.KeypadOwenBig или OVD.NumpadOwenBig, вот что то подобное бы для MessageBox.

Евгений Кислов
17.05.2022, 12:26
Добрый день!
Подскажите пожалуйста есть ли возможность узнать какой кнопкой было закрыто окно сообщений OVD.MessageBoxOwen?
Конструкция OVD.DialogsSettings.g_stClosedDialogInfo.eDialogCl osingResult позволяет узнать кнопки для OVD.KeypadOwenBig или OVD.NumpadOwenBig, вот что то подобное бы для MessageBox.

Добрый день.
Это можно сделать, если MessageBox открыт из кода.
В примере использования библиотеки это демонстрируется.

Vos-svar
17.05.2022, 12:31
Да пример изучил, а для другого способа вывода MessageBox, есть способ узнать кнопки?

Евгений Кислов
17.05.2022, 13:00
Да пример изучил, а для другого способа вывода MessageBox, есть способ узнать кнопки?

Библиотека доступна в исходниках - можете по аналогии с другими диалогами добавить в MessageBox запись результат закрытия диалога в g_stClosedDialogInfo.

Vos-svar
17.05.2022, 14:25
Спасибо за ответы, попробую "поковыряться"

Vos-svar
17.05.2022, 20:55
Самое простое оказалось в стандартной библиотеке OwenVisuDialogs_v3.5.14.3.library, в Global Data, в OwenLocalParameters закоментировать вторую строку {attribute 'hide'}. Таким образом я в своей программе получил доступ к состоянию кнопок OVD.OwenLocalParameters.g_axMessageBoxButtonPresse d[]

Шикова Анна
30.05.2022, 22:40
Здравствуйте. Стоит задача реализации возможности изменения текущего системного времени из окна визуализации.
При попытке реализовать это через библиотеку OVD выдает показанное окно. 60988
Подскажите, пожалуйста, что требуется сделать для реализации задуманного. Может быть, подскажете другую библиотеку или другой способ реализации данной задачи.
Версия CoDeSys 3.5 SP14 Patch3.

Евгений Кислов
31.05.2022, 06:18
Здравствуйте. Стоит задача реализации возможности изменения текущего системного времени из окна визуализации.
При попытке реализовать это через библиотеку OVD выдает показанное окно. 60988
Подскажите, пожалуйста, что требуется сделать для реализации задуманного. Может быть, подскажете другую библиотеку или другой способ реализации данной задачи.
Версия CoDeSys 3.5 SP14 Patch3.

Добрый день.
Посмотрите пример - там это демонстрируется:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_OwenVisuDialogs_3514v3.projectarchive

ВладОвен
31.05.2022, 14:28
Здравствуйте.
Подскажите, как в визуализации CodeSys в таблице заменить значения логической переменной False/True на человеко-понятный символ "галочка/крестик"?
Вот в такой таблице заменить значения:
61000

на такие:
61001

Евгений Кислов
31.05.2022, 14:31
Здравствуйте.
Подскажите, как в визуализации CodeSys в таблице заменить значения логической переменной False/True на человеко-понятный символ "галочка/крестик"?
Вот в такой таблице заменить значения:
61000

на такие:
61001

Добрый день.
Поставьте для этого столбца галочку Столбец изображения.

61002

Это должен быть столбец типа STRING - передавайте в него ID изображений из Пула изображений.

ВладОвен
31.05.2022, 17:44
Точняк! Спасибо.
Так визуализация красивее.

61004

Но в программе придется учитывать это логическое значение не так:



IF arrFlags[index] THEN
...
END_IF


А вот так:



IF find(arrFlags[index], 'yes')=1 THEN
...
END_IF


Т.е. проверка не на логическое значение в ячейке, а поиск вхождения текстовой строки (фактически: сравнение строк)
(ID рисунка с галочкой у меня в проекте называется - yes)

ВладОвен
01.06.2022, 12:56
Здравствуйте.
Подскажите, как в CodeSys сохранять текущий выбранный язык?
А то неудобно как-то получается: выбрали, например, язык№3. Работает с ним. Но завтра включаем систему, а там - язык№1. Снова выбирать приходится.

Евгений Кислов
01.06.2022, 13:00
Здравствуйте.
Подскажите, как в CodeSys сохранять текущий выбранный язык?
А то неудобно как-то получается: выбрали, например, язык№3. Работает с ним. Но завтра включаем систему, а там - язык№1. Снова выбирать приходится.



Добрый день.
После выбора языка сохраняйте его значение (VisuElems.CURRENTLANGUAGE) в RETAIN-переменную типа STRING.
После загрузки проекта - копируйте из RETAIN-переменной в VisuElems.CURRENTLANGUAGE это сохраненное значение.

ВладОвен
01.06.2022, 14:03
Евгений, так не получается.
В меню где выбирается язык у меня несколько кнопок.
В каждой кнопке при нажатии на нее (mouse click) отрабатывается следующая последовательность:

1. Смена языка на выбранный в этой кнопке
2. Смена экрана визуализации (на начальный экран)
3. Сохраняем переменную текущего языка (VisuElems.CURRENTLANGUAGE) в энергонезависимую ячейку (sCurrentLanguageRETAIN).

61027

Наблюдая за поведениями этих переменных, я сделал вывод, что к моменту отработки пункта 3, переменная VisuElems.CURRENTLANGUAGE еще не переключилась.
Поэтому в энергонезависимую ячейку запишется еще неизменившейся язык. Потом вы передерните питание ПЛК и увидите, что язык остался прежний.
(Я учел и то, что энергонезависимые ячейки физически пишутся с небольшой задержкой. Контролировал это).

Евгений Кислов
01.06.2022, 14:11
Евгений, так не получается.
В меню где выбирается язык у меня несколько кнопок.
В каждой кнопке при нажатии на нее (mouse click) отрабатывается следующая последовательность:

1. Смена языка на выбранный в этой кнопке
2. Смена экрана визуализации (на начальный экран)
3. Сохраняем переменную текущего языка (VisuElems.CURRENTLANGUAGE) в энергонезависимую ячейку (sCurrentLanguageRETAIN).

61027

Наблюдая за поведениями этих переменных, я сделал вывод, что к моменту отработки пункта 3, переменная VisuElems.CURRENTLANGUAGE еще не переключилась.
Поэтому в энергонезависимую ячейку запишется еще неизменившейся язык. Потом вы передерните питание ПЛК и увидите, что язык остался прежний.
(Я учел и то, что энергонезависимые ячейки физически пишутся с небольшой задержкой. Контролировал это).



Тогда сделайте иначе - вообще уберите действие Изменить язык и переключайте его в действии Выполнить ST-код (записывайте название языка в VisuElems.CURRENTLANGUAGE и вашу RETAIN-переменную).

ВладОвен
01.06.2022, 14:40
Так работает. Спасибо.

Но обратите внимание: я записываю в переменную языка VisuElems.CURRENTLANGUAGE значение 'Eng'. В системе он именно так и называется - 'Eng'.
Переменная на мгновение принимает это значение. Это видно. Но после отработки (т.е. после фактической смены языка) она становится равна 'eng' (большая буква сменяется прописной!).
А в энергонезависимую ячейку записалось-то 'Eng'!

61031

В общем: что-бы не кусать потом локти - лучше называть все языки в ПЛК прописными буквами.
И могут быть траблы (неожиданные результаты) при сравнивании этих строковых значений (например, при помощи функции find()).

ВладОвен
01.06.2022, 14:44
Евгений, а спойлеры (скрытый текст) на форуме индексируются поисковыми роботами? Может я зря делаю их?

Евгений Кислов
01.06.2022, 16:08
В CODESYS уже есть встроенный язык 'en', зачем самому создавать какой-то 'Eng' - мне непонятно.

Насчет индексирования содержимого спойлеров - я не в курсе.

ВладОвен
06.06.2022, 16:46
Здравствуйте. Подскажите как можно реализовать многострочный текст?
Я хочу "МногоБукв" написать во всплывающем окне, но разбивать его на 5-6 строк как-то не хочется.
А как потом реализовать перевод на разные языки? Много ID-текстов тоже как-то не хочется.
(CodeSys3.5)
Спасибо.

Евгений Кислов
06.06.2022, 16:55
Здравствуйте. Подскажите как можно реализовать многострочный текст?
Я хочу "МногоБукв" написать во всплывающем окне, но разбивать его на 5-6 строк как-то не хочется.
А как потом реализовать перевод на разные языки? Много ID-текстов тоже как-то не хочется.
(CodeSys3.5)
Спасибо.

Добрый день.
У вас текст что из себя представляет?
Запись в списке текстов, строковую переменную или что-то еще?

ВладОвен
06.06.2022, 17:21
Вопрос снимается. Разобрался.
Пишу длинный текст в графическом элементе "Прямоугольник". Потом вставляю в "Динамические текста" номер ID текста.
Работает нормально.

service
11.06.2022, 14:42
Как вставить картинку в визуализацию при загрузке спк 110. Подаём питание, появляется овен, затем no visualisation, затем рабочая визуализация. Вот эту no visualisation кратковременную как заполнить или убрать?

Евгений Кислов
11.06.2022, 14:53
Как вставить картинку в визуализацию при загрузке спк 110. Подаём питание, появляется овен, затем no visualisation, затем рабочая визуализация. Вот эту no visualisation кратковременную как заполнить или убрать?

Какая у вашего СПК версия прошивки?

service
13.06.2022, 17:20
1.1.0611.1056

Евгений Кислов
13.06.2022, 17:31
1.1.0611.1056

В этой прошивке подобной возможности нет.
В более новых - можно заменить картинку "no visualisation" на свою.

sssssaaaaabbbbb
20.06.2022, 13:34
Здравствуйте, подскажите, как встроить картинку в визуализацию кодесис 3.5?

Евгений Кислов
20.06.2022, 13:37
Здравствуйте, подскажите, как встроить картинку в визуализацию кодесис 3.5?

Добрый день.
Сначала картинку нужно добавить в пул изображений.
См. п. 7.13:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.3.0.pdf

После этого можно использовать ее в элементе Изображение (вкладка элементов Стандартные).

service
20.06.2022, 19:49
Возможно ли сделать кнопку невидимой при значении переменой false?

Евгений Кислов
20.06.2022, 19:51
Возможно ли сделать кнопку невидимой при значении переменой false?

Вы можете к параметру Переменные состояния/Невидимый привязать инвертированное значение вашей переменной, использовав оператор NOT.

service
21.06.2022, 14:13
В этой прошивке подобной возможности нет.
В более новых - можно заменить картинку "no visualisation" на свою.

А в данной прошивке есть ли такая возможность 1.2.0803.1220?

Евгений Кислов
21.06.2022, 14:35
А в данной прошивке есть ли такая возможность 1.2.0803.1220?

Да, есть.
См. в web-конфигураторе вкладку ПЛК/Заставка.

service
24.06.2022, 16:50
Картинки добавил, сохранил. NO VISUALISATION исчезла, но и картинки не появились. Просто темный экран

Евгений Кислов
24.06.2022, 17:40
Картинки добавил, сохранил. NO VISUALISATION исчезла, но и картинки не появились. Просто темный экран

Выложите скриншот вкладки и вашу картинку.

Pronto72
24.06.2022, 19:51
Какой прибор наиболее "мощный" с точки зрения визуализаций? Т.е. много насыщенных страниц, много пользователей... У ПЛК200 мощнее процессор, у СПК больше памяти...
P.S. Существует ли перечень Codesys-поддерживающих устройств? На сайте Codesys не нашел...

Евгений Кислов
24.06.2022, 19:56
Какой прибор наиболее "мощный" с точки зрения визуализаций?

ПЛК2хх - как вы верно заметили, процессор мощнее + ему не приходится обрабатывать таргет-визу.

Pronto72
24.06.2022, 20:23
ПЛК2хх - как вы верно заметили, процессор мощнее + ему не приходится обрабатывать таргет-визу.
Cпасибо Евгений! Да, тагет-визуа навернео хорошо грузит, это же отдельныйц процесс, а не еще один пользователь веб-визу...
Если можно, задам еще один вопрос. Понимаю что не совсем корректно спрашивать тут о не Овен приборах, но возникла у меня сегодня маленькая задачка - несчастные 8 выходов, 4 входа дискретных и 5 аналоговых + примитивный алгоритм + 2-3 экрана визуалиазции. Если бы не нужен был контроль/управление через браузер и что важно, без всяких "облаков", то все просто было бы. А так даже и не знаю на какой прибор смотреть.

Евгений Кислов
24.06.2022, 20:34
Cпасибо Евгений! Да, тагет-визуа навернео хорошо грузит, это же отдельныйц процесс, а не еще один пользователь веб-визу...
Если можно, задам еще один вопрос. Понимаю что не совсем корректно спрашивать тут о не Овен приборах, но возникла у меня сегодня маленькая задачка - несчастные 8 выходов, 4 входа дискретных и 5 аналоговых + примитивный алгоритм + 2-3 экрана визуалиазции. Если бы не нужен был контроль/управление через браузер и что важно, без всяких "облаков", то все просто было бы. А так даже и не знаю на какой прибор смотреть.

ПЛК200-04 практически подходит (не хватает одного AI; но можно использовать для этого МВ110-2А).
Или, как обычно, надо ультрабюджетно?

Pronto72
24.06.2022, 21:01
ПЛК200-04 практически подходит (не хватает одного AI; но можно использовать для этого МВ110-2А).
Спасибо. Думал о ПЛК200. Если ничего другого не придумается, то применю его.

Или, как обычно, надо ультрабюджетно?
Я подрядчик. Раньше делал в основном на связке Modicon/Simatic + Delphi/WINCC. Последнее время стал смещаться в сторону Codesys - и контроллеры на нем многие пошли и писать удобно для одного устройства, на одном языке, и удобно для многооператорских систем. Да я даже "умный дом" у себя переписал! Убрал комп с веб-мордой на на Delphi.
Но иногда, как сейчас, делаешь людям большой проект, а они говорят - а там у нас еще хрень есть, можно ее сделать? Причем организационно не присобачишь ее к большой системе, всё должно быть автономно. И тут как бы и бюджет их не жалко, и проще тот же ПЛК2хх купить, но другой стороны это не единичный случай. Выстрелил из пушки по воробью раз, второй раз... а может можно было за те же деньги применить что-то более дешёвое? Надежное, но не такое мощное? А за сэкономленные деньги купить себе домой резервный СПК107 )))

Евгений Кислов
24.06.2022, 22:16
а может можно было за те же деньги применить что-то более дешёвое?

Как вы правильно заметили, веб-визу сильно ограничивает выбор.
Без нее можно было бы и ПР103 обойтись.

RamesIV
28.06.2022, 11:51
Здравствуйте!

Подскажите, пожалуйста, существует ли механизм работы со свойствами объекта (property) на визуализации (отображение, изменение)?

Евгений Кислов
28.06.2022, 12:00
Здравствуйте!

Подскажите, пожалуйста, существует ли механизм работы со свойствами объекта (property) на визуализации (отображение, изменение)?

Добрый день.
Уточните, пожалуйста - вы хотите обращаться к свойствам графических элементов без привязки переменных?

RamesIV
28.06.2022, 12:05
Добрый день.
Уточните, пожалуйста - вы хотите обращаться к свойствам графических элементов без привязки переменных?

Хочу отобразить Separator.Prop

61436

Евгений Кислов
28.06.2022, 12:10
Хочу отобразить Separator.Prop

61436

Вам нужно поставить вот эту галочку:

61437

RamesIV
28.06.2022, 12:21
Спасибо !

Карбофос
30.06.2022, 16:23
Здравствуйте!

Во всплывающих окнах мы используем кнопку "закрыть", в ней (Конфигурация ввода - OnMouseClick) необходимо прописать "CloseDialog" и выбрать окно из списка. Проблема такого решения в том, что при копировании кнопки "Закрыть" в другое окно команда не меняется, и кнопка по сути перестает работать, пока не поменяешь окно в ее свойствах.

Вопрос: нельзя ли прописать в OnMouseClick какую-то команду, которая закрывает не какое-то окно (по имени), а строго то, на котором расположена кнопка? Дабы при копировании она продолжала работать.

Евгений Кислов
30.06.2022, 16:25
Здравствуйте!

Во всплывающих окнах мы используем кнопку "закрыть", в ней (Конфигурация ввода - OnMouseClick) необходимо прописать "CloseDialog" и выбрать окно из списка. Проблема такого решения в том, что при копировании кнопки "Закрыть" в другое окно команда не меняется, и кнопка по сути перестает работать, пока не поменяешь окно в ее свойствах.

Вопрос: нельзя ли прописать в OnMouseClick какую-то команду, которая закрывает не какое-то окно (по имени), а строго то, на котором расположена кнопка? Дабы при копировании она продолжала работать.

Добрый день.
Такой функционал появился в CODESYS V3.5 SP17 Patch 3.
Теперь там в действии Закрыть диалог по умолчанию подставляется специальный плейсхолдер CurrentDialog, соответствующий диалогу, на котором расположен элемент с настраиваемым действием.

Карбофос
30.06.2022, 16:35
Добрый день.
Такой функционал появился в CODESYS V3.5 SP17 Patch 3.
Теперь там в действии Закрыть диалог по умолчанию подставляется специальный плейсхолдер CurrentDialog, соответствующий диалогу, на котором расположен элемент с настраиваемым действием.

Понял, ждем прошивку для СПК!

sssssaaaaabbbbb
05.07.2022, 12:25
Здравствуйте, подскажите пожалуйста, как сделать так, чтоб программа сама могла ввести цифры в текстовое окно в прямоугольнике61536 , мне нужно, чтоб менялось значение, после нажатия кнопки, просто замена переменных не подходит.

Евгений Кислов
05.07.2022, 12:28
Здравствуйие, подскажите пожалуйста, как сделать так, чтоб программа сама могла ввести цифры в текстовое окно в прямоугольнике61536 , мне нужно, чтоб менялось значение, после нажатия кнопки, просто замена переменных не подходит.

Добрый день.

Вы можете изменять значение переменной, привязанной к прямоугольнику, в коде программы - для этого не требуется дополнительных усилий.
В чем именно у вас проблема?
Что означает "просто замена переменных не подходит"?

sssssaaaaabbbbb
05.07.2022, 12:30
Добрый день.

Вы можете изменять значение переменной, привязанной к прямоугольнику, в коде программы - для этого не требуется дополнительных усилий.
В чем именно у вас проблема?
Что означает "просто замена переменных не подходит"?
мне нужно чтоб стерлась отображаемая цифра в этом прямоугольнике , ну или изменилась на 0

Евгений Кислов
05.07.2022, 12:33
мне нужно чтоб стерлась цифра в этом прямоугольнике , ну или изменилась на 0

Тогда в программе присвойте переменной, привязанной к элементу, значение 0.
Если нужно "стереть" значение - то тогда привяжите к элементу переменную типа STRING и присвойте пустую строку.

Пока не очень понятно, в чем у вас трудности.

sssssaaaaabbbbb
05.07.2022, 12:42
Тогда в программе присвойте переменной, привязанной к элементу, значение 0.
Если нужно "стереть" значение - то тогда привяжите к элементу переменную типа STRING и присвойте пустую строку.

Пока не очень понятно, в чем у вас трудности.

При нажатии кнопки, я присвавиваю переменной, привяжанной к текстовой части прямоугольника другое значение, но оно не меняется.

Евгений Кислов
05.07.2022, 12:49
При нажатии кнопки, я присвавиваю переменной, привяжанной к текстовой части прямоугольника другое значение, но оно не меняется.

Выложите простой проект, на котором это можно воспроизвести.

sssssaaaaabbbbb
05.07.2022, 12:53
Выложите простой проект, на котором это можно воспроизвести.

Как проект скинуть?

Евгений Кислов
05.07.2022, 13:05
Как проект скинуть?

Загрузить на https://dropmefiles.com/ и выложите сюда ссылку.
Сначала удалите из проекта все лишнее - оставьте только прямоугольник и код, которым пытаетесь изменить значение переменной прямоугольника.

sssssaaaaabbbbb
05.07.2022, 14:20
Загрузить на https://dropmefiles.com/ и выложите сюда ссылку.
Сначала удалите из проекта все лишнее - оставьте только прямоугольник и код, которым пытаетесь изменить значение переменной прямоугольника.

Спасибо Вам большое за отзыв, у меня все получилось 61540 Правильно было так

Евгений Кислов
07.07.2022, 14:01
в документации не встретилось как со спецификатором формата %d отобразить точку, для поучения числа с несколькими знаками после запятой из целочисленного. В реал всё переводить нужно?

Да, конвертировать в REAL. Встроенного функционала (как в панелях оператора) в CODESYS для этого нет.

capzap
07.07.2022, 14:06
может имеет смысл добавить в описание синтаксиса что касается только строк и вещественных чисел

Евгений Кислов
07.07.2022, 14:09
может имеет смысл добавить в описание синтаксиса что касается только строк и вещественных чисел 61562

Да, поправим при случае. Спасибо за замечание.

d_leushev
12.07.2022, 11:33
Есть ПЛК, он кабелем соединен с wi-fi роутером. На ПК, подключившись к сети роутера, могу через браузер (с использованием web-визуализации) управлять неким процессом. Вопрос, можно ли подключившись к сети роутера через телефон, отображать и собственно управлять процессом через браузер?

У меня телефон вот не подключается к сети роутера. IP-адреса на ПЛК и роутере - статические.

Евгений Кислов
12.07.2022, 11:36
Вопрос, можно ли подключившись к сети роутера через телефон, отображать и собственно управлять процессом через браузер?

Да.


У меня телефон вот не подключается к сети роутера.

Это не к нам вопрос. Пообщайтесь с человеком, который отвечает за настройку роутера.

d_leushev
12.07.2022, 12:30
Указав на телефоне статический IP, удалось подключиться.

Подскажите, а как можно менять отображение web-визуализации для разных клиентов? Т.е. на ПК один интерфейс, на телефоне другой.

И еще, можно ли, чтобы визуализация на телефоне масштабировалось в зависимости от диагонали подключенного телефона?

Евгений Кислов
12.07.2022, 12:43
Указав на телефоне статический IP, удалось подключиться.

Подскажите, а как можно менять отображение web-визуализации для разных клиентов? Т.е. на ПК один интерфейс, на телефоне другой.

И еще, можно ли, чтобы визуализация на телефоне масштабировалось в зависимости от диагонали подключенного телефона?

У вас настройках web-визуализации такой тип масштабирования установлен?

d_leushev
12.07.2022, 13:00
Изначально, я установил фиксированный размер. Если устанавливать автоматический размер, то в браузере ПК элементы интерфейса съезжают на середину экрана. А в браузере телефона происходит сильное размытие элементов.

Евгений Кислов
12.07.2022, 13:05
Изначально, я установил фиксированный размер. Если устанавливать автоматический размер, то в браузере ПК элементы интерфейса съезжают на середину экрана. А в браузере телефона происходит сильное размытие элементов.

Каких-то простых путей решения вашей задачи нет.
В любом случае потребуется создавать несколько копий каждого экрана с разным разрешением.
Далее можно добавить несколько узлов web-визуализации с различными именами страниц (pc.htm, mobile.htm и т.д.), и привязать к каждому свой стартовый экран с нужным разрешением.
И выдавать разным пользователям разные ссылки в зависимости от их устройств.

В принципе, можно определять разрешение конкретного клиента в коде программы и автоматически переключать его на экран нужного разрешения.
Но это будет несколько сложнее.
См. пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3517v2.projectarchive

3raider
13.07.2022, 09:47
Коллеги, привет! В последних версиях визуализации появилась функция OVERLAY и вместе с ней стало возможно мышкой перетаскивать диалоговые окна (ниже пример работы)
61632
Диалог открывается по конкретным координатам, которые динамически задаются в коде. Если ранее смещение в сторону делалось кнопками, то теперь появилась возможность перетаскивания, соответственно в какую точку "переехал" диалог, не понятно. Вопрос знатокам: есть ли стандартная функция, метод или какой другой способ получить актуальные координаты (X,Y) элемента?

Евгений Кислов
13.07.2022, 12:39
Коллеги, привет! В последних версиях визуализации появилась функция OVERLAY и вместе с ней стало возможно мышкой перетаскивать диалоговые окна (ниже пример работы)
61632
Диалог открывается по конкретным координатам, которые динамически задаются в коде. Если ранее смещение в сторону делалось кнопками, то теперь появилась возможность перетаскивания, соответственно в какую точку "переехал" диалог, не понятно. Вопрос знатокам: есть ли стандартная функция, метод или какой другой способ получить актуальные координаты (X,Y) элемента?

Добрый день.
Опишите, что именно вы собираетесь делать с координатами элемента?
Какая в конечном итоге цель?

3raider
13.07.2022, 16:16
Добрый день.
Опишите, что именно вы собираетесь делать с координатами элемента?
Какая в конечном итоге цель?

Евгений, хотим в итоге открывать дочернее диалоговое окно рядом с родительским (к примеру меню с параметрами) и "таскать" эти два диалоговых окна в сцепке ("приклеенными" к друг другу)
Примерно так
61643

Евгений Кислов
13.07.2022, 16:22
Евгений, хотим в итоге открывать дочернее диалоговое окно рядом с родительским (к примеру меню с параметрами) и "таскать" эти два диалоговых окна в сцепке ("приклеенными" к друг другу)
Примерно так
61643

Я думаю, что у вашей задачи нет изящного решения - слишком нестандартное поведение.
Можно сделать один диалог с прозрачным фоном (по-моему, такая возможность есть) и по необходимости в нем делать видимыми или невидимыми элементы "второго окна" (например, через фрейм).

sssssaaaaabbbbb
18.07.2022, 09:47
Здравствуйте, подскажите пожалуйста как сделать открытие визуализации из кода программы, допустим когда переменная сменилась с false на true?

Евгений Кислов
18.07.2022, 09:59
Здравствуйте, подскажите пожалуйста как сделать открытие визуализации из кода программы, допустим когда переменная сменилась с false на true?

Добрый день.
См. в библиотеке Visu Utils ФБ fbChangeVisu.

sssssaaaaabbbbb
18.07.2022, 10:13
Добрый день.
См. в библиотеке Visu Utils ФБ fbChangeVisu.

А где ее можно скачать?

Евгений Кислов
18.07.2022, 10:25
А где ее можно скачать?

Ее не надо скачивать - она входит в дистрибутив CODESYS.
Впрочем, ваш вопрос мне понятен - библиотека появилась в SP11, а Агава до сих пор сидит на SP10.
Могу только порекомендовать переходить на наши контроллеры.)

sssssaaaaabbbbb
18.07.2022, 10:43
Ее не надо скачивать - она входит в дистрибутив CODESYS.
Впрочем, ваш вопрос мне понятен - библиотека появилась в SP11, а Агава до сих пор сидит на SP10.
Могу только порекомендовать переходить на наши контроллеры.)

Вот это я начальству и доказываю сейчас, уже счет выписали на 20 ПЛК200 Спасибо Вам огромное

СергейНовосиб
18.07.2022, 10:47
У Агавы есть контроллер с экраном 15", а у вас нет.

Евгений Кислов
18.07.2022, 10:56
У Агавы есть контроллер с экраном 15", а у вас нет.

Справедливое замечание.
Мы тоже рассматриваем возможность выпуска такого СПК.

sssssaaaaabbbbb
18.07.2022, 11:48
А планирует ли ОВЕН выпуск панельного компьютера с windows или linux?

Евгений Кислов
18.07.2022, 12:00
А планирует ли ОВЕН выпуск панельного компьютера с windows или linux?

Таких планов нет.

sssssaaaaabbbbb
26.07.2022, 16:37
Здравствуйте, подскажите пожалуйста, где взять работающий ПИД-регулятор на ST-codesys

Евгений Кислов
26.07.2022, 16:48
Здравствуйте, подскажите пожалуйста, где взять работающий ПИД-регулятор на ST-codesys

Добрый день.

Например, в библиотеке Util.
https://help.codesys.com/webapp/o2pf-m4Nz7ZPrBsrPW-xdt6Wid4%2FPID_FIXCYCLE;product=Util;version=3.5.1 5.0

sssssaaaaabbbbb
04.08.2022, 11:53
Здравствуйте, есть ли в кодесис35 возможность менять шрифт на обьектах ввода? Н62014а картинке показал где. Нужно побольше сделать.

Евгений Кислов
04.08.2022, 12:25
Здравствуйте, есть ли в кодесис35 возможность менять шрифт на обьектах ввода? Н62014а картинке показал где. Нужно побольше сделать.

Добрый день.
Да, это возможно.
http://www.owen.ru/forum/showthread.php?t=28167&p=270956&viewfull=1#post270956

Рекомендую изучить нашу библиотеку диалогов - может, она сразу вам подойдет не потребуются никакие доработки:
https://owen.ru/forum/showthread.php?t=34327

Игорь П
06.08.2022, 23:55
Добрый день.
Использую в визуализации элемент таблица тревог. Заметил такую вещь, что если авария описанная в Alarmgroup срабатывает повторно, то появляется строка с новой датой и временем, а старая строка исчезает. Для каждой аварии отображается только одна строка с последней датой и временем срабатывания.
А есть возможность как то настроить события так, чтобы старые срабатывания аварий не удалялись из таблицы?
Кодесис 3.5, версия 14 патч 3.

Евгений Кислов
07.08.2022, 06:50
Добрый день.
Использую в визуализации элемент таблица тревог. Заметил такую вещь, что если авария описанная в Alarmgroup срабатывает повторно, то появляется строка с новой датой и временем, а старая строка исчезает. Для каждой аварии отображается только одна строка с последней датой и временем срабатывания.
А есть возможность как то настроить события так, чтобы старые срабатывания аварий не удалялись из таблицы?
Кодесис 3.5, версия 14 патч 3.

Добрый день.
Вам нужно настроить архивирование тревог и переключить таблицу в режим истории.
См. видео: https://youtu.be/LlLMSElG59I

Андрей Косоротов
11.08.2022, 07:58
Добрый день!

Есть вопрос. Установка опции "Поддержка клиентских анимаций" в менеджере визуализаций как влияет на производительность визуализации в реалиях связки ПЛК200/210 + ВП110? Уменьшает затраты ресурсов контроллера или увеличивает? По логике вещей должна уменьшать, так как часть "работы" перекладывается на клиент, то есть браузер.

Спасибо.

Евгений Кислов
11.08.2022, 08:01
Добрый день!

Есть вопрос. Установка опции "Поддержка клиентских анимаций" в менеджере визуализаций как влияет на производительность визуализации в реалиях связки ПЛК200/210 + ВП110? Уменьшает затраты ресурсов контроллера или увеличивает? По логике вещей должна уменьшать, так как часть "работы" перекладывается на клиент, то есть браузер.

Спасибо.

Добрый день.

Вы правы, эта опция должна уменьшать затраты ресурсов ПЛК на обработку визуализации.

Андрей Косоротов
11.08.2022, 08:09
Добрый день.

Вы правы, эта опция должна уменьшать затраты ресурсов ПЛК на обработку визуализации.

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

Евгений Кислов
11.08.2022, 08:14
Извините за назойливость. Но должна уменьшать, но не уменьшает или должна уменьшать и уменьшает)) Я понимаю, что задачи могут быть разными, где-то эффект есть, а где-то установка опции ничего не даёт. Но в "среднем по больнице" как? Кто-нибудь тестировал этот момент?

"В среднем по больнице" перемещение и вращение элементов используется в проектах не так часто, чтобы эффект был заметен.
Лучше воспринимать галочку как инструмент активации доп. возможностей (поддержку анимированных .svg и .gif, перетаскивание диалогов по экрану и т.д.), чем способ "ускорения" визуализации.

Андрей Косоротов
11.08.2022, 08:17
"В среднем по больнице" перемещение и вращение элементов используется в проектах не так часто, чтобы эффект был заметен.
Лучше воспринимать галочку как инструмент активации доп. возможностей (поддержку анимированных .svg и .gif, перетаскивание диалогов по экрану и т.д.), чем способ "ускорения" визуализации.

Спасибо за ответ. То есть на такие элементы как тренд и таблицы данная опция влияния не оказывает? Всё равно основную массу "работы" берет на себя контроллер?

Евгений Кислов
11.08.2022, 08:18
Спасибо за ответ. То есть на такие элементы как тренд и таблицы данная опция влияния не оказывает? Всё равно основную массу "работы" берет на себя контроллер?

Да, именно так.

Андрей Косоротов
11.08.2022, 08:22
Да, именно так.

И последний вопрос. В Codesys 3.5 SP18 для визуализации 4.2.0.0 вроде как анонсировали поддержку тегов HTML5 в визуализации. В каком виде это планируется? Можно ли где-то посмотреть/почитать про это? Даже на английском.

Евгений Кислов
11.08.2022, 08:26
И последний вопрос. В Codesys 3.5 SP18 для визуализации 4.2.0.0 вроде как анонсировали поддержку тегов HTML5 в визуализации. В каком виде это планируется? Можно ли где-то посмотреть/почитать про это? Даже на английском.

https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_html5_dev.html
https://forge.codesys.com/prj/codesys-example/html5apiexample/home/Home/

sssssaaaaabbbbb
17.08.2022, 16:47
Здравствуйте, подскажите пожалуйста, можно ли переменную bAckSel из таблицы АВАРИЙ увидеть в PLC.PRG? 62161 Мне нужно, чтоб после подтверждения квитирования звонок перестал звонить.

Евгений Кислов
17.08.2022, 16:51
Здравствуйте, подскажите пожалуйста, можно ли переменную bAckSel из таблицы АВАРИЙ увидеть в PLC.PRG? 62161

Добрый день.
Можно объявить эту переменную в программе и уже ее привязать к таблице и кнопке.

sssssaaaaabbbbb
18.08.2022, 16:12
Добрый день.
Можно объявить эту переменную в программе и уже ее привязать к таблице и кнопке.

А можно ли как то из программы отследить на форме работу индикатора?

Евгений Кислов
18.08.2022, 16:37
А можно ли как то из программы отследить на форме работу индикатора?

Не понимаю ваш вопрос. Сформулируйте его другими словами и более подробно, пожалуйста.

Андрей Косоротов
22.08.2022, 10:40
Добрый день!

Столкнулся сейчас с проблемой. Использую компонент тренд, где задал динамические границы по оси Z и скрытие отображения перьев по значению переменной. Однако когда меняю границы или перья для отображения, то обновление тренда происходит, только секунд через 10. Среда Codesys 3.5 SP17 Patch 3, проверяю на виртуальном контроллере, в ПЛК пока не смотрел.

Никто с такой проблемой не сталкивался?

Спасибо.

Евгений Кислов
22.08.2022, 10:46
Добрый день!

Столкнулся сейчас с проблемой. Использую компонент тренд, где задал динамические границы по оси Z и скрытие отображения перьев по значению переменной. Однако когда меняю границы или перья для отображения, то обновление тренда происходит, только секунд через 10. Среда Codesys 3.5 SP17 Patch 3, проверяю на виртуальном контроллере, в ПЛК пока не смотрел.

Никто с такой проблемой не сталкивался?

Спасибо.

Добрый день.
Выложите, пожалуйста, простой проект, на котором можно воспроизвести проблему.

Андрей Косоротов
22.08.2022, 12:33
Добрый день.
Выложите, пожалуйста, простой проект, на котором можно воспроизвести проблему.

Прикладываю проект. Небольшие комментарии:

1. Переключение перьев происходит через радиокнопки и переменную uiTrendGroup

2. Выбор диапазона времени - через выпадающий список. Диапазон подставляется через переменную liTrendDiapasone в селектор диапазонов времени, который скрыт и находится ниже выпадающего списка выбора диапазона времени.

Проблема наблюдается уже на 30 минутном диапазоне. Причем в SP16 такой проблемы не было.
И еще один момент - если переключить отображаемую переменную, а затем сразу же диапазон времени, то всё обновится сразу же.

Евгений Кислов
22.08.2022, 13:14
Смог воспроизвести эту проблему.
Похоже, она провилась либо в 3.5.17.x, либо в плагине визуализации 4.2.0.0.
Можете попробовать ее воспроизвести с плагином 4.1.1.0?

Андрей Косоротов
22.08.2022, 13:22
Смог воспроизвести эту проблему.
Похоже, она провилась либо в 3.5.17.x, либо в плагине визуализации 4.2.0.0.
Можете попробовать ее воспроизвести с плагином 4.1.1.0?

Я бы и рад, но почему-то не могу выбрать профиль визуализации 4.1.1.0 в установках проекта. Причем Codesys Installer показывает, что профиль установлен. Может у меня как-то криво установилось всё?

Евгений Кислов
22.08.2022, 13:28
Я бы и рад, но почему-то не могу выбрать профиль визуализации 4.1.1.0 в установках проекта. Причем Codesys Installer показывает, что профиль установлен. Может у меня как-то криво установилось всё?

Нет, так и должно быть.
В пределах окружения доступна только одна версия плагина - которая устанавливалась последней.
Вам нужно другое через CODESYS создать еще одно окружение (add installation) с той же версией CODESYS, но другой версией плагина визуализации.

Андрей Косоротов
22.08.2022, 13:39
Нет, так и должно быть.
В пределах окружения доступна только одна версия плагина - которая устанавливалась последней.
Вам нужно другое через CODESYS создать еще одно окружение (add installation) с той же версией CODESYS, но другой версией плагина визуализации.

Понял. Беда только в том, что за новой инсталляцией он лезет в сеть. А VPN у меня ограниченный, скачать весь пакет не смогу. Ему как-то можно уже готовый инсталляционный пакет подсунуть?

Евгений Кислов
22.08.2022, 13:45
Понял. Беда только в том, что за новой инсталляцией он лезет в сеть. А VPN у меня ограниченный, скачать весь пакет не смогу. Ему как-то можно уже готовый инсталляционный пакет подсунуть?

https://owen.ru/forum/showthread.php?t=28167&p=384246&viewfull=1#post384246

Андрей Косоротов
22.08.2022, 13:57
https://owen.ru/forum/showthread.php?t=28167&p=384246&viewfull=1#post384246

Ладно, попробую. Может получится. Как-то они усложнили всё чересчур. Обходной путь ("костыль" так сказать) в том, чтобы постоянно менять переменную отвечающую за отображаемый диапазон в программе на 1 (сначала прибавлять, затем убавлять). Это приводит к обновлению тренда.

Андрей Косоротов
22.08.2022, 14:26
Смог воспроизвести эту проблему.
Похоже, она провилась либо в 3.5.17.x, либо в плагине визуализации 4.2.0.0.
Можете попробовать ее воспроизвести с плагином 4.1.1.0?

В версии с плагином 4.1.1.0 не воспроизводится вроде... Прилагаю проект.

Андрей Косоротов
23.08.2022, 16:24
В версии с плагином 4.1.1.0 не воспроизводится вроде... Прилагаю проект.

Добрый день! Я так понимаю проблема в визуализации 4.2.0.0? Решения никакого нет?

Евгений Кислов
23.08.2022, 16:34
Добрый день! Я так понимаю проблема в визуализации 4.2.0.0? Решения никакого нет?

Добрый день.
На мой взгляд, решение - использовать версию плагина 4.1.1.0.
Или применить тот костыль, о котором вы сами писали выше.

Андрей Косоротов
23.08.2022, 17:15
Добрый день.
На мой взгляд, решение - использовать версию плагина 4.1.1.0.
Или применить тот костыль, о котором вы сами писали выше.

Спасибо за ответ. Скорее всего ограничимся костылем)

Евгений Кислов
24.08.2022, 08:28
Спасибо за ответ. Скорее всего ограничимся костылем)

Еще немного поизучал эту тему, и нашел решение и для плагина визу 4.2.0.0 (действительно, в нем кое-что поправили по этому моменту).

Нужно сделать в коде вот так (достаточно один раз при запуске приложения):


VisuElems.VisuElemBase.Visu_Globals.g_VisuTrendWit hTimeSelectorUpdateBehaviour := 0;

После этого изменение параметров тренда будет происходить в течение нескольких секунд.

Подробности:

62224

Андрей Косоротов
24.08.2022, 10:20
Еще немного поизучал эту тему, и нашел решение и для плагина визу 4.2.0.0 (действительно, в нем кое-что поправили по этому моменту).

Нужно сделать в коде вот так (достаточно один раз при запуске приложения):


VisuElems.VisuElemBase.Visu_Globals.g_VisuTrendWit hTimeSelectorUpdateBehaviour := 0;

После этого изменение параметров тренда будет происходить в течение нескольких секунд.

Подробности:

62224

Понял. Спасибо, Евгений! Очень полезный момент.

Андрей Косоротов
24.08.2022, 13:19
Еще немного поизучал эту тему, и нашел решение и для плагина визу 4.2.0.0 (действительно, в нем кое-что поправили по этому моменту).

Нужно сделать в коде вот так (достаточно один раз при запуске приложения):


VisuElems.VisuElemBase.Visu_Globals.g_VisuTrendWit hTimeSelectorUpdateBehaviour := 0;

После этого изменение параметров тренда будет происходить в течение нескольких секунд.

Подробности:

62224

Проверил на ПЛК200-02-CS. Этот вариант работает. Спасибо.

Votrj1
26.08.2022, 11:37
А есть возможность добраться программно до кнопок СЕЛЕКТОРА ВРЕМЕНИ в тренде, чтоб программно установить нужный масштаб.62294

Евгений Кислов
26.08.2022, 11:49
А есть возможность добраться программно до кнопок СЕЛЕКТОРА ВРЕМЕНИ в тренде, чтоб программно установить нужный масштаб.62294

Да, см. параметр Время.

62296

Votrj1
26.08.2022, 14:07
Да, см. параметр Время.

62296

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

Евгений Кислов
26.08.2022, 18:17
Работает в микросекундах. Но при включении масштаба через эту переменную на панели которая свежая и в ней нет накопленных трендов приводит к краху. На старенькой все ок. Как отловить такую ошибку.62298

Выложите, пожалуйста, простой проект, на котором можно будет повторить эту проблему.
Достаточно одного экрана с трендом и кнопки "Привести к краху".

Votrj1
29.08.2022, 19:58
Выложите, пожалуйста, простой проект, на котором можно будет повторить эту проблему.
Достаточно одного экрана с трендом и кнопки "Привести к краху".
Вернусь, сделаю тест. А так на всякий случай поясню зачем надо, а то вдруг все проще. Мне надо чтоб выбор масштаба времени на одном тренде (визуализации) автоматически устанавливался на всех других. Их у меня несколько.
Те теоретически чтоб кнопки масштаба времени были общими для всех других визуализаций трендов. Вот я этот параметр ВРЕМЯ и вколачиваю в другой тренд при переходе на него если его масштаб не равен этому значению. И вроде как работает но если попереключаться так то 1мин то час то месяц вдруг вылетает по ошибке.

Петр Петрович
05.09.2022, 17:08
Добрый день.
А можно как-то в CODESYS V3.5 SP17, на одном контроллере, сделать два или более независимых WEB-интерфейса управления, например, отличающихся по начальному URL ?
Т.е. у разных пользователей, до 4 штук скажем, свои страницы управления. Навигация по страницам у пользователей индивидуальная. Некторые элементы управления могут быть привязаны к одним и тем же переменным,
т.е. синхронизированны. И есть часть элементов, индивидуальных для каждого пользователя.

Евгений Кислов
05.09.2022, 17:09
Добрый день.
А можно как-то в CODESYS V3.5 SP17, на одном контроллере, сделать два или более независимых WEB-интерфейса управления, например, отличающихся по начальному URL ?
Т.е. у разных пользователей, до 4 штук скажем, свои страницы управления. Навигация по страницам у пользователей индивидуальная. Некторые элементы управления могут быть привязаны к одним и тем же переменным,
т.е. синхронизированны. И есть часть элементов, индивидуальных для каждого пользователя.

Добрый день.
Можно добавить в менеджер визуализации несколько узлов Web-визуализация - в каждом указать уникальное имя .htm страницы и свой стартовый экран визуализации.

Петр Петрович
05.09.2022, 17:16
Добрый день.
Можно добавить в менеджер визуализации несколько узлов Web-визуализация - в каждом указать уникальное имя .htm страницы и свой стартовый экран визуализации.

Здравствуйте! Спасибо, сделал, работает. Скажите пожалуйста, каких-то известных подводных камней в таком подходе нет? Четыре панели управления потянет, как думаете? Обмен не слушком интенсивный. В основном, события нажатих кнопок пользователями в интервейсе.

Евгений Кислов
05.09.2022, 18:09
Здравствуйте! Спасибо, сделал, работает. Скажите пожалуйста, каких-то известных подводных камней в таком подходе нет? Четыре панели управления потянет, как думаете? Обмен не слушком интенсивный. В основном, события нажатих кнопок пользователями в интервейсе.

Нет, мы не сталкивались с подводными камнями - это штатный функционал.

Петр Петрович
06.09.2022, 09:56
Нет, мы не сталкивались с подводными камнями - это штатный функционал.

Евгений! Скажите пожалуйста, а в разных экземплярах браузера можно вызывать разные страницы и всплывающие диалоги, т.е. что бы интерфейсы работали полностью независимо, если потребуется. Как это можно сделать?
И, в то же время, на всех экземплярах браузера могут быть индикаторы, отражающие одну и ту же величину. Ну это наверное проще, тут можно обойтись общими переменными.

Евгений Кислов
06.09.2022, 10:07
Евгений! Скажите пожалуйста, а в разных экземплярах браузера можно вызывать разные страницы и всплывающие диалоги, т.е. что бы интерфейсы работали полностью независимо, если потребуется. Как это можно сделать?
И, в то же время, на всех экземплярах браузера могут быть индикаторы, отражающие одну и ту же величину. Ну это наверное проще, тут можно обойтись общими переменными.

То, что вы описываете - это штатный функционал. По умолчанию всё именно так и работает.

СергейНовосиб
06.09.2022, 10:19
Создается одинаковый набор экранов, но с разными ветками переходов и они не должны перекрещиваться.
У меня так работает две ветки. Одна на СПК с возможностью изменения уставок и вторая для инета без возможности изменений.

Петр Петрович
06.09.2022, 10:37
Создается одинаковый набор экранов, но с разными ветками переходов и они не должны перекрещиваться.
У меня так работает две ветки. Одна на СПК с возможностью изменения уставок и вторая для инета без возможности изменений.

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

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

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

А вот далее, как я понимаю (или пока не понимаю) фильтра по конкретному клиенту, хотя бы по IP, и нет.

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

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

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

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

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

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

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

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

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

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

Евгений Кислов
06.09.2022, 17:26
MySetVisu(itfClientFilter:=VU.Globals.AllClients, xExecute:=TRUE, sVisuName:=MyVisuName);

А вот далее, как я понимаю (или пока не понимаю) фильтра по конкретному клиенту, хотя бы по IP, и нет.

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

В примере по ссылке есть всё необходимое для решения вашей задачи - потребуется только изучить и осмыслить его:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3517v2.projectarchive

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

Добрый день.
См. пример: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/02_Concepts/11_3_04_Example_Animation_3511v2.projectarchive

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

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

Добрый день.
Посмотрите этот пример:
https://forge.codesys.com/prj/codesys-example/selection-manag/home/Home/

Несколько нюансов:

1. Пример сделан для одного клиента визуализации - пользователя таргет-визу.
Если, например, нужно активировать курсор для нескольких клиентов - то нужно получить их контекст (pClientData) и вызвать код примера для всех клиентов.
Как получить контекст клиента - см. здесь: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3517v2.projectarchive

2. В коде обработки xClick замените VisuElems.VISU_ET_KEYUP на VisuElems.VISU_ET_KEYDOWN (так как в примере запись в элемент повесили на OnMouseDown - вероятно, по ошибке - хотели на OnMouseUp).

3. Рекомендую использовать VISU_SELECTION_TAB и для нужного элемента установить порядковый номер 0 - тогда будет достаточно один раз вызвать xTab (добавьте его в пример) и xClick.

62506

На досуге сделаю готовый пример на эту тему.

ВладОвен
07.09.2022, 17:19
В общем...
Протестировал я этот проект. Упростил его для понимания работы.
Есть два элемента для вызова: 1 и 2.
Вводите в поле номер и нажимаете клавишу и должен выбраться соответствующий элемент.
Это должно работать именно так?

62509

Тогда проблема осталась.
Вот элемент номер 2 - это и есть поле, которое мне нужно выбрать и чтобы там сразу был фокус ввода.
И этот элемент выбирается, если задать его номер "2" и нажать клавишу "Выбрать граф. элемент".
Но курсор там все равно отсутствует. Выделение есть, а курсора нет!

Евгений Кислов
07.09.2022, 18:19
"Проблема", которую вы наблюдаете - это последствие вашего "упрощения" исходного примера.

В посте выше я написал всю необходимую информацию.

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

Upd. - сделал свою версию примера, совместив пример ClientManager и SelectionManager.
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_SelectionManager_3517v1.projectarchive

Для каждого подключенного клиента происходит выбор сиреневого прямоугольника (с ID = 24) и активация в нем ввода (в таргет-визу появляется Numpad, в web-визу - курсор).

Петр Петрович
07.09.2022, 19:56
Фильтры, конечно же, есть.
Можно с помощью VU.FbIterateClients пройтись по всем клиентам и найти нужного, после чего передать его интерфейс в вызове VU.FbChangeVisu.
[/url]

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

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

Евгений Кислов
08.09.2022, 06:36
Евгений! Более или менее заработало, но пока по такой схеме: 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.

Петр Петрович
08.09.2022, 10:21
Евгений!
> Тогда вы должны создать ФБ с реализацией (EXTENDS) интерфейса IVisualizationClientFilter, объявить его экземпляр и передать его на вход FbChangeVisu.itfClientFilter при его вызове.

Спасибо, займусь сегодня вечером. А не подскажите, HTML5 Control Editor в релизе SP18, он в бесплатной версии есть и полностью функционален?

Евгений Кислов
08.09.2022, 10:22
Евгений!
> Тогда вы должны создать ФБ с реализацией (EXTENDS) интерфейса IVisualizationClientFilter, объявить его экземпляр и передать его на вход FbChangeVisu.itfClientFilter при его вызове.

Спасибо, займусь сегодня вечером. А не подскажите, HTML5 Control Editor в релизе SP18, он в бесплатной версии есть и полностью функционален?

Да, именно так.

ВладОвен
08.09.2022, 12:49
Привет.
Подскажите, а в таргет-визуализации можно установить параметр "ввод текста по молчанию" так, что бы он принимал ввод и с клавиатуры и с сенсора одновременно? Или же только клава или только сенсор отдельно?
И если совмещённого ввода нет, то как это можно обыграть, что-бы он был.
Например, надо ходить по меню, но при этом кое-где надо ввести с клавиатуры что-либо без сенсора.
Спасибо.

Евгений Кислов
08.09.2022, 13:17
Привет.
Подскажите, а в таргет-визуализации можно установить параметр "ввод текста по молчанию" так, что бы он принимал ввод и с клавиатуры и с сенсора одновременно? Или же только клава или только сенсор отдельно?
И если совмещённого ввода нет, то как это можно обыграть, что-бы он был.
Например, надо ходить по меню, но при этом кое-где надо ввести с клавиатуры что-либо без сенсора.
Спасибо.

Добрый день.
Такой возможности пока нет, но в баг-трекере есть соответствующее пожелание.

62521

Но пока не понял, в чем у вас проблема. На "хождение по меню" способ ввода значений не влияет.

ВладОвен
08.09.2022, 13:59
...Но пока не понял, в чем у вас проблема...

Я хочу реализовать задачу, при которой ПЛК управляется оператором при помощи сенсорного экрана. Настройку ПЛК выполняют редко, поэтому подойдет сенсорный ввод значений, переменных, пунктов меню. Т.е. сенсора будет достаточно.
И при этом, пока идет основной процесс, оператор может ставить испытуемые изделия в виртуальную очередь на обработку. Все это придумано из-за того, что все испытуемые изделия должны отлежаться не менее 2-х часов перед установкой в стенд. Такова дисциплина, потому-что необходимо гарантированное выравнивание по температуре вновь подносимых изделий с холодного склада. Оператор находится в 3-4 метрах от ПЛК и сканирует штрих-коды подготавливаемых изделий. При этом ПЛК продолжает работать по своей основной программе.
Как это реализовать:

Вариант А. Купить ПЛК ОВЕН. Задействовать библиотеку ОВЕН (https://www.youtube.com/watch?v=Tqze-vTl5ZI) для сканеров. Тогда будет все работать супер-пупер: асинхронно и параллельно. Запустил ПЛК пальцем, отошел на приемку с беспроводным сканером и "пикай" себе по изделиям. ПЛК будет асинхронно ловить штрих-коды и ставить их на учет. При этом основная прога может работать в другой задаче. Профит!

Вариант Б. Не купить ПЛК ОВЕН, а пользоваться другим оборудованием в котором нет библиотеки для сканеров. Тогда сканер подключится в USB как клавиатура. И не будет работать, т.к. его штрих-код будет прилетать в никуда. Можно переиграть так: оператор запускает основную прогу, потом переходит на другой экран визуализации, там автоматически фокус ввода падает на текстовое поле (о чем мы тут и беседуем). В это поле прилетает штрих-код и нажимается enter. После учета этого штрих кода, фокус ввода падает снова на текстовое поле и всё по кругу. Но так не работает, потому-что если вы включили сенсорное управление, то ввод от клавиатуры не работает. И наоборот.

В общем - не решаемая задача.
Или у Евгения нет нереализуемых задач? :)

Евгений Кислов
08.09.2022, 18:20
Как обычно, вы не озвучиваете всю нужную информацию, но попробую дать комментарий по той, что есть.

1. Самый простой вариант решения вашей задачи вы уже сами упомянули - использовать ПЛК или СПК ОВЕН, для которого мы заботливо разработали библиотеку с поддержкой USB HID-сканеров штрихкодов.

2. Если вы используете Raspberry Pi или его аналоги с CODESYS - то можете найти (или разработать сами) для него подобную библиотеку на C/Python/чем угодно и интегрировать ее с CODESYS.

3. Если вы используете другой панельный контроллер с CODESYS (назовем его условно "UnrealLab"), который не позволяет работать с внешними библиотеками или делает это слишком трудоемким - то есть несколько вариантов.

3.1. В таргет-визуализации включить Ввод текста по умолчанию - Клавиатура. Тогда в плане работы со сканером проблем нет.
Остается вопрос с оператором, которому, например, надо вводить уставки. Но как вы упомянули - "настройку ПЛК выполняют редко".
Поэтому можно сделать вариант операторского интерфейса, в котором ввод значений реализован "аналоговым" способом - с помощью слайдеров и кнопок типа +1/-1 (+5/-5 и т.д.).

3.2. Использовать библиотеку OwenVisuDialogs с кастомными диалогами ввода - в них поддерживаются "горячие клавиши".
В этом случае для оператора все удобно - нажал на элемент, появилась экранная клавиатура.
При работе со сканером - когда вы сымитируете нажатие на элемент из кода, то откроется окно Numpad'a или Keypad'a с активным курсором.
При этом так как горячие клавиши поддерживаются - то при получении штрихкода он будет "набран" в поле ввода диалога.

Но здесь начинаются нюансы - поддержка горячих клавиш может потребовать правок таргет-файла и конфига CODESYS (в частности, для поддержки спецсимволов).
Кроме того, возникает вопрос с раскладками - если штрих-код может содержать спецсимволы (типа #, @ и т.д.), то это обработать будет проблематично.
Можно попробовать сделать свою клавиатуру, на которой будут все нужные клавиши, но мне кажется, что на этом этапе возникнет много нюансов.

Но самый главный вопрос, который касается и п. 3.1, и п. 3.2 - как будет осуществляться подтверждение ввода?
Если сканер вам после штрих-кода присылает код нажатия на Enter - то вопросов нет.
Если он его не присылает - то каких-то очевидных решений я не вижу.
Да, можно сымитировать нажатие на элемент из кода - но в какой момент? Можно сказать - в тот момент, когда изменилось значение переменной, привязанной к элементу.
Но ведь пока в элементе ввода не произошло нажатие на Enter - строка еще не попала в переменную.

В общем, на мой взгляд, самый простой и идеологически правильный путь - вариант 1.
Вариант 2 тоже без сомнений реализуем, но потребует существенно больше времени.

СергейНовосиб
09.09.2022, 06:33
Хотел использовать в визуализации прозрачность элементов, но такое ощущение, что не СПК оно не работает. Или я неправильно что-то сделал?

Евгений Кислов
09.09.2022, 06:44
Хотел использовать в визуализации прозрачность элементов, но такое ощущение, что не СПК оно не работает. Или я неправильно что-то сделал?

Вы про прозрачность цвета говорите или изображения из ImagePool?

СергейНовосиб
09.09.2022, 06:53
Есть элемент, например "Скругленный прямоугольник". Хотелось видеть, что под ним при появлении полупрозрачного поля с сообщением. Ну и текст тоже должен быть полупрозрачный.

Евгений Кислов
09.09.2022, 07:09
Есть элемент, например "Скругленный прямоугольник". Хотелось видеть, что под ним при появлении полупрозрачного поля с сообщением. Ну и текст тоже должен быть полупрозрачный.

У меня все работает корректно. На фото - прозрачный скругленный прямоугольник с прозрачным текстом наложен поверх изображения.

62531

62532

СергейНовосиб
09.09.2022, 09:37
Странно! Со второго раза у меня получилось.:(

ВладОвен
09.09.2022, 09:44
...попробую дать комментарий по той, что есть...

Спасибо за развернутый ответ.

Петр Петрович
09.09.2022, 10:32
Добрый день!

А есть способ выключить у элемента Кнопка внешнюю рамку, если в кнопке например круглое изображение SVG, то выглядит не очень...