В одном из следующих релизов Owen Logic хотим добавить программирование аппаратных кнопок прибора.
Если у вас есть пожелания или видение по реализации этой функции, то их можно написать тут.
Мы постараемся их учесть при разработке.
Вид для печати
В одном из следующих релизов Owen Logic хотим добавить программирование аппаратных кнопок прибора.
Если у вас есть пожелания или видение по реализации этой функции, то их можно написать тут.
Мы постараемся их учесть при разработке.
Евгений, видимо, постеснялся написать - он является системным аналитиком из отдела разработки OwenLogic.
И ваша обратная связь по этому вопросу действительно важна для нас.
Поэтому ждем ваших требований к реализации данного функционала.
Это будет очень нужная и востребованная функция.
Думаю будет правильно вывести состояние кнопок точно так же, как и текущее время, т.е. обычными переменными. А удерживание, отпускание и т.д. пользователь сам запрограммирует уже в самой программе.
К этой функции очень кстати подойдет добавление переменной с номером текущего экрана.
Например находимся на экране №3 на котором написано:
При нажатии на кнопку "ОК" и при открытом экране №3 запускается режим фасовки с добором.Цитата:
Выберите режим
->Фасовка с добором
Или можно использовать стрелки для изменения скорости вращения двигателя, без нажатия на кнопку SEL.
Или произошла авария и пользователю необходимо её подтвердить нажатием на "ОК", тем самым сбросить триггер.
От ИПП120 приходится часто отказываться из-за отсутствия возможности работы с аппаратными кнопками в самой программе.
Конечно это нужно. Дисплей без пользовательских кнопок - это полуфабрикат. Стриптиз какой-то: смотреть можно, а трогать нет. У всех производителей аналогичной техники кнопки могут использоваться в программе пользователя, ОВЕНовские изделия конечно отстают в этой части.
При использовании кнопок в программе ,с целью предотвращения их дублирования функций в экранах необходимо знать на каком экране находится пользователь .
С этой целью необходимо иметь переменные характеризующие экран . Например логическую переменную , если 1 значить тот экран ,в котором необходимо
использовать кнопку и выбирать её например оператором SEL . Совместное использования переменных характеризующий открытый экран и переменные характеризующие
кнопки даст очень положительный эффект .
А в 3 посте не тоже самое написали?
Тогда тоже повторю свое видение исполнения этой функции: добавляется одна переменная(16 бит), младшие 10 бит(0-9) занимает переменная с номером активного экрана, до 1024 экранов, думаю всем с избытком хватит, старшие 6 бит(10-15) занимает битовая маска нажатых кнопок, соответствие кнопке конкретному биту не важно, можно любое, всё!
Я это имею введу уже всё реализовано и переменная экрана и нажатие ( передний фронт) отпускание ( задний фронт) . Уже всё реализовано только необходимо
в проекте получить доступ к имеющимся переменным .Вложение 50877 . Выбирать переменную экрана . И своей переменной присваивать действие кнопок .
Это всё реализовано в драйверах прошивок приборах имеющих экраны и кнопки..
Если добавят переменную(переменные) с номером активного экрана и битовой маской нажатых кнопок, то это, что Вы на картинке показали будет ни к чему, как собаке пятая нога, короче объявят это как тупиковый путь развития и уберут, ну сами подумайте зачем они будут нужны если вдруг такое сделают о чём говорят(мечтают) уже не менее 5-7 лет!
Добавлю некоторые упоминания по этой теме:
-https://owen.ru/forum/showthread.php?t=28579&p=299130&viewfull=1#post299 130
-https://owen.ru/forum/showthread.php?t=28579&p=333764&viewfull=1#post333 764
-https://owen.ru/forum/showthread.php?t=33403
их на самом деле значительно больше.
По функционалу в принципе уже все сказано, я бы добавил возможность вкл/выкл стандартного режима управления клавиатурой, как это реализовано сейчас, и управления битами.
Так как если биты будут передаваться всегда, то при режимах редактирования будет не очень удобно использовать, а с другой стороны, даже если пользователь не планирует использовать клавиатуру как это сделано сейчас, то может понадобится заход в системное меню, а там все равно нужен стандартный функционал кнопок.
Разработчики спрашивают наше мнение , а реализуют как им удобно . А удобно им будет использовать , то что уже наработано . А чтоб не было конфликтов с существующими
функциями кнопок, необходимо разработчикам проектов знать, где находится пользователь ( или проект ) , на каком экране и Сам будет отвечать за конфликтные ситуации в своём проекте .
А чтоб их не было нужен контроль разработчику на каком экране необходимо использовать ту или иную функцию кнопок . В прошлых постах они так и говорили ( писали) , что будут
конфликты . Вот и всё . Спасибо .
Насколько без разницы какая будет переменная целочисленная или булевая ( логическая ) . Только булевая ( логическая ) уже существует . Это название экрана .
Мне кажется Мы об одном и том же говорим . Как программистам ОЛ будет удобно , так пусть они реализуют , но только обязательно нужно знать на каком экране
нужно использовать , ту или иную функцию кнопок , чтобы не было конфликтов .
В данный момент не стоит думать об удобстве программистов OwenLogic - напишите, как будет удобно вам.
Насчет системных переменных для состояния кнопок - идея понятна.
Нужны ли переменные для короткого/длинного нажатия на каждую кнопку?
Нужна ли возможность настройки индивидуальной длительности короткого и длинного нажатия для каждой кнопки или достаточно глобальных настроек для этого?
Или это вообще не нужно, и пользователю проще обрабатывать короткие/длинные нажатия самому в FBD-программе?
Есть ли потребность в привязке событий к кнопкам в редакторе визуализации?
(по аналогии с ИП320 - изменить значение бита, произвести действие с регистром (записать константу, увеличить/уменьшить на константу), перейти на другой экран.
Эти действия могут быть уникальными в контексте экрана визуализации.
Или все это опять же удобнее делать в FBD, и нужно только добавить макрос типа SwitchScreen?
Зачем делать то, что можно в программе сделать, всем не угодишь, этого и не нужно делать, нужно добавить переменную с номером активного экрана и битовую маску нажатых кнопок, лучше в одной переменной, как я чуть ранее написал, всё!
Для новичков, особо тупеньких, можно потом и макрос(ы) сделать с разными вариантами нажатий и присвоений, мне так кажется!
У меня допустим сейчас задействован один вход на пуск / стоп ( без фиксации ). Допустим хочу использовать кнопку ввод для этой функции .
Но если Я начну редактировать какой нибудь параметр и нажму кнопку ввод для записи , то у меня может произойти останов или запуск по этой кнопки .
Тогда желательно запрещать использования этой кнопки ( ОК или ESC ) на некоторое время допустим на 3 сек в системной переменной , после редактирования.
С макросами с Сергеем согласен . Номер активного экрана --- это значит нужно держать в голове эти номера , а если их много .
Названия даются по функционалу экрана , и спокойно сохраняются в голове на длительное время . А здесь как быть ? .
Есть ли потребность в привязке событий к кнопкам в редакторе визуализации? Здесь мне допустим не совсем понятно
разве не достаточно существующего функционала перехода между экранами .??
Или допустим есть меню для редактирования и сброса параметров и предупреждений . То вход в это меню подразумевает уже редактирование
И уже параметр должен моргать . Нажимаешь ESC ( не нужно ) начинает моргать другой по ходу . Меняешь стрелками нажимаешь ОК ,записывается
А чтобы это реализовать необходимо ещё и запрещать на определенных экранах стандартных функций клавиатуры ,как допустим листать строки
экранов стрелками . И передать это допустим ESC и ОК В этом согласен с Ревака Юрием .
Удобнее если две отдельные переменные (чтобы не разбирать/собирать): номер экрана (читать и записывать, для записи лучше отдельную переменную) и биты состояния кнопок (только читать, чтобы не было конфликтов в принципе).
Для кнопок, я бы сразу сделал готовые пиктограммы , которые можно добавлять в любое место логики, кнопка нажата на выходе "1" отжата "0", все остальное на откуп пользователя, делайте что хотите, задержки, передний фронт, задний, длинное нажатие/короткое, под это есть всевозможные блоки/макросы.
Для экранов регистр на чтение/запись, читаем текущее состояние, изменяем значение - переходим на номер экрана если этот номер существует. Дальше переход или из логики или через Combobox можно построить любое меню.
Если будет доработка я бы еще добавил бит управления подсветкой из логики.
Слава Богу, просто торжество здравого смысла, я так и предлагал, чисто состояние кнопок сделать доступным в программе, остальное всё лишнее, только повредит, если добавить любую функцию, нужную для конкретного частного случая, это только ограничит функционал, а так, любой может сделать как он захочет, какой смысл что-то придумывать, чтобы сделать хуже?!
И не прошло и нескольких часов https://owen.ru/forum/showthread.php...l=1#post338993 . Предлагали объединенный регистр с наложением маски .
А Юрий предлагает 6 системных логических переменных на каждую кнопку. 1 нажата 0 отжата . Мне кажется это разные вещи .
И аналогично с экранами добавил экран появилась системная переменная с названием экрана , убрал исчезла .
Записал 1 в переменную ---- перешёл на этот экран , записал 0 вернулся в предыдущий . А с управлением подсветкой из проекта это очень удобно .
Произошла Авария засветился с первопричиной Аварии , если бы еще Яркостью регулировать подсветки . Слегка подсвечивает --- Авария ярко подсвечивает .
Так ничего и не поменялось, там я тоже никаких функций добавлять не предлагал, чисто состояние кнопок, в отдельных булевых переменных эти состояния или битовой маской в одной целочисленной переменной это не имеет принципиального значения и можно всегда собрать-разобрать, всё! Остальное, просто пожелания и принципиального значения не имеют и не обязательны, ту же переменную с номером активного экрана можно будет самому сделать, так как всё из программы управляется, это я про переходы между экранами!
Пиктограммы, конечно, удобнее, чем выводить кнопки в виде битовой маски. Кста, и в эмуляторе это тоже будет нагляднее: кликнул по пиктограмме -- программа совершила какое-то действие.
ID экрана -- удобно, но, в принципе, можно обойтись и переменными перехода.
Управление подсветкой -- было бы здорово. Можно сделать даже не бит, а системную int переменную яркость (в%).
И напоследок вопрос: ежели возможность программного управления кнопками будет добавлена, будет ли это совместимо со старыми ПР? Встанет ли на них новая прошивка?
Я хоть и не разработчик Овен, Но будем скорей всего менятся и ОЛ и внутренняя прошивка приборов Тогда какой смысл менять это только для новых ????
У кого будет желание доработает свой проект под это ново введение -- доработает. Как допустим последнее изменение в ОЛ 0 знаков после запятой . Поменялся и ОЛ и прошивка приборов .
Если не ошибаюсь, представители Овен уже высказывались по этой теме и заявляли, что получение состояния кнопок в программе если и будет реализовано, то только для новых реле, которые выпустят в будущем, короче ПР200 точно не будет это поддерживать, ну если верить представителям Овен, тему не помню, кто захочет думаю найдёт без проблем!
Ну кнопки логичны если бы у Овен были функциональные кнопки. У француза "меллениум" Есть свободные кнопки "А" и "Б" и именно эти кнопки отданы пользователю. Остальные "прописаны" под меню. Хотя и их можно использовать. Но так как в дизайне нового ПР с экраном нет места то проще как предлагаю только нажата /не нажата. Хотя я бы посмотрел на немецкие симатики. Там пользователю дали кнопки для функций и кнопки для работы с меню.
Всем спасибо за обратную связь и идеи!
Можете поделиться практическими ситуациями, когда (и для чего) нужно перепрограммировать физическую кнопку?
Про принудительное включение подсветки я понял, а когда ещё это может потребоваться?
Я буду использовать ;
1 Уберу со шкафа кнопку Пуск/Стоп и заменю её кнопкой Ввод ( ПЛК63 есть такая кнопка , очень удобно) .
2 Во время работы происходит не штатная ситуация ( по Аварии происходит АВР насосов -- это как пример) , она при АВРе исчезает .
Возникает предупреждение произошел АВР -- пользователю не нужно помнить как войти в процесс редактирования , а просто сбросить
нажатием одной кнопки ESC и всё. Очень удобно . Долго приходится объяснять операторам- как это сделать , а память у них куриная .
3 Есть меню , если пользователь входит в него значит хочет что то изменить . Имея возможность использовать кнопки вверх , вниз , ОК и ESC
Можно спокойно обходиться этими кнопками без кнопки SEL ( вход в редактирования ) , но это не во всех меню . А только в конкретных .
Очень удобно .
И не только принудительная подсветка , но и её изменение по Яркости . Во многих случаях она нужна слегка подсвеченной
, но если что то произошло она должна сигнализировать своей яркостью ( или морганием яркостью ).
Простой пример, с которым мне доводилось сталкиваться: возврат с экрана по таймеру. Т.е. листаем кнопками экраны настройки, и если в течение определённого времени никаких действий не предпринимается, происходит автоматический влзврат на главный экран программы. Для корректной работы, как минимум, должна быть возможность отслеживать из программы факт нажатия кнопок.
Кстати для этого достаточно знать номер текущего экрана, но и этой радости в ОЛ нету (((
Не совсем. Можно, конечно, вести отсчёт таймера с момента последнего изменения переменной, но правильнее вести его с момента последнего нажатия любой кнопки. Например: в моей последней программе режим наладчика после введения пароля действует тупо 30 минут, а вот с отслеживанием нажатий можно было бы сделать и кое-что поинтереснее.
Есть экраны которые не требуют ввода пароля . Я хоть это не делаю в своих проектах , но идея очень интересная .
Будем надеяться , что в следующем релизе появится в проекте ;
1 переменные названия экрана характеризующие на каком экране находимся.
(желательно иметь название экрана созданного пользователем, а не номер )
2 переменные характеризующие состояние кнопок .
3 даже возможность включение подсветки экрана и регулирование яркостью подсветки.
Как только появятся, у себя тоже это реализую .
Полностью поддерживаю и ждем переделки по работе с кнопками как входами и индексами экранов. И может ввод реализовать не поразрядный ,а просто +/- с адаптивной скоростью.
Очень нужно, ждем. Думаю что лучшим способом будет ввести системные переменные соответствующие клавишам. А ещё, было бы здорово, если экрану присвоить переменную, т.е. экран можно было бы вызывать по изменению переменной, и переход был возможен с любого экрана. Тогда логика управления экранами перекочует в программу и не будет громоздкой конструкции с кучей переходов.
Почему бы не дать возможность привязать к любому экрану переменную "код нажатой клавиши"?
Тогда можно было бы не отслеживать номер активного экрана, а работать непосредственно с отдельными переменными экранов, по фронту их изменений.
Для моих целей мне было бы достаточно сделать макрос, принимающий на вход эту переменную и выдающий на выходе логические переменные вроде "На экране14 нажата клавиша ОК".
Коллеги. А как часто нужно менять параметры переменной кнопками на ПР. Может проще пересмотреть дерево переходов.
Я сейчас делаю так. У меня "главный экран" который виден на ПР выводит рабочие состояние установки. Переход в меню настроек по клавише вниз. Там меняю параметры нескольких таймером и на последнем экране могу по кнопке вниз попасть на главный экран.
Экраны "аварийных сообщений" расположены выше "главного экрана" и переход туда по состоянию переменой. Так как моё оборудование просто осуществляет контроль состояние концевых выключателей. То у меня всего три типа аварий(пожар, аварийная кнопка, концевой выключатель N открыт больше 5сек) . В программе эти три сигнала я контролируются по переднему и заднему фронту. Это позволяет автоматический возврат на главный экран если аварийные сигналы пропали. Тем самых мне нужен только один экран где я меняю уставку нескольких таймеров.
Доброго времени суток, Уважаемый!
Только-только начал осваивать ПР-200. Очччень даже хорошее "железо"!
И уже есть вопросы-пожелания: не хочется ставить кнопку-тумблер для снятия питания с ПР-200 для возврата схемы в исходное состояние после фиксации, анализа причины формирования и устранения аварийного сигнала. Несерьезно! Нажатием (удержанием) имеющейся на лицевой панели программируемой кнопки (комбинации кнопок) это выполнить гораздо интереснее. При этом не плохо бы и "запаролить" эту функцию.
Есть перспективы?
С уважением, Малахов Юрий (kipota)