Release Notes

Summary

This release includes the following products:

ICS Framework Product

Repository/Waf project

Product version

RPM version

Application Framework

rad

3.0.0

elt-rad-3.0.0

Test Runner Framework

etr

3.0.0

elt-etr-3.0.0

Sequencer

seq

2.0.0

elt-seq-2.0.0

Data Display Tool

ddt

0.1.0 (beta)

elt-ddt-0.1.0

Camera Control Framework

ifw-hl/ccf

1.0.0

elt-ifw-3.0.0

Observation Coordination Framework

ifw-hl/daq

ifw-hl/sup

1.0.0

elt-ifw-3.0.0

Function Control Framework

ifw-hl/fcf

3.0.0

elt-ifw-3.0.0

Online Data Processing

ifw-hl/odp

2.0.0

elt-ifw-3.0.0

Miscellaneous Core Libraries

ifw-hl/core

3.0.0

elt-ifw-3.0.0

The links to the components release in Gitlab are :

Note

Repository for Binaries:

We have moved our binaries to GIT Large File Storage (LFS). This includes but is not limited to PLC compiled libraries, PLC modules and other utilities (binaries for Windows).

What is the scope of this version?

Version 3 responds to the ICS Framework release strategy where the framework is delivered incrementally. This release add important components to the Framework although not all requirements are necessarily met. However, this version tries to cover the implementation of the most important design choices and what is pending will be delivered in the coming versions (major or minor) of the Framework. This integration will continue in the future versions of the ICS Framework according to the availability of the CII services.

What is new in this release?

This release includes important new components.

  • Beta version of the Data Display Tool (DDT)

  • First version of the Camera Control Framework (CCF).

  • First version of some components of the Observation Coordination Framework (OCF) like the System Supervisor and the Data Acquisition.

alternate text

DDT Viewer overview.

Besides the above new components, additional changes are present in this version:

  • IFW has been ported to CentOS 8 following the change in the Development Environment.

  • IFW has been modified to support multiples CII MAL interfaces. All our components implement the ELT standard interface (stdif).

  • IFW has adopted experimentally Nomad/Consul for deploying software components.

  • IFW is providing a project template which includes startup/shutdown scripts.

  • FCF has adopted a simplified schema for providing extendability based on a JSON serialisation. This removed the actual limitation to deploy special devices in separate Device Managers.

  • FCF has included a Command Line Interface (CLI) to simplify the interaction with the system for users.

  • FCF PLC libraries moved from SVN to GIT.

What is the purpose of the IFW release?

  • Provide the updated ELT Development Environment to consortia software developers, to allow them to stay aligned with the latest developments and gain hands-on experience with the new technologies adopted by the ELT.

  • Facilitate an early feedback from developers in order to correct issues and modify the design/implementation as early as possible.

  • Give consortia the tools for the control of hardware functions that will allow them to carry out prototyping activities.

Some of the third party products and middleware solutions used by the ICS Framework are:

Development Environment

  • The Development Environment has been upgraded to CentOS 8.

  • The Development Environment includes the standard MAL interface modules.

For a detail release notes of the Development Environment, please visit here

Instrument Specifics Packages

To facilitate the development and integration, the IFW is now delivered as a set of additional RPMs to be installed on top of the Development Environment. This saves developers from retrieving, building and installing the IFW by their own. The additional RPMs are not part of the Development Environment since this is specific for instruments and therefore its installation shall be done on demand.

Components

Rapid Application Development (RAD)

The is an application framework that enables the development of event-driven applications for the ELT, based on call-backs or state machines.

At present, the Rapid Application Development uses the following libraries:

Service

Description

Error Handling

Exceptions

Configuration

Based on files using YAML

Messaging

Req/Rep and Pub/Sub using CII MAL ZPB

Logging

Based on Log4cplus

Online-DB

Redis in-memory key/value DB

For details, see the rad user manual.

Extensible Test Runner (ETR)

The component etr is included in the release to support running integration tests. The following features are available:

  • Run Robot Framework tests with the robot plugin.

  • Request test resources with the resources plugin.

  • Modify template files with Jinja2 template engine and the jinja2 plugin.

  • Deploy software with Nomad with the nomad plugin (experimental support).

For details see the etr user manual.

Sequencer

The component seq is included in the release to support the implementation of engineering scripts. The following features are available:

  • Sequencer Engine

  • Sequencer API

  • Sequencer CLI

  • Sequencer GUI (experimental)

Function Control Framework (FCF)

Device Manager

Supported Devices
  • Shutters

    • Configuration parameters: initial state (open, closed), timeout for HW operations, signal logic, and more.

    • Close/Open control.

  • Lamps

    • Configuration parameters: initial state (On, Off), timeout for HW operations, signal logic, and more.

    • On/Off control.

    • Intensity control.

    • Automatic switch off after a timeout.

  • Motors

    • Configuration parameters: maximum velocity, axis type, initialisation sequence, timeouts, SW limits, backlash compensation, usage of brakes, named positions, and more.

    • Move in absolute encoders and user units.

    • Move using named positions.

    • Move in relative encoders.

    • Move in speed.

  • Sensors

    • Monitor a list of engineering variables.

    • Values are not continuously read from the LCS but updated on data change.

  • Derotators

    • Five operation modes: engineering, stationary, sky, elevation and user defined.

    • Tracking computation is based on slalib running in the PLC.

  • ADCs

    • Two operation modes: off and automatic.

    • Multi-axis support.

    • Tracking computation is based on slalib running in the PLC.

  • Piezos

    • Two operation modes: position and automatic.

    • Supports up to three axes.

    • Move in bits and userunits.

  • Actuators

    • Generic On/Off control.

Device Simulators

FCF provides a set of simulators to all supported devices. The simulators have been implemented in Python based on the FreeOpcUa toolkit and the “rad/scxml4py” engine.

Engineering Graphical Interfaces

The Device Manager includes two graphical applications, see Engineering Interfaces.

Warning

These two applications shall be considered just as a prototype implementations. Their design (color scheme, layout and in general their look&feel) may change in the future according to the development of ELT widget libraries and standards for graphical interfaces.

  • FCF GUI (fcfGui): Engineering interface for the control and monitoring of Device Manager and devices under its control.

  • Motor GUI (pymotgui): Engineering interface for the control and monitoring of a single motor device, implemented in Python.

PLC Libraries

PLC Libraries are now available in GIT and can be retreived from the ifw-resource repository. Note that this repository uses the LFS (Large File Storage) Git extension. All libraries are located in the same directory. This simplifies the installation of the libraries in the TwinCAT IDE.

The PLC source code can be retreived from: https://gitlab.eso.org/ifw/ifw-ll/-/releases/v3.0.0

The following table lists the versions of the PLC libraries:

Library

Version

What is new in Release 3.0

ioDev.library

1.1.1.0

lamp.library

1.1.1.1

motor.library

4.2.2.6

Addition of control parameter for MOVE REL. Updated Control GUI.

piezo.library

0.6.6.2

rsComm*.library (4 libraries)

0.2.0.0

Restructuring of the module. Addition of simulation for serial and USB devices. Addition of read function 4 for MODBUS (in addition to function 3 that is default).

shutter.library

1.1.0.1

timer.library

1.0.2.1

actuator.library

1.0.0.2

All libraries have been created with TwinCAT 3.1.4024.7.

Required TwinCAT 3.1 build is 4024.7 or higher.

Required OPC UA Server version is 3.3.16.0 or higher.

Known Problems

  • CII spurious messages: Latest version of CII MAL produces what it seems to be a harmless message. So far we have not identified any impact due to this in our applications.

Could not inform listener about ZpbMalEvent::UNREGISTERED since lock on its weak pointer failed
tcp://*:5100   dealer ID: de 13 b3 f3 cc 4b 3b 38
  • CII logger error: Latest version of CII MAL complains about log4cplus initialization. This does not have a known effect in the applications.

log4cplus:ERROR No appenders could be found for logger (malZpbServer).
log4cplus:ERROR Please initialize the log4cplus system properly.
  • CII URI Parsing: An URI which contains an extra ‘/’ is not handled properly and clients may hang.

  • Sequecer Server: The sequencer server might detect some not recognized JSON stataments from templates scripts and issue an error in its standard output. This should not affect the normal execution of the templates.

KeyError: 'key'
ERROR:(seqsh.py.proc_reader:99) - Reading subproc error
Traceback (most recent call last):
  File "/home/psivera/INTROOT/lib/python3.7/site-packages/seq/cli/seqsh.py", line 75, in proc_reader
    if not d["key"] in self.keywords: