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?
A satellite system includes numerous other examples of control systems across a range of complexity: • the onboard system
that controls spacecraft position and attitude,
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
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 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? Flight Qualified
Performance
Autonomy
Commonality
Knowledge Base
HLL
IDE
API
SCL Products and Services
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:
|