Страница 1 из 3
Задачи в очередь
Добавлено: 03 ноя 2019, 11:57
KeyArduino
Доброго времени суток господа офицеры! Подскажите пожалуйста, есть ли возможность в Flprog как то ставить задачи в очередь, и что бы они выполнялись в порядке поставленной очереди. К примеру: Сейчас я хочу что бы через 2 минуты загорелся один светодиод, через 5 минут второй, чрез 7 третий. В следующий раз поменять порядок включения и время включения светодиодов и что бы они срабатывали в порядке очереди по нажатию кнопки.
Всем кто поможет плюсики в карму!
Заранее всем благодарен!!!
Задачи в очередь
Добавлено: 03 ноя 2019, 12:29
Brand2
В Flprog можно все,или почти все,опишите где и как Вы собираетесь менять порядок и время включения, что будет использоваться в качестве индикации ввода,клавиатура,меню,кнопкИ и тд, тогда уже можно и подумать как это сделать.
Задачи в очередь
Добавлено: 03 ноя 2019, 12:36
edyapd
Не вижу проблем в самой реализации. Те же самые таймеры. Только не совсем понял
KeyArduino писал(а): 03 ноя 2019, 11:57 срабатывали в порядке очереди по нажатию кнопки
То есть, нажали на кнопку и через две минуты должен сработать первый, через определённое время второй и так далее?
Какой задатчик будете использовать для выставления очереди и времени?
Ну и можно чуть усложнить. Прицепить часы реального времени и завести будильник или просто раз в минуту опрашивать.
Задачи в очередь
Добавлено: 03 ноя 2019, 13:19
KeyArduino
Если по подробней, то с трёх комнат (три блока управления с тремя кнопками) поступают сигналы на блок управления, который будет отрабатывать эти задачи в порядке поступившей очереди. К блоку выполнения подключены 3 клапана (Всё это представляет из себя ардуино, 9 кнопок (по 3 в каждой комнате) и к ардуино подключены 3 клапана.
Например: Независимо друг от друга на ардуино подаються сигналы с разных комнат (С первой допустим команда включить 2 и 3 клапан (время отработки клапана зависит от времени удержания кнопки), со второй включить 1 и 2 клапан и с третей включить 1 и 3 клапан), клапана всего 3 и нужно собрать поступившие со всех трёх комнат сигналы и выполнить их в порядке поступившей очереди.
Задачи в очередь
Добавлено: 03 ноя 2019, 14:10
Brand2
[ref]KeyArduino[/ref], стало еще более запутанно,не пойму, или только мне или и другим тоже?
Может набросаете схематически как все должно выглядеть?
Задачи в очередь
Добавлено: 03 ноя 2019, 14:33
Phazz
Я вроде понял что нужно
Отправлено спустя 1 минуту 21 секунду:
[ref]KeyArduino[/ref], А есть начало проекта?
Отправлено спустя 19 минут 2 секунды:
А если одновременно будут нажаты кнопки в разных комнатах, как быть тогда?
Задачи в очередь
Добавлено: 03 ноя 2019, 14:36
KeyArduino
Phazz писал(а): 03 ноя 2019, 14:14
А есть начало проекта?
Собрана логика для подачи сигналов с одной комнаты и открытия клапанов. Сам вопрос заключается в том, как ставить шаги выполнения в очередь. Например в из одной комнаты одни команды подали из другой другие, ардуино их приняла составила в очередь и по очереди их выполняет, что бы не получилось так, что одни сигналы наложились на другие
Отправлено спустя 1 минуту 35 секунд:
Phazz писал(а): 03 ноя 2019, 14:33
А если одновременно будут нажаты кнопки в разных комнатах, как быть тогда?
Одновременно навряд ли получится, всё равно какой то поступит раньше
Задачи в очередь
Добавлено: 03 ноя 2019, 14:46
KulibinOrsk
[ref]KeyArduino[/ref], есть хороший блок - "командоаппарат" через него сможешь как раз реализовать свою последовательность с любыми условиями.
Задачи в очередь
Добавлено: 03 ноя 2019, 14:50
KeyArduino
KulibinOrsk писал(а): 03 ноя 2019, 14:46
KeyArduino, есть хороший блок - "командоаппарат" через него сможешь как раз реализовать свою последовательность с любыми условиями.
Как в командоаппарат записывать шаги если они поступают с кнопок? На сколько я успел узнать командоаппарат, там в ручную шаги нужно вписывать, потом они поочерёдно выполняются
Задачи в очередь
Добавлено: 03 ноя 2019, 15:23
Rovki
.Я могу нарисовать в среде Овен лоджик ,а вы потом переведете в ФЛ

Кнопки без фиксации ,пока держим на выходе 1(вкл клапана)???
Задачи в очередь
Добавлено: 03 ноя 2019, 15:48
KeyArduino
Rovki писал(а): 03 ноя 2019, 15:23
Я могу нарисовать в среде Овен лоджик ,а вы потом переведете в ФЛ
Я с Овен лоджик не знаком
Мне главное понять при помощи каких блоков можно ставить задачи в очередь, что бы ардуинка их потом выполняла в порядке очереди, а дальше я надеюсь сам догоню. Может как то это сделать через епром, и считывать как то по очереди

Задачи в очередь
Добавлено: 03 ноя 2019, 16:00
Rovki
разабьем задачу на несколько .
1.как определить что нужно начинать выполнять задачу для данной комнаты (пока не важно какой) - кнопок может быть нажато от 1 до 3 . включаем нужный клапан пока нажата данная кнопка ,отпустили выключился . перходим к следующей комнате когда отпущены все кнопки в первой нажатой комнате.Так?
2.нужно определить кто первый из 3 нажал кнопку ,того и время управлять ,пока нажата хоть одна кнопка.Так?
3.кто бы не захватил управление ,следующиие две комнаты ждут своей очереди управлять по - кто первый из этих двух того и управление .Так
4.Раз управляем столько сколько держим кнопку ,значит те кто не получил доступ к управлению тыкают в кнопки в пустую...Так ?Значит напрашивается индикатор в каждой комнате -когда можно управлять
Задачи в очередь
Добавлено: 03 ноя 2019, 16:22
Dryundel
[ref]KeyArduino[/ref], задачу Вы поставили слегка запутано и недостает исходных данных.
Лучше будет если Вы опишете реальный процесс который хотите автоматизировать. Если не тайна конечно.
Про очередь понятно.
Вопросы:
1. Одновременно должен быть открыт только один клапан? Или клапана независимы друг от друга?
Задачи в очередь
Добавлено: 03 ноя 2019, 16:23
Rovki
По тому как написал схема такая получается и работает
очередь.jpg
Задачи в очередь
Добавлено: 03 ноя 2019, 16:31
KeyArduino
Ну почти всё верно, только пока давят кнопки в первой комнате, в других тоже в это время могут давить кнопки, вот эти кнопки и должны встать в очередь на выполнение, как первой комнате закончили система смотрит что ей за это время прилетело и в каком порядке, и пошла выполнять
Отправлено спустя 5 минут 35 секунд:
Dryundel писал(а): 03 ноя 2019, 16:22
Одновременно должен быть открыт только один клапан? Или клапана независимы друг от друга?
Независимо друг от друга.
Постараюсь ещё более просто объяснить, допустим в 3 комнатах сидят люди и давят на кнопки в любом порядке не важно, ардуино должна принять сигналы и выполнять их в порядке очереди, команды с первой комнаты отработала перешла к командам со следующей комнаты и т.д.
Задачи в очередь
Добавлено: 03 ноя 2019, 16:34
ecoins
Это реализовано в библиотеках ecoins - пользовательский блок "Диспетчер задач" (ветка "Разработки ecoins").
Он не сложный и при необходимости может быть выполнен как самостоятельный блок (без библиотеки).
Будут вопросы - спрашивайте.
Задачи в очередь
Добавлено: 03 ноя 2019, 16:38
KeyArduino
Rovki писал(а): 03 ноя 2019, 16:23
По тому как написал схема такая получается и работает
Блоки памяти тут я как понял не используются? Ведь допустим в разных комнатах по нажимали кнопки многократно, на ардуино прилетело допустим 15 команд по открытию клапанов, где, каким блоком она их будет собирать а потом отправлять на выполнение?
Задачи в очередь
Добавлено: 03 ноя 2019, 16:39
Dryundel
KeyArduino писал(а): 03 ноя 2019, 16:31
Независимо друг от друга.
Отлично!
Зачем Вы тогда так усложнили ТУ?
Переводим задачу из трехмерной в плоскость.
Один клапан и три кнопки. Клапан отрабатывает эти кнопки в порядке их нажатия и с задержкой открытия соответствующей задержке нажатия.
Так?
След. вопрос.
После закрытия клапана должна быть задержка закрытия? Какая?
Или клапан должен суммировать задержку открытия исходя из суммарной длительности разных нажатия кнопок?
Задачи в очередь
Добавлено: 03 ноя 2019, 16:41
KeyArduino
Может как то с блоками массивов можно организовать, если кнопками задачи по порядку будут записываться в массив а потом считывать и выполнять по очереди?
Эт я размышляю, на деле не знаю будет ли работать
Задачи в очередь
Добавлено: 03 ноя 2019, 16:43
Dryundel
ecoins писал(а): 03 ноя 2019, 16:34
Это реализовано в библиотеках ecoins - пользовательский блок "Диспетчер задач"
Очень интересно. И как же там организована очередь? Я вроде не заметил там подобия FIFO . А можно поподробней?