Разработки ecoins

Библиотеки для разных контроллеров

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#581

Сообщение ecoins » 23.05.2020{, 08:43}

Avazbek писал(а):
23.05.2020{, 00:23}
штатные блоки устраивают , всё делаю на них . Но я ждал от команды ecoins нечто совершенное
Уже писал, что аналогов библиотеки мы не встречали. Библиотека существенно лучше использует ресурсы контроллера (оперативную память, быстродействие), обеспечивает форматированный вывод, который исключает наложение полей в пределах выделенной позиции поля и его длины, позволяет работать с численными переменными (DEC,HEX,BIN, Time, DEC c 1,2,3 точками, Float), с символами char, булевыми переменными которые отображаются переключением выбранных пользователем символами (например + и -,/ и | и т.д.), строковыми переменными, имеет блок вывода установленных в блок текстов по его номеру.
Мы всегда в первую позицию выводим мерцающую звездочку. Кроме оживления статического изображения появляется индикация работы контроллера (висит/не висит) и индицирует "тормозные" (по времени) проекты.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#582

Сообщение ecoins » 23.05.2020{, 08:50}

Avazbek писал(а):
23.05.2020{, 00:14}
Можно ли сделать так чтобы использовать вход en по прямому назначению ? Если нет назовите его по другому on/off start/stop . И пожалуйста не забудьте написать описания в параметрах блока .Если конечно вы его не делали для личного пользования
Не вполне понятно что-такое en по прямому назначению - он отключает блок, предварительно стерев ранее записанное поле и устраняет конфликты с другими блоками.
Описаний блоков нет (с некоторым смыслом - это все-же комплексный продукт из совокупности блоков), но есть руководство по использованию библиотеки lcd. Она в первом посте.
Здесь тоже прикрепляю.
05. Руководство по LCD.pdf
(1.16 МБ) 80 скачиваний
Оно еще в работе и со временем будет переделано - как по содержанию, так и по оформлению.

Avazbek
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2019{, 09:32}
Репутация: 1
Имя: Avazbek

Разработки ecoins

#583

Сообщение Avazbek » 23.05.2020{, 11:32}

https://flprog.ru/uchebnyj-centr/keyfor ... y-chast-2/

Отправлено спустя 1 минуту 23 секунды:
Видео от автора программы flprog с четвёртый минуты он рассказывает про вход EN

Отправлено спустя 2 минуты 18 секунд:
Avazbek писал(а):
23.05.2020{, 11:33}
Если Вы уточните содержание стандарта, то возможно мы что-то поправим.
по крайней мере стандарт flprog

Отправлено спустя 12 минут 55 секунд:
У автора вход en работает по одному принципу у вас по другому . Если ваш подход по каким-то причинам более предпочтителен тогда логично поменять его названия, чтобы народ не путался и прочитал описания этого входа или выхода

Отправлено спустя 5 минут 48 секунд:
Станда́рт (от англ. standard — норма, образец) в широком смысле слова — образец, эталон, модель, принимаемые за исходные для сопоставления с ними других подобных объектов.
Стандартизация направлена на достижение оптимальной степени упорядочения в определенной области посредством установления положений для всеобщего и многократного применения в отношении реально существующих или потенциальных задач

Отправлено спустя 4 минуты 33 секунды:
Avazbek писал(а):
23.05.2020{, 11:54}
Во многих проектах требуется простое отображение данных на Lcd и блоки без дополнительных входов EN и blink использовать удобнее и быстрее.
Такие блоки предпочитают дети в нашей Академии и разработчики проектов.
В последнем случае иногда даже подключается отдельный Lcd (благо библиотека поддерживает одновременную работу 15 дисплеев) на которые выводятся отладочные данные.
Тогда да прошу прошения был не прав

Отправлено спустя 6 минут 31 секунду:
Критика конструктивная желаю успехов , жду новые релизы. Вам респект

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#584

Сообщение ecoins » 23.05.2020{, 12:21}

Avazbek писал(а):
23.05.2020{, 12:05}
https://flprog.ru/uchebnyj-centr/keyfor ... y-chast-2/

Отправлено спустя 1 минуту 23 секунды:
Видео от автора программы flprog с четвёртый минуты он рассказывает про вход EN
1. Это видео не от автора, а от хорошего энтузиаста FLProg.
Т.е. не от автора.
2. В видео говорится, что вход EN имеют многие блоги и это вход разрешает (=1) или запрещает (=0) работу блока.
У блоков LCD вxод EN выполняет ту же функцию + по рекомендации Dryundel при переходе в 0 полностью затирается ранее выведенное поле. Опция полезная и сделать её получилось далеко не сразу...
Avazbek писал(а):
23.05.2020{, 12:05}
Станда́рт (от англ. standard — норма, образец) в широком смысле слова — образец, эталон, модель, принимаемые за исходные для сопоставления с ними других подобных объектов.
Стандартизация направлена на достижение оптимальной степени упорядочения в определенной области посредством установления положений для всеобщего и многократного применения в отношении реально существующих или потенциальных задач
Про стандарт. Пожалуй я не только догадываюсь, но и знаю что это такое. Стандарты бывают разные (иногда противоречащие друг другу). Но они становятся стандартами не после устной декларации, а с появлением какого-то документа. Иногда нормативного. О каком стандарте идет речь в Вашем замечании. Если речь идет о сложившемся обычае в некотором кругу пользователей, то и это возможно. Но сформулировать его было бы не плохо в письменной форме.
-----
Открыты к любым предложениям - по EN не очень понятно и требует уточнения.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#585

Сообщение ecoins » 23.05.2020{, 12:27}

Avazbek писал(а):
23.05.2020{, 00:14}
Отправлено спустя 14 минут 48 секунд:
Ещё в настройках блока есть пункт про какой то период в тиках если не ошибаюсь. Что за период ? Что за тики и как главное высчитать?
1 тик реализуется как 50мс

Avazbek
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2019{, 09:32}
Репутация: 1
Имя: Avazbek

Разработки ecoins

#586

Сообщение Avazbek » 23.05.2020{, 14:37}

Вы задавились вопросом почему ваша ветка не обрела популярность за столько времени существования ??? Вы же решаете самую главную проблему Ардуино. Это же революция . Нет ??? Объясню ещё проще . Под словом стандарт имеется ввиду общедоступность, почему стандартные блоки и сотни пользовательские работают по одному принципу а у вас по другому , я не имею ввиду библиотеку я имею ввиду именно блок . По задумке автора вход EN включает, чтобы вы не делали вид что не поняли или я не понимаю буду писать. При подачи логически 1 на вход en блок работает при подаче логический 0 отключается . Это стандарт flprog потому-то так задумал автор и все придерживается этому принципу. Ещё проще , во всём мире чтобы открыт дверь надо повернуть дверную ручку вниз , а у вас что чтобы открыт дверь надо потянуть на себя , повернуть вверх, подождать 150мс и вернуть на исходное положения. Это пример образно .

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Разработки ecoins

#587

Сообщение Ingwar » 23.05.2020{, 15:08}

Avazbek писал(а):
23.05.2020{, 14:37}
сотни пользовательские работают по одному принципу а у вас по другому , я не имею ввиду библиотеку я имею ввиду именно блок
Avazbek писал(а):
23.05.2020{, 14:37}
Вы задавились вопросом почему ваша ветка не обрела популярность за столько времени существования ???
Думаю правильно будет рассматривать ВСЕ блоки ecoins как один большой пользовательский блок, пытающийся реализовать RT.
А учитывая охватываемые направления (пины, датчики, экраны и т.д.) и способ реализации, это должна быть вообще отдельная программа подобная Flprog. Ведь использование разработок ecoins совместно со штатными блоками, не говоря про другие ПБ, совсем не гарантирует совместимость.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#588

Сообщение ecoins » 23.05.2020{, 15:36}

Avazbek писал(а):
23.05.2020{, 14:37}
Вы задавились вопросом почему ваша ветка не обрела популярность за столько времени существования ??? Вы же решаете самую главную проблему Ардуино. Это же революция . Нет ??? Объясню ещё проще .
Не задавались, но представление имеем.
Форум FLProg для специалистов в относительно узкой области - автоматизации небольших объектов специалистами с ограниченными навыками программирования.
Тема, которую мы разрабатываем - это использование графической среды FLProg для Профессиональных проектов автоматизации - больших и малых, рассредоточенных в пространстве (сетевой обмен) и локальные, с HMI (сейчас на наш взгляд наиболее перспективная и удобная это KaScada) и с локальной индикацией на LCD.
Профессиональные проекты - это то, что не страшно (и не стыдно) устанавливать на промышленные объекты с повышенными уровнями к безопасности). Пока планка такая -выше ПЛК типа ОВЕН. Доступность в проектах STM32F уже сейчас дает создавать такие проекты. Хотя и AV328, MEGA, DUE, ESP8266, ESP32 в некоторых проектах могут быть предпочтительнее.
-----
Таким образом разработки ecoins для более узкой аудитории, чем аудитория FLProg в целом.
----
По мере сил мы пытаемся делать продукты понятнее и удобнее в использовании - развитые функциональные возможности не должны быть барьером для использования блоков и по мере сил мы с этим работаем. Ваши замечания ценны и мы на них реагируем. Однако в случае с EN мы не понимаем что надо доделать или убрать - по этому входу блок работает или не работает.
------
Когда проект разрастается, многие будут сталкиваться с проблемами "торможения", "подвисания" и т.п. Наиболее пытливые могут начать использовать блоки и концепции ecoins.
-----
На наш взгляд наиболее прикладное значение могут иметь блоки диспетчера задач, счетчики, делители, триггеры с делителями - это блоки неплохо проработаны. Однако наше представление пока не совпадает с реальностью.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#589

Сообщение ecoins » 23.05.2020{, 15:50}

Ingwar писал(а):
23.05.2020{, 15:08}
Думаю правильно будет рассматривать ВСЕ блоки ecoins как один большой пользовательский блок, пытающийся реализовать RT.
А учитывая охватываемые направления (пины, датчики, экраны и т.д.) и способ реализации, это должна быть вообще отдельная программа подобная Flprog. Ведь использование разработок ecoins совместно со штатными блоками, не говоря про другие ПБ, совсем не гарантирует совместимость.
Мы долго разрабатывали систему которая может работать автономно или в составе FLProg. Теперь больше учитываем специфику и возможности FLProg.
FLProg конечно накладывает ограничение по программированию (по сравнению с проектами непосредственно на C++), но и имеет целый ряд достоинств, которых нет в никаких известных нам системах проектирования:
1. Безусловно сама графическая среда. Оценить её высоко - это мало. Разработчик постоянно предлагает новый функционал - порой неожиданный и в итоге востребованный.
2. Система полностью открытая и результатирующий код полностью в руках проектировщика. Соответственно и выбор блоков - к ним много вопросов, поскольку они обычно построены на имеющихся библиотеках Arduino IDE, а они в основном созданы для использования в учебном процессе (пожалуй не более того). Но в отличии от обычных ПЛК проектировщик имеет возможность выбора - использовать что есть со всеми ограничениями и рисками или использовать иное, более профессиональное. Последним мы и занимаемся.
3. Это автоматическая генерация имен. В проекте на C++ это отнимает огромное кол-во усилий и является источником ошибок, а в FLProg об этом просто не задумываешься.
4. Это главное, но есть и еще.
-----
О стандартах - они (если они конечно есть) способствуют организации проектирования, но ecoins помнит и сознает, что они являются и естественными барьерами в развитии.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#590

Сообщение tolochko » 25.05.2020{, 21:16}

Попробовал реализовать ваш блок LCD со входом EN для чтения нескольких страниц
Префикс правда невозможно поменять
Вариант прикрепил может можно и по другому сделать
Вложения
Ekoins LCD.flp
(726.49 КБ) 62 скачивания

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#591

Сообщение ecoins » 25.05.2020{, 22:20}

tolochko писал(а):
25.05.2020{, 21:16}
Вариант прикрепил может можно и по другому сделать
По проекту:
1.Обратили наверное внимание, что у Вас каждые 5 сек моргает экран? В блоке lcd.i2c параметр перезагрузки lcd в тиках - по умолчанию 100. Его можно увеличить до 32000, что будет соответствовать 1600 сек, или примерно 27 мин. Если это опция не нужна, то параметр нужно установить =0;
2. У Вас на все входы EN подан один и тот же сигнал L3. Насколько я понимаю у Вас не стоит задача переключать разные изображения в одних и тех же полях. Если так, то на на вход можно подать просто true или еще проще - просто проинвертировать.
3. У Вас на все входы blink подано false - этого делать не обязательно, там 0 по умолчанию, если нет параметра (эту опцию реализует FLProg).
4. По смыслу Вы вроде бы могли бы обойтись и упрощенными блоками - у них нет входов EN и blink.
Проект бы смотрелся попроще.
5. Рекомендую вставлять моргающую звездочку - я добавил в проект в позицию 20,1 - экран как-бы оживает.
6.Еще добавил опцию для контроля на пине 8 цикла loop() логическим анализатором. Периодичность у Вас 145 mcs, но можно сделать и пошустрее...
7. Я бы рекомендовал разнести проект по платам и использовать диспетчер задач. По мере увеличения проекта это станет актуальным.
В этом случае LCD правильнее было бы выделить в отдельную плату как "свободную" задачу, энкодер и выбор параметров в другую ( в свободную или оперативную). Связь параметров между платами удобно реализовывать через контакты.
------
Программу грузил в Nano, но энкодер не подключал (мы с ними почти не работаем).
В измененном проекте изменен адрес lcd - тот, который у нас на стенде был подключен.
-----
Успехов.
Eсoins LCD_v2_250520.flp
(760.94 КБ) 56 скачиваний
Отправлено спустя 4 минуты 15 секунд:
Префикс меняется, может суффикс имеете ввиду? Префикс выводится указанный в параметрах пользователя до первого символа ~.
Суффикс выводится - любой символ кроме ~ .
Если длина поля не позволяет, в начале обрезается суффикс, потом значение справа, затем заголовок справа.
Если я неверно понял проблему - уточните.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Разработки ecoins

#592

Сообщение CraCk » 25.05.2020{, 23:38}

Извините за наглость. Можете создать блок дисплея по функционалу как штатный блок? Но только быстродействующый и без всяких изращенных настроек.

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#593

Сообщение ecoins » 26.05.2020{, 05:31}

CraCk писал(а):
25.05.2020{, 23:38}
Но только быстродействующый и без всяких изращенных настроек.
Можно. Но мне представляется что он уже есть. Это блок lcd.str.
Ниже представлен сравнительный тест блоков - FLProg и ecoins. Для выбора надо разрешить работу 3 или 4 платы.
Схема тестаПоказать
Схема.png
Сравнение LCD.flp
(223.2 КБ) 67 скачиваний
Цикл loop: FLProg=25ms; ecoins=140 mcs. В 170 раз быстрее.
Если плату 2 - работает со строковыми переменными - вызывать не постоянно, а периодически (любым диспетчером) , то время ecoins=40mcs. В 600 раз быстрее.
--------
В предыдущих постах ecoins предлагали следовать стандарту при использовании EN.
В LCD FLPRog он выполнен не обычно и не вполне стандартно, относительно других блоков FLProg.
Если просто заблокировать работу одного из блока - то ничего не произойдет.
А вот если после этого изменится ДЛИНА какого-нибудь поля в другом блоке, то будет стерто поле и заблокированного блока.
--------
В блоках FLPROG реализована опция - изменение длины любого поля вызывает приоритетное стирание всего дисплея. Это функция вставлена перед выполнением всех плат и она уже сама по себе тормозит выполнение всего проекта - и диспетчеры управления платами на эту опцию не повлияют. А она время отнимает.
Вывод в в блоках LCD выполняются всегда, даже если переменная на входе не изменилась. Что-то можно сделать через входы EN, но...
-------
Расширенные блоки lcd ecoins имеют вход EN, который блокирует вывод на lcd, предварительно очищая поле.
В блоках lcd.str - они используются в тесте - параметров примерно столько же, что и в блоке FLProg - добавлено длина период и период обновления.
-------
Можно обойтись при работе только этими блоками, но вывод переменных bool,int,float удобнее и эффективнее (по времени) делать в соответствующих блоках. В FLProg такие возможности отсутствуют - переменную нужно преобразовать в строковую переменную - это отнимает много памяти и главное времени (процессорного).
-----
На практике блоки lcd ecoins оказались очень удобны и функциональны при разработке других пользовательских блоков. При отладке на их выходах выводятся все необходимые контрольные параметры, которые отображаются на lcd. Раньше для этого использовался UART - c lcd все получается и быстрее, и удобнее.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#594

Сообщение tolochko » 26.05.2020{, 07:52}

Действительно сейчас посмотрел в моем случае можно обойтись обычными блоками
Я просто еще логику не переключил под ваши блоки
Переделаю спасибо за подсказку

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#595

Сообщение ecoins » 26.05.2020{, 11:32}

tolochko писал(а):
26.05.2020{, 07:52}
Действительно сейчас посмотрел в моем случае можно обойтись обычными блоками
Я просто еще логику не переключил под ваши блоки
Переделаю спасибо за подсказку
Подключил энкодер - у Вас в проекте были неточности. Сделал на простых блоках.
И немного по другому оформил - как в ecoins принято. Но без диспетчера - а его мы в своих проектах ставим всегда.
Период получился 125мкс.
Копия IMG_2699.jpg
Схема тестаПоказать
Схема теста.png
Eсoins LCD_v3_260520.flp
(710.12 КБ) 69 скачиваний
---
Не забудьте поменять адрес LCD на свой (в Вашем проекте он был 39, а здесь 62).

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#596

Сообщение tolochko » 26.05.2020{, 21:26}

ecoins спасибо за помощь начинаю вникать в ваши блоки
И все же один нюанс остался
У меня 28 счетчиков я разбил их на 4 группы чтобы было читабильно на дисплеее
Они имеют заголовок от 1 до 28 а вашем проекте я смогу поставить заголовок от 1 до 7 так как заголовок меняеться только в блоке

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#597

Сообщение ecoins » 26.05.2020{, 22:12}

tolochko писал(а):
26.05.2020{, 21:26}
Они имеют заголовок от 1 до 28 а вашем проекте я смогу поставить заголовок от 1 до 7 так как заголовок меняеться только в блоке
1.Блоки lcd.str позволяют выводить строковые переменные любой длиной, ограниченные только кол-во колонок дисплея.
2.Блоки lcd.txt - тоже самое, разница в том, что заголовки прописываются внутри блока и вызываются по номеру заголовка.
3.Блоки lcd.val и вывод lcd.float могут иметь также поле любой длины, ограниченные кол-во колонок дисплея.
----
Блоки lcd.txt позволяют прописаться до 5-ти заголовков, но если доработать функцию setVal(num)
switch(n){default: n=1;
case 1: val= ТЕКСТ_1 ; break;
case 2: val= ТЕКСТ_2 ; break;
case 3: val= ТЕКСТ_3 ; break;
case 4: val= ТЕКСТ_4 ; break;
case 5: val= ТЕКСТ_5 ; break;
}
то может быть нужное кол-во заголовок.
--------------------------------
Если правильно понял вопрос, то ответил.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#598

Сообщение tolochko » 26.05.2020{, 22:27}

Спасибо буду разбираться

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#599

Сообщение ecoins » 26.05.2020{, 23:00}

tolochko писал(а):
26.05.2020{, 22:27}
Спасибо буду разбираться
И если Вам действительно нужно отображать состояние 28 счетчиков, Вы можете использовать 4-е дисплея 20х4.
Библиотека поддерживает до 15 LCD, тормозить проект не будет.
Последний раз редактировалось ecoins 26.05.2020{, 23:38}, всего редактировалось 1 раз.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#600

Сообщение tolochko » 26.05.2020{, 23:17}

Все данные выводятся на скаду
Дисплей это на всякий случай если что то случится с компом
Мне главное чтобы счетчики не тормозили недели 3 еще есть пока границы не открыли
буду пробавать разные варианты

Закрыто

Вернуться в «Команда ecoins»