DRAKON.SU https://forum.drakon.su/ |
|
Язык ДРАКОН. Визуальные операторы реального времени https://forum.drakon.su/viewtopic.php?f=78&t=6263 |
Страница 1 из 14 |
Автор: | Владимир Паронджанов [ Четверг, 14 Июнь, 2018 17:44 ] |
Заголовок сообщения: | Язык ДРАКОН. Визуальные операторы реального времени |
Язык ДРАКОН. Визуальные операторы реального времени Выкладываю "Главу 21. Операторы реального времени" из моей новой книги. Прошу критиковать http://drakon.su/_media/biblioteka/glav ... _vrem_.pdf |
Автор: | LKom [ Четверг, 14 Июнь, 2018 17:52 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
На рис. 125 обе стрелки должны быть направлены вниз. |
Автор: | Владимир Паронджанов [ Четверг, 14 Июнь, 2018 18:22 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
LKom писал(а): На рис. 125 обе стрелки должны быть направлены вниз. Спасибо за важное замечание. В оригинале сразу исправил. |
Автор: | LKom [ Четверг, 14 Июнь, 2018 18:25 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Нет толкования иконы Период без текста. |
Автор: | LKom [ Четверг, 14 Июнь, 2018 18:44 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Вложение: О_Синхронизаторе.png Разъяснение смысла иконы Синхпронизатор. Обязательно необходимое разъяснение. |
Автор: | Владимир Паронджанов [ Четверг, 14 Июнь, 2018 19:46 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
LKom писал(а): Нет толкования иконы Период без текста. Просьба пояснить, что значит "Период без текста" |
Автор: | LKom [ Четверг, 14 Июнь, 2018 20:05 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
https://forum.drakon.su/viewtopic.php?p=36415#p36415 |
Автор: | Владимир Паронджанов [ Четверг, 14 Июнь, 2018 22:05 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
LKom, спасибо. Вы правы, в моей книге "Как улучшить работу ума" имеется плохой текст, который следует аннулировать. Плохой текст подлежащий удалению Цитата: Нередко имеет место ситуация, когда разработчик программы реального времени использует цикл ЖДАТЬ, но считает, что для его программы конкретное значение периода не играет роли. В этом случае икону “период” следует оставить пустой; система по умолчанию присвоит периоду максимальное значение из того ассортимента, которым располагает дракон-диспетчер. Данный текст я считаю неправильным. Его следует аннулировать. Пустые иконы (без текста) недопустимы. |
Автор: | Владимир Паронджанов [ Четверг, 14 Июнь, 2018 22:24 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
LKom писал(а): Разъяснение смысла иконы Синхпронизатор. Обязательно необходимое разъяснение. В качестве разъяснения привожу две цитаты их "Главы 21. Операторы реального времени" Цитата: ОПЕРАТОРЫ «ПУСК ТАЙМЕРА» И «СИНХРОНИЗАТОР» Вернемся еще раз к задаче на рис. 115 и слегка изменим ее. Будем считать, что разработчик управляемого объекта хочет указать время выдачи команд не по принципу «задержка после предыдущей команды», а по принципу секундомера. Это значит, что все времена отсчитываются от единого начального момента (совпадающего с пуском секундомера). Исходя из этого, сформулируем задачу управляющего компьютера. Он должен: включить секундомер, то есть обнулить и запустить таймер; выдать команду ОТКРЫТЬ.ТРУБОПРОВОД; когда таймер отсчитает две минуты, выдать пару команд ВКЛЮЧИТЬ.НАСОС и ОТКРЫТЬ.ЗАСЛОНКУ; когда таймер отсчитает 2 минуты 45 секунд, выдать команду ПОДАЧА.ТОПЛИВА; когда таймер отсчитает 5 минут 45 секунд, выдать команду ПУСК.АГРЕГАТА. Описанный алгоритм изображен на рис. 116. В нем используются операторы «Пуск таймера» и «Синхронизатор», совместная работа которых обеспечивает нужный эффект. Например, синхронизатор А = 2мин 45с задерживает выдачу команды ПОДАЧА.ТОПЛИВА до момента, когда таймер А отсчитает 2 минуты 45 секунд. Сравнивая алгоритмы на рис. 115 и 116, можно заметить, что они почти эквивалентны. Почему почти? Чтобы разобраться, рассмотрим идеальный случай. Представим, что время, необходимое для выдачи одной команды равно нулю. Имеется в виду, что перечисленные ниже команды выдаются за время, равное нулю: ОТКРЫТЬ.ТРУБОПРОВОД; ВКЛЮЧИТЬ.НАСОС; ОТКРЫТЬ.ЗАСЛОНКУ; ПОДАЧА.ТОПЛИВА; ПУСК.АГРЕГАТА. В этом случае оба алгоритма будут выдавать команды синхронно. Однако в действительности идеальные случаи встречаются редко, ибо время выдачи одной команды больше нуля. Поэтому наши алгоритмы работают несинхронно. Практика показывает, что в некоторых ситуациях предпочтительным является принцип паузы (когда используется икона Пауза). А в других — принцип таймера (когда используются иконы «Пуск таймера» и «Синхронизатор»). Оба инструмента оказываются в равной степени необходимыми и полезными. Оператор Пуск таймера порождает, обнуляет и запускает таймер и присваивает ему имя, например А Оператор Синхронизатор задерживает выполнение размещенной справа от него иконы до момента, указанного в иконе Синхронизатор Вложение: Цитата: ЦИКЛ «ЖДАТЬ» И ОПЕРАТОР «СИНХРОНИЗАТОР» Предположим, мы ожидаем из космоса приветствие от пришельцев, посылающих нам сигнал Сигма (который мы ловим с помощью цикла ЖДАТЬ). Предположим также, что, получив желанный сигнал, мы должны послать в космос серию ответных сигналов, жестко привязанных по времени. Серия может быть длинной и насчитывать сто или даже тысячу кодограмм. На рис. 121 представлено упрощенное решение, позволяющее отправить в космос серию из трех сигналов. Для этого нужны цикл ЖДАТЬ, икона «Пуск таймера» и три иконы «Синхронизатор». Когда таймер досчитает до 39-й минуты, мы пошлем пришельцам дружеский привет (рис. 121). Данный рисунок демонстрирует совместное использование цикла ЖДАТЬ, таймера и синхронизаторов. Вложение: Напоминаю, что обсуждаемая глава 21 находится по ссылке http://drakon.su/_media/biblioteka/glav ... _vrem_.pdf |
Автор: | TAU [ Понедельник, 18 Июнь, 2018 02:13 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Владимир Даниелович, ну что же Вы... Сколько можно... На рисунке 116 опять у Вас некорректная картинка. А именно: идет непрерывная линия, означающая непосредственную передачу управления в семантике блок-схем и "обычных" Дракон-схем без РВ, от действия "Открыть.трубопровод" к действию "Включить.насос". А на самом деле поток исполнения здесь разрывается. Передача управления после выполнения действия "Открыть.трубопровод" к действию "Включить.насос" не осуществляется. На самом деле алгоритм "застывает" в состоянии ожидания срабатывания таймера, которое никак сейчас на Дракон-схеме не отражено - видимо, уместно говорить здесь о "пробеле" в семантике Дракона. И продолжается выполнение данного алгоритма лишь по истечении заданной УВИ. Хотя бы линию сделать имеет смысл пунктирной - если не вообще ввести разрыв и специальный графический примитив, означающий переход алгоритма в состояние ожидания. Аналогично, не происходит передача управления автоматически, несмотря на наличие прямой непрерывной вертикальной линии, к действиям "Подача.топлива" и "Пуск.агрегата". |
Автор: | Владимир Паронджанов [ Понедельник, 18 Июнь, 2018 09:36 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
TAU писал(а): Владимир Даниелович, ну что же Вы... Андрей Александрович, спасибо за критическое замечание и за пояснения.Сколько можно... На рисунке 116 опять у Вас некорректная картинка. А именно: идет непрерывная линия, означающая непосредственную передачу управления в семантике блок-схем и "обычных" Дракон-схем без РВ, от действия "Открыть.трубопровод" к действию "Включить.насос". А на самом деле поток исполнения здесь разрывается. Передача управления после выполнения действия "Открыть.трубопровод" к действию "Включить.насос" не осуществляется. На самом деле алгоритм "застывает" в состоянии ожидания срабатывания таймера, которое никак сейчас на Дракон-схеме не отражено - видимо, уместно говорить здесь о "пробеле" в семантике Дракона. И продолжается выполнение данного алгоритма лишь по истечении заданной УВИ. Хотя бы линию сделать имеет смысл пунктирной - если не вообще ввести разрыв и специальный графический примитив, означающий переход алгоритма в состояние ожидания. Аналогично, не происходит передача управления автоматически, несмотря на наличие прямой непрерывной вертикальной линии, к действиям "Подача.топлива" и "Пуск.агрегата". К сожалению, я не могу с Вами согласиться. 1. Вы правы, "на самом деле поток исполнения здесь разрывается". Но этот факт можно учитывать несколькими способами. 2. На рис. 116 семантика при работе с ОС реального времени задана исчерпывающим образом. О наличии разрыва говорит семантика икон Синхронизатор и Пуск таймера. 2. Вы предлагаете продублировать эту семантику либо разрывом линий, либо новой специальной иконой. Так сделать, конечно, можно. Но. Это будет громоздко и избыточно. Чертеж неоправданно усложнится. 3. Дракон-схема на рис. 116 корректно решает поставленную задачу. Она наглядна и не содержит ненужных усложнений. Вложение: Подробнее см. http://drakon.su/_media/biblioteka/glav ... _vrem_.pdf |
Автор: | TAU [ Понедельник, 18 Июнь, 2018 22:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Владимир Паронджанов писал(а): На рис. 116 семантика при работе с ОС реального времени задана исчерпывающим образом. О наличии разрыва говорит семантика икон Синхронизатор и Пуск таймера Нет, не исчерпывающим. Основополагающие эргономические принципы Дракона подразумевают прозрачность и очевидность смысла графических примитивов. Лезть в таблицу семантики, в частности - "Синхронизатора" в голову далеко не каждому придет. Скорее - не придет. Очевидный и естественный смысл непрерывной линии - непосредственная передача управления. Так что принципы базовые принципы, получается, нарушены. Когда ее нет, уместно использовать нечто иное. Хотя бы пунктирную линию. Как компромисс. Хотя по смыслу, конечно, там останов алгоритма и переход в диспетчер ОС РВ. А по "Сихронизатору" - включение алгоритма с определенного адреса (не с "Начала"!). Можно сказать, появляется еще одна точка входа. Я ведь это не просто так, с бухты-барахты пишу. В ракетно-космическом центре "Прогресс", с коим я сотрудничаю на протяжении долгих лет, используется понятие "входов" алгоритмов. Это - всем понятная и общепринятая на предприятии вещь. "Включить алгоритм А12 по входу 2". Пишется как "А12Вх2". Между "входами" - УВИ. |
Автор: | Дмитрий Бардынин [ Пятница, 28 Декабрь, 2018 12:48 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Мы используем "Синхронизатор" для точной хронологии исполнения команд в программе на Ардуино. Это понятно и просто для восприятия. Если углубляться в логику "передачи управления", то все схемы в наших программах должны быть пунктирные, т.к. прерывания работают. |
Автор: | Alexey_Donskoy [ Пятница, 28 Декабрь, 2018 14:25 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий Бардынин писал(а): Если углубляться в логику "передачи управления", то все схемы в наших программах должны быть пунктирные, т.к. прерывания работают. TAU абсолютно прав.Есть принципиальная разница между прерыванием, которое "снаружи" может приостановить выполнение текущего потока (а может и не приостановить, если прерывание обрабатывается другим ядром процессора), и алгоритмическим остановом потока (возвратом управления в ОС, переходом в режим ожидания некоторого внешнего события). |
Автор: | Дмитрий Бардынин [ Пятница, 28 Декабрь, 2018 14:37 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Я не зря указал, что мы программируем Ардуино. Синхронизаторы используем, возврат в ОС - нет. КМК, предлагается детализация, которая уже сейчас не важна, а в дальнейшем и вовсе не потребуется. |
Автор: | Владимир Паронджанов [ Пятница, 28 Декабрь, 2018 17:00 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Дмитрий Бардынин писал(а): предлагается детализация, которая уже сейчас не важна, а в дальнейшем и вовсе не потребуется. Поддерживаю
|
Автор: | А_МУР [ Суббота, 29 Декабрь, 2018 00:51 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Владимир Данилович, а как будет выглядить алгоритм для "желтый мигающий".? Это тоже процесс реального времени рис113 |
Автор: | А_МУР [ Суббота, 29 Декабрь, 2018 01:01 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Согласен оператор "пуск таймера" запускает таймер Сработал синхронизатор - и.... он сработал надолго, до следующей перезагрузки устройства на коем крутится программа Тогда вопрос а кто или что обнуляет и останавливает таймер? Спутник на орбите - а бортовой комп как подал сигнал на поджиг двигателя на земле так до сихпор и подает. Правда он не знает что первая ступень в атмосфере сгорела. |
Автор: | Владимир Паронджанов [ Суббота, 29 Декабрь, 2018 08:43 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
А_МУР писал(а): Согласен оператор "пуск таймера" запускает таймер Обнуляет и запускаетА_МУР писал(а): Сработал синхронизатор - и.... он сработал надолго, до следующей перезагрузки устройства на коем крутится программа Почему надолго? Это неверно. Если в синхронизаторе написано А = 10с, это значит, что срабатывание оператора, находящегося справа от синхронизатора, будет задержано до момента 10 секунд по таймеру. На этом функция данного синхронизатора закончилась. А_МУР писал(а): Тогда вопрос а кто или что обнуляет и останавливает таймер? Оператор Пуск таймера обнуляет и запускает таймер.Обнуляет таймер А потому, что в иконе Пуск таймера написано А := 0 см. viewtopic.php?p=101816#p101816 Чтобы остановить таймер А, необходимо: В иконе Пуск таймера надо записать Цитата: А = стоп
|
Автор: | А_МУР [ Суббота, 29 Декабрь, 2018 09:48 ] |
Заголовок сообщения: | Re: Язык ДРАКОН. Визуальные операторы реального времени |
Если в синхронизаторе написано строго А= 10 с, то синхронизатор мало вероятно сработает, так как цикличность обращения к таймеру у каждого устройства своя: на ПЛК состовляет от 50наносекунд до 1с. Жизнь такова что" А " никогда не будет равно 10 с. "А" может быть равно 10.000001 с или 10.1 с. Поэтому со временем игрушки плохи. Это приводит к выходу из строя оборудования При работе со временем можно использовать только сравнение больше или равно. Отсюда все вытекающие последствия |
Страница 1 из 14 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |