Страница 1 из 1

Изображение мигающего клапана

СообщениеДобавлено: 31 окт 2024, 15:41
Gordan007
Здравствуйте подскажите в ПЛК есть слово состояния клапана, есть такие состояния как открыт, открыт, авария, идет открытие, идет закрытие и др, необходимо это визуализировать. Здесь вроде все просто делаю в библиотеки изображений элемент с разными картинками по состояниям, привязываю его к числовому индикатору, однако состояния идет открытие и идет закрытие это не просто изображение это мигание (при мигании картинка меняется с одной на другую) и это также нужно визуализировать. Как вариант наложить сверху на числовой индикатор битовый индикатор к нему привязать 2 картинки (для мигания) там есть функция мигания и менять его свойство Visible в зависимости от состояния того самого бита в слове состояния клапана, например отслеживая его через макрос. Но можно ли как то это проще сделать? Заранее спасибо.

Re: Изображение мигающего клапана

СообщениеДобавлено: 31 окт 2024, 17:25
dimensy
А гифку сделать? В Фотошопе элементарно делается

Re: Изображение мигающего клапана

СообщениеДобавлено: 31 окт 2024, 22:48
Михалыч
Доброе время суток всем!
В общем, набросал такой вот демо-проект
Можно запустить симуляцию и поуправлять клапаном :) (предварительно извлечь из zip-архива).

EasyBuilder V6.09.02.338

В макросе "klapan_anime" вызывается функция "klapan_state" (из пользовательской библиотеки), которая имитирует работу ПЛК (впрочем, макрос тоже служит для имитации ПЛК, в рабочем проекте его действия выполняет ПЛК).

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

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

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

Re: Изображение мигающего клапана

СообщениеДобавлено: 01 ноя 2024, 16:22
Gordan007
dimensy писал(а):А гифку сделать? В Фотошопе элементарно делается

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

Re: Изображение мигающего клапана

СообщениеДобавлено: 01 ноя 2024, 16:34
Gordan007
Михалыч писал(а):Доброе время суток всем!
В общем, набросал такой вот демо-проект
Можно запустить симуляцию и поуправлять клапаном :) (предварительно извлечь из zip-архива).

EasyBuilder V6.09.02.338

В макросе "klapan_anime" вызывается функция "klapan_state" (из пользовательской библиотеки), которая имитирует работу ПЛК (впрочем, макрос тоже служит для имитации ПЛК, в рабочем проекте его действия выполняет ПЛК).

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

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

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


На стороне ПЛК конечно можно это обработать, однако не всегда хочется лезть в программу ПЛК хотелось бы это обработать на стороне HMI, однако тоже как вариант

Re: Изображение мигающего клапана

СообщениеДобавлено: 01 ноя 2024, 17:27
Михалыч
Согласен, вмешиваться в ПЛК не всегда хочется или возможно. Но этот вариант тоже сгодится - ведь на вход алгоритма подаются дискретные сигналы состояния клапана, и в данной реализации он сам справляется с формированием кода состояния.
Успехов!