colibrilab, условно говоря если я варю пиво - жду, когда сусло нагреется до определенной паузы, включая мешалку 5 через 15 минут, плавно снижая нагрев при подходе, а потом я буду другим каналом греть промывочную воду до 80, а длительность паузы у меня 30 минут, и если за 30 минут паузы вода не нагрелась - я бросаю греть воду и начинаю на другом канале идти к следующей паузе, а если нагрелась раньше 30 минут я просто выключу нагрев и буду простаивать остаток паузы.
Как что-то из этого твоим скриптом изобразить?
На Атмелях, на которых делают самы базовые ардуни в зависимости от чипа от трех таймеров, не считая прерываний по изменению состояния ног. Обработчики прерываний выполняются без очереди по истечению времени или по событию извне.
Универсальный контроллер CLRC-02
Отв.40 18 Апр. 17, 23:55
colibrilab
Студент
Барнаул
35 15
Отв.41 19 Апр. 17, 17:38
colibrilab, зря ты агрессивно реагируешь на замечания. большинство из них по существу. Если ты предлагаешь своё решение чтоб люди повторяли - то надо исправлять недочеты.woddy, 18 Апр. 17, 21:12
Дело не в этом. Я с удовольствием воспринимаю критику, т.к. критика двигает решение вперед. Тут вопрос в подаче этой критики. Когда человек пишет "не надо метать бисер...", намекая на мою принадлежность к свиньям, то единственное, что хочется - это послать такого человека на хер. И я с удовольствием это сделаю.
зазоры выбираются из соображений безопастности. Желательно, чтоб при появлении в розетке 1000вольт никого не убивало от прибора.woddy, 18 Апр. 17, 21:12
Согласен. Я делал свой контроллер в пластиковом корпусе и посчитал соответствие зазоров ГОСТу вполне достаточным. Думаю, нужно просто отделить логику от прочего и этого будет достаточно.
colibrilab
Студент
Барнаул
35 15
Отв.42 19 Апр. 17, 17:41, через 4 мин
условно говоря если я варю пиво - жду, когда сусло нагреется до определенной паузы, включая мешалку 5 через 15 минут, плавно снижая нагрев при подходе, а потом я буду другим каналом греть промывочную воду до 80, а длительность паузы у меня 30 минут, и если за 30 минут паузы вода не нагреласьcapsolo, 18 Апр. 17, 23:55
Вас понял. Я позиционировал контроллер для процессов дистилляции и ректификации. В следующей версии учту подобные пожелания. Будут независимые процессы по таймерам. Спасибо.
PavelSaratov
Доктор наук
Саратов
622 80
Отв.43 19 Апр. 17, 19:17
во и псевдомногозадачность появилась. еще принудительный выход из процесса по исчерпанию кванта времени слделаешь - будет недофриртс
Добавлено через 5мин.:
во и псевдомногозадачность появилась. еще принудительный выход из процесса по исчерпанию кванта времени слделаешь - будет недофриртс
Поясню свою мысль - даже если один процесс зациклится заморозитсы навсегда - другие процессы так же тикают дальше. Но вообще про FreeRTOS лучше почитать... Поверь, много полезного. Есть такая замечательная статья http://easyelectronics.ru/img/ARM_kurs/FreeRTOS/Kurniz.pdf даже просто для общего развития интересно почитать.
Добавлено через 5мин.:
во и псевдомногозадачность появилась. еще принудительный выход из процесса по исчерпанию кванта времени слделаешь - будет недофриртс
Поясню свою мысль - даже если один процесс зациклится заморозитсы навсегда - другие процессы так же тикают дальше. Но вообще про FreeRTOS лучше почитать... Поверь, много полезного. Есть такая замечательная статья http://easyelectronics.ru/img/ARM_kurs/FreeRTOS/Kurniz.pdf даже просто для общего развития интересно почитать.
Grab
Специалист
Красноярск
170 96
Отв.44 06 Мая 17, 14:16
colibrilab, Дмитрий, молодец Лично мне твоя идея автоматизации очень по душе... По поводу недочетов платы.. ну, у кого не бывает.. Не так уж много и доделывать... Сейчас доделаю автоматику msg31 по схеме roslava и обязательно соберу эту.. Посмотрел скрипты.. Лично мне, как не программисту, скрипты ректификации и дистилляции понятны, видно где что править и подогнать под свои хотелки и свое видение этих процессов. Что понравилось в идее, так это то, что скрипты загружаешь те, которые тебе нужны - ректификация, дистилляция, пивоварение и т.д.и т.п., а не все, которые есть в природе и не всегда тебе подходят. Платы уже все которые нужны заказал..
capsolo, смотрел соседнюю ветку с пивоварней на скриптах.. Ради интереса скачал один из многочисленных файлов с рецептами пива в формате .xml и посмотрел там как описывается процесс пивоварения в скриптах... Все там можно воплотить..
http://www.beerxml.com
ИМХО весь негатив из-за того, что нет пока что реальных отзывов от повторивших... А вся навороченность автоматики и прецензионность вычислений нивелируется простым нажатием рубильника на подстанции или на площадке
Так что, ты не теряйся
P.S. По поводу +85 на датчике вроде человек объяснил из-за чего: http://we.easyelectronics.ru/...odpravleno.html
capsolo, смотрел соседнюю ветку с пивоварней на скриптах.. Ради интереса скачал один из многочисленных файлов с рецептами пива в формате .xml и посмотрел там как описывается процесс пивоварения в скриптах... Все там можно воплотить..
http://www.beerxml.com
ИМХО весь негатив из-за того, что нет пока что реальных отзывов от повторивших... А вся навороченность автоматики и прецензионность вычислений нивелируется простым нажатием рубильника на подстанции или на площадке
Так что, ты не теряйся
P.S. По поводу +85 на датчике вроде человек объяснил из-за чего: http://we.easyelectronics.ru/...odpravleno.html
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.45 08 Мая 17, 22:19
Автору темы респект за работу!
Купил себе на али stm32 + ESP8266. Сейчас сижу читаю книжки про STM32. Причём когда заказывал ESP8266 думал о модуле как о внешнем интерфейсе с ПК. А оказалось что ESP8266 уже готовый контроллер с памятью и WI-FI чипом. Круто!
Насчёт многозадачности. В stm32 многозадачность отлично программируется при наличии ОПЫТА у программиста в этой области, т.к. это сложно. Опыт я имею в виду именно в программировании потоков (распараллеливании) стоящей задачи. Ну например программист на Жабе вряд ли сможет написать маломальскую игру стратегию типа С&C (утрировал конечно но для примера пойдёт).
В идеале то как хочется (мне!):
- первый поток - нашёл ds18b20, и в процессе работы в режиме реального времени следит за корректностью показаний температуры, скорость изменения темп., да и вообще датчик может выйти из строя, отвалится контакт и т.д... Вот эти Alert-ы и нужно вовремя поймать...
Но это если делать на совесть.
Насчёт ESP8266 и в частности о скриптах. Честно скажу эту вещь ещё не юзал.
Но скрипты это ДОБРО а не ЗЛО! Бэйсик это ведь тоже скрипты по сути, сначала код выполнялся как предпроцессор без компиляции потом и компиляция стала нормой.
Насчёт многозадачности в ESP8266. Предположу что если программный код обслуживающий скрипты в этой штуке ГРАМОТНЫЙ и есть возможность указать в исходном тексе что этот фрагмент нужно как то выделить-распараллелить как то, то тогда все ОК!
Купил себе на али stm32 + ESP8266. Сейчас сижу читаю книжки про STM32. Причём когда заказывал ESP8266 думал о модуле как о внешнем интерфейсе с ПК. А оказалось что ESP8266 уже готовый контроллер с памятью и WI-FI чипом. Круто!
Насчёт многозадачности. В stm32 многозадачность отлично программируется при наличии ОПЫТА у программиста в этой области, т.к. это сложно. Опыт я имею в виду именно в программировании потоков (распараллеливании) стоящей задачи. Ну например программист на Жабе вряд ли сможет написать маломальскую игру стратегию типа С&C (утрировал конечно но для примера пойдёт).
В идеале то как хочется (мне!):
- первый поток - нашёл ds18b20, и в процессе работы в режиме реального времени следит за корректностью показаний температуры, скорость изменения темп., да и вообще датчик может выйти из строя, отвалится контакт и т.д... Вот эти Alert-ы и нужно вовремя поймать...
Но это если делать на совесть.
Насчёт ESP8266 и в частности о скриптах. Честно скажу эту вещь ещё не юзал.
Но скрипты это ДОБРО а не ЗЛО! Бэйсик это ведь тоже скрипты по сути, сначала код выполнялся как предпроцессор без компиляции потом и компиляция стала нормой.
Насчёт многозадачности в ESP8266. Предположу что если программный код обслуживающий скрипты в этой штуке ГРАМОТНЫЙ и есть возможность указать в исходном тексе что этот фрагмент нужно как то выделить-распараллелить как то, то тогда все ОК!
Mnz
Магистр
Город
254 86
Отв.46 09 Мая 17, 10:44
Сейчас сижу читаю книжки про STM32.mr.ptec, 08 Мая 17, 22:19Теория это хорошо, но она не заменит практику, без которой сложно что-то изучать. Все что было прочитано нужно сразу же закреплять на практике, создавая пусть и на первый взгляд бесполезные примеры кода. Это позволит лучше разобраться и понять как работает тот или иной модуль МК.
Для начала хороши эти статьи ведь в них все рассматривается на примерах http://www.avislab.com/blog/stm32-list_ru/
Насчёт многозадачности. В stm32 многозадачность отлично программируется при наличии ОПЫТА у программиста в этой области, т.к. это сложно.mr.ptec, 08 Мая 17, 22:19В чем именно сложность? Есть же FreeRTOS. Пример для STM32F103C8T6.
автоэлектрик
Доктор наук
Бийск
792 294
Отв.47 09 Мая 17, 11:06, через 23 мин
Вот тоже валяется Еsp.Но я вот почему-то нихрена не врубаюсь в тему! Ардуино - понятно написал скетч, проработал в нем интерфейс и все, прога работает, со мной общается далее без знаний программирования. Тут получается я должен каждый день писать ей уравнения? Ткните куда почитать с азов!
Grab
Специалист
Красноярск
170 96
Отв.48 09 Мая 17, 13:13
автоэлектрик, Да все то же самое - скетч залил и забыл, а вот если захотел немного изменить алгоритм, то написал его в блокноте и залил. И также заыл, если все устраивает.
[сообщение #13007388]
[сообщение #13007388]
автоэлектрик
Доктор наук
Бийск
792 294
Отв.49 09 Мая 17, 13:18, через 6 мин
Понятно. А где стартово почитать?
Grab
Специалист
Красноярск
170 96
Отв.50 09 Мая 17, 14:22
автоэлектрик, наверное в основах программирования Почитай ещё соседнюю ветку про пивоварню: [Контроллер пивоварни на esp8266] Там тотже вроде принцип заложен с заливкой рецептов...
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.51 09 Мая 17, 20:40
Теория это хорошо, но она не заменит практику, без которой сложно что-то изучать. Все что было прочитано нужно сразу же закреплять на практике, создавая пусть и на первый взгляд бесполезные примеры кода. Это позволит лучше разобраться и понять как работает тот или иной модуль МК.Mnz, 09 Мая 17, 10:44Ты прямо как Горбачёв на 20 съезде КПСС лозунгуешь.
Ты меня не торопи с STM32. Нужно с мыслями собраться. Может быть с ОСРВ FreeRTOS поразбираться. Это же хобби а не источник дохода.
makh
Профессор
Sаmara
2.1K 1K
Отв.52 12 Мая 17, 20:35
colibrilab, респект!
Концепт со скриптом оч правильный. Но соглашусь с коллегой capsolo -- в текущем состоянии скрипт годен только для простых отлаженных техпроцессов, вроде описанных в доке. Т.е. потенциальный пользователь их из дока скопирует, поправит цифры, и оно ему будет на этих стандартных задачах работать. И это на самом деле круто. Но когда ему захочется странного (отбирать головы периодикой, или в течение всего погона с ЦП, открывать по градуснику нижний отбор, и т.д.) он потребует возможности расписать в скрипте циклы на уровне goto <label>, как минимум. Обработчики "таймеров" уже. А потом обработчики и генераторы аварийныйх событий, ибо в каком-то случае, например, не надо выключать тэн, достаточно не прерывая работу разбудить оператора.
Если по итогам получится совместить удобный и гибкий инструмент для програмистов с простой коробкой для решения стандартных задач не-програмистами, будет бесконечно круто.
Концепт со скриптом оч правильный. Но соглашусь с коллегой capsolo -- в текущем состоянии скрипт годен только для простых отлаженных техпроцессов, вроде описанных в доке. Т.е. потенциальный пользователь их из дока скопирует, поправит цифры, и оно ему будет на этих стандартных задачах работать. И это на самом деле круто. Но когда ему захочется странного (отбирать головы периодикой, или в течение всего погона с ЦП, открывать по градуснику нижний отбор, и т.д.) он потребует возможности расписать в скрипте циклы на уровне goto <label>, как минимум. Обработчики "таймеров" уже. А потом обработчики и генераторы аварийныйх событий, ибо в каком-то случае, например, не надо выключать тэн, достаточно не прерывая работу разбудить оператора.
Если по итогам получится совместить удобный и гибкий инструмент для програмистов с простой коробкой для решения стандартных задач не-програмистами, будет бесконечно круто.
Отв.53 12 Мая 17, 21:16, через 42 мин
makh, Махмуд а в твоем софте же можно несколько потоков, или колбэки какие-то? Так то железку свою с кучей мощных и маломощных каналов, шестью градусниками, и тремя независимыми циклическими таймерами мы к твоей софтине прикрутили, и все отлично работает в ручном режиме, мониторит и строит графики. Вроде бы у тебя можно несколько программ параллельно запускать. Могут они данными обмениваться?
makh
Профессор
Sаmara
2.1K 1K
Отв.54 12 Мая 17, 22:13, через 58 мин
capsolo, Если коротко -- да. Подробно распишу в теме. Не знаю если сегодня, ибо пятница. Недели рабочей задница (C)
colibrilab
Студент
Барнаул
35 15
Отв.55 24 Мая 17, 05:53
Но соглашусь с коллегой capsolo -- в текущем состоянии скрипт годен только для простых отлаженных техпроцессов, вроде описанных в доке. Т.е. потенциальный пользователь их из дока скопирует, поправит цифры, и оно ему будет на этих стандартных задачах работать. И это на самом деле круто. Но когда ему захочется странного (отбирать головы периодикой, или в течение всего погона с ЦП, открывать по градуснику нижний отбор, и т.д.) он потребует возможности расписать в скрипте циклы на уровне goto <label>, как минимум. Обработчики "таймеров" уже. А потом обработчики и генераторы аварийныйх событий, ибо в каком-то случае, например, не надо выключать тэн, достаточно не прерывая работу разбудить оператора.makh, 12 Мая 17, 20:35
Это так - эти скрипты для линейных процессов. Надо сказать, что большинству этого более чем достаточно. Основная идея была в максимальном упрощении управления для пользователя. Сейчас занимаюсь новой версией. Там уже будут более продвинутые скрипты, похожие на простой язык программирования, с многопоточностью, с переменными, со сложными выражениями, с условиями, с циклами и т.д..
makh
Профессор
Sаmara
2.1K 1K
Отв.56 24 Мая 17, 06:10, через 18 мин
похожие на простой язык программированияcolibrilab, 24 Мая 17, 05:53Заранее извиняясь, на свой страх и риск продолжу ход мысли -- почему бы в таком случае не зашить туда интерпрет какого-нибудь готового (и, возможно, массово известного) языка? Типа васика .) Присунуть в него коротким синтаксом ентиты из железа, естессна, ну и т.д.
colibrilab
Студент
Барнаул
35 15
Отв.57 25 Мая 17, 13:42
Заранее извиняясь, на свой страх и риск продолжу ход мысли -- почему бы в таком случае не зашить туда интерпрет какого-нибудь готового (и, возможно, массово известного) языка? Типа васика .) Присунуть в него коротким синтаксом ентиты из железа, естессна, ну и т.д.makh, 24 Мая 17, 06:10
Почти все популярные языки имеют схожий синтаксис. Будет что-то между Бейсиком и C++. Вот кусочек скрипта, на котором сейчас забавляюсь с отладкой компилятора:
t_set(1, 2); // привязка термометра t1 к сенсору #2
t_set(2, 1); // привязка термометра t2 к сенсору #1
t_set(7, 3); // привязка термометра t7 к сенсору #3
var a = 13;
var b;
thread ASM {
while (true) {
p = map(t2, 30, 70, 500, 600);
}
}
if (a != 13)
b = 5;
else {
var c = 70;
b = c * a;
}
while (t7 < 70); // ждать пока t7<70
start(ASM);
while (t1 < 85); // ждать пока t1<85
stop(ASM);
a = (b == 5) ? 17.85 : b * 2;
var i = 0;
while (i < 10) {
a *= (i + 1);
i = i + 1;
}
makh
Профессор
Sаmara
2.1K 1K
Отв.58 25 Мая 17, 14:10, через 29 мин
Отв.59 25 Мая 17, 14:50, через 41 мин
или так