Automation Language for Managing Operations (ALMO) is a computer program that assists a human operator at a central control station in monitoring and controlling a complex equipment system that includes multiple subsystems connected in a digital communication network. Still undergoing development, ALMO is designed specifically for automating the operations of NASA's Deep Space Network (DSN). ALMO could be modified for use as control software in other applications that involve monitoring and control; examples include assembly lines, chemical-processing plants, and environmental management systems.

ALMO assists in the automation of operations by providing a facility for expressing procedure and operators' knowledge in the form of instructions executed by software. These instructions interact with the subsystems via a transport layer.

ALMO comprises two main components: the ALMO language and the ALMO engine/interpreter. The ALMO language is an interpreted programming language that is used to write blocks in the control software of the DSN. As used here, "block" denotes a software construct equivalent to a subroutine that performs a specific function. A block contains preconditions, one or more directive(s) to subsystems, and post-conditions. A block is executed either from a command line or from a graphical user interface for a subprogram associated with a temporal-dependency network (TDN), which is a directed graph of interconnected nodes that represents an end-to-end sequence of operations. The TDN subprogram is equivalent to a main program that calls a subroutine at the appropriate time.

ALMO contributes to automation in several ways:

  • It provides visibility for information about subsystems.
  • It affords an extensive facility for executing logistics involved in system operations.
  • The ALMO language can be characterized as a scripting language that can represent most, if not all of a human operator's actions in operation of a subsystem. ALMO retrieves monitor data and event messages and enables a block to react to them. In this respect, ALMO reduces the operator's workload, enabling the operator to monitor and control multiple subsystems, and thereby reduces the cost of operation.
  • ALMO provides means to detect anomalies via subsystem monitor data, event messages, and directive responses, and alerts the operator when it detects an anomaly.
  • ALMO reinforces the concept of modular programming, in that blocks are written as modules. Modules can be reused for different subsystems and in different applications; the number of blocks that must be written for a given application is thus smaller than it would otherwise have to be; the cost of maintaining the software is also correspondingly lower.
  • ALMO can be used as a means for knowledge engineering and acquisition of knowledge.

This work was done by Paul Pechkam and Patricia Santos of Caltech for NASA's Jet Propulsion Laboratory. NPO-20587