PDA

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



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

Евгений Кислов
09.09.2022, 11:51
Добрый день!

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

Добрый день.

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

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

Попробовал так сделать. Библиотеку подключил.
Действительно: и сенсорный ввод и ввод от сканера работают.
Но проблема заключается в том, что сканер очень быстро отдает свои символы и после присылает код клавиши Enter. А может клавиатурный буфер очень короткий. ХЗ...
На коротких штрихах (EAN8): начало пакета ловится хорошо, а в конце то символ пропустит, то Enter не словит.
На длинных штрихах (EAN13): конец пакета никогда нормально не ловится. Enter никогда не нажимается.

Засада. :(

P.S. Выбор графического элемента из программы пока не реализовывал. Нажимаю на текстовое поле пальцем. Потом сканирую сканером.

Selya
14.09.2022, 09:41
Как сделать в диалоговых окнах "User management" полностью русский язык?

Евгений Кислов
14.09.2022, 09:44
Как сделать в диалоговых окнах "User management" полностью русский язык?

Используйте библиотеку OwenVisuDialogs - в ней эти диалоги локализованы.
https://owen.ru/forum/showthread.php?t=34327

Lisov-R
14.09.2022, 11:32
День добрый! подскажите в чем проблема. Вставляю картинку, в редакторе ее не видно (полностью прозрачная или не отображается), в эмуляторе все нормально. Редактировать визуализацию вообще не удобно.6262662627

Евгений Кислов
14.09.2022, 11:40
День добрый! подскажите в чем проблема. Вставляю картинку, в редакторе ее не видно (полностью прозрачная или не отображается), в эмуляторе все нормально. Редактировать визуализацию вообще не удобно.6262662627

Добрый день.
Попробуйте имя картинки изменить, убрав кириллицу, и заново ее добавьте в CODESYS.

Lisov-R
14.09.2022, 14:03
Добрый день.
Попробуйте имя картинки изменить, убрав кириллицу, и заново ее добавьте в CODESYS.

Спасибо ОГРОМНОЕ!!! Помогло!

RamesIV
17.09.2022, 17:01
Здравствуйте!

Подскажите, пожалуйста, каким образом можно соотнести свойство объекта с каналом Modbus ? При попытке привязки получаем ошибку "...недопустим в качестве операнда для ADR".

62684

Евгений Кислов
17.09.2022, 17:11
Здравствуйте!

Подскажите, пожалуйста, каким образом можно соотнести свойство объекта с каналом Modbus ? При попытке привязки получаем ошибку "...недопустим в качестве операнда для ADR".

62684

Добрый день.
Если у вас свойство типа DWORD - то нужно преобразовать его в ARRAY [0..1] OF WORD.

RamesIV
17.09.2022, 17:29
Дело в том, что переменная DWORD привязывается, т.к. на нее возможен указатель (ее можно использовать в качестве операнда ADR), а со свойством это не проходит. Вопрос в том, как привязать именно свойство, а не переменную?
62687

Евгений Кислов
17.09.2022, 17:40
Дело в том, что переменная DWORD привязывается, т.к. на нее возможен указатель (ее можно использовать в качестве операнда ADR), а со свойством это не проходит. Вопрос в том, как привязать именно свойство, а не переменную?
62687

Проверил в V3.5 SP17 Patch 3 - вариант с вашего первого скриншота компилируется без ошибок.
Насколько я понимаю - вы работаете со старой СПК (без Ethernet) в V3.5 SP5 Patch 5?
Похоже, в той версии такая возможность просто еще не поддерживалась.

RamesIV
17.09.2022, 18:03
Проверил в V3.5 SP17 Patch 3 - вариант с вашего первого скриншота компилируется без ошибок.
Насколько я понимаю - вы работаете со старой СПК (без Ethernet) в V3.5 SP5 Patch 5?
Похоже, в той версии такая возможность просто еще не поддерживалась.

Компилируется без ошибок, но при загрузке в устройство (Логине) выдает ошибку.
62688

В данный момент V3.5 SP5 Patch 5 СПК207, но с на V3.5 SP16 Patch 3 СПК110 тоже самое.

Евгений Кислов
17.09.2022, 20:15
Компилируется без ошибок, но при загрузке в устройство (Логине) выдает ошибку.
62688

В данный момент V3.5 SP5 Patch 5 СПК207, но с на V3.5 SP16 Patch 3 СПК110 тоже самое.

У меня в V3.5 SP16 Patch 3 проблема не воспроизводится.
Выложите ваш проект для V3.5 SP16 Patch 3, на котором вы это проверяете - посмотрю, в чем дело.

ВладОвен
19.09.2022, 11:00
Здравствуйте.
Хочу вывести на экран визуализации большое десятичное число.
В элементе "Текстовое поле" указал "Текст - %d", и указал выводимое значение "Текстовая переменная - dwMyVar" (DWORD).
Но при запуске проекта вижу вместо hFFFFFFFE значение -2. А вместо hFFFFFF01 значение -255.
Что я делаю не так?
Спасибо.

Евгений Кислов
19.09.2022, 11:15
Здравствуйте.
Хочу вывести на экран визуализации большое десятичное число.
В элементе "Текстовое поле" указал "Текст - %d", и указал выводимое значение "Текстовая переменная - dwMyVar" (DWORD).
Но при запуске проекта вижу вместо hFFFFFFFE значение -2. А вместо hFFFFFF01 значение -255.
Что я делаю не так?
Спасибо.

Добрый день.
Вообще, для вывода беззнаковых целых используется спецификатор %u.
Но в текущих версиях CODESYS есть баг - значение в визуализации все равно будет интерпретироваться как знаковое.
Поэтому придется конвертировать в строку и отображать уже ее.

ВладОвен
19.09.2022, 13:56
Подскажите, как в визуализации вставить какой-либо элемент в группу?
Как изъять элемент из группы?
Стоит ли вообще применять группы?
Спасибо.

Евгений Кислов
19.09.2022, 14:00
Подскажите, как в визуализации вставить какой-либо элемент в группу?
Как изъять элемент из группы?
Стоит ли вообще применять группы?
Спасибо.

Насколько я знаю - такой возможности нет.
Насчет "стоит ли применять" - на ваше усмотрение.

Cs-Cs
19.09.2022, 17:38
Подскажите, как в визуализации вставить какой-либо элемент в группу?
Группа - это не рамка вокруг элементов?
62714

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

RamesIV
22.09.2022, 14:40
У меня в V3.5 SP16 Patch 3 проблема не воспроизводится.
Выложите ваш проект для V3.5 SP16 Patch 3, на котором вы это проверяете - посмотрю, в чем дело.
В V3.5 SP16 Patch 3 проверил- заработало. Вопрос закрыт, Спасибо!

Емельянов Кирилл
03.10.2022, 01:28
Добрый день! Напомните, что с возможностью отображения .pdf файлов в свежих версиях прошивки СПК? Помню был разговор, что элемент web-браузер больше не поддерживается

Евгений Кислов
03.10.2022, 06:21
Добрый день! Напомните, что с возможностью отображения .pdf файлов в свежих версиях прошивки СПК? Помню был разговор, что элемент web-браузер больше не поддерживается

Добрый день.
Даже в самой свежей прошивке элемент Web-браузер не будет работать в таргет-визуализации СПК.

Votrj1
03.10.2022, 11:02
Как избавится от этого сообщения. Возможно появляется при отключении питания или .... Что то в базе данных трендов. Как вычистить?62936

Евгений Кислов
03.10.2022, 11:11
Как избавится от этого сообщения. Возможно появляется при отключении питания или .... Что то в базе данных трендов. Как вычистить?62936

Потребуется удалить проект с помощью команды Сброс заводской и загрузить заново.

Votrj1
03.10.2022, 11:20
Жестоко. С конфигуратора то же можно?

Евгений Кислов
03.10.2022, 11:20
Жестоко. С конфигуратора то же можно?

Да, можно и через конфигуратор.

fatlortroll
06.10.2022, 15:57
Добрый день.

Подскажите, почему при добавлении в проект библиотеки VisuElemFunctionality (v3.0.2.0, CoDeSys v3.5 SP14 patch 3 +) и объявлении в PLC_PRG переменной с типом VisuElemFunctionality.VisuStructClientData сборка падает с ошибками?

Если удалить VisuElemFunctionality, то тип VisuStructClientData в подсказке определяется, как принадлежащий VisuElemBase, но список его полей в подсказке не раскрывается.

Евгений Кислов
06.10.2022, 15:58
Добрый день.

Подскажите, почему при добавлении в проект библиотеки VisuElemFunctionality (v3.0.2.0, CoDeSys v3.5 SP14 patch 3 +) и объявлении в PLC_PRG переменной с типом VisuElemFunctionality.VisuStructClientData сборка падает с ошибками?

Если удалить VisuElemFunctionality, то тип VisuStructClientData в подсказке определяется, как принадлежащий VisuElemBase, но список его полей в подсказке не раскрывается.

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

fatlortroll
06.10.2022, 16:07
Научиться работать с визуализациями из кода.

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

VAR
vscd : VisuElemBase.VisuStructClientData;
visudlg : VisuElems.IVisualisationDialog;
dmgr : VisuElemBase.IDialogManager;
END_VAR

dmgr := g_VisuManager.GetDialogManager();
IF dmgr <> 0 THEN
visudlg := dmgr.GetDialog('DialogVisuName');
IF visudlg <> 0 THEN
// vscd.
dmgr.CloseDialog(visudlg, ADR(vscd));
END_IF
END_IF

Евгений Кислов
06.10.2022, 16:09
Научиться работать с визуализациями из кода.

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


Изучите этот пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

fatlortroll
06.10.2022, 16:48
Спасибо, буду разбираться.

А сколь-нибудь вменяемая документация по API визуализации есть в природе? Всё равно, на каком языке.

Евгений Кислов
06.10.2022, 16:52
Спасибо, буду разбираться.

А сколь-нибудь вменяемая документация по API визуализации есть в природе? Всё равно, на каком языке.

Вменяемой по большому счету нет.
Кроме того, в свежих версиях API серьезно изменилось, и теперь то, что показано в выложенном примере (он создан в SP11 и подойдет для SP14) - deprecated.
Я планировал в будущем написать статью про работу с визуализацией из кода, но вряд ли смогу приступить к ней в этом году.

fatlortroll
07.10.2022, 07:50
А чем для указанного примера вызвано требование работать с клиентами только в задаче VISU_TASK?

Евгений Кислов
07.10.2022, 08:00
А чем для указанного примера вызвано требование работать с клиентами только в задаче VISU_TASK?

Указанием от разработчиков CODESYS.



The new (>= 3.5.6) mechanism tightens the requirement to do calls to visualization methods (eg. programmatic selection, programmatically opening dialogs etc.) only from the VISU_TASK.
As this requirement was there formerly too because of not implemented threadsafety in the visualization libraries, this is not a compatibility break.

fatlortroll
07.10.2022, 11:37
А какие штатные механизмы дозволено использовать для взаимодействия между задачами?

Как пример -- отправить из VISU_TASK в другую задачу оповещение о закрытии диалога.

Евгений Кислов
07.10.2022, 11:43
А какие штатные механизмы дозволено использовать для взаимодействия между задачами?

Как пример -- отправить из VISU_TASK в другую задачу оповещение о закрытии диалога.

Штатные - описаны здесь:
https://content.helpme-codesys.com/en/LibDevSummary/synchronization.html

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

DenisV
07.10.2022, 17:30
Добрый вечер! CDS SP17
Поддержка клиентских анимаций включена.
Диалоговое окно для ввода логина и пароля появляется справа от центра и не позволяет ввести логин и пароль. Причем так происходит только если открывать визуализацию с ПК, при открытии этого же диалога с панели оператора всё в норме
Перезагрузка не вопрос не решает. А программу не хотелось бы перезаливать
63022

Евгений Кислов
07.10.2022, 17:46
Добрый вечер! CDS SP17
Поддержка клиентских анимаций включена.
Диалоговое окно для ввода логина и пароля появляется справа от центра и не позволяет ввести логин и пароль. Причем так происходит только если открывать визуализацию с ПК, при открытии этого же диалога с панели оператора всё в норме
Перезагрузка не вопрос не решает. А программу не хотелось бы перезаливать
63022

Добрый день.
Выложите простейший проект, на котором я смогу это повторить.
Укажите пароль для какого-нибудь из пользователей вашей визуализации.

zaychenko
19.10.2022, 00:54
Добрый вечер! CS SP17 - web-визуализация (с экрана СПК не проверялось, т.к. проект редактируется удаленно)
При работе с диалогами для управления пользователями наблюдается следующее: периодически при вводе пароля при логине или изменении пользователей появляется невидимое окно (скрины 63206 63207
). После этого из режима ввода пароля в поле выйти невозможно до перезагрузки веб-визуализации. Ситуация повторяется в собственном проекте и в проекте с примером Example_OwenVisuDialogs_3517v2.projectarchive

Евгений Кислов
19.10.2022, 07:35
Добрый вечер! CS SP17 - web-визуализация (с экрана СПК не проверялось, т.к. проект редактируется удаленно)
При работе с диалогами для управления пользователями наблюдается следующее: периодически при вводе пароля при логине или изменении пользователей появляется невидимое окно (скрины 63206 63207
). После этого из режима ввода пароля в поле выйти невозможно до перезагрузки веб-визуализации. Ситуация повторяется в собственном проекте и в проекте с примером Example_OwenVisuDialogs_3517v2.projectarchive

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

Исправил ее и перезалил библиотеку и пример. Версии не менял.

Добавились диалоги UserChangePasswordOwen2 и UserMgmtConfigOwen2 - используйте их.

ВладОвен
28.10.2022, 14:53
Здравствуйте, подскажите, а где можно увидеть все возможные варианты отображения переменных?
Типа, %u, %s и прочие.

Евгений Кислов
28.10.2022, 14:54
Здравствуйте, подскажите, а где можно увидеть все возможные варианты отображения переменных?
Типа, %u, %s и прочие.

Добрый день.
https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_placeholder_with_formatting_sequence_in_a_st ring.html

Selya
02.11.2022, 10:42
Здравствуйте. А нет ли какого примера настройки элемента визуализации "Стрелочный индикатор", так сказать, "на лету". Так чтобы пользователь на экране контроллера через некоторый диалог мог задать минимальное/максимальное значение, значение цветовых областей.

Евгений Кислов
02.11.2022, 10:55
Здравствуйте. А нет ли какого примера настройки элемента визуализации "Стрелочный индикатор", так сказать, "на лету". Так чтобы пользователь на экране контроллера через некоторый диалог мог задать минимальное/максимальное значение, значение цветовых областей.

Добрый день.
В свежих версиях CODESYS это поддерживается - так что в наших контроллерах так можно сделать. Насчет Агавы, соответственно, комментариев дать не могу. =)

63579

Selya
02.11.2022, 10:57
Спасибо, то что нужно :)

ВладОвен
02.11.2022, 14:22
Привет.
Делал проект и увидел следующие предупреждения:

63585

И теперь у меня два вопроса:
- почему так получилось?
- что теперь делать?

Спасибо.

Евгений Кислов
02.11.2022, 15:56
Привет.
Делал проект и увидел следующие предупреждения:

63585

И теперь у меня два вопроса:
- почему так получилось?
- что теперь делать?

Спасибо.

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

capzap
03.11.2022, 13:19
поправте если я не прав, но в SP17 управление кнопками поменялось, чтобы активировать приходится ставить галку, которая по описанию должна подавать фальш
63614 63615

Евгений Кислов
03.11.2022, 13:26
поправте если я не прав, но в SP17 управление кнопками поменялось, чтобы активировать приходится ставить галку, которая по описанию должна подавать фальш
63614 63615

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

Евгений Кислов
03.11.2022, 15:38
как то так

PS вопрос скорее всего надо переформулировать: Как добавить в конфигурацию ввода раздел OnMouseClick
PSS OnMouseClick тоже нашел

Ничего в поведении не изменилось.
При привязке переменной к параметру Нажатие/Переменная - переменная принимает значение TRUE на время зажатия кнопки.
Вы установили галочку Переключить на FALSE - поэтому при первом нажатии переменная переключается в TRUE, а дальше - при каждом зажатии кнопки сбрасывается в FALSE на время зажатия.

Если вам нужно по нажатию кнопки записывать в переменную TRUE - то действительно нужно настроить действие в событии OnMouse<что-то> (как вы теперь и сделали).

ВладОвен
04.11.2022, 08:59
Привет.
Подскажите, как в СПК110 можно вывести изображение от видеокамеры на экране визуализации?
Спасибо.

Евгений Кислов
04.11.2022, 09:38
Привет.
Подскажите, как в СПК110 можно вывести изображение от видеокамеры на экране визуализации?
Спасибо.

Добрый день.
Какую именно видеокамеру вы используете, каковы ее возможности? (есть ли у нее встроенный веб-сервер, можно ли настроить сохранение скриншотов и выгружать их по FTP и т. д.)

ВладОвен
04.11.2022, 12:46
Какую именно видеокамеру вы используете, каковы ее возможности?
Планирую использовать обычную usb-камеру.

ВладОвен
04.11.2022, 12:49
Скажите, как можно реализовать в СПК110 аварийные входы?
Вот например в стенде у нас есть кнопка "грибок" и я хотел бы сделать так, что если оператор на нее нажмет, то происходит аварийное событие.
Мне придется кнопку посадить на блок ввода и постоянно вычитывать значения по шине?
Или есть метод побыстрее / понадёжнее?
Спасибо.

Евгений Кислов
04.11.2022, 12:56
Планирую использовать обычную usb-камеру.

Вывести изображение с такой видеокамеры на СПК не получится.

Евгений Кислов
04.11.2022, 12:58
Скажите, как можно реализовать в СПК110 аварийные входы?
Вот например в стенде у нас есть кнопка "грибок" и я хотел бы сделать так, что если оператор на нее нажмет, то происходит аварийное событие.
Мне придется кнопку посадить на блок ввода и постоянно вычитывать значения по шине?
Или есть метод побыстрее / понадёжнее?
Спасибо.

Вы описали типовой вариант.
Более быстрых и надежных методов нет.

ВладОвен
04.11.2022, 14:24
А в принципе, в CodeSys существуют прерывания?

Евгений Кислов
04.11.2022, 14:37
А в принципе, в CodeSys существуют прерывания?

В рамках платформы - существуют, но в наших контроллерах они не поддержаны.

zaychenko
07.11.2022, 11:12
Евгений, добрый день!

Визуализация ловит исключение при работе с фреймами, но не всегда, а очень редко.
Ситуацию удалось повторить на ПЛК и на СПК. Отловить причину не удается. Сейчас как раз СПК ловит исключение, есть доступ по anydesk.
63681

Евгений Кислов
07.11.2022, 11:32
Евгений, добрый день!

Визуализация ловит исключение при работе с фреймами, но не всегда, а очень редко.
Ситуацию удалось повторить на ПЛК и на СПК. Отловить причину не удается. Сейчас как раз СПК ловит исключение, есть доступ по anydesk.
63681

Добрый день.
AnyDesk не подойдет.
Предоставьте доступ по TeamViewer или AeroAdmin, пожалуйста.

Selya
08.11.2022, 10:24
Приветствую!
У вас есть такой пример 11_3_02_Example_VisuDialogs_3511v1 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/02_Concepts/11_3_02_Example_VisuDialogs_3511v1.projectarchive)
Там переменная объявлена так:

PROGRAM PLC_PRG
VAR
iVisuVar:INT; // переменная экрана визуализации, значение которой изменяется в окне диалога
END_VAR

А если мне надо сделать эту переменную энергонезависимой, я объявлю её так:

VAR_GLOBAL RETAIN
iVisuVar:INT;
END_VAR
И далее в целях экономии циклов записи в RETAIN мне надо как-то прикрутить проверку:

IF GVL.iVisuVar <> iDialogVar THEN
iVisuVar := iDialogVar;
END_IF
Ведь пользователь может вызвать диалог, ничего в нём не изменить и нажать "ОК". Переменная перезапишется тем же самым значением, цикл записи израсходуется.

Собственно вопрос, как это сделать? Или может всё оставить как есть и я зря заморачиваюсь?

Евгений Кислов
08.11.2022, 11:29
Приветствую!
У вас есть такой пример 11_3_02_Example_VisuDialogs_3511v1 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/02_Concepts/11_3_02_Example_VisuDialogs_3511v1.projectarchive)
Там переменная объявлена так:

PROGRAM PLC_PRG
VAR
iVisuVar:INT; // переменная экрана визуализации, значение которой изменяется в окне диалога
END_VAR

А если мне надо сделать эту переменную энергонезависимой, я объявлю её так:

VAR_GLOBAL RETAIN
iVisuVar:INT;
END_VAR
И далее в целях экономии циклов записи в RETAIN мне надо как-то прикрутить проверку:

IF GVL.iVisuVar <> iDialogVar THEN
iVisuVar := iDialogVar;
END_IF
Ведь пользователь может вызвать диалог, ничего в нём не изменить и нажать "ОК". Переменная перезапишется тем же самым значением, цикл записи израсходуется.

Собственно вопрос, как это сделать? Или может всё оставить как есть и я зря заморачиваюсь?

Добрый день.
У нас RETAIN сохраняется в микросхеме MRAM - число ее циклов перезаписи практически неограничено.
Так что, на мой взгляд, проще оставить всё, как есть.

ВладОвен
09.11.2022, 11:53
Привет.
Решил сделать визуально красивый проект. Приходится вставлять всякие рисунки, рюши, кружева в визуализацию. А все нажатия решил делать через элемент "Невидимый ввод".
Но вот незадача: если элемент "Невидимый ввод" переместить на задний фон (т.е. под остальные элементы визуализации), то он не реагирует на нажатие в реальном ПЛК (видимо, нажатие перехватывается рисунками, прямоугольниками, надписями). А если элемент "Невидимый ввод" переместить на передний фон (т.е. над остальными элементами визуализации), то в CodeSys всё заслоняется и работать невозможно. См. рисунок:
63724

Как быть?
Спасибо.

Юра54
09.11.2022, 12:33
Евгений, здравствуйте!
Работаю в Codesys 3.5 sp16 patch3.
При изменении визуализации фрейма по нажатию кнопки возникает интересная ситуация. Кнопка нажимается (меняет цвет) и на таргет-визуализации, и на веб визуализации.
А сама визуализация фрейма меняется только там, где эта кнопка нажималась - в итоге вижу на мониторе и на СПК разные картинки.
Возможно из-за этого переключение происходит с заметной задержкой.
Флажок "Передавать файлы визуализации в ПЛК" стоит.
Так должно быть?
Как сделать,чтобы картинки на мониторе и на СПК менялась синхронно?

Евгений Кислов
09.11.2022, 12:35
Привет.
Решил сделать визуально красивый проект. Приходится вставлять всякие рисунки, рюши, кружева в визуализацию. А все нажатия решил делать через элемент "Невидимый ввод".
Но вот незадача: если элемент "Невидимый ввод" переместить на задний фон (т.е. под остальные элементы визуализации), то он не реагирует на нажатие в реальном ПЛК (видимо, нажатие перехватывается рисунками, прямоугольниками, надписями). А если элемент "Невидимый ввод" переместить на передний фон (т.е. над остальными элементами визуализации), то в CodeSys всё заслоняется и работать невозможно. См. рисунок:
63724

Как быть?
Спасибо.

Добрый день.
Я думаю, какого-то универсального изящного решения для данной ситуации нет.

Евгений Кислов
09.11.2022, 12:37
Евгений, здравствуйте!
Работаю в Codesys 3.5 sp16 patch3.
При изменении визуализации фрейма по нажатию кнопки возникает интересная ситуация. Кнопка нажимается (меняет цвет) и на таргет-визуализации, и на веб визуализации.
А сама визуализация фрейма меняется только там, где эта кнопка нажималась - в итоге вижу на мониторе и на СПК разные картинки.
Возможно из-за этого переключение происходит с заметной задержкой.
Флажок "Передавать файлы визуализации в ПЛК" стоит.
Так должно быть?
Как сделать,чтобы картинки на мониторе и на СПК менялась синхронно?

Добрый день.
См. п. 10.4.4:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

Юра54
09.11.2022, 12:41
Отодвигаю невидимый ввод в сторону (можно за пределы экрана) и работаю с "красотой". По окончанию работ с красотой двигаю ввод обратно.
Можно еще двигать его сначала в нижний слой, а потом возвращать в верхний. Раздражает конечно, но не катастрофично.

Юра54
09.11.2022, 13:20
Евгений, спасибо!
Пропустил появление нового руководства.

Евгений Кислов
09.11.2022, 13:58
Евгений, спасибо!
Пропустил появление нового руководства.

Ну, этот пример появился в еще самой первой его версии.)

zhakei56
10.11.2022, 14:54
Добрый день!
Раньше работал в версии codesys v3.5 sp5 patch 5 переключение визуалки делал как на скрине_1.63762
Теперь другой ПЛК и работаю в версии codesys v3.5 sp17 patch 3+ нет команды как на скрине_2.63761

Подскажите возможно что-то не установил какие то библиотеку.

capzap
10.11.2022, 14:57
Добрый день!
Раньше работал в версии codesys v3.5 sp5 patch 5 переключение визуалки делал как на скрине_1.63762
Теперь другой ПЛК и работаю в версии codesys v3.5 sp17 patch 3+ нет команды как на скрине_2.63761

Подскажите возможно что-то не установил какие то библиотеку.

галочку поставте на дополнительно

zhakei56
11.11.2022, 06:32
Большое спасибо!

ВладОвен
11.11.2022, 10:02
Привет.
Подскажите, а как реализовать графический элемент "Переключатель изображения" но не на два изображения, а, например, на 4? И переменная типа byte (вместо bool) будет задавать изображение.
Спасибо.

Евгений Кислов
11.11.2022, 11:29
Привет.
Подскажите, а как реализовать графический элемент "Переключатель изображения" но не на два изображения, а, например, на 4? И переменная типа byte (вместо bool) будет задавать изображение.
Спасибо.

Добрый день.
А как должен работать такой элемент с точки зрения пользователя?
Как должна происходить смена изображений?

ВладОвен
11.11.2022, 11:45
Добрый день.
А как должен работать такой элемент с точки зрения пользователя?
Как должна происходить смена изображений?

Ну вот, например, есть прибор который проверяется стендом. И в визуализации у прибора есть 4 состояния:

отсутствует на посадочном месте (bTargetStatus := 1),
присутствует на посадочном месте (bTargetStatus := 2),
присутствует и прошел поверку успешно (bTargetStatus := 3),
присутствует и не прошел поверку (bTargetStatus := 4).

И вот по этой переменной, я бы хотел менять изображения.

Евгений Кислов
11.11.2022, 12:09
Ну вот, например, есть прибор который проверяется стендом. И в визуализации у прибора есть 4 состояния:

отсутствует на посадочном месте (bTargetStatus := 1),
присутствует на посадочном месте (bTargetStatus := 2),
присутствует и прошел поверку успешно (bTargetStatus := 3),
присутствует и не прошел поверку (bTargetStatus := 4).

И вот по этой переменной, я бы хотел менять изображения.

Ну т.е. обрабатывать нажатия не требуется.
Тогда используйте элемент Изображение и его параметр Переменная ID изображения.
К параметру привяжите переменную типа STRING и записывайте в нее ID нужно в данный момент изображения из пула изображений.

ВладОвен
11.11.2022, 15:19
Подскажите.
Допустим есть проект, в котором на дисплее 100500 кнопок. И есть четкая логика какие кнопки должны быть неактивными при нажатых других кнопках и комбинациях третьих кнопок (вот такой вот винигрет).
Как лучше и быстрее и малозатратно описать эту логику? Может существует какой-либо готовый метод?

Сейчас реализую так: к каждой кнопке подвязываю индивидуальный флаг. Он взводится по событию "mouseClick". В главной проге крутится метод "ButtonsLogic" и там много if, которые "смотрят" за этими флагами.
Если срабатывает if, то он:
1. сбрасывает этот флаг за собой.
2. Проверяет вложенными if, можно ли включить данную кнопку. Если да, то:
2.1. Включает данную кнопку.
2.2. Отключает зависимые кнопки.
2.3. Меняет все зависимые изображения (ИДшники изображений) для кнопок/переключателей/элементов в визуализации.

Работает. Масштабируется.
Но как-то это примитивно. Может есть готовый фреймворк?

capzap
11.11.2022, 15:39
Подскажите.
Допустим есть проект, в котором на дисплее 100500 кнопок. И есть четкая логика какие кнопки должны быть неактивными при нажатых других кнопках и комбинациях третьих кнопок (вот такой вот винигрет).

таблицу в экселе наберите, одна колонка какая кнопка нажата и следующие колонки разрешение на активацию всех кнопок, тогда можно эту проблему решить одним ПОУ

ВладОвен
11.11.2022, 16:49
Спасибо за решение. Попробую.
Но мне не очень нравится, что в проекте появляется сторонний файл (Excel). Может есть еще решения?

capzap
11.11.2022, 21:11
Может есть еще решениянет


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

ВладОвен
14.11.2022, 08:55
Ок. Хорошо. Расскажите, как реализовать такой метод?
Прописываем логику в Excel, а как дальше вставить в проект?

ВладОвен
14.11.2022, 09:21
Добрый день.

Здравствуйте, Евгений.
Подскажите, анимация в ПЛК - это всегда:
1. Набор статических картинок и некая переменная A, которая их переключает.
2. Статическая картинка, которая перемещается при помощи переменных X и Y.

Или же есть и другие методы?
Спасибо.

Евгений Кислов
14.11.2022, 09:35
Здравствуйте, Евгений.
Подскажите, анимация в ПЛК - это всегда:
1. Набор статических картинок и некая переменная A, которая их переключает.
2. Статическая картинка, которая перемещается при помощи переменных X и Y.

Или же есть и другие методы?
Спасибо.

Если контроллер поддерживает технологию overlay (включается в менеджере визуализации галочкой Support client animations and overlay of native elements) - то можно еще использовать анимированные .gif и .svg.

capzap
14.11.2022, 09:47
Ок. Хорошо. Расскажите, как реализовать такой метод?
Прописываем логику в Excel, а как дальше вставить в проект?
устанавливаете python
таблицу истинности в екселе сохраняете как csv файл, тут стоит отметить что одной колонкой под кнопки не обойтись раз используются комбинации, значит это должна быть полноценная таблица истинности колонка под каждую кнопку и под каждый выход
в питоне получаете DataFrame примерно так
df = pd.read_csv(filename, delimiter=',')
затем используете подобную функцию под свою задачу

MLPClassifier(
hidden_layer_sizes=(2,),
max_iter=15000,
solver='lbfgs',
activation='relu',
alpha=0.0001,
early_stopping=True)
далее обучаете и если score будет равен единице значит можно подготавливать POU для КДС
берем coefs_ и intercepts_ для всех слоев и для КДС проводим манипуляции с этими коэффициентами 63826 чтоб получить результат для каждого выхода

Евгений Кислов
14.11.2022, 09:52
Работает. Масштабируется.
Но как-то это примитивно.

Capzap, искренне восхищаюсь тем, насколько четко вы поняли истинные потребности Влада.
В вашем варианте примитивность искоренена полностью.

ВладОвен
14.11.2022, 10:35
Да уж. Интересно. Прикольно.
И вы это применяете действительно в реальных проектах?
А где еще можно применить это? В смежных темах каких-то.
Был ли опыт?

ВладОвен
14.11.2022, 10:35
Если контроллер поддерживает технологию overlay (включается в менеджере визуализации галочкой Support client animations and overlay of native elements) - то можно еще использовать анимированные .gif и .svg.

СПК110 - вроде не нашел такого. Значит не поддерживает?

Евгений Кислов
14.11.2022, 10:36
СПК110 - вроде не нашел такого. Значит не поддерживает?

Да, СПК не поддерживают эту технологию.
ПЛК2хх - поддерживают.

capzap
14.11.2022, 10:49
Capzap, искренне восхищаюсь тем, насколько четко вы поняли истинные потребности Влада.
В вашем варианте примитивность искоренена полностью.

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

ВладОвен
14.11.2022, 10:58
Устанавливаете python, получаете DataFrame, далее обучаете, подготавливаете POU, берете coefs_ и intercepts_ для всех слоев...

Для познавания и исследования очень интересно.

Но сможет ли другой программист допилить этот проект в ПЛК, если вас не будет рядом?
Требуются знания в смежной технологии.

ВладОвен
14.11.2022, 12:58
Набор статических картинок и некая переменная A, которая их переключает...

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

Евгений Кислов
14.11.2022, 13:00
Подскажите, если делать анимацию путем перебора статических картинок, то придется создать счетчик для индексирования картинок.
Где его лучше итерировать? В блоке визуализации, чтобы синхронно со сменой изображения работал? В основной проге?
Или как-то по-другому?

Лучше - в задаче визуализации.
Посмотрите пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/02_Concepts/11_3_04_Example_Animation_3511v2.projectarchive

ВладОвен
14.11.2022, 13:27
Ок.
В вашем примере переменная для перебора картинок инкрементируется в основном цикле.
Основной цикл вызывается каждые 100 мСек (спец.настройка).
Цикл визуализации вызывается каждые 100 мСек.
Ясно. Понятно.

ВладОвен
14.11.2022, 14:21
Хм... Что-то непонятно.
Я попробовал делать анимацию перебором картинок в ПЛК СПК110. Используется анимация из 16 статических картинок. Анимация - это ладошка черного цвета на белом фоне (см. фото).
Что получилось?
В ИДЕ:
63830

В браузере:
63831

На экране ПЛК:
63832

Вопрос. А где рука на экране ПЛК?
Что я делаю не так?

Евгений Кислов
14.11.2022, 14:35
Выложите ваш проект - посмотрим.

ВладОвен
14.11.2022, 15:06
Ок. Но не понятно, как его сохранить?
Архив занимает 100 МБайт.
Пришлю один главный файл - он занимает 1,6 МБайт.

Блин, а как вложение файла сделать в личное сообщение?

Евгений Кислов
14.11.2022, 15:16
Ок. Но не понятно, как его сохранить?
Архив занимает 100 МБайт.
Пришлю один главный файл - он занимает 1,6 МБайт.

Блин, а как вложение файла сделать в личное сообщение?

Выложите ваш 100 Мб файл на https://dropmefiles.com/ (или аналогичный файлообменник) и пришлите ссылку.

Евгений Кислов
14.11.2022, 15:33
Посмотрел проект.
В таргет-визуализации .gif не поддерживается.
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

63836

capzap
14.11.2022, 15:58
Для познавания и исследования очень интересно.

Но сможет ли другой программист допилить этот проект в ПЛК, если вас не будет рядом?
Требуются знания в смежной технологии.

такой файл формирует исходник функции расчета XOR, в проект нужно сделать импорт plcopenXML, получается любой может только вставить таблицу истинности и прога за него все сделает

ВладОвен
14.11.2022, 17:02
В таргет-визуализации .gif не поддерживается.

Ок. Переделал на JPG. Сделал картинки размером 50 на 50. И в визуализации они тоже 50 на 50. Работает.
Но работает это очень медленно. 2-3 снимка в секунду. Анимация довольно условная.
А если попробовать BMP будет-ли быстрее? Ведь BMP это формат без преобразований/сжатий.
Как еще можно ускорить анимацию?

Евгений Кислов
14.11.2022, 17:09
Ок. Переделал на JPG. Сделал картинки размером 50 на 50. И в визуализации они тоже 50 на 50. Работает.
Но работает это очень медленно. 2-3 снимка в секунду. Анимация довольно условная.
А если попробовать BMP будет-ли быстрее? Ведь BMP это формат без преобразований/сжатий.

Формат изображения не влияет на частоту кадров.
Сколько кадров в секунду вам нужно?

ВладОвен
14.11.2022, 17:31
Сколько кадров в секунду вам нужно?

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

Евгений Кислов
14.11.2022, 17:35
Ну я думаю, для хорошей анимации достаточно 5-10 кадров секунду.
И нужна стабильность переключения снимков. Без джиттера.
Но как этого добиться?

1. Откройте пример, ссылку на который я выкладывал на пред. странице, не внося изменений в его код (лишь измените версию таргета, компилятора и профиля визуализации).
2. В узлах Таргет-визуализация и Web-визуализация установите частоту обновления = 100 мс.
Это обеспечит 10 кадров в секунду. Если оставить частоту обновления по умолчанию (200 мс) - то будет 5 кадров в секунду.
3. Загрузите проект в контроллер и убедитесь в частоте кадров и стабильности их переключения.
4. Адаптируйте код примера к своему проекту.

Емельянов Кирилл
16.11.2022, 11:47
Если на экран визуализации добавляется элемент фрейм, при этом во фрейме элемент прямоугольник, координаты которого привязаны к переменным, то этот прямоугольник перемещается только внутри фрейма или, так сказать, глобально, по всему холсту визуализации?

Евгений Кислов
16.11.2022, 11:52
Если на экран визуализации добавляется элемент фрейм, при этом во фрейме элемент прямоугольник, координаты которого привязаны к переменным, то этот прямоугольник перемещается только внутри фрейма или, так сказать, глобально, по всему холсту визуализации?

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

ВладОвен
16.11.2022, 12:01
А что легче выводить на экран для процессора ПЛК? JPG, PNG?

ВладОвен
16.11.2022, 14:18
Подскажите, а можно ли убрать курсор на экране ПЛК, который появляется на 4-5 сек после нажатия пальцем?
Ну так, чтобы нажатие работало, а курсор не был виден?

Евгений Кислов
16.11.2022, 14:27
Подскажите, а можно ли убрать курсор на экране ПЛК, который появляется на 4-5 сек после нажатия пальцем?
Ну так, чтобы нажатие работало, а курсор не был виден?

Отображение курсора можно отключить в экранном конфигураторе на вкладке Разное.

63892

ВладОвен
16.11.2022, 15:29
Ха. У меня походу версия в ПЛК старая. Скрины у меня другие.

Umut
23.11.2022, 15:03
64006

У меня очень простой вопрос, я не мог найти, как это делается.
Как я могу перевести язык здесь на английский язык?
Codesys в настоящее время на английском языке, но эта часть на русском языке.

Евгений Кислов
23.11.2022, 15:13
64006

У меня очень простой вопрос, я не мог найти, как это делается.
Как я могу перевести язык здесь на английский язык?
Codesys в настоящее время на английском языке, но эта часть на русском языке.

Добрый день.
См. скриншот:

64007

После изменения языка потребуется перезапустить CODESYS.

ВладОвен
23.11.2022, 15:28
Коллеги, здравствуйте.
Подскажите как сделать надпись из двух слов на кнопке так, чтобы она размещалась в две строки?
можно так "Запустить процесс" (т.е. много пробелов между слова), а можно и вставкой символа "разрыв строки".
Кто знает код этого символа?
Спасибо.

Евгений Кислов
23.11.2022, 15:31
Коллеги, здравствуйте.
Подскажите как сделать надпись из двух слов на кнопке так, чтобы она размещалась в две строки?
можно так "Запустить процесс" (т.е. много пробелов между слова), а можно и вставкой символа "разрыв строки".
Кто знает код этого символа?
Спасибо.

Добрый день.
Для перехода на новую строку при наборе текста нажмите Ctrl+Enter.

ВладОвен
23.11.2022, 15:44
Подскажите, анимация в ПЛК - это всегда набор статических картинок и некая переменная A, которая их переключает?

Здравствуйте.
Реализовал анимацию на СПК-110 таким способом. Имею 120 слайдов, каждый 100х100 пикселей.
Но потом увидел, что анимация идет очень медленно (избыточная детализация, но работает стабильно), поэтому сделал шаг итерации переменной А большим (равным 3). Т.е. анимация пропускает каждые два слайда, показывая только каждый третий. Стало красиво.
Но как теперь из проекта удалить неиспользуемые слайды? Есть автоматический способ? Мол, файл в пуле изображений не использован - ну и в корзину его!
Или ручками?

Евгений Кислов
23.11.2022, 15:54
Здравствуйте.
Реализовал анимацию на СПК-110 таким способом. Имею 120 слайдов, каждый 100х100 пикселей.
Но потом увидел, что анимация идет очень медленно (избыточная детализация, но работает стабильно), поэтому сделал шаг итерации переменной А большим (равным 3). Т.е. анимация пропускает каждые два слайда, показывая только каждый третий. Стало красиво.
Но как теперь из проекта удалить неиспользуемые слайды? Есть автоматический способ? Мол, файл в пуле изображений не использован - ну и в корзину его!
Или ручками?

Только ручками.

Umut
23.11.2022, 16:58
Большое спасибо!

service
24.11.2022, 09:50
Добрый день! Возможно ли использовать веб визуализацию ПЛК 200, 210 в качестве замены scada? Шкаф с плк будет находиться в одном не большом помещении с пк оператора, локальная сеть из 2х устройств. Не нужны ни архивы, отчёты, ничего дальше на верх или в другие системы не передается. Управление порядка 30 механизмами, отображение состояний готов, работает, авария. Без динамических отображений. Какие могут всплыть минусы данного решения? Плюсы понятны - одна среда разработки, отсутствие затрат на скаду

Евгений Кислов
24.11.2022, 10:14
Добрый день! Возможно ли использовать веб визуализацию ПЛК 200, 210 в качестве замены scada? Шкаф с плк будет находиться в одном не большом помещении с пк оператора, локальная сеть из 2х устройств. Не нужны ни архивы, отчёты, ничего дальше на верх или в другие системы не передается. Управление порядка 30 механизмами, отображение состояний готов, работает, авария. Без динамических отображений. Какие могут всплыть минусы данного решения? Плюсы понятны - одна среда разработки, отсутствие затрат на скаду

Добрый день.
По-моему, web-визуализация отлично подходит для описанной вами задачи.
Сходу никаких ее минусов для этой ситуации придумать нету.

ВладОвен
28.11.2022, 16:19
Привет.
Подскажите, можно ли элемент "Переключатель" отобразить так, чтобы все его варианты выбора расположились в горизонтальной строке?

Евгений Кислов
28.11.2022, 16:22
Привет.
Подскажите, можно ли элемент "Переключатель" отобразить так, чтобы все его варианты выбора расположились в горизонтальной строке?

Добрый день.
Не понял вопрос.
Поясните картинкой, пожалуйста.

ВладОвен
28.11.2022, 17:09
Разобрался. Надо поставить количество столбцов - 2.
См. фото:
64118

Евгений Кислов
28.11.2022, 17:20
Разобрался. Надо поставить количество столбцов - 2.
См. фото:
64118

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

64119 64120

ВладОвен
29.11.2022, 11:01
Здравствуйте.
Подскажите, а можно ли "Заголовок диалога" сделать мультиязычным? Т.е. добавить к нему "Динамические тексты".
64140

confiden
29.11.2022, 11:17
Добрый день.

Подскажите, не как не могу найти ответ на свой вопрос.
спк107.
Как в программе CFC получить информацию о том какой в данный момент открыт экран визуализации?

Евгений Кислов
29.11.2022, 11:25
Здравствуйте.
Подскажите, а можно ли "Заголовок диалога" сделать мультиязычным? Т.е. добавить к нему "Динамические тексты".
64140

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

Евгений Кислов
29.11.2022, 11:27
Добрый день.

Подскажите, не как не могу найти ответ на свой вопрос.
спк107.
Как в программе CFC получить информацию о том какой в данный момент открыт экран визуализации?

Добрый день.
У вас в проекте используется web-визуализация?
Она должна обрабатываться независимо от таргет-визуализации?
Т.е. может ли одновременно один оператор работать с экраном визуализации, а другой - с web-визуализацией?

confiden
29.11.2022, 11:38
предполагается target визуализация.
А может быть так что web визуализация работает синхронно - что то типо VNC ? то есть она полностью дублирует во всем экран СПК

Евгений Кислов
29.11.2022, 11:48
предполагается target визуализация.
А может быть так что web визуализация работает синхронно - что то типо VNC ? то есть она полностью дублирует во всем экран СПК

Да, и как раз это будет удобно для вашего случая.
В менеджере визуализации установите галочку Использовать переменную CurrentVisu.
После этого в коде программы обращайтесь к системной переменной VisuElems.CurrentVisu (тип STRING).
Она как раз будет содержать имя текущего открытого экрана визуализации.
При установке галочки таргет- и веб-визуализация работают синхнронно.

64144

confiden
29.11.2022, 11:58
понял. Все отлично работает.
Спасибо

ВладОвен
29.11.2022, 12:44
Привет.
Вставил в окно визуализации фрейм с настройками. Отображается ровно. На фрейме однотипные граф.примитивы, объединенные в группы для удобства.
Но некоторые тестовые поля вызывают ошибку визуализации. См. фото:
64146
Поля, обведенные красным цветом, вызывают ошибку. Они почему-то находятся друг под другом, но они в разных граф.группах! ХЗ... Мистика, ёпта!
А галочка Р1, обведенная синим, почему-то переключает галочку Р7 и тоже приводит к ошибке:
64147
Что я делаю не так? Почему не едут лыжи?

Евгений Кислов
29.11.2022, 13:10
Привет.
Вставил в окно визуализации фрейм с настройками. Отображается ровно. На фрейме однотипные граф.примитивы, объединенные в группы для удобства.
Но некоторые тестовые поля вызывают ошибку визуализации. См. фото:
64146
Поля, обведенные красным цветом, вызывают ошибку. Они почему-то находятся друг под другом, но они в разных граф.группах! ХЗ... Мистика, ёпта!
А галочка Р1, обведенная синим, почему-то переключает галочку Р7 и тоже приводит к ошибке:
64147
Что я делаю не так? Почему не едут лыжи?

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

ВладОвен
29.11.2022, 14:10
Сделал. В личке.

Евгений Кислов
29.11.2022, 17:44
Поля, обведенные красным цветом, вызывают ошибку.

В принципе, когда элементы группируются - они перестают отрабатывать нажатия.
Обрабатывается нажатие на группу в целом.
Видимо, в вашей ситуации (когда на самой группе не настроено никаких действий) это срабатывает некорректно.
В чем смысл группировки в вашем конкретном случае?



Они почему-то находятся друг под другом, но они в разных граф.группах!

Не понимаю фразу.


А галочка Р1, обведенная синим, почему-то переключает галочку Р7 и тоже приводит к ошибке

Там все галочки приводят к ошибке, потому что к ним привязано событие OnValueChanged, меняющее значение галочки.

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

ВладОвен
30.11.2022, 10:07
В чем смысл группировки в вашем конкретном случае?

Чисто условное. Что-бы элементы было удобно двигать. И легче сортировка / навигация во вкладке "Список элементов".


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

Аха!

ВладОвен
30.11.2022, 10:12
Привет.
Хочу отлавливать момент переключения экрана визуализации в проекте.
Для этого ввел переменную CurrentVisuPast.
Далее отсматриваю в основной программе так:

if VisuElems.CURRENTVISU <> CurrentVisuPast then
CurrentVisuPast := VisuElems.CURRENTVISU;
... сделать определенные действия (однократно)
end_if

Вопрос: при объявлении переменной CurrentVisuPast какой ей давать тип?

Евгений Кислов
30.11.2022, 10:49
Добрый день.
STRING.

ВладОвен
30.11.2022, 13:42
А где можно почитать про Баннер тревог? В ваших примерах есть только Таблица тревог.

Евгений Кислов
30.11.2022, 13:48
А где можно почитать про Баннер тревог? В ваших примерах есть только Таблица тревог.

Этот элемент имеет одно существенное отличие от таблицы тревог - он отображает только одну тревогу.
Почитать можно здесь в п. 7.8.3:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

ВладОвен
30.11.2022, 13:58
Хм...
Допустим у меня может возникнуть ошибка по удаленному устройству.
Оператор работает на 15 экранах визуализации в разных режимах.
Как сделать всплывающий (блокирующий) баннер, который ляжет поверх любой визуализации в случае ошибки удаленного устройства?
Спасибо за помощь.

Евгений Кислов
30.11.2022, 14:06
Хм...
Допустим у меня может возникнуть ошибка по удаленному устройству.
Оператор работает на 15 экранах визуализации в разных режимах.
Как сделать всплывающий (блокирующий) баннер, который ляжет поверх любой визуализации в случае ошибки удаленного устройства?
Спасибо за помощь.

Разумнее всего будет выделить этот баннер в фрейм и добавить его на все 15 экранов.

ВладОвен
30.11.2022, 17:35
Существует ли возможность создавать мигающие тексты?

Евгений Кислов
30.11.2022, 17:41
Существует ли возможность создавать мигающие тексты?

Для этого достаточно воздействовать на параметр Переменные состояний/Невидимый нужного элемента (например, прямоугольника или метки).

ВладОвен
01.12.2022, 12:56
Здравствуйте. Скажите, а можно ли из прикладной программы изменить размер архива тревог?

Евгений Кислов
01.12.2022, 12:58
Здравствуйте. Скажите, а можно ли из прикладной программы изменить размер архива тревог?

Добрый день.
Речь идет о конфигурации тревог? (AlarmConfiguration)

ВладОвен
01.12.2022, 13:20
Да. Именно об этом.

Евгений Кислов
01.12.2022, 14:01
Да. Именно об этом.

Нет, изменить ограничение на на размер файла истории тревог из кода программы нельзя.

yurya
07.12.2022, 15:41
Добрый день.
Требуется по кнопке изменить экран визуализации с паролем.
Подскажите где почитать?

Евгений Кислов
07.12.2022, 15:52
Добрый день.
Требуется по кнопке изменить экран визуализации с паролем.
Подскажите где почитать?

Добрый день.
Т.е. при нажатии на кнопку должно появляться окно для ввода логина/пароля и после авторизации - переход на нужный экран?
Какую версию CODESYS вы используете?

yurya
07.12.2022, 15:57
Да, правильно. CDS 3.5.11.5.

Евгений Кислов
07.12.2022, 16:01
Да, правильно. CDS 3.5.11.5.

См. этот пример:
https://owen.ru/forum/showthread.php?t=28167&p=312297&viewfull=1#post312297

heiipyxa
09.12.2022, 09:32
Добрый день. Подскажите пожалуйста в чем проблема. Каждые сутки перестает работать веб-визуализация. помогает только перезагрузка контроллера. 64441

Евгений Кислов
09.12.2022, 09:45
Добрый день. Подскажите пожалуйста в чем проблема. Каждые сутки перестает работать веб-визуализация. помогает только перезагрузка контроллера. 64441

Добрый день.
Ошибки на скриншоте точно не связаны c вашей ситуацией.
Как осуществляется доступ к вашей визуализации?
Только из локальной сети или можно и через интернет?
Какое еще оборудование есть в локальной сети?

heiipyxa
09.12.2022, 16:54
Плк подключен в общую сеть с выходом в интернет. К визуализации есть доступ отовсюду. Визуализация перестает работать когда возникает ошибка которая на скриншоте.

heiipyxa
09.12.2022, 16:59
При этом программа работает дальше. Только нет доступа к визуализации не открывается страница не из локальной сети не из интернета. Ещё заметил что не возможно достучаться к контроллеру. Пока весит визуализация. Помогает только перезагрузка.

Евгений Кислов
09.12.2022, 17:46
Плк подключен в общую сеть с выходом в интернет. К визуализации есть доступ отовсюду. Визуализация перестает работать...

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

heiipyxa
09.12.2022, 21:51
Я такое тоже наблюдал.
Гипотеза - в интернете есть сервисы, которые сканируют весь пул адресов по всем портам для поиска известных уязвимостей.
При определенной интенсивности таких запросов веб-сервер визуализации контроллера может прекратить функционировать.
Можно попробовать настроить фильтрацию трафика в межсетевом экране контроллера или (что будет правильнее) в промежуточном сетевом оборудовании, через которое контроллер подключен к интернету.

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

heiipyxa
16.12.2022, 08:34
Спасибо попробую сделать.
Эта праблема началась буквально неделю назад когда в визуализацию добавили изменения. До этого почти год работало хорошо небыло никаких проблем. И самое не понятное почему ошибка выскакивает почти в одно и тоже врямя каждый день.

Сеть-Межсетевой экран - Правила для трафика Allow-Codesys-Gataway-Tcp,Allow-Codesys-Gataway-Udp. Убрал с этих пунктов галочки и все заработало.

UAN
19.12.2022, 15:07
Здравствуйте.
Подскажите, пожалуйста, как из фрейма в визуализацию передать конкретное значение:
64654
Или, может, есть другое решение. Суть решаемой задачи: в визуализации есть кнопка. Данная визуализация представлена несколькими фреймами. При нажатии на кнопку мне нужно знать, в каком фрейме произошло нажатие.

Евгений Кислов
19.12.2022, 15:31
Здравствуйте.
Подскажите, пожалуйста, как из фрейма в визуализацию передать конкретное значение:
64654
Или, может, есть другое решение. Суть решаемой задачи: в визуализации есть кнопка. Данная визуализация представлена несколькими фреймами. При нажатии на кнопку мне нужно знать, в каком фрейме произошло нажатие.

Добрый день.
Обычно в таких случаях к переменным фрейма привязываются элементы массива.
Т.е. для для вашей кнопки это будут элементы массива типа BOOL.
По индексу массива можно определить фрейм, которую соответствует переменная конкретной кнопки.

UAN
19.12.2022, 16:24
Благодарю за ответ.
Т.е. вместо числа я передаю элемент некоего массива с требуемым числом в номере элемента?
64657
А как получить индекс элемента в визуализации?

Евгений Кислов
19.12.2022, 16:26
Т.е. вместо числа я передаю элемент некоего массива с требуемым числом в номере элемента?
64657

Да.


А как получить индекс элемента в визуализации?

Что значит "получить в визуализации"?
Можете скриншотом показать, где именно вам его нужно получить?

UAN
19.12.2022, 16:42
В визуализации мне в OnMouseClick -> Execute ST-Code кнопки нужно то самое число.
64658

Евгений Кислов
19.12.2022, 16:44
В визуализации мне в OnMouseClick -> Execute ST-Code кнопки нужно то самое число.
64658

Эта кнопка - за пределами фрейма?
В чем смысл кода, который к ней привязан?
Вы можете подробно описать вашу задачу? (именно задачу, а не ее решение)

ВладОвен
19.12.2022, 16:56
Здравствуйте.
В ПЛК СПК110 на экране визуализации разместил фрейм, а в нем браузер.
Но когда переходу на этот экран с фреймом, то ПЛК зависает. Тач не реагирует, часы на экране остановились.
Что может быть не так? Как победить?
Спасибо.

Евгений Кислов
19.12.2022, 16:59
Здравствуйте.
В ПЛК СПК110 на экране визуализации разместил фрейм, а в нем браузер.
Но когда переходу на этот экран с фреймом, то ПЛК зависает. Тач не реагирует, часы на экране остановились.
Что может быть не так? Как победить?
Спасибо.

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

UAN
20.12.2022, 13:13
Задача: нужно реализовать выбор производимого изделия. Дальнейшее понимание проблемы без описания решения наверное будет затруднительно.
Изделия - массив структур (ID, Наименование, Номер изображения с эскизом, и т.д). Я сделал такую визуализацию:
64690
Кнопки - фреймы. На кнопках наименования изделий, при нажатии на кнопку в соответствующую переменную пишем ID выбранного изделия. Соответственно, для получения ID мне нужно знать номер нажатой кнопки. Этот номер я и пытаюсь вставить в References фрейма, в котором находится кнопка, но Codesys просит переменную с возможностью записи (A reference assignment requires a variable with write access as the source expression).

Евгений Кислов
20.12.2022, 13:21
Если отталкиваться от задачи - то я бы предложил реализовать всё это с помощью элемента Таблица.
- к ней легко можно привязать массив структур и получить примерно такой же внешний вид, как у вас (при этом не придется вручную создавать полосу прокрутки - у таблица она уже есть)
- в рамках таблицы доступна специальная системная переменная INDEX, отражающая индекс строки таблицы, с которой выполняется работа.
Подробнее см. здесь: https://youtu.be/-qPyjuiPbbk

Единственный минус - несколько меньше возможностей по кастомизации внешнего вида.

UAN
20.12.2022, 15:14
То, что нужно. Обошелся в итоге вообще без фреймов. Спасибо.
И все-таки, если мне нужно передать через Reference не переменную а конкретное значение или результат функции, это можно как-то сделать?

Евгений Кислов
20.12.2022, 15:24
То, что нужно. Обошелся в итоге вообще без фреймов. Спасибо.
И все-таки, если мне нужно передать через Reference не переменную а конкретное значение или результат функции, это можно как-то сделать?

В какой версии CODESYS вы работаете?
Я подготовлю в ней простейший пример на эту тему.

Передать конкретное значение нужно именно из фрейма в переменную программы?

Карбофос
20.12.2022, 17:21
Здравствуйте. Очередная странная сатана:
Codesys 3.5.17.3, СПК 110. Добавляю кнопке событие OnMouseClick "Изменить показанную визуализацию" -> "Предыдущая визуализация". Почему-то переход происходит только после второго нажатия на кнопку. Нюанс: воспроизводится проблема только со второго раза, т.е. после запуска проекта, первое нажатие на любую такую кнопку отрабатывает как надо, после этого все время со второго раза. Воспроизводится и в эмуляторе, и в web-визуализации, и на экране СПК. Событие "OnMouseDown" работает так же.

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

64700

Евгений Кислов
20.12.2022, 17:23
Здравствуйте. Очередная странная сатана:
Codesys 3.5.17.3, СПК 110. Добавляю кнопке событие OnMouseClick "Изменить показанную визуализацию" -> "Предыдущая визуализация". Почему-то переход происходит только после второго нажатия на кнопку. Нюанс: воспроизводится проблема только со второго раза, т.е. после запуска проекта, первое нажатие на любую такую кнопку отрабатывает как надо, после этого все время со второго раза. Воспроизводится и в эмуляторе, и в web-визуализации, и на экране СПК. Событие "OnMouseDown" работает так же.

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

64700

Добрый день.
Это баг, исправленный в свежих версиях плагина визуализации.
Рассказывал о нем здесь: https://owen.ru/forum/showthread.php?t=36960

UAN
22.12.2022, 12:09
3.5.14.3, СПК110
Нужно передать конкретное значение из фрейма во входную переменную визуализации.

UAN
22.12.2022, 12:21
Евгений, поясните, пожалуйста. Если я вызвал MessageBoxOwen (eType=YES_NO) по нажатию кнопки OnMouseClick->OpenDialog, как мне понять, что ответил пользователь?

Евгений Кислов
22.12.2022, 12:31
3.5.14.3, СПК110
Нужно передать конкретное значение из фрейма во входную переменную визуализации.

У визуализации не может быть входных переменных, иначе она становится фреймом.
Можно передать в локальную переменную визуализации.
См. синтетический пример:
https://disk.yandex.ru/d/3O5F7Y7Ho-9U9A

Евгений Кислов
22.12.2022, 12:33
Евгений, поясните, пожалуйста. Если я вызвал MessageBoxOwen (eType=YES_NO) по нажатию кнопки OnMouseClick->OpenDialog, как мне понять, что ответил пользователь?

См. пример, там показано, как это сделать с помощью специального ФБ:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_OwenVisuDialogs_3514v3.projectarchive

Lisov-R
29.12.2022, 14:42
Добрый день! Наверное я плохо искал или не по тем ключевым словам, но не нашел как сделать библиотеку фреймов.

Евгений Кислов
29.12.2022, 16:01
Добрый день! Наверное я плохо искал или не по тем ключевым словам, но не нашел как сделать библиотеку фреймов.

Добрый день.
Про фреймы см. здесь в. п. 10.3.3:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

Создание библиотеки: Файл - Новый проект - Библиотеки - CODESYS-библиотека

Существенных отличий между созданием проекта и созданием библиотеки нет.

vozlov
07.01.2023, 21:58
а вообще визуализацию можно по центру браузера сделать? а то прилипло к левой стороне))

тоже интересует, есть ли такая настройка? чтобы всегда было в центре.

Евгений Кислов
08.01.2023, 06:42
тоже интересует, есть ли такая настройка? чтобы всегда было в центре.

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

service
09.01.2023, 17:11
Добрый день!
Создал экраны визуализации. Управление задвижкой (1 на фото) и транспортером (2 на фото) происходит через диалоговые окна. При их повторном открытии происходит такая картина (см. фото). Проверял в симуляции и на виртуальном контроллере. В чем может быть проблема?

Евгений Кислов
09.01.2023, 17:39
Добрый день!
Создал экраны визуализации. Управление задвижкой (1 на фото) и транспортером (2 на фото) происходит через диалоговые окна. При их повторном открытии происходит такая картина (см. фото). Проверял в симуляции и на виртуальном контроллере. В чем может быть проблема?

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

service
09.01.2023, 18:13
Версия 3.5.11 Patch 5. Проект по ссылке.
https://fex.net/ru/s/mctscps

Евгений Кислов
09.01.2023, 18:35
Версия 3.5.11 Patch 5. Проект по ссылке.
https://fex.net/ru/s/mctscps

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

service
09.01.2023, 18:51
Спасибо, попробую

UAN
10.01.2023, 13:01
У визуализации не может быть входных переменных, иначе она становится фреймом.
Можно передать в локальную переменную визуализации.
См. синтетический пример:
https://disk.yandex.ru/d/3O5F7Y7Ho-9U9A

Чтобы передать во фрейм конкретное значение а не переменную, нужно чтобы входная переменная визуализации, привязываемой к фрейму, была объявлена в разделе VAR_INPUT. Спасибо за пример.

fatlortroll
11.01.2023, 13:38
День добрый.
Для CoDeSys 3.5 SP14 P3+ при помещении кнопок в GroupBox свойство Deactivate inputs перестаёт задавать внешний вид. Т.е. если задать его в TRUE, кнопка не сменит цвет на блеклый. Это нормально, или ошибка CoDeSys-а?

Евгений Кислов
11.01.2023, 13:44
День добрый.
Для CoDeSys 3.5 SP14 P3+ при помещении кнопок в GroupBox свойство Deactivate inputs перестаёт задавать внешний вид. Т.е. если задать его в TRUE, кнопка не сменит цвет на блеклый. Это нормально, или ошибка CoDeSys-а?

Добрый день.
Это баг, в SP17 Patch 3 он уже исправлен.

65098

fatlortroll
11.01.2023, 13:45
Ясно, спасибо.

ДаниилСПб
11.01.2023, 16:34
Возможно ли стилизовать(поменять отдельные цвета) отдельных элементов в библиотеке? Например заменить фирменный цвет Овен(салатовый) на другой?

Евгений Кислов
11.01.2023, 16:38
Возможно ли стилизовать(поменять отдельные цвета) отдельных элементов в библиотеке? Например заменить фирменный цвет Овен(салатовый) на другой?

Добрый день.
О какой именно библиотеке речь? Об OwenVisuDialogs?

vozlov
11.01.2023, 23:26
Добрый день.
Покажите скриншотом, как у вас визуализация отображается сейчас, и нарисуйте эскиз, как вам нужно, чтобы она отображалась.
Вот так:
https://s1.hostingkartinok.com/uploads/images/2023/01/505e9e4dce294a5c063aeb2f23300ae7.png

А надо, чтобы HMI масштабировалась на всю ширину (или хотя бы было в центре)

Евгений Кислов
12.01.2023, 06:43
В настройках web-визулизации установите тип масштабирования Изотропная (с сохранением пропорций) или Анизотропная (без сохранения пропорций).

65109

ДаниилСПб
12.01.2023, 08:51
Добрый день.
О какой именно библиотеке речь? Об OwenVisuDialogs?

Да, там общая цветовая схема достаточно нейтральна и универсальна. Сильно не вписывается только салатовый...

Евгений Кислов
12.01.2023, 09:04
Да, там общая цветовая схема достаточно нейтральна и универсальна. Сильно не вписывается только салатовый...

Цвета можно менять прямо в коде с помощью глобальных переменных библиотеки:

65111

ДаниилСПб
12.01.2023, 09:38
Спасибо!
Еще вопрос по HTML5 элементам.
В примере текст кнопки можно задать только через переменную. Латинские буквы отображаются корректно, кириллица -нет. В чем может быть проблема и вообще решаема ли она?
Текст попадает в элемент через функцию setText обертки HTML5DemoButtonElementWrapper.
Вот проект:
https://dropmefiles.com/sYH4c

Евгений Кислов
12.01.2023, 10:00
Спасибо!
Еще вопрос по HTML5 элементам.
В примере текст кнопки можно задать только через переменную. Латинские буквы отображаются корректно, кириллица -нет. В чем может быть проблема и вообще решаема ли она?
Текст попадает в элемент через функцию setText обертки HTML5DemoButtonElementWrapper.
Вот проект:
https://dropmefiles.com/sYH4c

По этому вопросу я не могу вас проконсультировать.
В данный момент системной документации по HTML-контролам почти нет, и в версии плагина визуализации, которая идет "из коробки" для 3.5.17.30 они не поддерживаются.

ДаниилСПб
12.01.2023, 10:10
Очень жаль. Спасибо! Буду разбираться.

ДаниилСПб
13.01.2023, 11:22
Цвета можно менять прямо в коде с помощью глобальных переменных библиотеки:

65111

К сожалению не получается переопределить цвет. Код в PLC_PRG(PRG):

OVD.NumpadOwenColors.dwNumpadFrame := COLORS.Aero;

или

OVD.NumpadOwenColors.dwNumpadFrame := 16#FFFF0000;

Вызывает ошибку:

C0230: Имя типа 'NumpadOwenColors' здесь неуместно

Гугл не помог. Подскажите пожалуйста в чем может быть проблема?

Евгений Кислов
13.01.2023, 11:28
К сожалению не получается переопределить цвет. Код в PLC_PRG(PRG):

OVD.NumpadOwenColors.dwNumpadFrame := COLORS.Aero;

Вызывает ошибку:

C0230: Имя типа 'NumpadOwenColors' здесь неуместно

Гугл не помог. Подскажите пожалуйста в чем может быть проблема?

Нужно обращаться не к структуре, а к ее экземпляру в списке глобальных переменных.

OVD.DialogsSettings.g_stNumpadOwenColors.dwNumpadF rame := COLORS.Aero;

ДаниилСПб
13.01.2023, 12:01
Спасибо! Получилось поменять цвета рамки окна и поля ввода. Не могу найти задание фона цвета подтверждения(салатовый), отмены(красный) и назад(оранжевый). Они задаются в другом месте?

Евгений Кислов
13.01.2023, 12:08
Спасибо! Получилось поменять цвета рамки окна и поля ввода. Не могу найти задание фона цвета подтверждения(салатовый), отмены(красный) и назад(оранжевый). Они задаются в другом месте?

См. скриншот:

65144

ДаниилСПб
13.01.2023, 12:46
См. скриншот:

65144

Разобрался, спасибо! Смутил индекс "st" у переменной. Подумал что это string с описанием, а это структура))

vozlov
13.01.2023, 18:24
Можно как-то сделать, чтобы при входе на страницу по умолчанию сразу требовало авторизацию пользователя, и только после ввода корректных данных отображало ее?
Без нажатия кнопок.

Все элементы страницы могу скрыть, установив им такое свойство:
https://s1.hostingkartinok.com/uploads/images/2023/01/f42e46fdd16caf914297fe9f16551daa.png
Но как сделать, чтобы принудительно запрашивались авторизационные данные?

И второй вопрос - можно ли как-то кастомизировать окно логина, чтобы оно было по всей ширине (ниже пример, как оно отображается на мобильном устройстве):
65161

Евгений Кислов
13.01.2023, 18:27
Можно как-то сделать, чтобы при входе на страницу

Каким образом выполняется вход на страницу? Нажатием на кнопку на основном экране визуализации или еще как-то?


И второй вопрос - можно ли как-то кастомизировать окно логина, чтобы оно было по всей ширине (ниже пример, как оно отображается на мобильном устройстве):

Выложите ваш проект, в котором это повторяется (уберите все, кроме кнопки логина) - посмотрю, в чем дело.

vozlov
13.01.2023, 20:26
Каким образом выполняется вход на страницу?

Просто в браузере по IP-адресу. http://ipaddr/webvisu.htm

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

Евгений Кислов
13.01.2023, 20:29
Тогда, мне кажется, вам проще так сделать:
https://youtu.be/ehTkxII0CqA

vozlov
13.01.2023, 20:42
Тогда, мне кажется, вам проще так сделать:
https://youtu.be/ehTkxII0CqA

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

ДаниилСПб
18.01.2023, 14:16
Добрый день, подскажите пожалуйста можно ли из кода обратиться к конкретным экземплярам визуализации и изменить их параметры?
Есть ли в визуализации/Codesys возможность обратиться к экземпляру себя?(аналог self, this итп) Например, выполнить при нажатии st код прямоугольника, который бы менял свой цвет(аналог переключателя).

Евгений Кислов
18.01.2023, 14:27
Добрый день, подскажите пожалуйста можно ли из кода обратиться к конкретным экземплярам визуализации и изменить их параметры?
Есть ли в визуализации/Codesys возможность обратиться к экземпляру себя?(аналог self, this итп) Например, выполнить при нажатии st код прямоугольника, который бы менял свой цвет(аналог переключателя).

Добрый день.


подскажите пожалуйста можно ли из кода обратиться к конкретным экземплярам визуализации и изменить их параметры?

Только через изменение значений привязанных к параметрам элементов переменных.


Например, выполнить при нажатии st код прямоугольника, который бы менял свой цвет(аналог переключателя).

Это элементарно решается и без кода:

65219 65220

ДаниилСПб
18.01.2023, 14:39
Добрый день.



Только через изменение значений привязанных к параметрам элементов переменных.



Это элементарно решается и без кода:

65219 65220

Поменять цвет текста так нельзя, верно? Только фон и рамка. Чтобы поменять для каждого условно прямоугольника(кнопки) требуется завести переменные и менять их через выполнить ST?(как в примере)

Евгений Кислов
18.01.2023, 14:46
Можно поменять и цвет текста (см. папку параметров Переменные шрифта).
Да, к каждому элементу потребуется привязать свои переменные.

ДаниилСПб
19.01.2023, 11:49
Евгений, благодарю за предыдущий ответ!
Возможно ли через глобальные переменные(как с цветом) или как то еще изменить размер фрейма диалога?
В библиотеке есть вкладка Frame Configuration, но там ничего нет.
Хочется побольше сделать...
Или только через собственный элемент визуализации, заданный как диалог с отмасштабированным вложенным элементом из библиотеки?

Евгений Кислов
19.01.2023, 11:54
Евгений, благодарю за предыдущий ответ!
Возможно ли через глобальные переменные(как с цветом) или как то еще изменить размер фрейма диалога?
В библиотеке есть вкладка Frame Configuration, но там ничего нет.
Хочется побольше сделать...
Или только через собственный элемент визуализации, заданный как диалог с отмасштабированным вложенным элементом из библиотеки?

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

ДаниилСПб
19.01.2023, 13:28
Евгений, возможно ли решение поставленной задачи следующим образом:
1. Создал визуализацию нужного размера(customOwenNumpad), задал ей использование как Numpad
2. Вставил Numpad из OVD
3. Скопировал интерфейсы из библиотеки OVD и вставил их в customOwenNumpad визуализацию
4. Задал customOwenNumpad как тип ввода

Вот проект: https://dropmefiles.com/bbVTY

Компилируется без ошибок, выдается предупреждение "Диалоговую визуализацию <OVD.NumpadOwen> нельзя использовать как шаблонную визуализацию."

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

Возможно ли такое решение или нужно делать полностью свой диалог?

Если возможно, почему не работает закрытие?

Спасибо!

Евгений Кислов
19.01.2023, 16:14
Евгений, возможно ли решение поставленной задачи следующим образом:
1. Создал визуализацию нужного размера(customOwenNumpad), задал ей использование как Numpad
2. Вставил Numpad из OVD
3. Скопировал интерфейсы из библиотеки OVD и вставил их в customOwenNumpad визуализацию
4. Задал customOwenNumpad как тип ввода

Вот проект: https://dropmefiles.com/bbVTY

Компилируется без ошибок, выдается предупреждение "Диалоговую визуализацию <OVD.NumpadOwen> нельзя использовать как шаблонную визуализацию."

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

Возможно ли такое решение или нужно делать полностью свой диалог?

Если возможно, почему не работает закрытие?

Спасибо!

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

Serg52
24.01.2023, 11:08
Добрый день!
Пытался изучить пример визуализации. На установленном CODESYS 3.5.17 SP3 выскочило 506 ошибок из-за отсутствующих библиотек, плейсх... и т.д.
Чтобы просмотреть потребуется переустановить на 3.5. SP6? Но не нахожу этого комплекта.
А для 3.5.17. нет подобного примера?
А, случаем, нет подробного описания работы с виртуальным контроллером?

Евгений Кислов
24.01.2023, 11:11
Добрый день!
Пытался изучить пример визуализации. На установленном CODESYS 3.5.17 SP3 выскочило 506 ошибок из-за отсутствующих библиотек, плейсх... и т.д.
Чтобы просмотреть потребуется переустановить на 3.5. SP6? Но не нахожу этого комплекта.
А для 3.5.17. нет подобного примера?
А, случаем, нет подробного описания работы с виртуальным контроллером?

Добрый день.
Какой именно пример вы хотите изучить?


А, случаем, нет подробного описания работы с виртуальным контроллером?

https://youtu.be/RgtfIOgKwTY

Serg52
24.01.2023, 11:18
Добрый день.
Какой именно пример вы хотите изучить?



https://youtu.be/RgtfIOgKwTY

Пример визуализации Стандартных Функциональных блоков.

Евгений Кислов
24.01.2023, 11:20
Пример визуализации Стандартных Функциональных блоков.

Нет, этот пример не пересобирали в 3.5.17.30.
Посмотрите видеоинструкцию по адаптации проектов:
https://www.youtube.com/watch?v=RwREz7A4PHI&list=PL2EcVEe6E9SD2Ol-aZHEhMMe4aRuvQfhL&index=8&t=4457s

Serg52
24.01.2023, 12:52
Нет, этот пример не пересобирали в 3.5.17.30.
Посмотрите видеоинструкцию по адаптации проектов:
https://www.youtube.com/watch?v=RwREz7A4PHI&list=PL2EcVEe6E9SD2Ol-aZHEhMMe4aRuvQfhL&index=8&t=4457s

Спасибо Вам за ссылку на видео! Но там вскользь сказано о подключении web-визуализации. Набираю IP-адрес ПК - 192.168.0.20:8080 и ничего не находит.
Не могу понять, во всех примерах при запуске появляется страница визуализации, у меня - нет!
Рядом с переменными в ST высвечиваются цветные прямоугольники со значением переменных, у меня - нет!

Евгений Кислов
24.01.2023, 12:55
Спасибо Вам за ссылку на видео! Но там вскользь сказано о подключении web-визуализации. Набираю IP-адрес ПК - 192.168.0.20:8080 и ничего не находит.
Не могу понять, во всех примерах при запуске появляется страница визуализации, у меня - нет!
Рядом с переменными в ST высвечиваются цветные прямоугольники со значением переменных, у меня - нет!

Добрый день.
Пришлите мне в личку ваш контактный телефон и данные для доступа по AeroAdmin.
Сегодня я буду доступен для связи еще час.

ДаниилСПб
25.01.2023, 11:42
Здравствуйте, Евгений!
Подскажите пожалуйста, как обновить стиль визуализации без перезагрузки(всего)?
Открываю в проекте редактор стилей, меняю цвета, нажимаю установить в репу, закрываю.
При запуске через Control Win ничего не меняется(ни в IDE ни в веб).
Проверяю собственно стиль в репо - изменения в нем есть.
Складывается ощущение, что стиль при загрузке куда-то кешируется, но не понятно как этот кеш сбросить и заставить работать визуализацию с обновленным стилем из репо.
В документации по стилям и визуализации в целом не нашел информации, как обновить стиль в текщем проекте.
Рабочий стиль наследован он библиотечного, переименован и пересохранен.

Евгений Кислов
25.01.2023, 12:11
Здравствуйте, Евгений!
Подскажите пожалуйста, как обновить стиль визуализации без перезагрузки(всего)?
Открываю в проекте редактор стилей, меняю цвета, нажимаю установить в репу, закрываю.
При запуске через Control Win ничего не меняется(ни в IDE ни в веб).
Проверяю собственно стиль в репо - изменения в нем есть.
Складывается ощущение, что стиль при загрузке куда-то кешируется, но не понятно как этот кеш сбросить и заставить работать визуализацию с обновленным стилем из репо.
В документации по стилям и визуализации в целом не нашел информации, как обновить стиль в текщем проекте.
Рабочий стиль наследован он библиотечного, переименован и пересохранен.

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

Карбофос
26.01.2023, 13:33
Здравствуйте. СПК110 (Кодесис 3.5.14.3). Наблюдаю следующее поведение: имеется переменная xisAdmin типа BOOL, в которой хранится информация, залогинен ли сейчас пользователь Admin. Запись в нее производится в коде:

GVL1.xisAdmin := VisuElems.CurrentUserName = STRING_TO_WSTRING('Admin');
Пока в работе только сама панель, все корректно, когда подключается еще одно устройство с визуализацией (веб-интерфейс или кодесис в онлайн режиме) и если при этом залогиниться в одном из устройств под админом, то значение переменной начинает прыгать с 0 на 1 и обратно.
Как я понимаю, это происходит потому что в визуализации одного устройства мы залогинены, а другого - нет. Можно ли как-то отследить факт логина в конкретном устройстве?

Евгений Кислов
26.01.2023, 14:13
Здравствуйте. СПК110 (Кодесис 3.5.14.3). Наблюдаю следующее поведение: имеется переменная xisAdmin типа BOOL, в которой хранится информация, залогинен ли сейчас пользователь Admin. Запись в нее производится в коде:

GVL1.xisAdmin := VisuElems.CurrentUserName = STRING_TO_WSTRING('Admin');
Пока в работе только сама панель, все корректно, когда подключается еще одно устройство с визуализацией (веб-интерфейс или кодесис в онлайн режиме) и если при этом залогиниться в одном из устройств под админом, то значение переменной начинает прыгать с 0 на 1 и обратно.
Как я понимаю, это происходит потому что в визуализации одного устройства мы залогинены, а другого - нет. Можно ли как-то отследить факт логина в конкретном устройстве?

Добрый день.
Переменные типа VisuElems.Current... являются контексто-зависимыми - то есть их нет смысла использовать в коде.
Можно, например, привязать такую переменную к элементу на экране визуализации - тогда для конкретного клиента будет отображаться соответствующее значение переменной.

По вашему вопросу - см. пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/03_Additional/Example_ClientManager_3511v1.projectarchive

Карбофос
27.01.2023, 09:51
Спасибо, буду разбираться.

Еще вопрос: есть текстовое поле ввода, для него установлены права для пользователя 'none' -"only visible". Пока администратор не залогинен, поле становится бледным - можно сделать так, чтобы поле выглядело одинаково, независимо от текущего пользователя, но было доступно для изменения только под админом?

Евгений Кислов
27.01.2023, 10:07
Спасибо, буду разбираться.

Еще вопрос: есть текстовое поле ввода, для него установлены права для пользователя 'none' -"only visible". Пока администратор не залогинен, поле становится бледным - можно сделать так, чтобы поле выглядело одинаково, независимо от текущего пользователя, но было доступно для изменения только под админом?

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

65504

Тогда элемент "не будет бледным".

Петр Петрович
27.01.2023, 10:28
Добрый день.
Подскажите пожалуйста, почему элемент Бегунок (движок) на смартфоне под Android в Chrome почти не управляется? Как бы не удается его захватить что ли. На планшете под Windows в том же Chrome ситуация получше, но тоже не супер. Попробовал сделать движок крупнее в несколько раз, убрал рядом стоящие элементы (для эксперимента). Под Windows более или менее, Android - без реакции. Да. пробовал движки горизонтальный и вертикальный, разницы практически нет.

Евгений Кислов
27.01.2023, 10:50
Добрый день.
Подскажите пожалуйста, почему элемент Бегунок (движок) на смартфоне под Android в Chrome почти не управляется? Как бы не удается его захватить что ли. На планшете под Windows в том же Chrome ситуация получше, но тоже не супер. Попробовал сделать движок крупнее в несколько раз, убрал рядом стоящие элементы (для эксперимента). Под Windows более или менее, Android - без реакции. Да. пробовал движки горизонтальный и вертикальный, разницы практически нет.

Добрый день.
Попробуйте в менеджере визуализации поставить галочку Multitouch handling и перезагрузить проект и контроллер.

Петр Петрович
27.01.2023, 11:45
> Попробуйте в менеджере визуализации поставить галочку Multitouch handling и перезагрузить проект и контроллер.
Спасибо, я находил ее. Я бы даже сказал, что в моем случае она не дает практически ничего. Что интересно, поворотная ручка (Потенциометр) почти всегда работает нормально. Коллеги! А у Вас есть возможность проверить на своих устройствах с сенсорными экранами, нормально ли управляется пальцем "Бегунок" с вкладки стандартных элементов управления?

Евгений Кислов
27.01.2023, 11:50
> Попробуйте в менеджере визуализации поставить галочку Multitouch handling и перезагрузить проект и контроллер.
Спасибо, я находил ее. Я бы даже сказал, что в моем случае она не дает практически ничего. Что интересно, поворотная ручка (Потенциометр) почти всегда работает нормально. Коллеги! А у Вас есть возможность проверить на своих устройствах с сенсорными экранами, нормально ли управляется пальцем "Бегунок" с вкладки стандартных элементов управления?

На наших устройствах "бегунок" управляется нормально.

Петр Петрович
27.01.2023, 11:53
> На наших устройствах "бегунок" управляется нормально. Да, странно. На моем смартфоне Meizu кроме бегунка тоже все отлично. И на старом планшете под Windows. А Вы в браузере Chrome пробуете?

grizli_s
27.01.2023, 12:08
Добрый день. Подскажите начинающему.Возможен ли поворот объекта вокруг оси. В инструкции данная функция указана, но у меня отсутствует точка вращения . v 3.5 SP14 patch 3

Евгений Кислов
27.01.2023, 12:20
> На наших устройствах "бегунок" управляется нормально. Да, странно. На моем смартфоне Meizu кроме бегунка тоже все отлично. И на старом планшете под Windows. А Вы в браузере Chrome пробуете?

Да, проверяли на телефоне в Chrome.

Евгений Кислов
27.01.2023, 12:23
Добрый день. Подскажите начинающему.Возможен ли поворот объекта вокруг оси. В инструкции данная функция указана, но у меня отсутствует точка вращения . v 3.5 SP14 patch 3

Добрый день.
С каким контроллером вы работаете?

grizli_s
27.01.2023, 12:36
ПЛК210-02-CS , Панель ВП110

Евгений Кислов
27.01.2023, 12:41
ПЛК210-02-CS , Панель ВП110

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

grizli_s
27.01.2023, 12:50
К сожалению, в данный момент уже не получится. Могу я к вам обратиться с этим же вопросом в среду?

Евгений Кислов
27.01.2023, 12:54
К сожалению, в данный момент уже не получится. Могу я к вам обратиться с этим же вопросом в среду?

Да, без проблем.

ДаниилСПб
27.01.2023, 13:37
Добрый день, в интерфейсе трендов есть две переменные bZmHome0 и bPanHome0.

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

Хочется делать сброс одновременно одной кнопкой.

Привязал новую кнопку(сброс всего) к вспомогательной переменной и в основной программе хотел организовать TON таймер по выходам которого проходил бы импульс(10-20мс) на сброс bZmHome0 и bPanHome0, но не понимаю как обратиться к интерфейсу фрейма тренда из основной программы.

Как обратиться к интерфейсу фрейма из других областей видимостей(например из основной программы) или как лучше решить поставленную задачу?

Спасибо!

Евгений Кислов
27.01.2023, 13:42
Добрый день, в интерфейсе трендов есть две переменные bZmHome0 и bPanHome0.

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

Хочется делать сброс одновременно одной кнопкой.

Привязал новую кнопку(сброс всего) к вспомогательной переменной и в основной программе хотел организовать TON таймер по выходам которого проходил бы импульс(10-20мс) на сброс bZmHome0 и bPanHome0, но не понимаю как обратиться к интерфейсу фрейма тренда из основной программы.

Как обратиться к интерфейсу фрейма из других областей видимостей(например из основной программы) или как лучше решить поставленную задачу?

Спасибо!

Добрый день.
Ваша вспомогательная переменная является входом (VAR_INPUT) фрейма?

ДаниилСПб
27.01.2023, 13:50
Добрый день.
Ваша вспомогательная переменная является входом (VAR_INPUT) фрейма?

Нет, я объявил ее в основной программе. Как-то так:

PROGRAM PLC_PRG
VAR
zoomPanResetTimer: TON;
zoomPanReset: BOOL;
END_VAR

zoomPanResetTimer( IN := zoomPanReset, PT := T#20MS);
bPanHome0 := PLC_PRG.zoomPanResetTimer.Q;
bZmHome0 := PLC_PRG.zoomPanResetTimer.Q;

Интерфейс тренда:

VAR_IN_OUT
END_VAR
VAR
bZmEnable0 : BOOL;
bZmHome0 : BOOL;
bZmUndo0 : BOOL;
bIsZoomed0 : BOOL;
bPanEnable0 : BOOL;
bPanHome0 : BOOL;
bIsPanned0 : BOOL;
bEnableOnY0 : BOOL;
END_VAR

Копка в тренде управляется нажатием и связана с переменной PLC_PRG.zoomPanReset

Евгений Кислов
27.01.2023, 13:57
Добавьте в интерфейсе фрейма в VAR_INPUT вход zoomPanReset.
В конфигурации фрейма привяжите к нему переменную zoomPanReset из вашей программы PLC_PRG.

Карбофос
27.01.2023, 15:22
Есть ли известные причины, почему может не отображаться изображение на экране СПК? Кодесис 3.5.14.3
Добавляю в пул изображений свою картинку png, создаю элемент "изображение", указываю ему статический id из пула изображений. При подключении онлайн из кодесис оно отображается, но в самой панели и веб-интерфейсе просто пустой прямоугольник.

Евгений Кислов
27.01.2023, 16:04
Есть ли известные причины, почему может не отображаться изображение на экране СПК? Кодесис 3.5.14.3
Добавляю в пул изображений свою картинку png, создаю элемент "изображение", указываю ему статический id из пула изображений. При подключении онлайн из кодесис оно отображается, но в самой панели и веб-интерфейсе просто пустой прямоугольник.

Основная причина - название файла картинки содержит символы кириллицы или спецсимволы.

vozlov
28.01.2023, 00:53
Тогда, мне кажется, вам проще так сделать:
https://youtu.be/ehTkxII0CqA

Можно ли как-то изменить внешний вид данного окна авторизации (размер, шрифты, цвета и т.д.)?

https://s1.hostingkartinok.com/uploads/images/2023/01/85364087c647c2011e4dc51fc85410b2.jpg

Евгений Кислов
28.01.2023, 08:41
Можно ли как-то изменить внешний вид данного окна авторизации (размер, шрифты, цвета и т.д.)?

https://s1.hostingkartinok.com/uploads/images/2023/01/85364087c647c2011e4dc51fc85410b2.jpg

Такая возможность появилась в плагине визуализации 4.2.0.0 - но, насколько я помню, для нашей версии рантайма она еще не поддерживается.
https://youtu.be/rMww0ZzFo0U

vozlov
28.01.2023, 15:10
Такая возможность появилась в плагине визуализации 4.2.0.0 - но, насколько я помню, для нашей версии рантайма она еще не поддерживается.
https://youtu.be/rMww0ZzFo0U

Т.е. обновляться до 4.2.0.0 или 4.3.0.0 смысла нет, работать не будет?

Евгений Кислов
28.01.2023, 15:14
Т.е. обновляться до 4.2.0.0 или 4.3.0.0 смысла нет, работать не будет?

Конкретно эта фича - не будет (насколько я помню).

vozlov
28.01.2023, 18:24
Речь же об окне ввода пароля для Device User, верно? Тот же пользователь, под которым идет подключение к ПЛК

Евгений Кислов
28.01.2023, 18:42
Речь же об окне ввода пароля для Device User, верно? Тот же пользователь, под которым идет подключение к ПЛК

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