HOME

TheInfoList



OR:

PLEXIL (Plan Execution Interchange Language) is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
technology for
automation Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
, created and currently in development by
NASA The National Aeronautics and Space Administration (NASA ) is an independent agency of the US federal government responsible for the civil space program, aeronautics research, and space research. NASA was established in 1958, succeeding t ...
.


Overview

PLEXIL is a
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
for representing plans for
automation Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
. PLEXIL is used in automation technologies such as the NASA K10 rover, Mars ''Curiosity'' rover's
percussion drill A percussion instrument is a musical instrument that is sounded by being struck or scraped by a beater including attached or enclosed beaters or rattles struck, scraped or rubbed by hand or struck against another similar instrument. Excl ...
, Deep Space Habitat and Habitat Demonstration Unit,
Edison Demonstration of Smallsat Networks Edison Demonstration of Smallsat Networks (EDSN) was a failed (launch failure) CubeSat constellation by NASA Ames, developed as a technology demonstration of satellite networking. The constellation would have consisted of 8 identical satellites. Th ...
,
LADEE The Lunar Atmosphere and Dust Environment Explorer (LADEE; ) was a NASA lunar exploration and technology demonstration mission. It was launched on a Minotaur V rocket from the Mid-Atlantic Regional Spaceport on September 7, 2013. During its se ...
, Autonomy Operating System (AOS) and procedure automation for the
International Space Station The International Space Station (ISS) is the largest modular space station currently in low Earth orbit. It is a multinational collaborative project involving five participating space agencies: NASA (United States), Roscosmos (Russia), JAXA ...
. The PLEXIL Executive is an
execution Capital punishment, also known as the death penalty, is the State (polity), state-sanctioned practice of deliberately killing a person as a punishment for an actual or supposed crime, usually following an authorized, rule-governed process to ...
engine An engine or motor is a machine designed to convert one or more forms of energy into mechanical energy. Available energy sources include potential energy (e.g. energy of the Earth's gravitational field as exploited in hydroelectric power gen ...
that implements PLEXIL and can be interfaced (using a provided software framework) with external systems to be controlled and/or queried. PLEXIL has been used to demonstrate automation technologies targeted at future NASA space missions. The binaries and documentation are widely available as
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
d open source from
SourceForge.net SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirroring ...
.


Nodes

The fundamental programming unit of PLEXIL is the Node. A node is a
data structure In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
formed of two primary components: a set of conditions that drive the execution of the node and another set which specifies what the node accomplishes after execution. A hierarchical composition of nodes is called a plan. A plan is a tree divided in nodes close to the root (high level nodes) and leaf nodes that represent primitive actions such as variable assignments or the sending of commands to the external system. Node Types: As of September 2008 NASA has implemented seven types of nodes. *''List nodes'': List nodes are the internal nodes in a plan. These nodes have child nodes that can be of any type. *''Command nodes'': These nodes issue commands that drive the system. *''Assignment nodes'': Performs a local operation and assigns a value to a variable. *''Function call nodes'':accesses external functions that perform computations, but do not alter the state of the system. *''Update nodes'': Provides information to the planning and decision support interface. *''Library call'' nodes: This nodes invoke nodes in an external library. *''Empty nodes'': Nodes that contain attributes and do not perform any actions. Node states: Each node can be in only one state. They are: * Inactive * Waiting * Executing * Finishing * Iteration_Ended * Failing * Finished Nodes transitions: *''SkipCondition T'' : The skip condition changes from unknown or false to true. *''StartCondition T'' : The start condition changes from unknown or false to true. *''InvariantCondition F/U'' : Invariant condition changes from true to false or unknown. *''EndCondition T'' : End condition changes to true. *''Ancestor_inv_condition F/U'' : The invariant condition of any ancestor changes to false or unknown. *''Ancestor_end_condition T'' : The end condition of any ancestor changes to true. *''All_children_waiting_or_finished T'' : This is true when all child nodes are either in node state waiting or finished. *''Command_abort_complete T'' : When the abort for a command action is completed. *''Function_abort_complete T'' : The abort of a function call is completed. *''Parent_waiting T'' : The (single) parent of the node transitions to node state waiting. *''Parent_executing T'' : The (single) parent of the node transitions to node state executing. *''RepeatCondition T/F'' : the repeat condition changes from unknown to either true or false.


References

{{Reflist


External links


PLEXIL at NASA

PLEXIL Manual

PLEXIL at SourceForge


See also

*
Programming Language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
* Spacecraft command language *
Cybernetics Cybernetics is a wide-ranging field concerned with circular causality, such as feedback, in regulatory and purposive systems. Cybernetics is named after an example of circular causal feedback, that of steering a ship, where the helmsperson m ...
*
Space exploration Space exploration is the use of astronomy and space technology to explore outer space. While the exploration of space is carried out mainly by astronomers with telescopes, its physical exploration though is conducted both by robotic spacec ...
Domain-specific programming languages Robotics software