Теория это всегда хорошо, но теория без практики ровным счетом ничего не стоит.
Один заказчик захотел на экране для Операторов сделать графическую панель, в которой в виде строк отображать некоторое состояние системы ( время, место, состояние и т.д). Опытные пользователи TM7 сразу скажут "Окно Событий" и им будут вторить не менее опытные Пользователи TM6 "Отчет Тревог". И обе группы будут правы. Эти графические формы позволяют решить эту задачу. Но, скажем по секрету, "Окно Событий" имеет значительно бОльший функционал и возможности.
Однако, в данной ситуации, как оказалось, необходимо в одну строку выводить данные по нескольким параметрам (в такое-то время температура такая, давление такое и оператор этот). Что в принципе, "в лоб" с Окном Событий решить нельзя. Необходимо состояния параметров программно привести к одному каналу, например, к Discrete, и уже его выводить в Окно Событий, но "значение температуры и давления" в одну строку вывести не так то просто.
Однако, если у Разработчика проекта нет должного опыта и нет времени на освоение программы, то есть небольшое решение. Оно не позволит фиксировать состояния в файлы и отчеты, но позволит проинформировать Оператора.
Инженер уровня "Я могу все" (не путать с тыжинженер или яжинженер), может набросать небольшую программу на ST, которая решит задачу.
Все помнят табло вылетов в аэропортах? Вот это и будет нашим вдохновением
Постановка задачи.
С помощью ГЭ Текст отобразить последовательно 4 события. При том самое свежее событие должно быть наверху. Устаревающее событие должно "опускаться" вниз. При достижении четырех событий, каждое новое должно "выталкивать" самое устаревшее.
Решение.
Как говорила моя научная Руководительница, будем решать задачу "в лоб". Не самый элегантный и оптимальный способ, но самый понятный (и по этому иногда самый быстрый).
У ГЭ Текст есть вид индикации "Набор (Аргумент = Константа)". Будем использовать его и зададим
Таких ГЭ Текстов делаем четыре, так как необходимо отображать четыре последних события. Если есть задача отображать другое количество, то делаем столько Текстов и столько же аргументов.
Далее переходим к программированию. Событие одно - значит один входной аргумент (если не одно событие, то читаем про количество ГЭ Текстов). Отображать необходимо четыре события - значит четыре выходных.
Внимание. Первые три (то есть сколько необходимо событий отобразить минус одно) аргумента делаем input/output.
Далее. Очевидно, что первый выходной аргумент должен отображать любое новое событие (в рамках программы, "номер" события). Значит первый выходной аргумент равен входному.
Если первый выходной НЕ равен входному, то последовательно присваиваем "последний" равен "предпоследнему", "предпоследний" равен "предпредпоследнему" и так далее...
Готово.
Запускаем и в первый момент видим, что событий нет. Верно.
Далее подаем "номер" события 1 (в дверь постучали)
Далее - 2 (дверь открыли). Первое событие ушло вниз. Самое верхнее "2"
Далее 3 и 4
И 0. Самое устаревшее событие ушло.
Все. Решение, очевидно, не оптимальное. Даже этот простой пример можно сделать симпатичнее и качественнее. Дерзайте. И помните, "возможно все".
Успехов в освоении Программы и применении полученного опыта! 👽
.
Список авторских статей о Trace Mode 7.
.