• Ei tuloksia

Aliohjelman kutsu pääohjelmassa

Pääohjelman alkuun tehtiin perustoiminnot ja yleiset muuttujat, joiden lisäksi siihen kopioitaisiin Excelillä luotu järjestelmäkohtainen ohjelmakoodi. Tällä tavoin ohjelman käyttäjän ei tarvitse ymmärtää aliohjelmassa tapahtuvista toiminnoista mitään ja luo-dun ohjelmakoodin liittäminen helpottuu.

Pisteiden testauksessa käydään läpi fyysisten pisteiden helposti todettavat virhetilat.

Fidelix-säädin osaa itse luokitella tietynlaisia virhetiloja, antamalla pisteelle havaittua virhetilaa vastaavan arvon. Pisteen arvo -9999 tarkoittaa, että kyseisen nimistä pis-tettä ei löydy säätimeltä. Arvo -9998 tarkoittaa, että pisteen arvo ei ole sen nostaulukon alueella. Kyseessä voi tällöin olla fyysinen anturivika, tai pisteen muun-nostaulukko on vääränlainen. Pisteen muunmuun-nostaulukko muuntaa säätimen pisteelle antaman 0-100 000 digitaaliarvon mittasuureen yksiköiksi, esim. lämpötilaksi välillä 0-50 °C. (Fidelix Manual, 2017.)

Muita virhetiloja ovat pisteen arvot -9997 ja -9996. Arvo -9997 tarkoittaa globaalipis-teen tiedonsiirtovirhettä. Globaalipiste on piste, jonka säädin jakaa toisen säätimen kanssa. Pisteen arvon muuttuessa toisella säätimellä, muuttuu se myös toisessa. Tie-dot synkronoidaan erilaisten TCP/IP-yhteyksien kautta. Tästä virhetiedosta voidaan todeta säädinten välisen yhteyden tila. Virhetila -9996 tarkoittaa moduulivikaa. Tällä virhetiedolla kerrotaan, että pisteen IO-moduulissa on fyysinen vika, tai säädin ei saa yhteyttä moduuliin, esim. väylävian vuoksi. (Fidelix Manual, 2017.)

Fyysiset pisteet testataan vain em. virheiden ja käsikäytön varalta. Kun piste on kä-sin-tilassa, sen arvoa pakko-ohjataan, jolloin säädin ja logiikkaohjelma eivät yleensä pysty vaikuttamaan pisteen arvoon. Tämä tila ei ole yleensä haluttu, muulloin kuin väliaikaisten huoltotoimenpiteiden ja järjestelmän väliaikaisen tilamuutoksen yhtey-dessä. Yleensä halutaan, että järjestelmä pystyy itse säätämään ja mittaamaan pistei-den arvoja. Tällöin pisteet ovat automaatti-tilassa.

Pääohjelman rakenne on seuraava:

1. Kutsutaan aliohjelmalohkoa tekemään toimenpiteet

2. Annetaan aliohjelmalohkolle käyttäjän määrittelemät muuttujien arvot 3. Annetaan aliohjelmalohkolle Excelillä luodut muuttujien arvot

Aliohjelmalohkon rakenne on yksinkertaistettuna seuraava:

Alustusvaiheet:

1. Luetaan testin perusmuuttujat ja Excel-generoidut muuttujat 2. Tallennetaan diagnostiikkatietoja muuttujiin ja pisteisiin

3. Alustetaan testin laskurit, ajastimet, sekä aktiivisuus- ja vaihe-ehdot

Toistettavat vaiheet

4. Kun uusi testaus alkaa, aloitetaan myös Excel-generoidun koodin käsittely ja uuden raportin kirjoitus

5. Testataan Excel-työkalusta tuotujen pisteiden tilat ja luetaan niiden arvot

6. Fyysisten pisteiden jälkeen testataan säätöpisteiden toiminta säätötestauksilla (jos säätötestaukset ovat käytössä)

7. Kun kaikki pisteet on testattu, lopetetaan testaus ja raportin kirjoitus

8. Kun testaus aloitetaan uudestaan, nollataan laskurit ja toistetaan vaiheet 4-8

Toteutusvaiheessa huomattiin että ohjelmasta on kehittymässä hieman raskas koko-naisuus, joten sopivien säätöarvojen laskennasta luovuttiin. Toiminnon toteuttami-nen olisi lisännyt pistekohtaisen koodin määrää huomattavasti ja vaatinut monia lisä-muuttujia. Toiminnon tilalle tehtiin säätötestaus, joka testaa vain valmiiksi viritetty-jen säätöviritetty-jen toimivuuden.

Koska kiinteistöautomaation säädöt sisältävät vakiosäätöjen lisäksi paljon kompen-sointi- tai sarjasäätöjä, todettiin helpoimmaksi testaustavaksi yksinkertainen säätöar-von muutos. Tällöin säädön tyypillä ei ole väliä ja testauksen ohjelmointi helpottuu huomattavasti. Säätöpisteen toiminnan kannalta tärkeintä on että se pystyy saavut-tamaan mittauksen uuden asetusarvon halutulla aikavälillä ja pitämään sen tasaisesti uudessa arvossa.

Säätöpisteiden testaukseen oli joka tapauksessa luotava monia muuttujia ja ohjelma-ehtoja, joten niiden suoritus rajoitettiin tässä testausohjelman versiossa lämpötila-, paine- ja ilmamäärätesteihin. Nämä ovat yleisimmät säätökohteet, joten niiden tes-taamisella saataisiin jo suurin osa järjestelmän säädöistä testattua. Testattavia sää-tösuureita rajoitettiin, sillä jokaista testattavaa suuretta kohti täytyi ohjelmaan mää-ritellä kyseisen suureen ominaisuuksia ja peruskäyttöä vastaavat tarkastelut ja sää-dinpisteet.

Lämpötilan kanssa samoilla muutosalueilla voisi testata ilmankosteuden säätöjä.

Paine- ja ilmamääräsäädöt yhdistettiin samaksi kokonaisuudeksi, sillä niiden

suurealueet ovat karkeasti samaa suuruusluokkaa. Myös hiilidioksidisäätöjä voitaisiin mahdollisesti testata ilmamääräsäätöjen kanssa samoilla muutosalueilla.

Säädön asetusarvoa muutetaan testauksen ajaksi ohjelmallisesti käyttäjän säätötyy-pille määrittelemän erotuksen verran. Esimerkiksi säätöarvo on 200 Pa painearvo ja testausohjelman käyttäjä määritellyt painesäätöjen testausmuutokseksi +20 Pa. Täl-löin muutetaan säätötestausten ajaksi säädön asetusarvo 220 Pascaliin ja seurataan, pystyykö säätöpiste saavuttamaan uuden asetusarvon ja pitämään sen tasaisena.

Säädön tulee saavuttaa uusi asetusarvo käyttäjän määrittelemän ajan kuluessa ja sen jälkeen pitää säädön eroarvo käyttäjän määrittelemien toleranssirajojen sisällä. Vä-rähtelyvahti-ominaisuus testaa käyttäjän määrittelemän ajan verran pysyykö säätö asetusarvossaan jokaisella ohjelmasyklillä. Ohjelman sykliaika on 1s, joten tarkaste-luja tehdään esimerkiksi 30 s värähtelyseurannan aikana n. 30 kpl.

Kuvaus säätötestauksen vaiheista:

1. Tutkitaan, onko kyseessä lämpötila- vai paine- ja ilmamääräsäätö

2. Säädön luonteesta riippuen annetaan sille sopivat säätötestausparametrit 3. Muutetaan pakko-ohjauksella säädön asetusarvoa hieman nykyisestä 4. Odotetaan säädöltä odotettavan asettumisajan verran

5. Asettumisajan päätyttyä seurataan käyttäjän määrittelemän ajan verran, pysyykö säätö toleranssirajojen sisällä uudesta asetusarvosta

6. Kirjoitetaan säätöpisteen tiedot ja säätötestin tulos raporttiin 7. Pakotetaan säädön asetusarvo alkuperäiseen arvoonsa 8. Vapautetaan säätöarvo takaisin automaattiasentoon

Itsetestaus käynnistetään käyttöliittymään tehdyllä napilla, tai automaattisesti aina käyttäjän määrittelemän pisteen vaihtaessa tilaansa. Automaattitestauksen suori-tusta pystyy hallitsemaan käyttöliittymästä, tai kiinteästi ohjelmasta aseteltavalla muuttujan arvolla. Ominaisuus saadaan näin haluttaessa myös kokonaan pois käy-töstä.

Automaattitestausta varten käyttäjä määrittelee ohjelmaan haluamansa pistetun-nuksen automaattitestauksen indikointitunnukseksi. Kun tämä tunnus vaihtaa tilansa arvoon, joka on suurempi kuin 0, odotetaan käyttäjän määrittelemän alkuviiveen ver-ran ennen testin aloittamista. Tämän jälkeen itsetestaus suoritetaan automaattisesti.

Testi suoritetaan vain kerran aina indikointitunnuksen tilan nousevan reunan jälkeen.

Automaattinen itsetestaus tehtiin, jotta järjestelmä voi itse tarkkailla säännöllisesti tilaansa, esimerkiksi aina kun IV-koneen tulopuhallin käynnistyy, järjestelmä tekee testin ja kirjoittaa tilanteesta raporttitiedoston. Aloitusviive antaa järjestelmälle aikaa palata tasaiseen käyntitilanteeseen ennen testiä, mahdollisen käynnistymisen jäl-keen. Automaattisella itsetestauksella voidaan myös raportoida vikatilanteita, jotka vaativat tarkempaa perehtymistä koko järjestelmän hetkelliseen tilaan. Tämä voi-daan toteuttaa esim. luomalla testin indikointitunnukseksi pistetunnus, joka vaihtaa tilaansa kun jokin mittaus saavuttaa vikatilanteelle ominaisen arvon.

Itsetestauksen ohjelmoinnissa pyrittiin ottamaan huomioon kaikki ohjelman suunnit-telussa hyväksi todetut käytänteet ja ohjelmointiperiaatteet. Ohjelmakoodia kom-mentoitiin jatkuvasti, jotta muutostyöt ja vianmääritys helpottuisivat. Ohjelmakoodi pyrittiin muodostamaan toimivaksi mahdollisimman kevyillä toimenpiteillä ja lyhyillä ehtolauseilla. Ohjelmasta muodostui tästä huolimatta hyvin laaja ja monimutkainen kokonaisuus, joten sitä ei käydä tässä kokonaisuudessaan läpi.

5.3 Raportin toteutus

Raporttitiedoston kirjoitus tehtiin Fidelix-raportinkirjoitusfunktiolla (ks. kuvio 13).

Tämä ohjelmalohko toimii samalla periaatteella kuin työn toteutuksessa käytetty aliohjelmarakenne. Sitä kutsutaan toisesta ohjelmasta suorittamaan siihen määritel-lyt toimenpiteet. Valmis raportti ilmestyy tekstitiedostona säätimelle, samaan kansi-oon jossa säilytetään käyttöliittymän grafiikkatiedostoja. Sieltä raportti voidaan siir-tää FTP-yhteydellä tietokoneelle, raporttia varten luotuun Word-dokumenttipohjaan.