Цитата Сообщение от harbor Посмотреть сообщение
Мне интересно снова поднять тему алармов, так сказать пообсуждать идеи, а не сидеть в одиночестве со своими задумками.
Задача - допустим в плк имеется 60 битов алармов, мне их надо "загнать" в нашу панель и чтобы они информативно отображались у оператора.
Одно из решений создать 60 окон тревог, заполнить историческую и текущую таблицу событий. Но вот 60 окон меня напрягает создавать, я хочу создать одно окно тревог и вариационным текстом выводить в нем каждый новый аларм.
Для этого придется заводить еще одну битовую таблицу для квитирования(чтобы аларм бесконечно не "выпрыгивал" на экран пока активен)

Глобальным макросом собираюсь копировать 4 регистра word с алармами из плк в память панели и дальше эти биты раскладывать.
Тут я так и не понял, есть ли возможность в макросе обращаться к биту слова типа PSW[500].2 или нет, то есть имеется ли все же какой-то синтаксис или нет? это было бы удобно.
Далее, как в исторической таблице отмечать время возникновения аварии и время ее ухода ? То есть допустим в 12-30 сработал аварийный уровень, а в 12-45 он пришел в норму.
В общем интересно посмотреть какие-то примеры из проектов и что умные люди скажут .
есть ли возможность в макросе обращаться к биту слова типа PSW[500].2 или нет, то есть имеется ли все же какой-то синтаксис или нет?
По правилам языка си, т.е. только через if с проверкой бита 2 с помощью AND по маске.
Далее, как в исторической таблице отмечать время возникновения аварии и время ее ухода ? То есть допустим в 12-30 сработал аварийный уровень, а в 12-45 он пришел в норму.
Евгений Вам уже ответил

Но вот 60 окон меня напрягает создавать, я хочу создать одно окно тревог и вариационным текстом выводить в нем каждый новый аларм.
Для этого придется заводить еще одну битовую таблицу для квитирования(чтобы аларм бесконечно не "выпрыгивал" на экран пока активен
А с традиционными окнами тревог значительно проще. Однократный вызов окон гарантирован.

Создали одно окно, в дереве проекта делаете Copy и 59 раз Paste, останется подправить текст сообщения.
А если несколько аварий одновременно, что будет вариационный текст выводить? Ведь сообщения в нем к целому регистру привязаны.