LKom писал(а):
Разъяснение смысла иконы Синхпронизатор.
Обязательно необходимое разъяснение.
В качестве разъяснения привожу две цитаты их "Главы 21. Операторы реального времени"
Цитата:
ОПЕРАТОРЫ
«ПУСК ТАЙМЕРА» И «СИНХРОНИЗАТОР»
Вернемся еще раз к задаче на рис. 115 и слегка изменим ее. Будем считать, что разработчик управляемого объекта хочет указать время выдачи команд не по принципу «задержка после предыдущей команды», а по принципу секундомера. Это значит, что все времена отсчитываются от единого начального момента (совпадающего с пуском секундомера).
Исходя из этого, сформулируем задачу управляющего компьютера. Он должен:
включить секундомер, то есть обнулить и запустить таймер;
выдать команду ОТКРЫТЬ.ТРУБОПРОВОД;
когда таймер отсчитает две минуты, выдать пару команд ВКЛЮЧИТЬ.НАСОС и ОТКРЫТЬ.ЗАСЛОНКУ;
когда таймер отсчитает 2 минуты 45 секунд, выдать команду ПОДАЧА.ТОПЛИВА;
когда таймер отсчитает 5 минут 45 секунд, выдать команду ПУСК.АГРЕГАТА.
Описанный алгоритм изображен на рис. 116. В нем используются операторы «Пуск таймера» и «Синхронизатор», совместная работа которых обеспечивает нужный эффект.
Например, синхронизатор А = 2мин 45с задерживает выдачу команды ПОДАЧА.ТОПЛИВА до момента, когда таймер А отсчитает 2 минуты 45 секунд.
Сравнивая алгоритмы на рис. 115 и 116, можно заметить, что они почти эквивалентны. Почему почти?
Чтобы разобраться, рассмотрим идеальный случай. Представим, что время, необходимое для выдачи одной команды равно нулю. Имеется в виду, что перечисленные ниже команды выдаются за время, равное нулю:
ОТКРЫТЬ.ТРУБОПРОВОД;
ВКЛЮЧИТЬ.НАСОС;
ОТКРЫТЬ.ЗАСЛОНКУ;
ПОДАЧА.ТОПЛИВА;
ПУСК.АГРЕГАТА.
В этом случае оба алгоритма будут выдавать команды синхронно.
Однако в действительности идеальные случаи встречаются редко, ибо время выдачи одной команды больше нуля. Поэтому наши алгоритмы работают несинхронно.
Практика показывает, что в некоторых ситуациях предпочтительным является принцип паузы (когда используется икона Пауза). А в других — принцип таймера (когда используются иконы «Пуск таймера» и «Синхронизатор»).
Оба инструмента оказываются в равной степени необходимыми и полезными.
Оператор Пуск таймера порождает, обнуляет и запускает таймер и присваивает ему имя, например А
Оператор Синхронизатор задерживает выполнение размещенной справа от него иконы до момента, указанного в иконе Синхронизатор
Вложение:
Рис. 115, 116 Упр подачей топлива .png [ 101.24 КБ | Просмотров: 13862 ]
Цитата:
ЦИКЛ «ЖДАТЬ»
И ОПЕРАТОР «СИНХРОНИЗАТОР»
Предположим, мы ожидаем из космоса приветствие от пришельцев, посылающих нам сигнал Сигма (который мы ловим с помощью цикла ЖДАТЬ).
Предположим также, что, получив желанный сигнал, мы должны послать в космос серию ответных сигналов, жестко привязанных по времени. Серия может быть длинной и насчитывать сто или даже тысячу кодограмм.
На рис. 121 представлено упрощенное решение, позволяющее отправить в космос серию из трех сигналов.
Для этого нужны цикл ЖДАТЬ, икона «Пуск таймера» и три иконы «Синхронизатор». Когда таймер досчитает до 39-й минуты, мы пошлем пришельцам дружеский привет (рис. 121).
Данный рисунок демонстрирует совместное использование цикла ЖДАТЬ, таймера и синхронизаторов.
Вложение:
Рис. 121 Сигнал Сигма Пришельцы .png [ 51.17 КБ | Просмотров: 13860 ]
Напоминаю, что обсуждаемая глава 21 находится по ссылке
http://drakon.su/_media/biblioteka/glav ... _vrem_.pdf