The Advanced Technology Solar Telescope (ATST) is a 4-meter solar observatory under construction at Haleakala,
Hawaii. The simultaneous use of multiple instruments is one of the unique capabilities that makes the ATST the premier
ground based solar observatory. Although the operation of the instruments and the data collected varies widely across the
ATST instrument suite, the basic control functions and data recording capabilities are similar. Each instrument must be
capable of controlling its devices, mechanisms and hardware, interacting with the Instrument Control System (ICS), and
saving science data. Because of these similarities, the ATST Software Group has developed the Standard Instrument
Framework (SIF), a set of software components comprising a framework that can be used to implement instrument
controllers with common functionality for all ATST instrumentation.
The SIF is built upon the ATST Common Services Framework (CSF) and includes controllers capable of interfacing
with the ICS, managing sub-controllers and multiple camera systems, as well as coordinating the instrument’s
mechanical mechanisms and other hardware. The key to this framework is the principle that each controller has a small,
well defined task and when the individual pieces are combined, a powerful control system may easily be implemented.
Moreover, because most of the instruments for the ATST are being developed by partner institutions, the SIF allows for
standardization of the instrument control systems throughout the instrument suite and reduced software development
effort for the partners. This will lead to significant code reuse and a smaller code base that is easier to maintain.
Proc. SPIE. 8451, Software and Cyberinfrastructure for Astronomy II
KEYWORDS: Observatories, Solar telescopes, Control systems, Telecommunications, Java, Photonic integrated circuits, Data communications, Commercial off the shelf technology, Device simulation, Data analysis
As PLCs evolve from simple logic controllers into more capable Programmable Automation Controllers (PACs),
observatories are increasingly using such devices to control complex mechanisms<sup>1, 2</sup>. This paper describes use of COTS
software to control such hardware using the Advanced Technology Solar Telescope (ATST) Common Services
Framework (CSF). We present the Enclosure Control System (ECS) under development in Spain and the UK.
The paper details selection of the commercial PLC communication library PLCIO. Implemented in C and delivered with
source code, the library separates the programmer from communication details through a simple API. Capable of
communicating with many types of PLCs (including Allen-Bradley and Siemens) the API remains the same irrespective
of PLC in use.
The ECS is implemented in Java using the observatory's framework that provides common services for software
components. We present a design following a connection-based approach where all components access the PLC through
a single connection class. The link between Java and PLCIO C library is provided by a thin Java Native Interface (JNI)
layer. Also presented is a software simulator of the PLC based upon the PLCIO Virtual PLC. This creates a simulator
operating below the library's API and thus requires no change to ECS software. It also provides enhanced software
testing capabilities prior to hardware becoming available.
Results are presented in the form of communication timing test data, showing that the use of CSF, JNI and PLCIO
provide a control system capable of controlling enclosure tracking mechanisms, that would be equally valid for telescope
The Advanced Technology Solar Telescope (ATST) Common Services Framework (CSF) provides the
technical framework necessary to quickly and easily develop applications implementing the command-action-response
model. The ATST Base builds on top of CSF and provides applications that, with a few modifications, can be dropped
into a telescope control system or an instrument control system. This is done by extending the CSF Controller and
writing applications that perform some of the common tasks needed by telescope and instrument control systems. This
paper includes a general look at the Hardware Controller and an in-depth look at the Management Controller and Motion
Telescope and instrument control systems typically have multiple axes of motion that need to be coordinated.
Management Controllers allow a simple command to be given to a single Controller and then aggregated to multiple
worker Controllers who can perform multiple actions. Management Controllers aggregate the state and status of their
workers. The workers may be of the same type (e.g., multiple servo control systems) or of different types (e.g., two
different servo controllers, a hexapod controller, digital I/O controller and a camera controller).
Most users of turnkey motion control solutions use only a few of the commands that the motion control system
provides. The ATST Base Motion Controller abstracts the hardware, and provides a simple interface (focusing on a few
common instructions) to use in controlling different types of motion stages.
The Advanced Technology Solar Telescope (ATST) has implemented a novel method for gathering header information
on data products. At the time of data collection, the specific state of the telescope and instrumentation needs to be
collected and associated with the saved data. The ATST performs this task by issuing a header request event across the
ATST event system. All observatory software components that are registered for the event and are participating in the
current experiment or observation report status information to a central header repository. Various types of header
request events may be selected for start or stop of individual frames, groups of frames, or entire observations. The final
data products are created by combining the data files with all or some of stored header information in the database. The
resulting data file may be generated in any possible format, including FITS. Much of the implementation of this
approach is integrated into the ATST technical framework, simplifying the development process for component writers
and ensuring consistent responses to header request events.