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 planes 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 Curiosity de Marte , el Hábitat del Espacio Profundo y la Unidad de Demostración de Hábitat , la Demostración Edison de Redes de Satélites Pequeños , LADEE , el Sistema Operativo de Autonomía (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 conectarse (mediante un marco de software proporcionado) con sistemas externos para su control y/o consulta. PLEXIL se ha utilizado para demostrar tecnologías de automatización destinadas a futuras misiones espaciales de la NASA.
Los binarios y la documentación están ampliamente disponibles como código abierto con licencia BSD en GitHub . [ 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 rigen la ejecución del nodo y otro conjunto que especifica lo que el nodo logra después de su 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:
A septiembre de 2008, la NASA había implementado siete tipos de nodos.
- Nodos de lista : Los nodos de lista son los nodos internos de un plan. Estos nodos tienen nodos hijos que pueden ser de cualquier tipo.
- Nodos de comando : Estos nodos emiten comandos que controlan el sistema.
- Nodos de asignación : Realiza una operación local y asigna un valor a una variable.
- Nodos de llamada a funciones : Acceden a funciones externas que realizan cálculos, pero no alteran el estado del sistema.
- Actualizar nodos : Proporciona información a la interfaz de planificación y apoyo a la toma de decisiones.
- Nodos de llamada a biblioteca : Estos nodos invocan nodos en una biblioteca externa.
- Nodos vacíos : Nodos que contienen atributos pero no realizan ninguna acción.
Estados del nodo:
Cada nodo solo puede estar en un estado. Estos son:
- Inactivo
- Espera
- Ejecutar
- Refinamiento
- Iteración_Finalizada
- Defecto
- Finalizado
Transiciones de nodos:
- SkipCondition T : La condición de salto cambia de desconocida o falsa a verdadera.
- Condición de inicio T : La condición de inicio cambia de desconocida o falsa a verdadera.
- Condición invariante F/U : La condición invariante cambia de verdadera a falsa o desconocida.
- EndCondition T : La condición final cambia a verdadera.
- Ancestor_inv_condition F/U : La condición invariante de cualquier ancestro cambia a falso o desconocido.
- Ancestor_end_condition T : La condición final de cualquier ancestro cambia a verdadero.
- All_children_waiting_or_finished T : Esto es verdadero cuando todos los nodos hijos están en estado de espera o terminados.
- Command_abort_complete T : Cuando se completa la cancelación de una acción de comando.
- Function_abort_complete T : Se ha completado la interrupción de una llamada a función.
- Parent_waiting T : El padre (único) del nodo pasa al estado de espera del nodo.
- Parent_executing T : El padre (único) del nodo pasa al estado de ejecución.
- RepeatCondition V/F : la condición de repetición cambia de desconocida a verdadera o falsa.
Véase también
Referencias
- ↑ Estlin, Tara; Jonsson, Ari; Pasareanu, Corina ; Simmons, Reid; Tso, Kam; Verma, Vandi (abril de 2006). "Plan Execution Interchange Language (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" . Plexil sourceforge . Consultado el 17 de marzo de 2025 .
- ↑ "Página principal: Aplicaciones de la NASA" . PLEXIL sourceforge . Consultado el 17 de marzo de 2025 .
- ↑ "PLEXIL (Software de ejecución de planes)" .
Enlaces externos
- PLEXIL en la NASA
- Manual de PLEXIL
- PLEXIL en GitHub
Véase también
- Lenguajes de programación específicos de dominio
- Software de robótica