PLEXIL
Encyclopedia
PLEXIL is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 technology for automation
Automation
Automation is the use of control systems and information technologies to reduce the need for human work in the production of goods and services. In the scope of industrialization, automation is a step beyond mechanization...

, created and currently in development by NASA.

Overview

PLEXIL is a programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 for representing plans for automation
Automation
Automation is the use of control systems and information technologies to reduce the need for human work in the production of goods and services. In the scope of industrialization, automation is a step beyond mechanization...

.

The PLEXIL Executive is an execution engine
Engine (computer science)
An engine is a continuation-based construct that provides timed preemption. Engines which can contain other engines are sometimes called nesters and engines which don't have this ability are then called flat engines or "solo engines" . To implement timed preemption there needs to be a clock. This...

 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. Applications of PLEXIL have included control of hardware prototypes (planetary rovers and drills, the Habitat Demonstration Unit, and procedure automation for the International Space Station
International Space Station
The International Space Station is a habitable, artificial satellite in low Earth orbit. The ISS follows the Salyut, Almaz, Cosmos, Skylab, and Mir space stations, as the 11th space station launched, not including the Genesis I and II prototypes...

.

The binaries and documentation are widely available as open source from Sourceforge.net
SourceForge.net
SourceForge is a web-based source code repository. It acts as a centralized location for software developers to control and manage open source software development. The website runs a version of SourceForge Enterprise Edition, forked from the last open-source version available...

 .

Nodes

The fundamental programming unit of PLEXIL is the Node. A node is a data structure
Data structure
In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...

 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 stateof 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 in either in node state waiting or finished and no other states.
  • 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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK