Просмотр полной версии : Опрос состояния кнопок в программе на ST
Newcomer
18.03.2022, 10:59
Добрый день.
У ПЛК73 на лицевой панели есть 9 тактильных кнопок. В РЭ и РП нигде не описано как можно опросить их состояние в программе ПЛК. Также на лицевой панели есть 6 светодиодных индикаторов. Как ими можно управлять из программы ПЛК ?
kondor3000
18.03.2022, 15:46
Примеры для ПЛК63/73 https://owen.ru/product/codesys_v2/example_program
Newcomer
18.03.2022, 16:24
Примеры для ПЛК63/73 https://owen.ru/product/codesys_v2/example_program
Можно опросить любую из девяти кнопок ?
Newcomer
19.03.2022, 12:01
С опросом кнопок разобрался, но возникла другая проблема. Опрашиваю кнопки F1...F3 в программе на ST, тут проблем нет. Но с кнопками Вверх и Вниз проблема. В программе их опросить можно, но при нажатии этих кнопок начинается перебор строк экрана, а это мне не надо. Можно ли запретить штатное назначение этих кнопок.
Можно, перейдите в монопольный режим экрана.
Newcomer
19.03.2022, 14:54
Можно, перейдите в монопольный режим экрана.
Спасибо, это то что надо.
Newcomer
20.03.2022, 11:21
При переходе в монопольный режим кнопки становятся свободно программируемыми, а как управлять экраном непонятно.
Естественно, ручками.
У вас нет нескольких экранов. Стерли и заполнили заново другой информацией.
Newcomer
20.03.2022, 12:00
Что значит ручками т?
В прямом смысле. Обработкой нажатий в программе.
Newcomer
20.03.2022, 12:17
В прямом смысле. Обработкой нажатий в программе.
С обработкой нажатия кнопок понятно. Непонятно как осуществлять вывод на дисплей.
ShowDint(0, 0, 1, '%d', ABC); - такое возможно в монопольном режиме использовать ?
Естественно, нет.
Только WriteDisplay
rebelucho
21.03.2022, 02:48
С обработкой нажатия кнопок понятно. Непонятно как осуществлять вывод на дисплей.
ShowDint(0, 0, 1, '%d', ABC); - такое возможно в монопольном режиме использовать ?
Формировать строку и выводить её на экран придется, так как в монопольном режиме можно выводить только строковые параметры.
В описании библиотеки есть вполне рабочий пример.
Для ограничения пользователя от необдуманных действий отличный вариант :)
Но работать с индикаций во время работы все таки удобнее в рабочем режиме.
rebelucho
21.03.2022, 10:28
ну так я и работаю, а клиентам отдаю вариант с монопольным режимом.
ну так я и работаю, а клиентам отдаю вариант с монопольным режимом.
А почему отдаете клиентам вариант с монопольным режимом ?
Филоненко Владислав
22.03.2022, 19:00
Что значит ручками т?
У Вас есть 2 руки, правая и левая. Используйте их для написания кода!
Филоненко Владислав
22.03.2022, 19:03
С обработкой нажатия кнопок понятно. Непонятно как осуществлять вывод на дисплей.
ShowDint(0, 0, 1, '%d', ABC); - такое возможно в монопольном режиме использовать ?
Важно! Документацию никто не читает, поэтому напомню, что операции с экраном не рекомендуется вызывать чаще чем раз в 100мс. И это не значит что можно обновлять экран 500-ми вызовами функции Write() раз в 100 мс, а значит что нужно вызывать Write() не чаще чем раз в 100мс. 1 штука раз в 100мс!
Поэтому пишем сколько угодно раз в промежуточный буфер на 32/64 символа, а потом по таймеру его отсылаем целиком на экран!
rebelucho
23.03.2022, 01:55
А почему отдаете клиентам вариант с монопольным режимом ?
Считаю, что нечего им делать в меню настройки ПЛК, всю необходимую индикацию для клиента вывожу в монопольном режиме.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot