Slow control

  • You do not have permissions to view this page - please try logging in.

Version as of 21:17, 19 Aug 2025

to this version.

Return to Version archive.

View current version

TOC 

Other pages:


New ISTTOK slow control system

Intro

The new ISTTOK slow control system is designed to replace the former vaccum/power/slow timing system based is the EDWARDS controller.

 

The new system uses the EPICS framework and the Control System Studio, below there is a detailed description of the used software. In the next figure is depicted the system structure.

systemdraw.png

At the present all the software are installed in one IOC server with the exception of the Control System Studio that is also used for the GUI management.

Team and responsabilities

  • Horácio Fernandes (ISTTOK Leader)
  • Bernardo Carvalho (Project Leader)
  • Paulo Duarte (ISTTOK Session Leader, State Machine develpment)
  • Tiago Pereira (dsPIC development, RS232 protocol/ Sensor Interface/ Wiring)
  • Paulo F. Carvalho ( Epics Applications)
  • Bruno Santos (Epics)
  • Gonçalo Quintal (Epics, CSS Gui Panels)

System description

Presently is installed a prototype unit with the following peripheral nodes:

Vacuum System

- Pfeiffer pressure gauges

The dsPic acquires the pressure value from the Pfeiffer gauge, with the Pfeiffer protocol working on RS485, and sends the pressure to a high level PC application.

Process Value in the IOC Server for this system.

PV Name PV Type Archive
ISTTOK:vacuum:Uptime longin no
ISTTOK:vacuum:Diff_Uptime calc no
ISTTOK:vacuum:Last_Uptime calc no
ISTTOK:vacuum:Pressure_Chamber1 ai yes
ISTTOK:vacuum:Pressure_Primary1 ai yes

 

Liquid Metal Limiter

- Ds18s20 temperature sensors

- Inp. Superior

- Dep. Inferior

- Bypass

- Troço Inferior

- Dep. Superior

- Colector

- 4 Vaves

The dsPic acquires the temperature and send it back to a high level PC application. It also control four valves by logic gates with two states, this information is sent back to the PC, there are two commads to control the valve state from the high level application. 

Process Value in the IOC Server for this system.

PV Name PV Type Archive Localization
ISTTOK:gallium:Uptime longin no N/A
ISTTOK:gallium:Diff_Uptime calc no N/A
ISTTOK:gallium:Last_Uptime calc no N/A
ISTTOK:gallium:Temperature_0 ai yes Upper Section, (e)
ISTTOK:gallium:Temperature_1 ai yes Lower Deposit, (b)
ISTTOK:gallium:Temperature_2 ai yes Bypass, (d)
ISTTOK:gallium:Temperature_3 ai yes Lower Section, (f)
ISTTOK:gallium:Temperature_4 ai yes  Upper Deposit, (a)
ISTTOK:gallium:Temperature_5 ai yes Collector, (c)
ISTTOK:gallium:Valve_1 bo no (1)
ISTTOK:gallium:Valve_1_RBV bi no (1)
ISTTOK:gallium:Valve_2 bo no (2)
ISTTOK:gallium:Valve_2_RBV bi no (2)
ISTTOK:gallium:Valve_3 bo no (3)
ISTTOK:gallium:Valve_3_RBV bi no (3)
ISTTOK:gallium:Valve_4 bo no (4)
ISTTOK:gallium:Valve_4_RBV bi no (4)

 

gallium.jpg

Temperature Sensors and ELCO Voltage Measurement Systems

- Thermocouple Sensor
- ELCO voltage measurement
   -For communication was used a fiber optic
 
The dsPic uses the internal ADC to read the voltage signal from the thermocouple.
To measure the ELCO's voltage it was developed two boards one to read the ELCO's voltage and another to connect the fiber optic to dsPIC.
 
Process Value in the IOC Server for this system.
PV Name PV Type Archive
ISTTOK:temperature:Uptime longin no
ISTTOK:temperature:Diff_Uptime calc no
ISTTOK:temperature:Last_Uptime calc no
ISTTOK:temperature:RawTemperature_0 ai yes
ISTTOK:temperature:Temperature_0 calc yes
ISTTOK:temperature:RawTemperature_1 ai no
ISTTOK:temperature:Temperature_1 calc no
ISTTOK:temperature:RawTemperature_2 ai no
ISTTOK:temperature:Temperature_2 calc no
ISTTOK:temperature:RawTemperature_3 ai no
ISTTOK:temperature:Temperature_3 calc no
ISTTOK:temperature:RawCapbank_Voltage ai no
ISTTOK:temperature:Capbank_Voltage calc no

State machine description

The developed state machine for EPICS uses the State Notation Language and Sequencer module

This module implements a programming language specifically designed for programming finite state machines in such a way that it is easy for the program to interact with EPICS process variables (PVs), allowing to read and to write them and to react to changes in their value or status.

 

In the next Figure is depicted the state machine flow,

state_machine.png

And the Process Value in the IOC Server for this system,

PV Name PV Type Archive
ISTTOK:central:AUTHORISATION bo no
ISTTOK:central:OPREQ bo no
ISTTOK:central:PROCESS-MODE bo no
ISTTOK:central:PROCESS-REQ bo no
ISTTOK:central:COUNTER calc no
ISTTOK:central:OPCALCSTATE calc no
ISTTOK:central:COUNTDOWN mbbi no
ISTTOK:central:PULSE-NUMBER longout no
ISTTOK:central:OPSTATE longout no
ISTTOK:central:CurrentTime stringin no
ISTTOK:central:TraceMessage stringout no

Hardware Platform

Supervisor/Central Node

One PC Controller

  • Intel(R) Atom(TM) CPU  330   @ 1.60GHz, Dual Core, 1 Gbyte RAM, 4 RAM
  • 4 Serial Ports
  • IP addr:192.168.1.152 ( ISTTOK private network)
  • Scientific Linux CERN 6 (SLC6) with MRG Realtime extensions
  • Linux kernel 3.2.33-rt50.66.el6rt.x86_64
  • NTP time conected to  IPFN Gps NTP/PPS server IP:10.136.236.255
Local Control

One or more dsPic board running an embedded firmware
-

Software Platform

All software stored in IPFN SVN server: http://metis.ipfn.ist.utl.pt/svn/cdaq/ISTTOK/

Central Node

EPICS v. 3.14.12.3 including modules:

CS-STUDIO

Apache Tomcat

Installed Scripts

  • epicsenv.sh                      directory: /etc/profile.d/epicsenv.sh
  • epicsenv                          directory: /usr/bin/epicsenv
  • epicsEnv                          directory: /etc/opt/epics/env.d/epicsEnv
  • epicsCaRepeater              directory: /etc/init.c/epicsCaRepeater
  • service-startup                 directory: /opt/epics/bin/services/service-startup
  • epicsIocLogServer            directory: /etc/init.c/epicsIocLogServer
  • epicsenv                           directory: /usr/bin/epicsenv
  • ioc-isttok                          directory: /etc/init.d/ioc-isttok
  • isttok-archive-engine       directory: /etc/init.d/isttok-archive-engine
  • isttok-css-alarm-server     directory: /etc/init.d/isttok-css-alarm-server
Local Control

 

Building EPICS base http://www.aps.anl.gov/epics/base/R3-14/12-docs/README.html#0_0_12
Unpack file inside a folder named epics.
Set environment variables:
Run the perl script EpicsHostArch.pl in the base/startup directory to set EPICS_HOST_ARCH. 
 
Do site-specific build configuratiom, site configuration:
        configure/CONFIG_SITE          Build choices. Specify target archs.
        configure/CONFIG_SITE_ENV  Environment variable defaults
        configure/RELEASE                 TORNADO2 full path location
 
To build EPICS:
        gnumake clean uninstall
        gnumake
 
Create a symbolic link for the base folder of EPICS called base/ inside the folder epics.
Create a folder inside the epics folder named modules/.
 
Download asyn and snl modules and unpack them inside epics/modules/.
Create symbolic links for both unpack folders, asyn for the asyn module and seq for the snl module.
 
To build asyn:
Edit the config/RELEASE file and set the paths to your installation of EPICS_BASE (use the symbolic link base).
Then run make on top level directory.
 
To build SNL:
 
 

Protocol for communication between dspics and PC in ISTTOK slow control

  • all bytes are readable ASCII
  • all messages all terminated with two bytes: \r\n (13 10)
  • messages have variable length
  • framing character for fields inside message is space (32)
  • individual fields inside each message have variable length
  • the last three characters before the terminator are the ASCII representation of the checksum of all other bytes, excluding the terminator
Examples:                                                                                            
PIC -> PC

VL01_1 VL02_1 VL03_0 TE01_150.9 TE02_80.1 UP_7200 PR01_1.3e-4 CKS\r\n

PC -> PIC

VL01_1 CKS\r\n

Table of words:
    VL   - Valve
    TE   - Temperature
    UP   - Uptime  
    PRD - Wave Periode  
    PR   - Pressure

Archive System

Main folder: /home/bernardo/css/

 

References

"EPICS IOC module development and implementation for the ISTTOK machine subsystem operation and control"
Paulo Carvalho, André Duarte, Tiago Pereira, Bernardo Carvalho, Jorge Sousa, Horácio Fernandes, Carlos Correia, Bruno Gonçalves, Carlos Varandas

Fusion Engineering and Design 86 (2011) 1085–1090

Powered by MindTouch Core