DRAKON.SU https://forum.drakon.su/ |
|
Язык ДРАКОН. Визуальные операторы реального времени https://forum.drakon.su/viewtopic.php?f=78&t=6263 |
Страница 13 из 14 |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 10:22 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий, а почему всетаки пауза? |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 10:27 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Потому что "ожидание при выполнении простого условия". Одной иконой вместо группы знаков. И когнитивно точнее передается смысл фразы: "ждем, пока условие". |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 10:32 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
нет необходимости крутить пальцем/взглядом при ожидании исполнения какого-то условия, позволяющего пройти к следующему действию. По сути, это статичный значок для конструкции while(){} |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 10:35 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 12:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
предлагаемый способ как раз и помогает остановить/запустить ветку в многопоточном алгоритме. стандартный селектор на такое не способен. |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 12:24 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
предположим, нужно выполнить действия в различной очередности. с новым приемом это сделать легко: Вложение: Задаем последовательно переменной значения очередности: "поток=3; поток=1; поток=2;", и получаем нужный порядок "Действие 3, Действие 1, Действие 2" |
Автор: | Владимир Паронджанов [ Воскресенье, 24 Март, 2019 13:07 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
А_МУР писал(а): Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных Можно сделать так: 1. Часть программы выделяем и превращаем в вызываемый алгоритм. 2. В вызывающем алгоритме пишем Паузу и Вставку (указывающую на вызываемый алгоритм) |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 13:12 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Владимир Паронджанов писал(а): А_МУР писал(а): Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных Можно сделать так: 1. Часть программы выделяем и превращаем в вызываемый алгоритм. 2. В вызывающем алгоритме пишем Паузу и Вставку (указывающую на вызываемый алгоритм) Тут же возникают проблем., с пространствами имен и наложение видимости переменной |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 13:21 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Простейшая жизненая ситуация, с коей сталкивается каждый програмист: есть два мотора. Есть кнопка пуск. После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину? |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 13:33 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
А_МУР писал(а): Простейшая жизненная ситуация, с коей сталкивается каждый программист: есть два мотора. Есть кнопка пуск. После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину? тут он действительно простейший Вложение: у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 13:47 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий Бардынин писал(а): у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" тут, правда, есть один камушек подводный: внутренний таймер Ардуино сбрасывается раз в 50 суток, и в этот момент возможно нарушение синхронизации. по-крайней мере, мой генератор этот момент пока не отслеживает. если точность +/- 1мс не важна, то проще на обычных Паузах Вложение:
|
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 14:06 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий Бардынин писал(а): А_МУР писал(а): Простейшая жизненная ситуация, с коей сталкивается каждый программист: есть два мотора. Есть кнопка пуск. После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину? тут он действительно простейший Вложение: Моторы.JPG у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" А код созданный Драконом можете показать? |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 14:14 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Владимир Данилович, Дмитрий! Необходимо создать теоретическую виртуальную машину для Дракона. Свой вариант, такой машины, я смогу представить после 16.00 по Москве. Моя модель будет основана на промышленных ПЛК. Дмитрий возможно возмет Ардуино! Это будет первым шагом стандартизации |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 14:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
А_МУР писал(а): А код созданный Драконом можете показать? Код: void Zapuskaem_motory( ) { while (true) { motor_1(1); // output delay(3600000); //pause 60 min motor_1(0); // output delay(20000); //pause 20 sek motor_2(1); // output delay(3600000); //pause 60 min motor_2(0); // output delay(20000); //pause 20 sek if (Prodolzhaem) { } else { break; } } } void motor_1( int val ) { digitalWrite(7,val); } void motor_2( int val ) { digitalWrite(8,val); } Это кусок кода. Понятно, что где-то в заголовке нужно глобальную переменную объявить Prodolzhaem Специально не правил, убрал только объявления loop и setup. Как сгенерировал, так и показываю |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 14:43 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
На переменке накидал еще вариант Вложение: Вложение: Моторы23.JPG [ 16.8 КБ | Просмотров: 8287 ] Код: void Zapuskaem_motory2( ) {
int motor= 0; // shelf while (true) { Zapuskaj(motor, 1); // output delay(3600000); //pause 60 minut Zapuskaj(motor, 0); // output delay(20000); //pause 20 sekund motor= (motor + 1) % 2; // shelf if (Prodolzhaem) { } else { break; } } } void Zapuskaj( int nomer, int val ) { digitalWrite(7+nomer,val); } |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 14:47 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
настройки режимов портов, глобальные переменные оставил за скобками. |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 15:38 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий Бардынин писал(а): А_МУР писал(а): А код созданный Драконом можете показать? Код: void Zapuskaem_motory( ) { while (true) { motor_1(1); // output delay(3600000); //pause 60 min motor_1(0); // output delay(20000); //pause 20 sek motor_2(1); // output delay(3600000); //pause 60 min motor_2(0); // output delay(20000); //pause 20 sek if (Prodolzhaem) { } else { break; } } } void motor_1( int val ) { digitalWrite(7,val); } void motor_2( int val ) { digitalWrite(8,val); } Это кусок кода. Понятно, что где-то в заголовке нужно глобальную переменную объявить Prodolzhaem Специально не правил, убрал только объявления loop и setup. Как сгенерировал, так и показываю Получается что Ардуинка останавливает программу ради одного мотора? Снова тривиальная ситуация: обратная связь мотор сработал ждем 20 сек и проверяем реле перепада? |
Автор: | А_МУР [ Воскресенье, 24 Март, 2019 15:39 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Мотор сработал, а реле нет, запускаем другой мотор |
Автор: | Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 16:32 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
А_МУР писал(а): Получается что Ардуинка останавливает программу ради одного мотора? Снова тривиальная ситуация: обратная связь мотор сработал ждем 20 сек и проверяем реле перепада? "каков вопрос - таков ответ". в условии не было требования контролировать состояние мотора. и другие процессы тоже не описывались, кроме запуска. поэтому: да, останавливает уточните, что Вы понимаете под "реле перепада" и "обратная связь мотор сработал", и я уточню диаграмму и код |
Страница 13 из 14 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |