PLEXIL ( Pl Ex ecution I nterchange L anguage) является открытым исходным кодом технологии для автоматизации , созданы и в настоящее время в развитии с помощью NASA .
Парадигма | Мультипарадигма |
---|---|
Разработано | НАСА |
Впервые появился | 2005 г. |
Печатная дисциплина | Статический , небезопасный , именительный падеж |
Операционные системы | Linux , Mac OS |
Лицензия | Открытый источник |
Веб-сайт | http://plexil.sourceforge.net/ |
Основные реализации | |
Робототехника , Космические миссии |
Обзор
PLEXIL - это язык программирования для представления планов автоматизации .
В 2006 году Vandi Верма был один из нескольких соавторов от PLEXIL, которая в настоящее время используется в технологиях автоматизации , таких как ровер NASA K10, Марс Curiosity марсохода ударная дрель , Deep Space Habitat и Хабитат Демонстрационный блок , Эдисон Демонстрация Smallsat сетей , LADEE , Автономная операционная система (AOS) и автоматизация процедур для Международной космической станции . [1] [2] [3]
PLEXIL Executive - это механизм выполнения, который реализует PLEXIL и может взаимодействовать (с использованием предоставленной программной среды) с внешними системами, которые должны контролироваться и / или запрашиваться. PLEXIL использовался для демонстрации технологий автоматизации, предназначенных для будущих космических миссий НАСА.
Бинарные файлы и документация широко доступны в виде лицензированного BSD с открытым исходным кодом на Sourceforge.net . [4]
Узлы
Основной программной единицей PLEXIL является Node. Узел - это структура данных, состоящая из двух основных компонентов: набора условий , управляющих выполнением узла, и другого набора, определяющего, что узел выполняет после выполнения.
Иерархическая композиция узлов называется планом . План - это дерево, разделенное на узлы, близкие к корню (узлы высокого уровня) и конечные узлы, которые представляют примитивные действия, такие как присвоение переменных или отправка команд во внешнюю систему.
Типы узлов:
По состоянию на сентябрь 2008 года НАСА реализовало семь типов узлов.
- Узлы списка : узлы списка - это внутренние узлы в плане. У этих узлов есть дочерние узлы, которые могут быть любого типа.
- Командные узлы : эти узлы выдают команды, управляющие системой.
- Узлы присвоения : выполняет локальную операцию и присваивает значение переменной.
- Узлы вызова функций : доступ к внешним функциям, которые выполняют вычисления, но не изменяют состояние системы.
- Узлы обновления : предоставляет информацию для интерфейса поддержки планирования и принятия решений.
- Узлы вызова библиотеки : эти узлы вызывают узлы во внешней библиотеке.
- Пустые узлы : узлы, содержащие атрибуты и не выполняющие никаких действий.
Состояние узла:
Каждый узел может находиться только в одном состоянии. Они есть:
- Неактивный
- Ожидающий
- Выполнение
- Отделка
- Iteration_Ended
- Неудачный
- Законченный
Узлы переходов:
- SkipCondition T : условие пропуска изменяется с неизвестного или ложного на истинное.
- StartCondition T : условие запуска изменяется с неизвестного или ложного на истинное.
- InvariantCondition F / U : инвариантное условие изменяется с истинного на ложное или неизвестное.
- EndCondition T : конечное условие изменяется на true
- 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 : условие повтора изменяется с неизвестного на истинное или ложное.
Рекомендации
- ^ Эстлин, Тара; Йонссон, Ари; Пасаряну, Карина; Симмонс, Рид; Цо, Кам; Верма, Ванди. «Язык обмена исполнением планов (PLEXIL)» (PDF) . Сервер технических отчетов НАСА . Проверено 8 февраля 2019 .
- ^ «Библиография публикаций, связанных с PLEXIL, с разбивкой по категориям» . Plexil souceforge . Проверено 8 февраля 2019 .
- ^ «Главная страница: приложения НАСА» . PLEXIL sourceforge . Проверено 8 февраля 2019 .
- ^ http://sourceforge.net/projects/plexil
Внешние ссылки
- PLEXIL в НАСА
- PLEXIL Руководство
- PLEXIL на SourceForge