Definition of Programming Language for Cryogenic Systems

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2017-10-04
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
95+10
Series
Abstract
In this thesis a new programming language is defined to be used for controlling cryogenic systems, such as dilution refridgerators (DR). The controlling of DRs can be divided into operation states where valves, heaters and pumps are adjusted and turned on and off based on values measured from the system, e.g. pressure and temperature. Therefore, the process could be considered to be an automated control process. Existing languages for laboratory use or automation control were evaluated but they were considered to be too complex, old fashioned, proprietary, provided only graphical representation or otherwise problematic. The commonly used programming languages, such as Java and Python, could have been better, but required much more overhead code and simpler approach was desired. Due to these reasons a new language was defined. This thesis introduces a new and easy to use C-like language, syntax which feels very familiar to many programmers, and there are also improvements which make it also very suitable for people with very little programming experience. The language has been designed so that the programmer can concentrate only on defining the control process itself rather than writing glue code around it. The language not only provides basic definitions of functions, variables, expressions and all the commonly used conditional and loop structures, but also very simple, but powerful, syntax for defining state based control processes, hardware independent interaction with the pheripherals, and unit system, which allows definition of unit types making it possible to automatically handle the measurement values with different units and to use constant literals with units on expressions.

Tässä diplomityössä määritellään uusi ohjelmointikieli kryogeenisten järjestelmien, kuten diluutiojäähdyttimien, ohjaamiseen. Diluutiojäähdyttimien ohjauksen voi jakaa eri toimintatiloihin, joissa säädetään ja kytketään lämmittimiä, pumppuja ja venttiileitä päälle ja pois käyttäen järjestelmästä mitattuja lukuarvoja, kuten paineita ja lämpötiloja. Tästä syystä myös erilaisten laboratorio- ja automaatiokäyttöön tarkoitettujen kielten soveltuvuutta tutkittiin, mutta niiden todettiin olevan joko liian monimutkaisia, vanhahtavia, maksullisia, vain graafisia tai muulla tavalla ongelmallisia. Monet yleisesti käytetyt ohjelmointikielet, kuten Java ja Python, olisivat saattaneet sopia paremmin, mutta tarvitsivat paljon enemmän lisäkoodia ja halutun ratkaisun pitäisi olla yksinkertainen. Näistä syistä kehitettiin uusi kieli. Tässä diplomityössä esitellään uusi ja helppokäyttöinen, C:n tapainen ohjelmointikieli, jonka syntaksi tuntuu tutulta monille ohjelmoijille, ja kielessä on myös parannuksia, jotka tekevät siitä hyvin soveltuvan myös niille, joilla on hyvin vähän ohjelmointikokemusta. Tämä kieli on kehitetty siten, että ohjelmoija pystyisi keskittymään itse ohjausprosessin määrittämiseen eikä niinkään liimakoodin kirjoittamiseen sen ympärille. Tämä kieli ei tarjoa ainoastaan perusmääritelmiä funktioille, muuttujille, laskutoimituksille ja yleisesti käytetyille ehto- ja toistorakenteille, vaan tarjoaa myös hyvin yksinkertaisen mutta tehokkaan syntaksin tilapohjaisten ohjausjärjestelmien määrittelyyn ja raudasta riippumattoman kanssakäymisen laitteiden kanssa. Lisäksi kieli tarjoaa yksikköjärjestelmän, joka mahdollistaa yksikkötyyppien määrittelemisen, jotka mahdollistavat automaattiset yksikkömuunnokset eri mittausarvojen välillä sekä yksiköiden käyttämisen laskutoimituksissa.
Description
Supervisor
Malmi, Lauri
Thesis advisor
Salmela, Anssi
Keywords
automation, programming language, state machine, dilution refridgerator
Other note
Citation