Страница 22 из 80
Разработки ecoins
Добавлено: 04 ноя 2019, 11:13
ecoins
Демонстрационный пример с пояснениями:
RT_HW_Complex_Test_All_Board_v08_04.11.19.flp
Библиотеки ecoins и ДЮАИР в конце первого поста.
================================================
В действительности подобные примеры уже были выложены.
Но использовать эти наработки в полной мере можно только принять применяемые МЕТОДИКИ.
Ключевые слова: СОБЫТИЯ, ДАННЫЕ, ЗАДАЧА.
ДАННЫЕ должны быть отделены от ЗАДАЧ.
====================================================
Успехов.
Разработки ecoins
Добавлено: 04 ноя 2019, 14:12
Dryundel
bsn писал(а): 04 ноя 2019, 09:48
Теперь предвкушаю, возможно таки дождусь...
Не дождался.

И похоже вряд ли дождетесь.
К сожалению [ref]ecoins[/ref] разговаривает на другом языке. Буквы и слова вроде те же а вот понятия в них вкладываются другие.
Человек выкладывает интересные идеи и подход. Однако пользоваться ими что называется "из коробки" практически не реально.
Кое что можно брать на вооружение. Но многое применяться рядовыми пользователями FLProg просто не будет.
Проблема в том, что со всем тем что описано в "демонстрационном примере с пояснениями" надо долго долго разбираться. А это мало кому интересно.
Автор словно лесник который говорит - "Айда за мной, я покажу короткий путь, никем не изведанный" Но к сожалению этот путь через болото.
В результате основная масса пойдет в обход но по асфальту. Так проще и надежней. Да, дойдут не все, ибо далеко получается. Но и через болото быстрей не получится.
Теперь конкретно по "демонстрационному примеру с пояснениями" (RT_HW_Complex_Test_All_Board_v08_04.11.19.flp)
[ref]ecoins[/ref], Вы снова свалили все в одну большую кучу.
Круто конечно. Но разбираться в этой куче, честно говоря, лень.
Из того, что выхватилось при беглом осмотре.
1. Снова мультиплатформенность проектов. Прикольно конечно. Может даже кого то и заинтересует и 1 из 1000 воспользуется. Но в большинстве случаев это лишнее. Вам говорили об этом не однократно. (Для этого направления требуется отдельная тема.)
2. Диспетчер задач - классная штука. Но для того что бы разобраться с ним в данном примере, голову сломаешь. Предвижу кучу вопросов по теме. (требуется отдельная тема)
3. Набор для консоли - интересный инструмент. Но требует массу пояснений и возможно будут пожелания. (требуется отдельная тема)
4. Блоки LCD, MCP23017, UART, да и вообще все блоки - (требуется отдельные темы)
Вот когда расчленится эта куча (свалка) на отдельные темы, тогда на вашем болоте появятся видимые твердые кочки, по которым будет легко и просто шагнуть в мир разработок ecoins.
Разработки ecoins
Добавлено: 04 ноя 2019, 14:15
bsn
Dryundel писал(а): 04 ноя 2019, 14:12
похоже вряд ли дождетесь
Нет, чукча вежливый и настойчивый, ecoins продвинутый и доброжелательный к интересующимся. Чукча верит в ecoins
Уважаемый ecoins!
Видимо для продвинутых Ваш демонстрационный файл будет весьма полезен.
Я, увы к таковым не отношусь. Под демонстрационным примером я имел ввиду некую простую практическую схему. Что бы лишний раз не напрягать Вас, специально не оговаривал какую именно. С моей стороны предполагалось что Вы возьмёте некую конкретную простую практическую схему и, на примере Ваших блоков, покажете как её запрограммировать в Flprog с помощью Ваших блоков. Но вышло чуть иначе (может для кого даже и лучше).
Продвинутые пользователи возможно уже зрят в некий корень. Но мой порог первоначального вхождения ещё не пройден.
Если Вас не затруднит, пожалуйста, давайте сделаем некий очень конкретный пример схемы охлаждения:
Пример схемы регулятора.png
Пусть это будет связка из двух Ардуин - схема на MEGA2560 и UNO. Пусть у них будет связь по модбас. На уно подключен датчик температуры, исполнительное реле и LSD дисплей. На MEGA2560 подключен свой LSD дисплей и потенциометр для задания регулируемой температуры. На каждом из LSD дисплеев на верхней строчке отображается задаваемая температура, на нижней температура от датчика DS18B20. Если температура от датчика выше более чем на один градус от задаваемой, то включается реле вентилятора. Если температура от датчика придёт ниже, более чем на один градус, чем задаваемая - реле вентилятора отключится.
Прошу, для сравнительного примера составить рабочую схему из Ваших блоков и на основании ваших библиотек для MEGA2560 и для Uno. Далее любой желающий мог бы попробовать изменять параметры или настройки Ваших блоков и смотреть в Proteus или в железе (кому как удобнее) - что бы видеть как это отражается на работоспособности этой схемы.
Лично для меня наличие такого варианта значительно снизило бы порог вхождения в понимание работы ваших блоков.
Очень прошу Вас выкроить время и организовать ещё и такой демонстрационный вариант работы схем с вашими блоками.
Заготовку на файле Proteus прилагаю.
Также, после заливки в Proteus Вашего варианта прошивки микроконтроллеров, прошу Вас не забыть проверить на Proteus - действительно ли отрабатывается логика, описанная мною выше.
ProverkaShem_191104.rar
P.S.
Как всегда бывает в спешке -
забыл дорисовать элемент. Извиняюсь. Между информационным выходом датчика DS18B20 и +5V
нужно подключить резистор 4,7К.
И ещё - для защиты транзистора от противо-ЭДС,
параллельно обмотке реле RL1 необходимо подключить диод.
Разработки ecoins
Добавлено: 04 ноя 2019, 14:48
belyx
[ref]bsn[/ref],а чем открыть в протеусе ваши файлы ?
ProverkaShem_191104.pdsprj
ProverkaShem_191104.pdsprj.kpp.BSN.workspace
Разработки ecoins
Добавлено: 04 ноя 2019, 15:06
bsn
belyx писал(а): 04 ноя 2019, 14:48
чем открыть в протеусе ваши файлы?
Протеусом и открыть. У меня Proteus 8.5
Разработки ecoins
Добавлено: 04 ноя 2019, 16:07
Oleg
Хорошее предложение от bsn. Поддерживаю.
Разработки ecoins
Добавлено: 04 ноя 2019, 18:23
vovka1973
Oleg писал(а): 04 ноя 2019, 16:07
Хорошее предложение от bsn. Поддерживаю.
Наверно все равно не поймем что и с чем едят надо искать людей кто понял и чтоб объяснил все прелести этой разработки , да без конкретных примеров например датчик выход на дисплей в программе flprog штатными блоками и такой же проект но с блоками econis ,я думаю только так можно уловить смысл этих блоков хотя он понятен быстродействие ,но как этим овладеть ,прошу кто понял что зачем может разъясните вы лучше если econis это не дано ,не все умеют объяснять для таких как мы.

Разработки ecoins
Добавлено: 04 ноя 2019, 19:22
belyx
bsn писал(а): 04 ноя 2019, 15:06
belyx писал(а): ↑
Сегодня{, 14:48}
чем открыть в протеусе ваши файлы?
Протеусом и открыть. У меня Proteus 8.5
ещё раз спрошу-может услышу более внятный ответ: чем в протеусе ?
чем.jpg
Разработки ecoins
Добавлено: 04 ноя 2019, 19:31
edyapd
[ref]belyx[/ref],
bsn писал(а): 04 ноя 2019, 15:06Proteus 8.5
Не факт, что откроется в 7-ом.
Это проект Протеуса. Надо просто запустить сам Протеус (8) и в нём "Открыть проект"
Разработки ecoins
Добавлено: 04 ноя 2019, 20:14
com
Все должно быть просто как гвоздь и молоток, а тут заморочки.
Разработки ecoins
Добавлено: 04 ноя 2019, 21:11
ecoins
bsn писал(а): 04 ноя 2019, 14:15
Видимо для продвинутых Ваш демонстрационный файл будет весьма полезен.
Я, увы к таковым не отношусь. Под демонстрационным примером я имел ввиду некую простую практическую схему. Что бы лишний раз не напрягать Вас, специально не оговаривал какую именно. С моей стороны предполагалось что Вы возьмёте некую конкретную простую практическую схему и, на примере Ваших блоков, покажете как её запрограммировать в Flprog с помощью Ваших блоков. Но вышло чуть иначе (может для кого даже и лучше).
Ваш проект связан в основном с обменом по ModBus - это слабо связано с библиотеками ecoins.
Попробуем что-то подготовить.
Разработки ecoins
Добавлено: 05 ноя 2019, 19:36
CraCk
ecoins писал(а): 19 авг 2019, 18:59
Проверил Ваш проект - работает.
Вероятные причины у Вашего исполнения:
1) Вы используете контроллер wemos(ESP8266), для которого нормальным является питание 3.3в. Распространенные HC-SR04 не работают на этом напряжении и потому требуется преобразователь уровня. Попробуйте стандартный блок - он ведь тоже работать не будет. С преобразователем уровня работает хорошо.
2) Мы испытали и используем доработанные HC-SR04P - они работают и от 3 и от 5 вольт.
https://ru.aliexpress.com/item/32796336 ... b201603_52
Получил новый датчик ультразвука JSN-SR04T. Решил исключить есп, для исключения ошибок связных с ним. Взял ардуино нано и использовал стандартный блок flprog для ультразвукового измерителя. JSN-SR04T завелся без проблем. Потом взял Ваш блок но на нем JSN-SR04T тоже не заработал все время выдает в уарт значения 2. Пины для подключения использовал trig-D3, echo-D2. Может еще нужно как то сконфигурировать блок?
Разработки ecoins
Добавлено: 05 ноя 2019, 21:29
ecoins
Подправили блок. Теперь Ваша программа работает и с раздельным использованием пинов ECHO и TRIG.
2_for_CraCk.flp
Мы в таком режиме давно не работаем - через один пин ECHO, соединяем его резистором 500 ом c TRIG.
-----
При тестировании программы обнаружили, что блок бес описания.
Добавили скромно - со временем поправимся.
=========
Дальномер ультразвуковой HC-SR-04.
1. Работает по прерываниям и без, если пин без прерывания.
В режиме прерываний установлена периодичность измерения 50 мс.
В отличии от стандартной библиотеки не подвисает и не тормозит.
Встроены разные фильтры на всякие ошибки.
Может работать через один пин, для этого надо соединить пин TRIG c пином ECHO через резистор 500 ом( если больше, некоторые экземпляры работают нестабильно). Пин ECHO соединяется с пином контроллера.
--------------------
Обнаружили, что нет приличного описания. В дальнельшем сделаем...
--------------
ecoins 05.11.2019г.
========
Успехов.
Разработки ecoins
Добавлено: 05 ноя 2019, 23:47
CraCk
ecoins писал(а): 05 ноя 2019, 21:29
Подправили блок. Теперь Ваша программа работает и с раздельным использованием пинов ECHO и TRIG.
2_for_CraCk.flp
Попробовал. В проект не было библиотеки, взял старую RT_20_HW_HC_SR04_v1.2 ОК? Заработало но тоже как то криво работает. Измеряло только до 1,5м. Поменял макс. дист на 700. Стало немного лучше теперь меряет до 4м. А дальше вместо 0 все время показывает 2. Больше ничего не менял так как не понимаю что за что отвечает. На стандарном блоке по всей комнате измеряет дистанцию. То есть всегда показывает измеренное значение а тут часто проскакивает 2.
ecoins писал(а): 05 ноя 2019, 21:29
Мы в таком режиме давно не работаем - через один пин ECHO, соединяем его резистором 500 ом c TRIG.
А в чем преимущество измерения на одном пине кроме того что один пин используется?
ecoins писал(а): 05 ноя 2019, 21:29
Может работать через один пин, для этого надо соединить пин TRIG c пином ECHO через резистор 500 ом( если больше, некоторые экземпляры работают нестабильно). Пин ECHO соединяется с пином контроллера.
А в блоке написано 2ком резистор использовать. Кому верить?
Отправлено спустя 9 минут 43 секунды:
upd
В самом блоке есть настройка пина.
Снимок.JPG
Зачем эта настройка если для работы с двумя пинами нужно редактировать сам блок?
Снимок2.JPG
Разработки ecoins
Добавлено: 06 ноя 2019, 00:18
ecoins
CraCk писал(а): 05 ноя 2019, 23:47
Попробовал. В проект не было библиотеки, взял старую RT_20_HW_HC_SR04_v1.2 ОК? Заработало но тоже как то криво работает. Измеряло только до 1,5м. Поменял макс. дист на 700. Стало немного лучше теперь меряет до 4м. А дальше вместо 0 все время показывает 2. Больше ничего не менял так как не понимаю что за что отвечает. На стандарном блоке по всей комнате измеряет дистанцию. То есть всегда показывает измеренное значение а тут часто проскакивает 2.
В блоке заложено настраиваемое ограничение 150 см, Вы его сами меняете.
Не разделяю Вашего оптимизма по измерению больших расстояний - много экспериментировали, выше 1.5 уже не очень хорошо. Ловит дополнительные отражения и много еще чего.
2 см - это минимальное расстояние. Меньше и приближать нельзя, сам сонар в силу конструктивных особенностей будет подбрасывать глюки. Это не простое устройство, там стоит свой микропроцессор с не вполне "допиленной программой", отдельный излучатель, отдельный приемник и прочее. Если проскакивает 2, то это может быть сонар (внутри рефлектор отвалился и болтается), или еще что-то.
CraCk писал(а): 05 ноя 2019, 23:47
А в чем преимущество измерения на одном пине кроме того что один пин используется?
Преимущество только одно - меньше проводов, проще соединять. Но с двумя пинами может быть только лучше, не нужен резистор, сонар используется из "коробки", использование штатное.
А в блоке написано 2ком резистор использовать. Кому верить?
Если используется два пина, то резистор вообще не нужен. Некоторые экземпляры плохо вели себя с большими номиналами и потому это свежая рекомендация.
CraCk писал(а): 05 ноя 2019, 23:47
Зачем эта настройка если для работы с двумя пинами нужно редактировать сам блок?
Это не настройка. При очередной доработке убрали функцию, сейчас её восстановили.
Теперь если пин TRIG меньше 0, то блок работает с одним пином, иначе будут использованы оба пина. Работа с двумя пинами для сонара более предпочтительная.
Разработки ecoins
Добавлено: 10 ноя 2019, 22:40
ecoins
bsn писал(а): 04 ноя 2019, 14:15
Уважаемый ecoins!
Видимо для продвинутых Ваш демонстрационный файл будет весьма полезен.
Я, увы к таковым не отношусь. Под демонстрационным примером я имел ввиду некую простую практическую схему. Что бы лишний раз не напрягать Вас, специально не оговаривал какую именно. С моей стороны предполагалось что Вы возьмёте некую конкретную простую практическую схему и, на примере Ваших блоков, покажете как её запрограммировать в Flprog с помощью Ваших блоков. Но вышло чуть иначе (может для кого даже и лучше).
Продвинутые пользователи возможно уже зрят в некий корень. Но мой порог первоначального вхождения ещё не пройден.
Если Вас не затруднит, пожалуйста, давайте сделаем некий очень конкретный пример схемы охлаждения:
Пусть это будет связка из двух Ардуин - схема на MEGA2560 и UNO. Пусть у них будет связь по модбас. На уно подключен датчик температуры, исполнительное реле и LSD дисплей. На MEGA2560 подключен свой LSD дисплей и потенциометр для задания регулируемой температуры. На каждом из LSD дисплеев на верхней строчке отображается задаваемая температура, на нижней температура от датчика DS18B20. Если температура от датчика выше более чем на один градус от задаваемой, то включается реле вентилятора. Если температура от датчика придёт ниже, более чем на один градус, чем задаваемая - реле вентилятора отключится.
Прошу, для сравнительного примера составить рабочую схему из Ваших блоков и на основании ваших библиотек для MEGA2560 и для Uno. Далее любой желающий мог бы попробовать изменять параметры или настройки Ваших блоков и смотреть в Proteus или в железе (кому как удобнее) - что бы видеть как это отражается на работоспособности этой схемы.
Лично для меня наличие такого варианта значительно снизило бы порог вхождения в понимание работы ваших блоков.
Очень прошу Вас выкроить время и организовать ещё и такой демонстрационный вариант работы схем с вашими блоками.
//-----
Получился проект.
Выкладываю. Для уверенности и библиотеки.
BSN_mega2560_test_Master_v06_10.11.2019.flp
BSN_UNO_328_test_Slave_v06_10.11.2019.flp
Библиотека ДЮАИР_v212_alfa_10.11.19.ubl
191110_LIB_EIS_v110_beta.zip
-------------
Разработки ecoins
Добавлено: 10 ноя 2019, 22:52
ecoins
Что удалось сделать в проекте:
То, о чем просили.
Master - mega2560; Slave - UNO.
Дополнительно к пожеланиям добавлена возможность локального управления от Slave(стоит потенциометр).
В этот режим Slave переходит всегда при потери связи.
Выбор режима управления - локальный или от Мастера выбирается тумблером на Мастере.
Все параметры, режимы, в том числе и обрыв связи отображаются на на обоих LCD.
-----
Дополнительная опция - пользовательский блок DS1820 не требует задания адреса (который 8-байт) и
имеет еще ряд достоинств.
----
Что не сделано - не проверил через физические адаптеры RS-485 - контроллеры соединил напрямую.
Сигналы управления направлением адаптеров вырабатываются правильно - смотрел на логическом анализаторе.
Не моделировали (и не планируем) проект на Proteus - этим не занимаемся.
---------
Какие вопросы и проблемы возникли:
к самой реализации ModBus в FLProg. Здорово что есть и работает, но для серьезных проектов требуется нечто большее.
Значительно здесь продвинулась KaScada - там со стороны Мастера реализован управляемый обмен через шлюзы.
Озаботились, размышляем...
----
Всем успехов. Проект не простой, реализован по методикам ecoins, может быть не понят или не понравиться.
Это учебно-демонстрационный пример.
На вопросы готовы отвечать, в том числе и через лс.
Успехов.
Разработки ecoins
Добавлено: 11 ноя 2019, 03:26
bsn
bsn писал(а): 04 ноя 2019, 14:15
предполагалось что Вы возьмёте некую конкретную простую практическую схему
ecoins писал(а): 10 ноя 2019, 22:52
Проект
не простой, реализован по методикам ecoins
bsn писал(а): 04 ноя 2019, 14:15
Далее любой желающий мог бы попробовать изменять параметры или настройки Ваших блоков и смотреть в Proteus или в железе (кому как удобнее) - что бы видеть как это отражается на работоспособности этой схемы
ecoins писал(а): 10 ноя 2019, 22:52
Не моделировали (и не планируем) проект на Proteus - этим не занимаемся.
ecoins писал(а): 10 ноя 2019, 22:52
не проверил через физические адаптеры RS-485 - контроллеры соединил напрямую
Что ж... Нет, так нет.
Печально. А так верилось...
Разработки ecoins
Добавлено: 11 ноя 2019, 09:30
Dryundel
ecoins писал(а): 10 ноя 2019, 22:40
Получился проект.
Ок.
Давайте потихоньку разбирать.
.
BSN_mega2560_test_Master
Первая плата.
Блок пины*4 - описание в блоке очень скудное. Взяв этот блок, не имея даташита, которого к стати и нет, невозможно понять назначения.
Для чего это вообще нужно? Как работает этот блок? Почему только 4 пина? Почему именно 4 пина? Можно ли использовать несколько таких блоков?
.
И это только малая толика вопросов которые могут возникнуть. Будет здорово если Вы хотя бы на них ответите, четко без преамбул, выводов и посулов великолепности применения.
А если еще и в описание это все добавите ваще будет супер.
.
Блок параметры*4
Вообще не понял назначение блока.
Как завязаны пины в параметрах пользователя и параметр АдресLCD ? Если бы не клемма, ни в жизнь бы де догадался что значение 39 это именно оно.
Для чего вообще этот блок? Как с ним обращаться? Куда он посылает эти параметры кроме как на клемму? Почему в параметрах пользователя ПИНЫ?
.
Плата 4
RT_Диспетчер - описание оставляет желать лучшего. Начинается с флагов, которых на самом блоке нет. Ну вообще здорово!
Ну хорошо.
"Флаги инициализации диспетчера (могут быть считаны блоком RT_Task+):" - хоть это обозначено.
А "Флаги контроля:" ? Их где искать?
Дальше.
Вы вот сами понимаете что пишете в описании? Надеюсь что да. И я прекрассно понимаю что программеры это не нормальные люди в хорошем смысле слова. Однако читать то описание будут нормальные люди.
Флаги управления задачами (генерятся через цикл после установки флага permit):
При каждом выполнении диспетчера создается только одно из событий со следующим приоритетом:
ms_10 - каждые 10мс;
fast - каждые 25 мс (deafult). Оно меняется на ПЕРИОД БЫСТРЫХ ЗАДАЧ (параметр пользователя), если он >=0;
slow - каждые 250 мс (deafult). Оно меняется на ПЕРИОД МЕДЛЕННЫХ ЗАДАЧ (параметр пользователя), если он >=0;
ms100 - каждые 100 мс;
back - если нет событий выше.
---------------------------------------------------------------------------------------
Событие - это переменная, которая принимает не нулевое значение на один цикл вхождения в диспетчер.
Флаги, события... Все перемешали.
А нельзя попроще то? Типа событие это поднятие флага. Поднятие флага - наличие высокого уровня (единицы) на выходе.
после установки флага permit
Флаг permit ? Это что? Это где? Надо догадаться? Про что вообще идет речь?
Искренне надеемся на внятные ответы и такое же описание. (Рискнул высказаться от имени пользователей.)
Продолжение следует.
Разработки ecoins
Добавлено: 11 ноя 2019, 11:13
Ecomat
Уважаемый Ecoins, подскажите пожалуйста, не работает штатный блок записи и чтения в EEPROM? При компилировании выдает ошибку :Mexit status 1
'class EEPROMClass' has no member named 'update'
В пустой, базовый, дописываю, записать в EEPROM. Не хочет компилироваться.
Спасибо за блок 18b20. Который без указания адреса. Я мудрил способ определения, какой рабочий. Платы одинаковые а сенсоры разные.