PLEXIL ( Plan Execution I nterchange Language ) — это технология с открытым исходным кодом для автоматизации , созданная и в настоящее время разрабатываемая NASA .
Обзор
PLEXIL — язык программирования для представления планов автоматизации .
PLEXIL используется в таких технологиях автоматизации, как марсоход NASA K10, ударная дрель марсохода Curiosity , Deep Space Habitat и демонстрационный модуль Habitat , демонстрация сетей малых спутников Edison , LADEE , автономная операционная система (AOS) и автоматизация процедур для Международной космической станции . [1] [2] [3]
PLEXIL Executive — это механизм исполнения , который реализует PLEXIL и может быть сопряжен (с использованием предоставленной программной среды) с внешними системами для управления и/или запроса. PLEXIL использовался для демонстрации технологий автоматизации, нацеленных на будущие космические миссии NASA.
Двоичные файлы и документация широко доступны в виде открытого исходного кода под лицензией BSD на SourceForge.net . [4]
Узлы
Основной единицей программирования PLEXIL является Узел. Узел представляет собой структуру данных , образованную из двух основных компонентов: набора условий , которые управляют выполнением узла, и другого набора, который определяет, что узел выполняет после выполнения.
Иерархическая композиция узлов называется планом . План представляет собой дерево, разделенное на узлы, близкие к корню (узлы высокого уровня), и конечные узлы, которые представляют собой примитивные действия, такие как назначение переменных или отправка команд внешней системе.
Типы узлов:
По состоянию на сентябрь 2008 года НАСА внедрило семь типов узлов.
- Узлы списка : Узлы списка являются внутренними узлами в плане. Эти узлы имеют дочерние узлы, которые могут быть любого типа.
- Командные узлы : эти узлы выдают команды, которые управляют системой.
- Узлы присваивания : выполняют локальную операцию и присваивают значение переменной.
- Узлы вызова функций : обращаются к внешним функциям, которые выполняют вычисления, но не изменяют состояние системы.
- Узлы обновления : предоставляют информацию интерфейсу планирования и поддержки принятия решений.
- Узлы вызова библиотеки : эти узлы вызывают узлы во внешней библиотеке.
- Пустые узлы : узлы, которые содержат атрибуты и не выполняют никаких действий.
Узел сообщает:
Каждый узел может находиться только в одном состоянии. Это:
- Неактивный
- Ожидающий
- Выполнение
- Отделка
- Итерация_Завершена
- Неудачный
- Законченный
Переходы узлов:
- SkipCondition T : Условие пропуска изменяется с неизвестного или ложного на истинное.
- StartCondition T : Начальное условие изменяется с неизвестного или ложного на истинное.
- InvariantCondition F/U : Инвариантное условие изменяется с истинного на ложное или неизвестное.
- EndCondition T : Конечное условие меняется на истинное.
- Ancestor_inv_condition F/U : Инвариантное условие любого предка изменяется на false или unknown.
- Ancestor_end_condition T : Конечное условие любого предка изменяется на true.
- All_children_waiting_or_finished T : Это верно, когда все дочерние узлы находятся в состоянии ожидания или завершения.
- Command_abort_complete T : Когда прерывание действия команды завершено.
- Function_abort_complete T : Прерывание вызова функции завершено.
- Parent_waiting T : (Единственный) родительский узел переходит в состояние ожидания узла.
- Parent_executing T : (Единственный) родительский узел переходит в состояние узла «Выполнение».
- RepeatCondition T/F : условие повторения изменяется с неизвестного на истинное или ложное.
Ссылки
- ^ Эстлин, Тара; Йонссон, Ари; Пасареану, Корина ; Симмонс, Рейд; Цо, Кам; Верма, Ванди (апрель 2006 г.). «Plan Execution Interchange Language (PLEXIL)» (PDF) . Сервер технических отчетов NASA . Получено 8 февраля 2019 г.
- ^ "Библиография публикаций, связанных с PLEXIL, организованная по категориям". Plexil souceforge . Получено 8 февраля 2019 г. .
- ^ "Главная страница: приложения NASA". PLEXIL sourceforge . Получено 8 февраля 2019 г. .
- ^ "PLEXIL (Программное обеспечение для выполнения планов)".
Внешние ссылки
- PLEXIL в НАСА
- Руководство по эксплуатации PLEXIL
- PLEXIL на SourceForge
Смотрите также