1

2

3

The Control System Studio (CSS) is an Eclipse RCP based development pla?orm and thefundament for many applicaAons like EPICS, TANGO etc. As most of these applicaAons deal
with process variables and connecAons to control systems, the CSS Core provides thenecessary APIs for a convenient start.
The integrated development environment of CSS provides facility for database development,
alarm management system, display development and conversion, data trending, diagnosAc
tools etc.
Process variable address syntax
The general syntax of a process variable address is deﬁned as follows. This uses themetasyntax based on the Extended Backus‐Naur Form[1] address ::= [protocol] id [type][2] protocol ::= ('dal‐epics' | 'dal‐Ane' | 'dal‐tango' | 'local') '://'[3] id::= (leXer | specialcharacter) +[4] type ::= ', ' ('double' | 'int' | 'long' | 'string' | 'enum')[5] leXer::= 'A' | ... | 'Z' | 'a' | ... | 'z'[6] specialcharacter::= ':' | '/' | '\' | '.' | '[' | ']'[7] number ::= digitWithoutZero (digit)*[8] digit ::= '0' | ... | '9'[9] digitWithoutZero ::= '1' | ... | '9'
There are 3 opAonal and 1 mandatory fragments that consAtute a full process variableaddress (line 1).
The protocol (line 2) is opAonal and deﬁnes the connecAon protocol. If a preﬁx is not
speciﬁed, a default protocol is chosen according to the sefngs of the CSS‐Core/Control‐
System preference page.
The id (line 3) is mandatory. It must be a globally unique name idenAfying the informaAon
you want to address.
The type (line 5) is opAonal, too. It can be used to specify the expected return type forchannel values explicitly.

4

Syntax for EPICS
When EPICS channels are addressed, line 3 is as follows:[3a] id::= recordname ['.' ﬁeldname] [characterisAc][10] recordname ::= (leXer | specialcharacter)+[11] ﬁeldname ::= (leXer)+[12] characterisAc ::= '[' (leXer)+ ']'An EPICS process variable is always idenAﬁed by its recordname (line 10) whichis therefore mandatory.
OpAonally a ﬁeldname can be provided to address a single ﬁeld of a record (line 11). If no ﬁeldname is provided
the address defaults to the .VAL ﬁeld.
The characterisAc (line 12) is opAonal as well. If deﬁned it allows for accessing addiAonal informaAon of a record
without establishing a new connecAon. All characterisAcs of the same record share the same connecAon. So ingeneral it is a good idea to use characterisAcs whenever possible to save system resources. These can be[PosiAon] ‐ posiAon[DescripAon] – long descripAon[displayName] – short descripAon[propertyType] ‐ type[resoluAon] – number of bits used for ADC conversion of analog value when sampled[minimum] – minimum allowed value[maximum] – maximum allowed value[graphMin] – minimum allowed value when displayed (e.g. in a chart)[graphMax] – maximum allowed value when displayed (e.g. in a chart)[format] – C print‐f style format that is used to render the value[units] – units of the value[scaleType] – scale type for plofng (linear or logarithmic)[warningMax] – upper warning limit[warningMin] – lower warning limit[alarmMax] – upper alarm limit[alarmMin] – lower alarm limit[sequenceLength] – sequence length[enumValues] – enum value array (returns Object[])[enumDescripAons] – enum value descripAons (returns String[])[bitDescripAons] – bit descripAons (returns String[])[condiAonWhenSet] – acAve bit signiﬁcance[condiAonWhenCleared] ‐ inacAve bit signiﬁcance[bitMask] – bits relevance5

Simple DAL allows to use a certain syntax for accessing PVs.
The Data Access Layer (DAL) is the core of the connecAon APIs. Itcommunicates to EPICS through CAJ (Channel Access Java), which is apure Java implementaAon of the CA protocol. In the (near) future it will
be possible to connect to TINE and TANGO control systems through DALas well. A TINE integraAon is already available as Beta. DAL is an inherent
part of the CSS Core but can also be used as a library in any other JavaapplicaAon. SimpleDAL is a connecAon layer built on top of DAL. It
provides a slim, less complex API that allows for a much easier start fordevelopers dealing with process variables in their applicaAons. Using
SimpleDAL implies a certain syntax for process variable addresses thatenables applicaAons to make use of the following features:• access diﬀerent control systems (e.g. TINE and EPICS) in one applicaAon• use characterisAcs, a concept for resource saving access to record ﬁelds• query process variables in diﬀerent types• use simulated channels• address system funcAons as process variable6

It is recommended that the standard version of CSS should be
downloaded for the ﬁrst use. It consists of the CSS pla?orm and commoncontrol system applicaAons.
Pre‐requisites ‐ Java version 1.6 or higher is required
Download ‐ The link to this is
hXp://css.desy.de/content/e413/index_eng.html Please choose theversion according to your operaAng system.
Extrac<ng – extract the downloaded zip ﬁle in a directory of your choice.
Star<ng
Windows – Run the ﬁle css.exe under CSS <Top>.
Linux – Set executable mode for the ﬁle ‘css’ under CSS <top> andrun
Login ‐ The XMPP login can be cancelled for iniAal use. This logins you as
anonymous user into the XMPP server speciﬁed in the preferences. The
XMPP server is used for remote management. One can also set up hisown XMPP server.

7

CSS Console
The CSS contains its own console. This console display system messages of certain events and informaAon aboutoccurred errors.
File
New ‐ Create a new folder, resource,
Switch Workspace ‐ Change the workspace of the CSS instance.
Export preferences ‐ Write current preferences of the CSS instance in a ﬁle.
Open Workspace Navigator ‐ Open the view 'Workspace'.
Import ‐ Import resource from CVS in the workspace.
Exit ‐ Shut down your CSS installaAon.
Quickstart ‐ The Quickstart menu holds links to SynopAc Displays in the workspace. They can be added via context
menu of a display.
WindowOpen in New Window ‐ Open a new CSS window.
Open PerspecAve ‐ Select and open a parAcular CSS perspecAve. In the CSS context, a perspecAve is a set of userinterface elements that are posiAoned in a certain way.
Show View ‐ Open a parAcular CSS view. In the CSS context, a view is an element of the user interface that displays
something and can be freely arranged by the user.
HelpWelcome
About CSS ‐ Open the “About” dialog that contains the CSS license agreement.
Help Contents ‐ Open the CSS help system. There you may ﬁnd a more detailed descripAon of the basic userinterface concepts and all system sefngs.
Key Assist ‐ Open an overview of all shortcuts.
Cheat Sheets ‐ Shows available Cheat Sheets. Cheat Sheets are step by step documentaAons.
So}ware Updates ‐ Manage the local CSS installaAon by installing and updaAng features. ‐> ﬁnd and install ‐>search for new features to install8•Used to specify the EPICS IOC locaAon and other aXributes•Go to CSS Menu ‐> CSS ‐> Preferences ‐> CSS core ‐> Control system•Set the default control system as EPICS•Under ‘CSS core’ menu item , go to ‘EPICS’•Set the EPICS preferences here.

9

CSS plugins are the various tools available with it. To add these into the CSS:
•Go to CSS menu ‐> Help ‐> So}ware updates ‐> Find and Install•Select “Select for new features to install”•Select the check box for “Control system studio update site”•Click “Finish”•Expand the tree for “Control system studio update site”•Select the plugin you want to install and click “select required” buXon.
•Go “next” and accept license agreement.
•Next and click “Finish”•The installed plugin will now appear in the CSS menu under appropriate category10

To make a new project•Go to File ‐> New ‐> other ‐> General ‐> Project•Name the project•You can make new folders or ﬁles inside a project•To make a folder, right click the project in the navigator ‐> New ‐> other ‐> General ‐>folder•To make a new ﬁle, right click the project in the navigator ‐> New ‐> other ‐> choose
accordingly11Synop<c Display Studio
SynopAc Display Studio (SDS) is a graphical operator interface that represents thestructure and current state of a plant. The structure is composed of basic elements socalled widgets like labels, meters or bargraphs. To build up a part of a plant thewidgets can be arranged in the edit mode of SDS on displays. In the execute or runmode the operators can control the processes via the displays.
Navigator
The navigator view shows the CSS projects in the workspace. A CSS project holds theconﬁguraAon ﬁles for SDS displays and ﬁles of other CSS applicaAons.
Editor / PaleGe
The Editor shows the displays in the edit mode and provides grid, align, ruler, etc. On
the right side is the paleXe with all available widgets. There is a drag and drop
support that connects a process variable from another CSS applicaAon automaAcallywith a widget.
Widget ProperAes
For each selected widget in the editor the widget property view shows all available
properAes. It is possible to dynamise *LINK* each property. That means that aproperty is connected to a process variable and changes with the value of thevariable.

12

There are two kinds of property•StaAc‐ ﬁxed during execuAon mode
•Dynamic – changes during execuAon mode
Single le} click on a property on the Property View to set a staAc property.
Single le} click on a property opens an editor. There are six general editors:‐‐ Enter a text‐‐ Enter a number‐‐ Choose a color‐‐ Choose a font‐‐ Set a boolean‐‐ Select a combo item
And three special editors:‐‐ Add / change aliases‐‐ Add / change acAons‐‐ Generate toolAp13

•Open the Layer Management Menu:Window ‐> Show View ‐> Other… ‐> SynopAc Display Studio ‐> Layer Management•Inside the layer management view, right click to add new layer, or move exisAng•Visibility and order of a layer can be changed•Visibility of a layer can be toggled dynamically•Right click a widget to change its layer

14•The property with ‘gear wheel’ symbol is dynamic•Right click on property to conﬁgure or remove dynamic aspects•Channel name can be typed directly•Alias can be used instead of a PV name•Dynamic properAes can be conﬁgured by rules (explained later)•Each widget has a Primary PV, it is used when you use•Copy PV to clipboard•Forwarded to the applicaAons called by contribuAon menu
•Tip text
So it is necessary to deﬁne a primary PV

15•Alias is a macro that can be used instead of long PV name or syntax•Each widget can have several aliases ( e.g. for displaying several plots on strip chart)•Alias can be forwarded to a new display

16•Color can be customized for these•Right click on background color properAes to conﬁgure dynamic aspects•Go to Next
•Colors can be set here17

•Rules can be used to deﬁne the dynamic behavior of widget properAes•There are two types of rules•Java•ECMA/Java Script•Scripted rule ﬁles should be kept at ‘SDS Script Rules’ folder under the workspace•It is recommended that JavaScript rules should be used for conﬁguring dynamic
properAes instead of Java, as no compilaAon is needed in this case18

AcAon data sefng deﬁnes the acAon which is performed when a widget is acAvated(i.e say a buXon is clicked)
AcAons can be of two types•Sending value•Open a display
Each widget can have arbitrary no. of acAon data
AcAon can be executed from the contribuAon menu as well. The contribuAon menu is
invoked by right clicking a widget ‐> CSS ‐><contribuAon menu>

19Cursor can be changed as the mouse pointer moves over some widget
Widget properAes have a ﬁeld for changing cursor
There are two kind of cursors
1.System cursors
2.Other – acAon enabled, acAon disabled20

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

21Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

22

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

23

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

24

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

25

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

26

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

27

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

28

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

29

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

30

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

31

Detailed documentaAon is found at
hXp://css.desy.de/content/e1576/e2369/SDS_Widgets_V0.10‐1.pdf

32

1. Default display is the default SDS ﬁle which opens through the contribuAon menu
(open display)
2. To set the default display go to main menu ‐> CSS ‐> Preferences ‐> CSSApplicaAons ‐> Display ‐> Default Display
3. Set the default ﬁle and the alias name
4. Quickstart menu is used to add shortcut to run the SDS ﬁles directly.
5. The SDS ﬁles added to quickstart menu will directly open in execute mode
6. To add ﬁles to quickstart menu, right click the SDS ﬁle in navigator pane ‐> add toquickstart
7. To invoke displays directly from quickstart, go to main menu ‐> quickstart ‐> (clickﬁle name)
8. To edit quickstart preferences go to main menu ‐> CSS ‐> Preferences ‐> CSSApplicaAons ‐> UAliAes ‐> Quickstart

33

What is the ADL Converter
The ADL Converter is a CSS PlugIn that converts Control System Displays. This converts
only from ADL‐Format to the SynopAc Display Studio format from the Control SystemStudio.
Use the ADL Converter
The handling of the ADL Converter is very simple. First click the “File" buXon tochoose the ADL‐Files which you want to convert. The chosen ﬁles are displayed at thelist and are all selected. Second click the "Select Path" buXon to choose the target
path at the Workspace. And at last click the "Convert" buXon to convert the ADL‐
Files. Only the selected Files in the list are converted.
New Conversion
To convert other set of ADL‐Files, clear the list by "Clear" buXon and choose the newADL‐Files and a new target workspace path. Then start the new conversion

34

The PV Table provides a tabular view of PV names and their current value. One canstart and stop live value updates. In addiAon, one can take a "snapshot" of current
values, which gets saved when saving the PV table document. The PV table display
indicates current values that diﬀer from the "snapshot" values in red.
One can conﬁgure the update rate as well as the threshold for indicaAng diﬀerences
between the current values and those from the snapshot.
To start with PV table
1.Go to main menu ‐> CSS ‐> Display ‐> PV Table
2.Right click the empty area in the table ‐>3.Write the PV name to be monitored, go on adding names
4.A green LED symbol at the top icon bar is for starAng the updates in PV table.
5.The update rate can be conﬁgured by right click on the PV table ‐> conﬁg35

Overview
The Probe tool allows basic reading and wriAng of PVs.
Usage
1.Enter a name into the PV name text box and enter. The tool will display the current
value of the given PV together with Ame stamp and status.
2.The 'Adjust' check box opens a dialog for wriAng a new value to the PV.
3.The status bar provides error messages. If all is OK, it displays a slowly averaged
update rate of the PV.
4.It also displays alarm zones on the meter
5.The meter can be disabled also from the ‘Meter’ check box36

37