Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Обработка событий нажатия и отпускания кнопок клавиатуры  (Прочитано 60 раз)

borische

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Добрый день, уважаемые коллеги.
Возникла необходимость обработки нажатия кнопок клавиатуры, а именно нажатие и отпускание кнопки.
Например, при нажатии кнопки на клавиатуре F1 в тег "Tag_01" должно записаться значение True, а при отпускании кнопки F1 в тег "Tag_02" должно записаться значение True,
а в тег "Tag_01" значение False. Само нажатие кнопки можно в скрипте обработать, а вот как обработать отпускание, не нашел.
Может, кто сталкивался с такой задачей, буду благодарен за помощь.
« Изменён: 27 Мая 2026, 11:54:24 от Simple Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Здравствуйте.

Цитировать
Возникла необходимость обработки нажатия кнопок клавиатуры, а именно нажатие и отпускание кнопки.
Например, при нажатии кнопки на клавиатуре F1..
В Simple-Scada можно обработать только нажатия сочетаний клавиш с использованием клавиш Ctrl / Shift / Alt – подробнее см. по ссылке. Отследить нажатие отдельной клавиши (например F1) нельзя.

Цитировать
а вот как обработать отпускание, не нашел.
Такой возможности нет.

borische

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Очень жаль.
Придется как-то с периодическим  скриптом косвенно делать.
Я так понял, что комбинация клавиш, например Ctrl + F1, может обрабатываться только нажатие.
А пока комбинация клавиш активна (нажата), можно это событие обработать?   

Спасибо.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Подобные задачи гораздо проще и надежнее решать на ПЛК, а не на скада-системе. Любые способы с обработкой удержаний клавиш и последующим отпусканием (аналог кнопки "без фиксации"), будут ненадежными. Например, пользователь нажал и удерживает клавишу (или кнопку "без фиксации"), в переменную записалось значение True и в этот момент произошел разрыв связи с OPC-сервером/ПЛК/ПК-сервером/ПК был обесточен и т.д. Пользователь отпустил клавишу, но в ПЛК так и останется значение True, что может привести к непредсказуемым результатам работы оборудования. Поэтому, не рекомендуем использовать такие способы. Лучше изменить логику работы: например, пользователь нажимает кнопку или сочетание клавиш, в переменную записывается True и далее в ПЛК выполняются нужные операции, задержки записи и т.д.

Цитировать
Я так понял, что комбинация клавиш, например Ctrl + F1, может обрабатываться только нажатие.
Да, событие будет вызвано при нажатии сочетания клавиш. Отследить удержание или отпускание нельзя.