Отображение нескольких ошибок на дисплее по очереди

Ответить
Hardwarest
Рядовой
Сообщения: 43
Зарегистрирован: 25.12.2019{, 19:40}
Репутация: 5
Имя: Кирилл
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#1

Сообщение Hardwarest » 30.11.2020{, 16:41}

Доброго времени.
Ломаю голову. В проекте есть дисплей, там меню и цикличное по кругу отображение информации. (Время, температуры итд)
Главное вопрос, иногда в системе могут происходить ошибки, к примеру таймаут по модбас. Как сделать выброс одной ошибки это не проблема, при помощи одного инвертированного входа логического "и" мы легко тушим что отображается на дисплее и ошибка светится пока будет активная... А если ошибок будет 2 или 3, вот ломаю голову как сделать некий массив и с него по 5 сек чтобы отображать. Вышла первая, спустя 5 сек вторая. Потушили вторую исправив оборудование или отключив опрос, отображается только первая...

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#2

Сообщение Dryundel » 30.11.2020{, 18:46}

Hardwarest, Это не подойдет?
Буфер FIFO

Hardwarest
Рядовой
Сообщения: 43
Зарегистрирован: 25.12.2019{, 19:40}
Репутация: 5
Имя: Кирилл
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#3

Сообщение Hardwarest » 30.11.2020{, 18:54}

Очень похоже! Спасибо, буду пробовать

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#4

Сообщение Dryundel » 30.11.2020{, 18:58}

Hardwarest писал(а):
30.11.2020{, 18:54}
Очень похоже! Спасибо, буду пробовать
Там и количество ошибок в очереди есть.

Hardwarest
Рядовой
Сообщения: 43
Зарегистрирован: 25.12.2019{, 19:40}
Репутация: 5
Имя: Кирилл
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#5

Сообщение Hardwarest » 02.12.2020{, 20:23}

И снова приветствую...
Извините что морочу голову, но что то не могу сообразить...
Крутил буфер FIFO и запутался...
К примеру Версия 1.1 имеет один вход и один выход, а у меня несколько источников ошибок которые при ошибке выдают Булеан.
Как их стыковать? Как программе объяснить что к примеру из 3-х ошибок пропала одна? При этом она должна сообщить что ошибка пропала и циклично показывать остальные две.
Пробовал FIFO массив, там завис. Мало того что там входы и выходы интежер, так еще выходов то столько сколько и входов... А мне надо что бы выход был один, и входы по одному приходили на выход. Вроде сформулировал вопрос
Все я сделал но с одним источником ошибок, Ошибка вылезла, ее выкинуло на экран, как только она прошла меняется текст и таймер ждет пару секунд и тушит страницу....как только их несколько... Котовасия.

Аватара пользователя
Fuji1604
Сержант
Сообщения: 282
Зарегистрирован: 19.01.2016{, 06:09}
Репутация: 40
Откуда: Березники
Имя: Сергей

Отображение нескольких ошибок на дисплее по очереди

#6

Сообщение Fuji1604 » 02.12.2020{, 21:01}

Прочитав сообщение viewtopic.php?p=96495#p96495 пртшла мысль, можно все ошибки собирать в одну сроку и выводить бегущей строкой
когда мастерю обычно подсматриваю,
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню

Hardwarest
Рядовой
Сообщения: 43
Зарегистрирован: 25.12.2019{, 19:40}
Репутация: 5
Имя: Кирилл
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#7

Сообщение Hardwarest » 02.12.2020{, 21:15}

Fuji1604 писал(а):
02.12.2020{, 21:01}
Прочитав сообщение viewtopic.php?p=96495#p96495 пртшла мысль, можно все ошибки собирать в одну сроку и выводить бегущей строкой
Можно) Но этот дисплей и бегущая строка еще тот секс...
Делема в том как быть с потушенной ошибкой, на данный момент она оставляет после себя просто пустое место, а вторая делема производная из первой, что этой ошибке это место надо готовить...

Пробовал При помощи свича делать интежер, интежен сумировать блоком математики и получать количество ошибок... Их задавал константой счетчику, а мультивибратором листал... Но что то пошло не так. Все равно пустое окно

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#8

Сообщение Dryundel » 02.12.2020{, 23:58}

Hardwarest писал(а):
02.12.2020{, 21:15}
Делема в том как быть с потушенной ошибкой, на данный момент она оставляет после себя просто пустое место, а вторая делема производная из первой, что этой ошибке это место надо готовить...
Мда. Проблема понятна. И думаю решаема.
Но тут надо либо блок писать, либо как то имеющимися стандартными изголяться.
Смысл в следующем:
Ошибок я так понимаю конечное количество и все они определены.
Создаем массив булевых переменных где каждая ячейка (переменная) отвечает за свою ошибку.
Пришла ошибка записали в конкретную ячейку 1, ушла - записали 0.
Теперь все просто. Опрашиваем по таймеру, по очереди ячейки. Если 1 выводим на дисплей, если 0 пропускаем. И так по кругу.
Если ошибок нет, то и на дисплей ничего не выводится.
Ну как то так.

Hardwarest
Рядовой
Сообщения: 43
Зарегистрирован: 25.12.2019{, 19:40}
Репутация: 5
Имя: Кирилл
Контактная информация:

Отображение нескольких ошибок на дисплее по очереди

#9

Сообщение Hardwarest » 03.12.2020{, 01:07}

Dryundel писал(а):
02.12.2020{, 23:58}
Ошибок я так понимаю конечное количество и все они определены
Не совсем. К примеру: 6 модбас устройств... Все норм работают. Может (к примеру) на двух выбить связь... Выбьет ошибку. Вот одну не проблема. В массив писал, там можно булеан писать. Но делема в том что там где 0 выбивало просто пустое окно.

Отправлено спустя 12 минут 25 секунд:
Dryundel писал(а):
02.12.2020{, 23:58}
Но тут надо либо блок писать
Готов продонатить и добавить в общую копилку FLProg. Главное сделать как надо.

Ответить

Вернуться в «Помогите, а то я "нимагу"»