Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
C зуммером понятно, сделать для каждого бита и радоваться. Но если по мимо звука надо открыть окно с сообщением или еще что сделать. То для каждого бита делать еще элемент "Функциональная область" или создавать окно тревоги. Битов очень много.
Много элементов получается, хотел как проще и меньше муторной работы. С кодом проще и быстрей работать, чем графику и настройки туда сюда гонять.
Насколько я знаю зуммер работает только если открыт тот экран на котором он расположен. У меня биты раскиданы по разным экранам.
Последний раз редактировалось spa; 08.06.2018 в 13:54.
Вот пример.Example_MacroRtrig.txp
Для каждого бита потребуется доп. бит, чтобы помнить о предыдущем состоянии.
Зуммер может быть глобальным - тогда будет работать независимо от открытого экрана.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Сложность еще в том что биты у меня храняться в PSW. Написал следующую функцию:
Работает если только один бит сработал, если при включенном бите сработает еще один, то тогда начинает пищать постоянно.Код:void AlarmEdge(WORD NumWord, WORD NumBit){ if( (PSW[NumWord]&(1<<NumBit)) && !(PSW[NumWord+50]&(1<<NumBit)) ) { Beep(); PSW[NumWord+50] = 1 | (1<<NumBit); } else if ((PSW[NumWord]&(1<<NumBit))!=0) { PSW[NumWord+50] = 0 | (1<<NumBit); } }
Последний раз редактировалось spa; 08.06.2018 в 17:00.