PLEXIL ( Plan Execution Interchange Language ) es una tecnología de código abierto para la automatización , creada y actualmente en desarrollo por la NASA .
Descripción general
PLEXIL es un lenguaje de programación para representar planos de automatización .
PLEXIL se utiliza en tecnologías de automatización como el rover K10 de la NASA, el taladro de percusión del rover Mars Curiosity , la unidad de demostración de hábitat y hábitat del espacio profundo , la demostración Edison de redes Smallsat , LADEE , el sistema operativo autónomo (AOS) y la automatización de procedimientos para la Estación Espacial Internacional . [1] [2] [3]
PLEXIL Executive es un motor de ejecución que implementa PLEXIL y puede interconectarse (utilizando un marco de software proporcionado) con sistemas externos para ser controlados y/o consultados. PLEXIL se ha utilizado para demostrar tecnologías de automatización destinadas a futuras misiones espaciales de la NASA.
Los archivos binarios y la documentación están ampliamente disponibles como código abierto con licencia BSD en SourceForge.net . [4]
Nodos
La unidad de programación fundamental de PLEXIL es el Nodo. Un nodo es una estructura de datos formada por dos componentes principales: un conjunto de condiciones que impulsan la ejecución del nodo y otro conjunto que especifica lo que logra el nodo después de la ejecución.
Una composición jerárquica de nodos se denomina plan . Un plan es un árbol dividido en nodos cercanos a la raíz (nodos de alto nivel) y nodos hoja que representan acciones primitivas como la asignación de variables o el envío de comandos al sistema externo.
Tipos de nodos:
En septiembre de 2008, la NASA ha implementado siete tipos de nodos.
- Nodos de lista : los nodos de lista son los nodos internos de un plan. Estos nodos tienen nodos secundarios que pueden ser de cualquier tipo.
- Nodos de comando : estos nodos emiten comandos que impulsan el sistema.
- Nodos de asignación : Realiza una operación local y asigna un valor a una variable.
- Nodos de llamada de funciones : accede a funciones externas que realizan cálculos, pero no alteran el estado del sistema.
- Nodos de actualización : Proporciona información a la interfaz de planificación y soporte de decisiones.
- Nodos de llamada de biblioteca : estos nodos invocan nodos en una biblioteca externa.
- Nodos vacíos : Nodos que contienen atributos y no realizan ninguna acción.
Estados del nodo:
Cada nodo puede estar en un solo estado. Ellos son:
- Inactivo
- Espera
- ejecutando
- Refinamiento
- Iteración_finalizada
- Defecto
- Finalizado
Transiciones de nodos:
- SkipCondition T : la condición de omisión cambia de desconocida o falsa a verdadera.
- StartCondition T : la condición de inicio cambia de desconocida o falsa a verdadera.
- InvariantCondition F/U : La condición invariante cambia de verdadero a falso o desconocido.
- EndCondition T : la condición final cambia a verdadera.
- Ancestor_inv_condition F/U : la condición invariante de cualquier ancestro cambia a falsa o desconocida.
- Ancestor_end_condition T : La condición final de cualquier ancestro cambia a verdadera.
- All_children_waiting_or_finished T : esto es cierto cuando todos los nodos secundarios están en estado de nodo en espera o finalizados.
- Command_abort_complete T : cuando se completa la cancelación de una acción de comando.
- Function_abort_complete T : Se completa la cancelación de una llamada de función.
- Parent_waiting T : El padre (único) del nodo pasa al estado de nodo en espera.
- Parent_executing T : El padre (único) del nodo pasa al estado de nodo en ejecución.
- RepetirCondición T/F : la condición de repetición cambia de desconocida a verdadera o falsa.
Referencias
- ^ Estlin, Tara; Jonsson, Ari; Pasareanu, Corina ; Simmons, Reid; Tso, Kam; Verma, Vandi (abril de 2006). "Lenguaje de intercambio de ejecución de planes (PLEXIL)" (PDF) . Servidor de informes técnicos de la NASA . Consultado el 8 de febrero de 2019 .
- ^ "Bibliografía de publicaciones relacionadas con PLEXIL, organizada por categoría". Forja de fuente Plexil . Consultado el 8 de febrero de 2019 .
- ^ "Página principal: aplicaciones de la NASA". Forja de fuente PLEXIL . Consultado el 8 de febrero de 2019 .
- ^ "PLEXIL (software de ejecución de planes)".
enlaces externos
- PLEXIL en la NASA
- Manual PLEXIL
- PLEXIL en SourceForge
Ver también