Siirry pääsisältöön

Constellation ohjelmointityökalu

Koneiden ohjausjärjestelmät (poislukien fastproto) on toteutettu RTI:n Constellation -työkalulla. Muitakin UML-ohjelmointityökaluja on olemassa mutta Constellation on suunniteltu erityisesti ohjausjärjestelmien tekemistä varten.

Constellation tarjoaa valmiin alustan säätimien ja muiden periodisesti suoritettavien ohjelmistokomponenttien toteuttamiselle. Jatkuvia signaaleja käsitteleviä komponenttaja suoritetaan halutulla taajuudella. Ohjelmoijan ei tarvitse määritellä erikseen komponenttien suoritusjärjestystä sillä työkalu järjestää komponentit automaattisesti siten, että niiden suoritusjärjestys on optimaalinen. Lisäksi säätimien toimintaa voidaan tarvittaessa muuttaa suorituksen aikana käynnistämällä ja pysäyttämällä säätimen komponenttaja. Tällaista "moodinvaihtoa" tarvitaan esimerkiksi siirryttäessä käsiohjauksesta automaattiohjaukseen.

Constellationissa voidaan jatkuvien signaalien lisäksi käsitellä helposti myös diskreettejä tapahtumia eli "eventtejä". Tapahtumien käsittelyyn voidaan käyttää UML-tyyppisiä tilakoneita. Tilakoneet reagoivat tapahtumiin suorittamalla tilasiirtymiä, jos sopiva tilasiirtymä on käytettävissä. Tilasiirtymäehdot voivat koskea myös jatkuvia signaaleja, jolloin ehdot tarkastetaan periodisesti. Koska aikaa voidaan käsitellä jatkuvana signaalina, voidaan tilakoneeseen helposti tehdä ajasta riippuvia siirtymiä.

Constellation työkalu tukee komponenttien uudelleenkäyttöä, sillä komponentit kytketään toisiinsa hyvin määriteltyjen rajapintojen avulla. Rajapinnat mahdollistavat komponenttien kytkemisen toisiinsa lukemattomilla eri tavoilla eli samoista komponenteista voidaan rakentaa useita hyvinkin erilaisia koneenohjausjärjestelmiä. Rajapintojen määrittely ja niiden lisääminen komponentteihin on graafisen työkalun ansiosta selkeää ja nopeaa. Uusia komponentteja tehdään joko yhdistelemällä olemassa olevia komponentteja (ns. komposiittikomponentit), piirtämällä tilakoneita (ns. tilakonekomponentit) tai sitten kirjoittamalla C++ -koodia (ns. atomiset-, tietovuo- ja tilasiirtymäkomponentit).

Koska Constellation perustuu C++ -ohjelmointikieleen, on sen tuottama koodi varsin tehokasta ja nopeaa. Constellation toimii Windowssissa (Microsoftin kääntäjä) ja Linuxissa (gcc-kääntäjä). Lisäksi sillä voi kääntää ohjelmia esimerkiksi VxWorks -käyttöjärjestelmälle. Constellation tukee useita eri prosessoriarkkitehtuureja (X86, PPC, MIPSR4, M68020, SPARC) mutta aivan vaatimattomalla raudalla sillä tehtyjä ohjelmia ei voi ajaa.