Добрый день,
добавили получается до LATCH8 ?
Вид для печати
Добрый день.
Не очень понял, для отключенного клиента ведь ничего не существует, в принципе.
Лучше выложите, пожалуйста, простой проект с текущей реализацией (без лишних сущностей) и подробно опишите, чего вы хотите добиться.
Архив проекта
https://dropmefiles.com/lBmRV
К web визуализации будут подключаться клиенты,
для навигации по пунктам меню необходимо переключать фреймы и закрашивать кнопки включения текущего фрейма.
Собственно получается, что для каждого клиента нужно где то хранить состояние нажатой кнопки.
Но после отключения клиента, состояние кнопок остается естественно прежним.
Может конечно не до конца правильно реализовал переключение для мультиклиентного использования визуализации
Делал по описанию CDSv3.5_Visu_v2.1 стр 432
Остается прежним где и для кого?Цитата:
Но после отключения клиента, состояние кнопок остается естественно прежним.
Вы не могли написать, куда надо нажимать и на что смотреть, чтобы увидеть проблему?
Переключать надо фреймы,
состояние кнопок для каждого клиента лежат в массиве
aChangeVisuButton_Setting: ARRAY [VISU_MIN_NUMBER_OF_CLIENTS..VISU_MAX_NUMBER_OF_CLI ENTS-1]
Если закрыть вкладку браузера, например с clientid = 2 , то в массиве aChangeVisuButton_Setting[2] останутся прежние состояния для клиента с id 2.
Я хочу получить статус того что клиент отключился и вернуть состояние кнопок в aChangeVisuButton_Setting[2]
Вложение 51596
Посмотрите этот пример:
https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
Там демонстрируется, как собирать информацию о клиентах и в т.ч. определять момент отключения клиента.
подскажите, как можно вызвать стандартный MessageBox (Visudialogs) из программы по выполнению условия?
Посмотрите пример:
https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
Если нужно выводить тексты на русском - то в исходниках библиотеки надо в диалоге заменить у строковых переменных тип на WSTRING.
Вроде рассмотрел пример вдоль и поперек но не нашел момента отключение и подключение клиента.
В качестве событие сделал сравнение на нулевой указатель, когда вкладка закрывается указатель становится равным 0.
Есть вопрос, получается это нормальная ситуация, когда все кнопки переходов по меню необходимо дублировать на всех пользователей?
Может есть какая нибудь галочка у кнопки, или место для них, где эти переменные создаются в момент подключения пользователя ?
Все верно - так и надо детектировать отключение клиента.Цитата:
В качестве событие сделал сравнение на нулевой указатель, когда вкладка закрывается указатель становится равным 0.
Вы сейчас про какие именно кнопки говорите, про кнопки переключения фреймов?Цитата:
Есть вопрос, получается это нормальная ситуация, когда все кнопки переходов по меню необходимо дублировать на всех пользователей?
Добрый день!
В продолжение CURRENTCLIENTID,
1.
Я вывел CURRENTCLIENTID на экран.
Если я обновляю страницу браузера, id возрастает на 1.
Однако в Device.Application.ClientPrg.astVisuClientData[1].pstClientData, где хранится указатель на данные клиента,
остался в том же самом массиве.
То есть фактически, у клиента остался id старый а в браузере выводится новый.
2.
Если открыты три клиента, и я закрываю клиент с id 2, то тот клиент, который был id3, через какое то время становится с номером id2
А состояние кнопок( цвета) привязаны к глобальной переменной CURRENTCLIENTID
Может быть есть какой то еще идентификатор клиента ? Который можно прописать в место CURRENTCLIENTID ?
Есть pstClientData^.GlobalData.GlobalClientID - по идее, он должен совпадать c CURRENTCLIENTID.
Добрый день!
Не совпадает(или по крайней мере у меня), в массиве он остается номер 1 например, а в экране инкрементируется.
Отказался вообще от CURRENTCLIENTID, по этому вопрос снят
Может подскажете, есть ли какой то документ(статья или советы) по оптимизации визуализации,
например, все делать во фреймах или во всплывающих окнах, сколько оптимально выводить текста,
с какой периодичностью обновлять данные и т.п., как расчитать размер буфера(нужно ли)?
Вот например, что лучше будет для ПЛК210 с ВП110 - фиксированный экран 980*582 или же сделать в размерах 490*291 ( в два раза меньше) с дальнейшим масштабированием.
Или еще, в менеджере визуализации: Сглаживание - в CDS написано что снижает работу в браузере, а CODESYS V3.5 визуализация версия 2.1, написано что "может привести к падению производительности". Это в ПЛК или все таки в браузере ?
https://owen.ru/forum/showthread.php...l=1#post263381Цитата:
Может подскажете, есть ли какой то документ(статья или советы) по оптимизации визуализации
Если речь о компоненте WebVisualization - то, вероятно, и в ПЛК, и в браузере.Цитата:
Это в ПЛК или все таки в браузере?
Но важнее, видимо, насколько сильно снижается производительность.
Я сейчас не могу назвать конкретных чисел, но, по-моему, не слишком сильно.
Кроме того, это галка включена по умолчанию - так что, думаю, сильных тормозов она не должна создавать.
Добрый день.
СПК1ххМ01. Хочу яркость экрана менять. при простое снижать, по какой-либо активности увеличивать яркость. Co Screen вручную поигрался.
Есть ли библиотека для работы с этим модулем или фун-я возвращающая время последнего нажатия на экран?
Куда копать :)
Добрый день.
Но ведь Screen и позволяет все это сделать - там есть время до перехода в режимы "притушено" и "погашено" (в случае неактивности пользователя), для которых настраивается нужный уровень яркости.
Или вам нужна какая-то специфика, типа плавного изменения яркости?
да вот не хочет гасить экран.
Может что неправильно делал?
Объявил переменные
// работа с экраном
uiDimTime :UDINT := 30; //Time before the display is dimmed 0..65535
uiDimBrgt :UDINT := 50; //Brightness of the "dimmed" display 0..100
uiFullBrgt :UDINT := 100; //Brightness of the display in full brightness mode 0..100
sDimVis :STRING:='Visualization';
Ну и соответственно подставил в Screen
Вложение 51839
Выложите скриншот вкладки Конфигурация узла Screen.
Здравствуйте, подскажите пожалуйста.
С чем связана ошибка вывода визуализации?
[ERROR] : It is not yet possible to display visualizations in online mode when client animations and overlay of native controls are active.
Использую ПЛК210-3. Визуализацию вывожу в CodeSys3.5.
Заранее спасибо за ответ.
Добрый день.
Вы установили в менеджере визуализации галочку "Support client animations and overlay of native elements".
При наличии этой галочки в редакторе CODESYS визуализация не отображается (в текущих версиях).
Используйте веб-визуализацию - она будет работать корректно.
Евгений,
я просмотрел вкладку Менеджер визуализации и к сожалению не нашел там данной строчки и соответственно галочки.
Вложение 51849
В русской локализации ее плохо видно.
Вложение 51851
Евгений, спасибо. Заработало.
Евгений, здравствуйте.
Попутный вопрос по этой же теме...
Почему если эту галочку оставить, то все элементы на экране отображаются в левом верхнем углу, как будто имеют координаты по X и Y = 0 ?
На фото пример того, что выводиться в web- визуализации и у меня на панели ВП-110.
Вложение 52020
Если эту галочку снять, то все отображается нормально.
Как пример должно выводиться три кнопки по диагонали и надпись, картинка из визуализации CodeSys. Web-визуализация отображается так-же.
Вложение 52022
Заранее спасибо за ответ.
Галочка не должна приводить к подобному поведению.
Вот видео с использованием галочки, где описанной проблемы нет:
https://youtu.be/2QC-pymgaD0
Вы пробовали рефрешнуть страницу браузера и перезагрузить ВП110?
Если это не помогает - выложите проект, я посмотрю, в чем может быть дело.
Евгений, ваше видео я смотрел, поэтому решил использовать возможности, которые появляются после включения данной опции.
Рефрешнуть (Ctrl + R) не получилось, и сегодня я в течение дня 2 раза возвращался к этой проблеме, не помогало. Но сейчас получилось через Ctrl + F5. После чего и панель тоже корректно заработала!
Спасибо за рекомендации!
Здравствуйте.
Подскажите, в чем может быть проблема.
Делаю проект на ПЛК210.3. Визуализацию выводу на ВП110.
На главном экране есть 5 кнопок - названия вкладок меню которые я переключаю во фрейме. Нажал кнопку №1, во фрейме отобразилась визуализация №1, нажали кнопку №2, отобразилась визуализация №2... и так далее.
Фон всех визуализаций один и тот же, темный.
Проблема:
При переключении экранов во фрейме на короткое время между переключениями происходит вспышка белого фона всего экрана дисплея. Момент очень неприятный. Как бороться с этим?
с Уважением, Игорь.
Смог повторить проблему и на виртуальном контроллере.
Она проявляется из-за наличия на экранов фреймов элементов типа Группа (GroupBox).
Если их убрать (и, например, нарисовать контуры обводки обычными линиями) - то проблема исчезнет.
Добрый вечер, коллеги!
Возник такой вопрос касательно тренда. Как я понял, поправьте, если не так, параметр "Сохранение каждые N мс" из trend recording manager указывает на время периода записи из буфера тренда в базу данных тренда. Выходит, что все измеренные значения с интервалом указанным в TrendRecordingTask. И вот собственно в чем вопрос, возможно ли сохранив интервал измерений в 1 секунду записывать в базу данных только одно значение раз в 30 минут, чтобы не перегружать базу излишними записями данных. И ещё не совсем очевидно как корректно рассчитать ограничения для памяти, если необходим тренд с циклом перезаписи базы данных 8 месяцев. Плк210 03
Добрый день.
Да, это возможно (вы правильно понимаете смысл настройки).
К сожалению, в CODESYS нет встроенного механизма расчета для занимаемого трендом места.
Поэтому придется ограничить по объему файла (на ПЛК свободно что-то в районе 120 Мб, насколько я помню - более точно можно узнать при подключении к контроллеру).
Вариант с облаком тоже хорош, но там история хранится только 90 дней и период опроса, кажется, уже не может составлять секунду.
В принципе, можно постепенно выкачивать ее оттуда куда-то еще через API, если это приемлемо.
Тогда как это сделать, при данных настройках? всё равно пишется весь буфер тренда раз в пол часа, а не одно значение.
Вложение 52716
Вложение 52717
Вложение 52718
Вложение 52719