Страница 30 из 80

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

Добавлено: 23 май 2020, 12:05
Avazbek
https://flprog.ru/uchebnyj-centr/keyfor ... y-chast-2/

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

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

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

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

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

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

Разработки ecoins

Добавлено: 23 май 2020, 12:21
ecoins
Avazbek писал(а): 23 май 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 май 2020, 12:05 Станда́рт (от англ. standard — норма, образец) в широком смысле слова — образец, эталон, модель, принимаемые за исходные для сопоставления с ними других подобных объектов.
Стандартизация направлена на достижение оптимальной степени упорядочения в определенной области посредством установления положений для всеобщего и многократного применения в отношении реально существующих или потенциальных задач
Про стандарт. Пожалуй я не только догадываюсь, но и знаю что это такое. Стандарты бывают разные (иногда противоречащие друг другу). Но они становятся стандартами не после устной декларации, а с появлением какого-то документа. Иногда нормативного. О каком стандарте идет речь в Вашем замечании. Если речь идет о сложившемся обычае в некотором кругу пользователей, то и это возможно. Но сформулировать его было бы не плохо в письменной форме.
-----
Открыты к любым предложениям - по EN не очень понятно и требует уточнения.

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

Добавлено: 25 май 2020, 21:16
tolochko
Попробовал реализовать ваш блок LCD со входом EN для чтения нескольких страниц
Префикс правда невозможно поменять
Вариант прикрепил может можно и по другому сделать

Разработки ecoins

Добавлено: 25 май 2020, 22:24
ecoins
tolochko писал(а): 25 май 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
Отправлено спустя 4 минуты 15 секунд:
Префикс меняется, может суффикс имеете ввиду? Префикс выводится указанный в параметрах пользователя до первого символа ~.
Суффикс выводится - любой символ кроме ~ .
Если длина поля не позволяет, в начале обрезается суффикс, потом значение справа, затем заголовок справа.
Если я неверно понял проблему - уточните.

Разработки ecoins

Добавлено: 25 май 2020, 23:38
CraCk
Извините за наглость. Можете создать блок дисплея по функционалу как штатный блок? Но только быстродействующый и без всяких изращенных настроек.

Разработки ecoins

Добавлено: 26 май 2020, 05:31
ecoins
CraCk писал(а): 25 май 2020, 23:38 Но только быстродействующый и без всяких изращенных настроек.
Можно. Но мне представляется что он уже есть. Это блок lcd.str.
Ниже представлен сравнительный тест блоков - FLProg и ecoins. Для выбора надо разрешить работу 3 или 4 платы.
[spoiler title=Схема теста]
Схема.png
[/spoiler]
Сравнение LCD.flp
Цикл 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 все получается и быстрее, и удобнее.

Разработки ecoins

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

Разработки ecoins

Добавлено: 26 май 2020, 11:32
ecoins
tolochko писал(а): 26 май 2020, 07:52 Действительно сейчас посмотрел в моем случае можно обойтись обычными блоками
Я просто еще логику не переключил под ваши блоки
Переделаю спасибо за подсказку
Подключил энкодер - у Вас в проекте были неточности. Сделал на простых блоках.
И немного по другому оформил - как в ecoins принято. Но без диспетчера - а его мы в своих проектах ставим всегда.
Период получился 125мкс.
Копия IMG_2699.jpg
[spoiler title=Схема теста]
Схема теста.png
[/spoiler]
Eсoins LCD_v3_260520.flp
---
Не забудьте поменять адрес LCD на свой (в Вашем проекте он был 39, а здесь 62).

Разработки ecoins

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

Разработки ecoins

Добавлено: 26 май 2020, 22:12
ecoins
tolochko писал(а): 26 май 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;
}
то может быть нужное кол-во заголовок.
--------------------------------
Если правильно понял вопрос, то ответил.

Разработки ecoins

Добавлено: 26 май 2020, 22:27
tolochko
Спасибо буду разбираться

Разработки ecoins

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

Разработки ecoins

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