Operaattoripaneelien ohjelmiston kehitys RTU-tuoteperheeseen
Hyttinen, Tuomas (2021)
Hyttinen, Tuomas
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202102011772
https://urn.fi/URN:NBN:fi:amk-202102011772
Tiivistelmä
Netcon 200 on Netcontrol Oy:n kehittämä, keskijänniteverkon jakelumuuntamoiden ala-asemaksi tarkoitettu RTU-tuoteperhe. Netcon 200 -järjestelmä koostuu 1-4 laiteyksiköstä, joista kukin sisältää kiinteän operaattoripaneelin eli HMI:n. Paneeleja ohjaa pääyksikössä toimiva ohjelma, HMI-ajuri, joka asettaa paneelissa näkyvien indikaattoriledien tilat, käsittelee käyttäjän napinpainallukset ja toteuttaa niiden edellyttämät ohjaukset. Insinöörityön tavoitteena on ollut suunnitella ja toteuttaa Netcon 200 -järjestelmän HMI-ajuri. Ohjelmisto on toteutettu C++-kielisenä Linux-sovelluksena, ja sen tapahtumapohjainen arkkitehtuuri perustuu olio-ohjelmoinnin periaatteisiin.
Ohjelmisto koostuu luokista, kuten paneelikäsittelijöistä, kytkinkäsittelijöistä, ledikäsittelijöistä ja tietokantaluokasta, joista kukin vastaa omasta osa-alueestaan HMI:n toiminnassa. Tietokantaluokka kokoaa ajurin seuraamat signaalit ja sen käyttämät komennot omiin tietorakenteisiinsa ja jakelee tietoa muuttuneista signaalien arvoista käsittelijöille. Monet käsittelijäluokista on toteutettu tilakoneina ohjelmalogiikan selkeyttämiseksi. Sovelluksessa on myös käytetty ulkoisia apukirjastoja kuten Libcurlia HTTP-yhteyksien muodostamiseen ja Libeventiä tapahtumapohjaisen arkkitehtuurin pohjana. HMI-ajurille on tehty sekä manuaalista että automatisoitua testausta. Automaattinen testaus on toteutettu Catch-testiympäristössä yksikkötesteinä, jotka käännetään kohdelaitteen arkkitehtuurille sopivaksi testibinääriksi ja suoritetaan sen komentokehoitteessa.
Lopputuloksena voidaan sanoa ohjelmiston toimivan hyvin ja täyttävän sille asetetut vaatimukset. Ohjelmisto soveltuu käytettäväksi Netcon 200 -tuoteperheen laitteissa operaattoripaneelien ohjaukseen. HMI-ajurin suorituskyky on hyvä ja resurssien käyttö kohtuullista. Potentiaalisia kehityskohteita ovat esimerkiksi ajurin käynnistymisvaiheen järjestelmälle aiheuttamien CPU-käyttöpiikkien tasoittaminen, joidenkin suuriksi kasvaneiden luokkien jakaminen pienempiin yksiköihin ja testiautomaation kehittäminen.
Ohjelmisto koostuu luokista, kuten paneelikäsittelijöistä, kytkinkäsittelijöistä, ledikäsittelijöistä ja tietokantaluokasta, joista kukin vastaa omasta osa-alueestaan HMI:n toiminnassa. Tietokantaluokka kokoaa ajurin seuraamat signaalit ja sen käyttämät komennot omiin tietorakenteisiinsa ja jakelee tietoa muuttuneista signaalien arvoista käsittelijöille. Monet käsittelijäluokista on toteutettu tilakoneina ohjelmalogiikan selkeyttämiseksi. Sovelluksessa on myös käytetty ulkoisia apukirjastoja kuten Libcurlia HTTP-yhteyksien muodostamiseen ja Libeventiä tapahtumapohjaisen arkkitehtuurin pohjana. HMI-ajurille on tehty sekä manuaalista että automatisoitua testausta. Automaattinen testaus on toteutettu Catch-testiympäristössä yksikkötesteinä, jotka käännetään kohdelaitteen arkkitehtuurille sopivaksi testibinääriksi ja suoritetaan sen komentokehoitteessa.
Lopputuloksena voidaan sanoa ohjelmiston toimivan hyvin ja täyttävän sille asetetut vaatimukset. Ohjelmisto soveltuu käytettäväksi Netcon 200 -tuoteperheen laitteissa operaattoripaneelien ohjaukseen. HMI-ajurin suorituskyky on hyvä ja resurssien käyttö kohtuullista. Potentiaalisia kehityskohteita ovat esimerkiksi ajurin käynnistymisvaiheen järjestelmälle aiheuttamien CPU-käyttöpiikkien tasoittaminen, joidenkin suuriksi kasvaneiden luokkien jakaminen pienempiin yksiköihin ja testiautomaation kehittäminen.