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: Язык ДРАКОН. Визуальные операторы реального времени

предположим, нужно выполнить действия в различной очередности. с новым приемом это сделать легко:
Вложение:
Пауза6.JPG
Пауза6.JPG [ 23.7 КБ | Просмотров: 8296 ]

Задаем последовательно переменной значения очередности: "поток=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. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину?

тут он действительно простейший
Вложение:
Моторы.JPG
Моторы.JPG [ 42.95 КБ | Просмотров: 8292 ]


у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" :)

Автор:  Дмитрий Бардынин [ Воскресенье, 24 Март, 2019 13:47 ]
Заголовок сообщения:  Re: Язык ДРАКОН. Визуальные операторы реального времени

Дмитрий Бардынин писал(а):
у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" :)


тут, правда, есть один камушек подводный: внутренний таймер Ардуино сбрасывается раз в 50 суток, и в этот момент возможно нарушение синхронизации. по-крайней мере, мой генератор этот момент пока не отслеживает.

если точность +/- 1мс не важна, то проще на обычных Паузах
Вложение:
Моторы2.JPG
Моторы2.JPG [ 34.29 КБ | Просмотров: 8291 ]

Автор:  А_МУР [ Воскресенье, 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: Язык ДРАКОН. Визуальные операторы реального времени

На переменке накидал еще вариант
Вложение:
Моторы22.JPG
Моторы22.JPG [ 32.85 КБ | Просмотров: 8287 ]

Вложение:
Моторы23.JPG
Моторы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 сек и проверяем реле перепада?

"каков вопрос - таков ответ". в условии не было требования контролировать состояние мотора. и другие процессы тоже не описывались, кроме запуска. поэтому: да, останавливает

уточните, что Вы понимаете под "реле перепада" и "обратная связь мотор сработал", и я уточню диаграмму и код

Автор:  А_МУР [ Воскресенье, 24 Март, 2019 17:29 ]
Заголовок сообщения:  Re: Язык ДРАКОН. Визуальные операторы реального времени

Это моё представление виртуальной машины.
Обсуждаемо.
Схему главной программы представлю, если эта схема будет кому то интересна.
На самом деле вопрос Виртуальной Дракон Машины интересна разработчикам дракон редактора - большое упущение Владимира Даниловича

Вложения:
алгоритм виртуальной машины.png
алгоритм виртуальной машины.png [ 66.84 КБ | Просмотров: 8258 ]

Страница 13 из 14 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/