Тренд на матрице 8х8 и

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

Захотелось реализовать тренд (температур) на матрице с MAX1219. По задумке от реальной температуры будет рисоваться тренд с диапазоном +5...-3 градуса (или +10...-6). 
Получилось, но только каждый столбец тренда живет на своем индикаторе. Т.е. для восьмичасового тренда у меня требуется 8 индикаторов :)
Хочется все 8 столбцов получить на одном. В FLProg доступа к отдельному столбцу нет, или я не понимаю, как это сделать. Понимаю, что без динамической индикации не обойтись, но тогда незачем MAX7219.   
Как бы сделать поизящнее?
Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07 сен 2015, 05:18
Откуда: Степногорск
Имя: Вячеслав
Благодарил (а): 1 раз

Тренд на матрице 8х8 и

Сообщение scadapack »

Используйте команду стека массива. Она будет смещать массив на один столбик (или строку) индикатора  с добавлением нового значения.
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

Спасибо, scadapack!
Дело сдвинулось, стек у меня был не Byte, поэтому его не видел MAX7219.
***
Сдвинулось не очень далеко.
Из RAND в стек помещаю значения от 0 до 8.
На матрице только 3 строки, перемещаются поперек матрицы :(
Хотелось как в последней картинке.

Добавлено (09.02.2016, 16:35)
---------------------------------------------
Понял, что выводит мне матрица. Двоичный вид числа. Осталось заставить матрицу показывать не двоичный вид, а то, что мне нужно. А мне нужно отображать одну точку в столбце, или 8 на всю матрицу. Круг замкнулся.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AdreyM 09 фев 2016, 15:03, всего редактировалось 1 раз.
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

Вот так матрица будет выводить то что надо. Но еще неразобрался почему в блоке Poligon выходные данные должны быть “байт + 1”.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Airis 09 фев 2016, 20:45, всего редактировалось 1 раз.
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

При открытии Вашего проекта мне ошибку выдает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

Усстоновите последнюю версию FLProg.
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

Спасибо, дома забыл обновить версию. Все железки на работе.
Завтра проверю. Правда, не совсем понял, зачем тут Polygon.
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

Немного обновил проект. Теперь тренд жвижется справо на лево. Наверно вывод необходимого байта данных можно сделать и без блока Poligon, но мне так покaзалось проще, чем наводнить проект кучей математических блоков.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Airis 09 фев 2016, 22:52, всего редактировалось 1 раз.
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

А тренд точками рисуется или "залитый" красными светодиодами красным цветом?
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

Тренд точками рисуется. Горит одна точка в столбике от 0 до 8, что соответствуетвходным данным от 0 до 8, и все это сдвигается в с права на лево по таймеру.
Последний раз редактировалось Airis 10 фев 2016, 00:39, всего редактировалось 1 раз.
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12 ноя 2015, 10:37

Тренд на матрице 8х8 и

Сообщение AdreyM »

Airis Изображение
Я понял, что я ничего не понял, как работает Poligon. Но это работает. 
Ты шаман. КАК до этого можно догадаться??? В моем понимании, (и как это работает у меня в АСУ ТП), это преобразование  входной величины в выходную в соответствии с кривой внутри Poligon-a.
Спасибо!
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.
Последний раз редактировалось Airis 10 фев 2016, 11:59, всего редактировалось 1 раз.
keeper1978
Сержант
Сообщения: 129
Зарегистрирован: 26 сен 2015, 19:57

Тренд на матрице 8х8 и

Сообщение keeper1978 »

Airis писал(а):Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.
объясните как определять какая тоска соответствует какому числу , и о каком калькуляторе идет речь
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Тренд на матрице 8х8 и

Сообщение Airis »

То какая точка светится определяется обычным калькулятором в режиме программиста. Например,
хотите зажечь диод  1, 4, 8, то в калькуляторе, в режиме бинарных чисел пишите то что хотите отобразит  - 10010001, и в результате получаете число 145 в децимальном режиме исчислении. Тоже
самое можно сделать и в самом FLProg. Рисуем точки в блоке MAX7219, а потом в блоке для работе со массивом можно посмотреть кокой децимальном код соответствует соответствующей стоке.
Например,рисуем "сердечко" и получаем что ее код:
1. строка  - 0
2. строка - 108
3. строка - 254
4. строка - 254
5. строка - 124
6. строка - 56
7. строка - 16
8. строка - 0
Если данные в матрицу отправлять через стек и блок Poligon, то к полученным данным надо добавить +1 (не знаю почему). То есть - 1, 109, 255, 255, 125, 57, 17, 1. В моем варианте тренд все-таки движется с низу и вверх. Для одной 8х8 матрицы это несущественно (матрицу можно повернуть как надо), но на готовый блоках из нескольких матриц это надо иметь ввиду.
Последний раз редактировалось Airis 13 фев 2016, 16:43, всего редактировалось 1 раз.
Ответить

Вернуться в «Дисплеи и индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость