AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Väliraportti PiccSIM - TrueTime integrointi Henri Öhman 21.3.2012
1. Projektityön tavoite PiccSIM on Aalto-yliopistolla kehitetty simulointiympäristö, joka on tarkoitettu langattomien säätöjärjestelmien mallintamiseen. PiccSIM-ympäristöön kuuluu Matlab/Simulink-lohkokirjasto ja Ns- 2 verkkosimulaattori. Verkkosimulaattori kykenee simuloimaan dataa tietoliikenneverkossa paketin tarkkuudella ottaen huomioon mm. reitityksen, siirtoprotokollan ja langattoman signaalin vaimenemisen. Simulink-kirjasto mahdollistaa säätöjärjestelmän ja tiedonsiirtoverkon yhteisvaikutusten mallintamisen ja simuloinnin. Lundin yliopistolla Ruotsissa on kehitetty vastaavanlainen simulointiympäristö, TrueTime, joka on toteutettu kokonaan Simulinkissä. TrueTimen vahvuus on mikrokontrollerin ja säätöjärjestelmän hyvä simulointi, kun taas PiccSIMin vahvuutena on tutkimuksessa laajassa käytössä olevan verkkosimulaattorin hyödyntäminen tiedonsiirtoverkon tarkassa mallintamisessa. Tässä työssä tavoitteena on yhdistää simulaatiotyökalut niin, että saadaan käyttöön molempien vahvuudet. TrueTimen mikrokontrolleripohjaisen säätöjärjestelmän mallinnuksen Simulink-osuus liitetään PiccSIMiin, johon lisätään myös tarvittavat lohkot PiccSIM-TrueTime-Ns2 kommunikaatiota varten. Projektin tuloksena syntyy siis seuraavaa: - PiccSIM-kirjaston versio, jossa on TrueTimen kernel-ominaisuudet mukana. - Uusia ominaisuuksia havainnollistamaan laaditaan simulointiesimerkki. - Projektin aikana syntyy kolme dokumenttia: suunnitelma, väliraportti ja loppudokumentaatio. Tehdyt muutokset ja ohjeet kirjaston kääntämiseksi myös dokumentoidaan PiccSIMin manuaaliin. Projektityön aloituspalaverissa sovittiin projektityön laajuudeksi 3 op eli n. 81 tuntia työtä. Viikottaiseksi työpanokseksi saadaan 16 viikon kestoiselle projektille n. 5 tuntia. 1.1. Väliraportti 21.3.2012 Muutokset alkuperäisessä suunnitelmassa Projektin aikataulutusta muutettiin radikaalisti alkuperäisen suunnitelman laatimisen jälkeen. Muutoksen syynä oli päätös yrittää saada simulointiympäristöjen integroinnista ja vertailusta tehtyä artikkeli Vaasan yliopiston järjestämään langattoman kommunikoinnin ja sovellusten workshopiin. Työt jaettiin siten, että projektityön ohjaaja, Mikael Björkbom, otti päävastuun artikkelin kirjoitamisesta ja projektityön tekijä, Henri Öhman, sai vastuulleen simulointiympäristöjen integroinnin ohjelmoimisen kiihdytetyllä aikataululla tasolle, jolla voitaisiin suorittaa artikkelin vaatimat simuloinnit ennen artikkelin ensimmäistä deadlinea. 2
Vaasan yliopisto halusi ensimmäisen version paperista 19.3.2012 mennessä. Valmis paperi pitää olla lähetettynä 5.4.2012 mennessä. Paperin hyväksymisestä tulee päätös 30.3.2012 mennessä ensimmäisen lähetetyn version perusteella. Lisätietoja: 3rd Workshop on Wireless Communication and Applications (WoWCA 2012) Wireless Automation & Tactical Communication Systems http://cs.uwasa.fi/wowca2012/index.html 2. Tehtävät projektissa 2.1. PiccSIM TrueTime integraation implementointi Tehtävä pitää sisällään selvitysvaiheen, implementaation ja testauksen. Selvitysvaiheessa perehdytään simulointijärjestelmän osiin, PiccSIM:iin, TrueTimeen ja ns-2 verkkosimulaattoriin sekä konfiguroidaan kehitys- ja testausympäristö projektia varten. Selvitysvaihe pitää sisällään myös TrueTimen ohjelmakoodiin syventymisen ja muutosten suunnittelun alustavalla tasolla. Implementointivaiheessa toteutetaan selvitysvaiheessa täsmentyneen suunnitelman pohjalta itse integraatio kooditasolla. Implementoinnin aikana muutoksien toimivuutta pyritään testaamaan pienissä osissa. Integraation viimeinen vaihe on kokonaisjärjestelmän toimivuuden testaus mahdollisimman kattavasti. Tässä vaiheessa pyritään testaamaan, että kaikki tehdyt muutokset toimivat yhdessä. Integraatiovaihe on luultavasti projektin aikaa vievin osuus, joten sille varataan suurin osa ajasta projektisuunnitelmassa. 2.2. Käyttöliittymän päivittäminen PiccSIM:ssä Projekti sovittiin alun perin tehtäväksi 3 op laajuisena, jolloin käyttöliittymän päivittämiselle jää vähemmän aikaa. Vähimmäisenä vaatimuksena on kuitenkin Simulink-käyttäjärajapinnan toteuttaminen integroiduille TrueTime-lohkoille. Tähän vaiheeseen voidaan keskittyä tarkemmin, mikäli implementaatio valmistuu etuajassa. 2.3. Simulointiesimerkki Projektissa laaditaan simulointiesimerkki, jolla pyritään havainnollistamaan PiccSIM TrueTime integroinnin tuomaa tarkentunutta simulointia. Esimerkissä pyritään demonstroimaan PiccSIM:iin 3
tuodut ominaisuudet mahdollisimman kattavasti. Esimerkin yhteydessä on luontevaa esittää käyttöohjeet integroiduille ominaisuuksille projektin dokumentaation puolella. 2.4. Projektin dokumentointi Projektia dokumentoidaan kolmessa iteraatiossa. Ennen implementaation aloittamista laaditaan projektisuunnitelma, jossa määritellään työvaiheet ja alustava aikataulu sekä arvioidaan riskejä. Projektin puolivälissä tehdään väliraportti, jossa selvitetään projektin etenemistä. Viimeiseksi laaditaan lopullinen dokumentaatio, joka tulee sisältämään työselostuksen, simulaatioesimerkin selostuksineen sekä TrueTime-kirjastoon tehtyjen muutosten selostuksen periaatetasolla. PiccSIMin dokumentaatioon päivitetään tehdyt muutokset, sekä lisätään ohjeet TrueTimesta integroitujen lohkojen kääntämiseen. 2.5. Väliraportti 21.3.2012 Työn tilanne Väliraporttia kirjoitettaessa ensimmäinen versio PiccSIM-TrueTime integraatioon liittyvästä artikkelista on lähetetty eteenpäin. Artikkelissa tehtiin simulointeja ensin molemmilla simulointijärjestelmillä, PiccSIM:llä ja TrueTimella, erikseen ja sen jälkeen käyttäen mallia, jossa käytettiin projektissa ohjelmoitua yhdistettyä simulointijärjestelmää. Simulointeja vertailtiin toisiinsa. Alkuperäisessä suunnitelmassa asetettujen osatehtävien valmiusastetta tarkastellaan seuraavien alaotsikoiden alla. 2.5.1 PiccSIM TrueTime integraation implementointi Integroinnin toteutus on hyvällä mallilla. Kaikki päätoiminnot ovat ohjelmoitu ja toimivalla tasolla. TrueTimeen on ohjelmoitu funktiot, jotka mahdollistavat kommunikoinnin ns-2 verkkosimulaattorilla käyttäen PiccSIM:in määrittelemää UDP-pakettiformaattia. Integraatiota on testattu erilaisilla Simulink-malleilla, algoritmeja (esim. tavujen pakkaaminen ja purkaminen) on testattu erikseen pienemmillä testiohjelmilla. Aikasynkronointi simulointiajan ja simuloitavan ns-2 askelen välillä hoidetaan PiccSIM:n synkronointilohkolla. Lisätyt TrueTime-kernelistä kutsuttavat mex-funktiot: ttaddns2node(node_number, ip) Rekisteröi verkkosolmun ja ns-2 simulaattorin ip-osoitteen. Käytetään TrueTime kernelin initialisointiskriptissä. ttattachns2handler(node_number, handler_name) 4
Liittää keskeytysten käsittelijään verkkokeskeytyksen ns-2:lta. Mahdollistaa tapahtumapohjaisen simuloinnin vastaanotettujen viestien pohjalta. Käytetään TrueTime kernelin initialisointiskriptissä, jossa ensin luodaan keskeytysten käsittelijä TrueTimen omalla käskyllä ttcreatehandler(handler_name). Keskeytyspohjaista viestien vastaanottoa varten on lisätty kernelin keskeytysrutiineihin ns- 2 verkkokeskeytyksen pollaus. ttsendns2(receiver_node, sender_node, data_type, timestamp, bytes, *data) Lähettää mielivaltaisen datarakenteen vastaanottajasolmuun. Datan voi tyypittää käyttäjän antamalla kokonaisluvulla, kuten PiccSIM:issä. Tällä hetkellä lähettäminen on toteutettu alustavana versiona vain yhdelle tietotyypille (double). Tämä laajennetaan tukemaan mielivaltaista dataa. Käyttäjän pitää tietää datan koko, kuten PiccSIM:in lohkoissakin. ttrecvns2(node_number, bytes) Vastaanottaa verkkosolmuun lähetetyn tunnetun kokoisen viestin. Funktion paluuarvona tulevat lähettäjäsolmu, datatyyppi, aikaleima sekä itse data. 2.5.2 Käyttöliittymän päivittäminen PiccSIM:ssä Käyttöliittymään ei ole tehty muutoksia. TrueTimen ohjelmointiin on kulunut sen verran paljon aikaa, että tätä PiccSIM:in graafista käyttöliittymää (Toolchain) ei todennäköisesti ehditä parantelemaan tähän projektiin varatun ajan puitteissa. 2.5.3 Simulointiesimerkki Workshop-artikkelia varten on laadittu simulointiesimerkki, jota käytetään pohjana, kun laaditaan simulointiesimerkki 2.5.4 Projektin dokumentointi Erillistä dokumentointia ei ole vielä aloitettu. Ohjelmakoodia on kommentoitu. 5
Tunnit AS-0.3200 Automaatio- ja systeemitekniikan projektityöt 3. Aikataulu Projektin aikataulu laadittiin alun perin s.e. projektia työstettäisiin tasaisella viikkotahdilla. Kuitenkin langattomien järjestelmien workshopia varten simulointijärjestelmän piti olla toimivassa kunnossa viikon 11 loppuun mennessä. Tavoitteeseen päästiin, tosin näyttää siltä, että projektityö menee ylitöiksi alkuperäiseen mitoitukseen nähden (81 h). Taulukossa 1 on esitetty alkuperäinen aikataulusuunnitelma, toteutunutta ajankäyttöä on verrattu suunniteltuun kuvassa 1. 90 Ajankäyttö 80 70 60 50 40 30 20 10 0 Kuva 1. Ajankäytön seuranta; suunniteltu ajankäyttö punaisella, toteutunut ajankäyttö virheällä. 6
Taulukko 1. Projektin aikataulun suunnitelma Viikko Työvaihe Kurssin tapahtumat 3 Selvitysvaihe + suunnittelu Aiheiden jako, projektin aloituspalaveri 4 5 Dokumentointi Projektisuunnitelman DL ja demotilaisuus 6 7 Implementointi 8 (TrueTime-integrointi) 9 10 11 12 Dokumentointi Väliraportin DL ja demotilaisuus 13 Implementointi 14 Testaus 15 16 Simulointiesimerkki 17 Dokumentointia 18 19 Projektin demotilaisuus 20 (Dokumentointi) 21 Dokumentaation DL Selvitysvaihe Implementointivaihe Testaus Dokumentointi 7
4. Riskinhallinta Tässä osiossa listataan joitain mahdollisia riskejä projektin onnistumiselle. Koska työ on puhtaasti ohjelmistoprojekti, ei aikataulu riipu kovikaan vahvasti ulkoisista tekijöistä esim. osien tilailemisesta ja odottelusta. Riskit liittyvät enemmän projektin aikataulutukseen ja organisointiin. Väliraportti 21.3.2012: Riskeistä lähimpänä toteutumista oli ehkä listatuista riskeistä ensimmäinen. TrueTimen ohjelmakoodiin tutustuminen vei paljon aikaa, mikä loi paineita myös aikataulun pitämisen suhteen, varsinkin kun aikataulua oli tiivistetty alkuperäisestä. Riski: TrueTime osoittautuu hirviöksi ja harhaudutaan tavoitteesta Mikä on riskin toteutumisen todennäköisyys? Alustavan katselmoinnin perusteella koodi näyttää hyvin kommentoidulta ja dokumentaatiota on riittävästi. Toisaalta suunnitelman kirjoitushetkellä TrueTime on vielä musta laatikko, eikä implementaation yksityiskohtiin ole ehditty paneutua huolellisesti. Riskin vaara on olemassa. Miten riskin mahdollisuus voidaan minimoida? Tutustutaan ensin huolellisesti koodiin, minkä jälkeen suunnitellaan tehtävät muutokset. Ennen implementoinnin aloittamista hyväksytetään tehtävät muutokset ohjaajalla. Mitä tehdään, jos riski toteutuu? Otetaan yhteyttä ohjaajaan / korkeampiin voimiin. Riski: Aikataulu uhkaa levitä projektin loppua kohti Mikä on riskin toteutumisen todennäköisyys? On mahdollista, että suunniteltu aikataulu ei kohtaa tehtävän vaatimuksien kanssa. Riskin todennäköisyys on keskisuuri. Miten riskin mahdollisuus voidaan minimoida? Tarkastellaan suunnitelmassa pysymistä esim. viikkotasolla, ja päivitetään suunnitelmaa tarvittaessa. Mitä tehdään, jos riski toteutuu? Allokoidaan projektia varten lisää tunteja. 8
Riski: Sairastuminen / muu yllättävä tekijä Mikä on riskin toteutumisen todennäköisyys? Riskin todennäköisyys on pieni. Allekirjoittanut sairastelee harvoin. Miten riskin mahdollisuus voidaan minimoida? Työstetään projektia tasaisella tahdilla suunnitellun aikataulun mukaisesti. Aikataulu on suunniteltu siten, että siinä on liikkumavaraa mahdollisten odottamattomien tilanteiden varalle. Mitä tehdään, jos riski toteutuu? Jos ei pää irtoa, voi projektia työstää tavalla tai toisella pienessä flunssassakin. 9