Страница 1 из 1

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

Добавлено: 09.02.2016{, 12:25}
AdreyM
Захотелось реализовать тренд (температур) на матрице с MAX1219. По задумке от реальной температуры будет рисоваться тренд с диапазоном +5...-3 градуса (или +10...-6). 
Получилось, но только каждый столбец тренда живет на своем индикаторе. Т.е. для восьмичасового тренда у меня требуется 8 индикаторов :)
Хочется все 8 столбцов получить на одном. В FLProg доступа к отдельному столбцу нет, или я не понимаю, как это сделать. Понимаю, что без динамической индикации не обойтись, но тогда незачем MAX7219.   
Как бы сделать поизящнее?

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

Добавлено: 09.02.2016{, 12:57}
scadapack
Используйте команду стека массива. Она будет смещать массив на один столбик (или строку) индикатора  с добавлением нового значения.

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

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

Добавлено (09.02.2016, 16:35)
---------------------------------------------
Понял, что выводит мне матрица. Двоичный вид числа. Осталось заставить матрицу показывать не двоичный вид, а то, что мне нужно. А мне нужно отображать одну точку в столбце, или 8 на всю матрицу. Круг замкнулся.

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

Добавлено: 09.02.2016{, 20:43}
Airis
Вот так матрица будет выводить то что надо. Но еще неразобрался почему в блоке Poligon выходные данные должны быть “байт + 1”.

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

Добавлено: 09.02.2016{, 20:55}
AdreyM
При открытии Вашего проекта мне ошибку выдает.

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

Добавлено: 09.02.2016{, 21:17}
Airis
Усстоновите последнюю версию FLProg.

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

Добавлено: 09.02.2016{, 21:40}
AdreyM
Спасибо, дома забыл обновить версию. Все железки на работе.
Завтра проверю. Правда, не совсем понял, зачем тут Polygon.

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

Добавлено: 09.02.2016{, 22:52}
Airis
Немного обновил проект. Теперь тренд жвижется справо на лево. Наверно вывод необходимого байта данных можно сделать и без блока Poligon, но мне так покaзалось проще, чем наводнить проект кучей математических блоков.

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

Добавлено: 09.02.2016{, 23:22}
AdreyM
А тренд точками рисуется или "залитый" красными светодиодами красным цветом?

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

Добавлено: 10.02.2016{, 00:38}
Airis
Тренд точками рисуется. Горит одна точка в столбике от 0 до 8, что соответствуетвходным данным от 0 до 8, и все это сдвигается в с права на лево по таймеру.

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

Добавлено: 10.02.2016{, 09:32}
AdreyM
Airis Изображение
Я понял, что я ничего не понял, как работает Poligon. Но это работает. 
Ты шаман. КАК до этого можно догадаться??? В моем понимании, (и как это работает у меня в АСУ ТП), это преобразование  входной величины в выходную в соответствии с кривой внутри Poligon-a.
Спасибо!

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

Добавлено: 10.02.2016{, 11:57}
Airis
Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.

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

Добавлено: 13.02.2016{, 01:08}
keeper1978
Airis писал(а):Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.
объясните как определять какая тоска соответствует какому числу , и о каком калькуляторе идет речь

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

Добавлено: 13.02.2016{, 16:40}
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 матрицы это несущественно (матрицу можно повернуть как надо), но на готовый блоках из нескольких матриц это надо иметь ввиду.