DRAKON.SU

Текущее время: Понедельник, 10 Август, 2020 04:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 14:02 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
Алексей Муравицкий и программирование
бортовых управляющих компьютеров
для космических ракет


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

Например, бортовой компьютер AP101 на орбитальном корабле (orbiter) проекта Спейс Шаттл работал в цикле 50 миллисекунд.

У нас на Буране компьютер Бисер-4 имел цикл чуть поменьше 32,8 миллисекунды.

Что это значит? Временная ось делится на отрезки (такты) длительностью 50 мс (для орбитера) или 32,8 мс для Бурана.

В свою очередь такт 50 мс делится на части, например 10 мс (работает операционная система) + 3 мс (работает программа автомат стабилизации) + 2мс (бортовая система 1) + 2,5 мс (бортовая система 2) и т.д.

Рассмотрим отрезок 2 мс, выделенный для системы АБС, которая работает в течение всего полета. Она работает в каждом такте и прерывается на 48 мс. Затем запускается на 2 мс в следующем такте, снова прерывается на 48 мс и т.д.

Некоторые системы (например, автомат стабилизации ракеты) делают одно и то же в течение своих 2 мс в течение всего полета.

Но другие системы работают по-другому. Например, в течение первых 800 тактов они решают одну задачу, в течение следующей 1000 тактов — другую задачу и т.д.

Как записать алгоритм для таких систем?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 14:19 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
Как записать алгоритм для таких систем?[

Есть два способа записи алгоритма.

1 способ —
обычный, который, например, используется в языке ДРАКОН. Он описывает все функции бортовой системы АБС, которые она выполняет в течение всего полета.

2 способ — совершенно иной.
Описывается алгоритм системы АБС, который начинает работу в НАЧАЛЬНЫЙ момент 2-миллисекундного отрезка
и заканчивает работу в КОНЕЧНЫЙ момент 2-миллисекундного отрезка.

Однако это УНИВЕРСАЛЬНЫЙ алгоритм системы АБС, который умеет перестраиваться (с помощью икон Вопрос или Переключатель) и обеспечивает всю работу системы АБС в течение всего полета.

Каким образом на языке ДРАКОН можно изобразить 2-й способ программирования?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 14:37 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
Каким образом на языке ДРАКОН можно изобразить 2-й способ программирования?

Это новый способ, который я не стал описывать в своих книгах.

Почему?
Я посчитал, что это экзотический способ, используемый в космонавтике, и малоинтересный для обычных пользователей.

Но Алексей Муравицкий настоятельно подчеркивает, что программируемый логический контроллер работает в цикле и для этого нужно иметь удобное средство в языке ДРАКОН.

Учитывая мнение Алексея Муравицкого, я решил рассказать, как аналогичная задача решается в космонавтике.
Может быть, она пригодится для программирования ПЛК.

Как описать циклическую работу в режиме разделения времени?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 14:55 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
Как описать циклическую работу в режиме разделения времени?

Для этого используется икона "Циклический заголовок".
Вложение:
Циклическое начало.png
Циклическое начало.png [ 5.17 КБ | Просмотров: 1130 ]


Имеется в виду, что внешними средствами организуется циклическая работа алгоритма.

1. Алгоритм начинает работать с иконы "Циклический заголовок" и заканчивает работать в иконе Конец.

2. После этого внешними средствами алгоритм снова запускается, начиная с иконы "Циклический заголовок" и т.д.

===================================

Впервые икона "Циклический заголовок" была опубликована в моей статье в журнале Программирование 1995, №3. — С. 45-62.

Посмотреть можно в английском переводе:
https://drakon.su/_media/video_i_prezen ... yntax_.pdf
viewtopic.php?p=102438#p102438

См. стр. 143, Fig. 1 пункт 2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 15:23 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 333
Из описания выше, бортовых контроллеров, можно сказать, что их работа абсолютно идентична промышленному ПЛК! Все тоже самое цикл программы у промышленного ПЛК настраивается при программировании и может быть от 1 мсек до 1000 мсек, по умолчанию на ОВЕНах 20мсек


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 15:24 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 333
Владимир Паронджанов писал(а):
Как описать циклическую работу в режиме разделения времени?

Для этого используется икона "Циклический заголовок".
Вложение:
Циклическое начало.png


Имеется в виду, что внешними средствами организуется циклическая работа алгоритма.

1. Алгоритм начинает работать с иконы "Циклический заголовок" и заканчивает работать в иконе Конец.

2. После этого внешними средствами алгоритм снова запускается, начиная с иконы "Циклический заголовок" и т.д.

===================================

Впервые икона "Циклический заголовок" была опубликована в моей статье в журнале Программирование 1995, №3. — С. 45-62.

Посмотреть можно в английском переводе:
https://drakon.su/_media/video_i_prezen ... yntax_.pdf
viewtopic.php?p=102438#p102438

См. стр. 143, Fig. 1 пункт 2.


А как же тогда выглядит схема с такой иконой?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 15:34 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
А_МУР писал(а):
А как же тогда выглядит схема с такой иконой?

Она выглядит как самая обычная дракон-схема.
Единственное отличие — икона Заголовок заменяется на икону "Циклический заголовок".

Но содержание этой дракон-схемы иное. Отличие в том, что все процессы в дракон-схеме (по самому длинному маршруту) должны закончиться за заданное время такта, например, за 2мс или 3 мс.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 15:38 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 333
Владимир Паронджанов писал(а):
Каким образом на языке ДРАКОН можно изобразить 2-й способ программирования?

Это новый способ, который я не стал описывать в своих книгах.

Почему?
Я посчитал, что это экзотический способ, используемый в космонавтике, и малоинтересный для обычных пользователей.

Но Алексей Муравицкий настоятельно подчеркивает, что программируемый логический контроллер работает в цикле и для этого нужно иметь удобное средство в языке ДРАКОН.

Учитывая мнение Алексея Муравицкого, я решил рассказать, как аналогичная задача решается в космонавтике.
Может быть, она пригодится для программирования ПЛК.

Как описать циклическую работу в режиме разделения времени?

Вы абсолютно правы, чего то не хватает в описанной в книгах теории.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 15:40 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 333
Владимир Паронджанов писал(а):
Алексей Муравицкий и программирование
бортовых управляющих компьютеров
для космических ракет


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

Например, бортовой компьютер AP101 на орбитальном корабле (orbiter) проекта Спейс Шаттл работал в цикле 50 миллисекунд.

У нас на Буране компьютер Бисер-4 имел цикл чуть поменьше 32,8 миллисекунды.

Что это значит? Временная ось делится на отрезки (такты) длительностью 50 мс (для орбитера) или 32,8 мс для Бурана.

В свою очередь такт 50 мс делится на части, например 10 мс (работает операционная система) + 3 мс (работает программа автомат стабилизации) + 2мс (бортовая система 1) + 2,5 мс (бортовая система 2) и т.д.

Рассмотрим отрезок 2 мс, выделенный для системы АБС, которая работает в течение всего полета. Она работает в каждом такте и прерывается на 48 мс. Затем запускается на 2 мс в следующем такте, снова прерывается на 48 мс и т.д.

Некоторые системы (например, автомат стабилизации ракеты) делают одно и то же в течение своих 2 мс в течение всего полета.

Но другие системы работают по-другому. Например, в течение первых 800 тактов они решают одну задачу, в течение следующей 1000 тактов — другую задачу и т.д.

Как записать алгоритм для таких систем?

В промышленных ПЛК тоже существует разделение общего цикла на задачи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 12:03 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1123
Владимир Паронджанов писал(а):
Как описать циклическую работу в режиме разделения времени?

Для этого используется икона "Циклический заголовок".
Изображение

Имеется в виду, что внешними средствами организуется циклическая работа алгоритма.

1. Алгоритм начинает работать с иконы "Циклический заголовок" и заканчивает работать в иконе Конец.

2. После этого внешними средствами алгоритм снова запускается, начиная с иконы "Циклический заголовок" и т.д.

===================================

Впервые икона "Циклический заголовок" была опубликована в моей статье в журнале Программирование 1995, №3. — С. 45-62.

Посмотреть можно в английском переводе:
https://drakon.su/_media/video_i_prezen ... yntax_.pdf
viewtopic.php?p=102438#p102438

См. стр. 143, Fig. 1 пункт 2.

Необходимости в иконе "Циклический заголовок" нет.
Смотрите:

Вложение:
ЦиклическиеАлгоритмы.png
ЦиклическиеАлгоритмы.png [ 10.25 КБ | Просмотров: 1075 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 12:55 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4810
Откуда: Москва
LKom, спасибо за ваше мнение.

Мне кажется, надо послушать специалистов по ПЛК, мнение которых будет решающим.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 15:52 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1123
Владимир Паронджанов писал(а):
LKom, спасибо за ваше мнение.

Мне кажется, надо послушать специалистов по ПЛК, мнение которых будет решающим.

Полагаю, что у специалиста, а именно так к Вам обращаются, должно иметься собственное обоснованное мнение.

Печально, когда специалист высказывает средне статистическое мнение.


Последний раз редактировалось LKom Среда, 12 Февраль, 2020 18:01, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 15:57 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1082
Откуда: Россия, Чебоксары
LKom писал(а):
Необходимости в иконе "Циклический заголовок" нет.
Согласен, необходимости нет.
Но только вовсе не из-за приведённого "силуэта". Ибо такое построение алгоритма методически неверно!
Почему? Потому что нельзя смешивать системный уровень с прикладным.

Системный уровень - это внешнее окружение, из которого вызывается данный код как процедура.
В общем случае разработчик кода этой процедуры может даже не знать, с какой периодичностью система вызывает процедуру.
В крайнем случае это может быть однократный вызов (старт приложения и выход из приложения).
Другими словами, разработчику алгоритма данной процедуры не обязательно видеть в заголовке разницу между однократным и циклическим вызовом.

Однако иногда разработчику важны некоторые нюансы вызова процедуры из внешнего окружения, а именно, реентерабелен ли код его процедуры.
Вот здесь некое отличие в заголовке будет вполне целесообразным. Над этим следует подумать.

Другие особенности прикладного кода для ПЛК (например, знание периода рабочего цикла для расчёта временных условий) решаются другими средствами и никак не отображаются в заголовке.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 18:42 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 398
Откуда: Астрахань-Сочи
В DrakonBar мы отображаем свойство заголовка диаграммы в виде признака: Циклическая, Вступительная, Пусковая. Достаточно удобно. Особенно удобно переключать признак Циклическая или Вступительная на разные диаграммы - они автоматически становятся главными, и так можно оперативно менять свойства получаемых программ. И мне кажется, что в нашем случае стоит отображать цикличность еще и графически, но пока это не сделано.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Февраль, 2020 18:56 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1082
Откуда: Россия, Чебоксары
Дмитрий Бардынин писал(а):
В DrakonBar мы отображаем свойство заголовка диаграммы в виде признака: Циклическая, Вступительная, Пусковая. Достаточно удобно. Особенно удобно переключать признак Циклическая или Вступительная на разные диаграммы - они автоматически становятся главными, и так можно оперативно менять свойства получаемых программ.
О, если это поддержано системой, то да, есть смысл. Удобно.
Но, повторю, это всё равно получается некоторое смешение уровней. Системно-зависимая штука, которая к собственно изображаемому алгоритму отношения не имеет.
Да и в разных системах могут быть разные наборы свойств алгоритмов.
У меня, например, "Полный сброс" (возврат к заводским настройкам), "Холодный старт", "Горячий старт", "До начала основного технологического цикла", "В конце основного технологического цикла", а ещё принадлежность конкретному потоку ("Быстрый расчёт", "Медленный расчёт") или по приоритетам. В общем, сугубая зависимость от системы.
Потому в синтаксис графического языка тащить это не стоит.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2020, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB