SCL is a COTS software package that enables you to build a control system whose behavior is specified by a full-featured scripting language. You can design the control system to process data input from a multitude of sources representing the state of your system, and to take action based on either directed or detected system state.

In the simplest terms, a control system is a collection of sensors and actuators that are related by a process that drives the actuators based on sensor measurements. One purpose of the control process can be to drive the system to a desired state—the "directed state". Or the control process may have the job to take action when the system reaches a predefined state—a “detected state”. A control system may operate “open-loop”, where the control system response is independent of the actual output. Or we can design a “closed-loop” or “feedback system”, where the controller operation is modified based on the actual output.

A familiar example of a closed loop control system that works both to achieve a desired state and to detect failure conditions is an intelligent thermostat used to control temperature in your home.

A more complicated example of a control system is the command and data handling subsystem onboard a satellite that directs flight activity according to a plan uploaded from a ground control center. This system may also be tasked to detect onboard fault conditions and take appropriate safing action. Or it may respond, simultaneously, to onboard events, such as completion of an attitude maneuver, or passage across the orbit terminator.


 

Using SCL, you can easily build control systems as diverse as these two examples. An SCL-based control system can respond to both directed and detected system state, and operate in both open- and closed-loop fashion.

Fundamental to SCL is the SCL language. The SCL language combines the features of a traditional scripting language, such as STOL, with the logic capture capability of a rule-based expert system and the functionality of a database definition language. Using the SCL language—including scripts, rules and constraints, data formats, templates and definitions—a system designer can fully define all data and processes used by the control system. The system can take action based on time, operator directive, autonomously as a function of detected system state, or any combination of these. In addition, a user can dynamically reconfigure the system by modifying, in real-time, the SCL language constructs that specify what actions should take place under what circumstances.

With SCL, you now have a  component that you can use wherever a control system application exists, and you have the tools to design your system end-to-end. Regardless of the application, SCL operates the same way, and the language you use to configure the system is the same language.

In fact, you will find that SCL scripts, rules, and databases are reusable across a family of control systems. A proven example is the reuse of SCL components across the Far Ultraviolet Spectroscopic Explorer (FUSE) mission—on the payload flight processor, in the payload integration and test system, and at the satellite control center.


 

How Did SCL Begin?
ICS engineers developed the “Spacecraft Command Language” in the late 1980’s as an embedded software system to control the operation of a US Navy satellite for 180 days without ground intervention. The autonomy, performance, and reliability requirements of this mission demanded an elegant solution. The Spacecraft Command Language system not only met the demand, but also established a solid basis for the product that is known today as SCL.

A satellite system includes numerous other examples of control systems across a range of complexity:

•  the onboard system that controls spacecraft position and attitude,
•  the laboratory system that is used to monitor and direct a payload under test,
•  a simulator that replaces a subsystem during satellite integration, and
•  the ground system that is used to monitor and modify satellite operations during pre-launch test and post-launch flight operations.

In some cases, these systems may monitor thousands of rapidly-changing sensors and direct hundreds of actuators based on complex logic. All of these systems, however, share common functionality and characteristics.

ICS recognized this commonality and designed SCL as a collection of reusable components that are integrated via a powerful, custom database.  As a result, SCL can operate wherever a control system is needed.
 

SCL Architecture
The SCL system consists of several modules that together form the control system core. Functions are added by integrating with existing hardware and software components, graphical elements, other third-party products, and new custom code. Multiple SCL-based control systems can interconnect in a network topology, communicating with each other using industry-standard protocols.

An extensive Application Programmers Interface (API) allows full access to the SCL database, socket interfaces, a complete RPC library, and the message software bus. In addition, the API allows the workstation version of SCL to interface with several third-party products, including a wide range of Graphical User Interface (GUI) packages.

The SCL Database contains defining records for all the data items—sensor measurements, actuator states, and derived data —that characterize a given system. Each record includes the current value of the data item and various attributes that are accessible by other SCL modules and by SCL scripts and rules. Certain attributes can be “set” to cause a rule to trigger or to control actuators. Special record types specify how a data item is to be extracted from an input data stream, such as for telemetry decommutation. Database records are compiled using the SCL DB Compiler and loaded to the SCL Database using the SCL DB Loader.

 

How Does SCL Work?
The SCL DataIO module acquires data in real-time from external sources, updates the database, converts the data to engineering units, and filters, smoothes and archives the data if desired. DataIO also performs limit-checking, and notifies the Real Time Engine if any data value change exceeds a user-defined threshold.

The SCL Real Time Engine (RTE) is the inference engine for the underlying expert system, the SCL command interpreter, and the script scheduler and execution manager. SCL scripts and rules are compiled by the SCL Compiler and loaded to the RTE in the form of an SCL Project. This project provides the RTE with the procedural, scheduling, and event-capturing elements of the system. The RTE captures all SCL database updates and processes the corresponding rules associated with a particular database item. The SCL Compiler also supports real-time communication between an external operator and the RTE and SCL database via a “command line” interface.

SCL Commanding can be implemented using several strategies. With the default strategy, the RTE uses the Message Software Bus to send a “notify“ message to an external “listen” application when an SCL script or rule changes the state of an actuator. An alternate method uses a third-party database to create a command “packet” that the RTE sends across the software bus. SCL also provides a constraint checking capability that allows the RTE to impose pre-conditions on command execution. This enables you to avoid potential failure scenarios, or to automatically execute pre-command configuration scripts.
 



























Why choose SCL?
COTS
SCL is a proven, well-documented  product that, for the right application, can reduce software development cost and time.

Flight Qualified
SCL technology has been in development since 1988. Since its flight on board Clementine I and ROMPS in 1994, SCL has proven its mettle on numerous flight and ground projects.

Performance
Because it was first developed for an embedded flight environment, SCL’s performance is both efficient and fast.

Autonomy
SCL’s mixture of procedural, time-based, and event-based programming using scripts and rules provides a rich environment for the design of autonomous applications. SCL scripting automates routine tasks and ensures consistently correct command sequences. Using rules that monitor and reason based on system state information, SCL can detect and react to events, such as anomalies, faster than human operators. And SCL executes both time-based and event-based operations simultaneously in real-time.

Commonality
SCL runs on both workstations and embedded systems, and is built from the same source code base regardless of host platform. Used as a common component across a system, SCL can reduce implementation cost and time. In addition, SCL scripts, rules, and database components can be reused across a family of SCL control systems.

Knowledge Base
SCL’s project development environment supports an expert system knowledge base that enables developers and system experts to embed their  knowledge within their applications.
Evolution
SCL’s capability continues to evolve in response to the combined requirements of a wide spectrum of users.  SCL product evolution is governed by rigorous quality control and supported by an internal research and development program.

HLL
SCL is a High-Level Language (HLL) that is easy to learn and use, yet sophisticated enough to satisfy complex operational requirements.

IDE
The SCL Integrated Development Environment (IDE) allows you to create, simulate, and test applications in a rapid and iterative manner.

API
SCL’s extensive Application Programmers Interface (API) supplies programming hooks to integrate a system’s unique components.
 

SCL Products and Services
SCL is a licensed product, and is available for UNIX, LINUX and Windows platforms and for several embedded processor targets. The SCL product, including all of the core components, the API suite and a complete documentation set, can be purchased in pre-built from with a variety of configurations depending on specific customer needs.

ICS maintains an SCL product technical support staff in our Melbourne, Florida office. Maintenance and technical support services are available under a variety of support plans. SCL training courses are offered in both our Melbourne and Columbia, Maryland offices, and can also be made available onsite.

In addition to the SCL product, ICS offers the following on either a fixed-price or time and materials basis as appropriate:

  • SCL applications support for SCL core system integration, SCL database and script development, expert SCL system operation, and custom training and documentation
  • SCL turn-key systems dev