Sulautettujen järjestelmien vikadiagnostiikan kehittäminen ohjelmistopohjaisilla menetelmillä AS-0.3100 - Automaatio- ja systeemitekniikan seminaari Jerry Pussinen Seminaarityö 11.12.2015
Tausta 11.12.2015 Automaatio- ja systeemitekniikka 2
Johdanto Miksi vikadiagnostiikkaan kannattaa panostaa? Kaikki hyötyvät $ SW- vs HW-pohjainen vikadiagnostiikka HW-pohjainen perustuu yleensä jonkunlaiseen redundanssiin laitteistossa vaatii laitteistomuutoksia SW-pohjaisella voidaan selvitä pelkällä ohjelmistopäivityksellä Eli SW-pohjainen houkuttelevampi vaihtoehto etenkin jo kentällä oleviin järjestelmiin Parhaillaan kombinaatio HW + SW 11.12.2015 Automaatio- ja systeemitekniikka 3
Vikadiagnostiikka pähkinänkuoressa 11.12.2015 Automaatio- ja systeemitekniikka 4
Vikaantuminen Vika (fault) sisäinen tai ulkoinen virhe, joka voi vaikuttaa järjestelmän toimintaan Pysyvä Ohimenevä Ajoittainen Virhetila (error) järjestelmän kokonaistila poikkeaa halutusta Laiminlyönti (failure) järjestelmän ulostulo poikkeaa halutusta VIKA VIRHETILA LAIMINLYÖNTI 11.12.2015 Automaatio- ja systeemitekniikka 5
Itsediagnostiikka Tavoite: järjestelmä pystyy itse diagnosoimaan vian Havaitseminen Eristäminen Identifiointi Tarjolla paljon erilaisia menetelmiä Sopivien menetelmien valinta on aina järjestelmäriippuvainen Resurssit (muisti, laskenteho, yms.) Millaisia vikoja järjestelmä voi kohdata elinkaarensa aikana? Kuinka luotettavasti vikoja täytyy kyetä diagnosoimaan? 11.12.2015 Automaatio- ja systeemitekniikka 6
Mallipohjaiset menetelmät 11.12.2015 Automaatio- ja systeemitekniikka 7
Ohjelman suoritusjärjestyksen virheet MENETELMIÄ: Vahtikoira-ajastin (watchdog timer) Merkintäpohjaiset menetelmät 11.12.2015 Automaatio- ja systeemitekniikka 8
Tiedonsiirron virheet MENETELMIÄ: Pariteettibitit, tarkastusummat, CRC, MD5, jne. 11.12.2015 Automaatio- ja systeemitekniikka 9
Tarkastukset (assertions) Käytännössä yksinkertaisia totuusarvolausekkeita Järkevyystarkastelut Ohjelman sisäisten muuttujien tarkastaminen Erityisesti ajoittaisten ja ohimenevien vikojen havaitsemiseen Yksinkertaisempia kuin edellä esitellyt menetelmät if(laskettu_nopeus > 10 m/s) reagointi virhetilaan else normaali suoritus 11.12.2015 Automaatio- ja systeemitekniikka 10
Lokitiedon hyödyntäminen Miksi? Itsediagnostiikkaa ei kuitenkaan saada ikinä toimimaan täydellisesti Itsediagnostiikan pettäessä ihminen voi tehdä vikadiagnoosin lokitiedon avulla Lokitietojen pohjalta voidaan tehdä tarkempaa analyysiä vikaantumismekanismeista Ongelmatilanteita ei välttämättä tarvitse toistaa, jos ensimmäisestä esiintymästä on riittävästi informaatiota Oppiminen, itsediagnostiikan jatkokehittäminen Vikadiagnostiikasta vikaprognostiikkaan 11.12.2015 Automaatio- ja systeemitekniikka 11
Lokitiedon hyödyntäminen Periaatteet: Ongelmatilanteista riittävä määrä lokitietoa Aikaleimat riittävällä resoluutiolla Lokioperaatiot eivät saa vaikuttaa merkittävästi järjestelmän normaaliin käyttäytymiseen Monimutkaisissa järjestelmissä eritasoisten lokien hyödyntäminen Mahdollisuus tarkastella lokeja ihmisluettavassa muodossa 11.12.2015 Automaatio- ja systeemitekniikka 12
Lokitiedon hyödyntäminen Haasteet: RAM/ROM kapasiteetti Ylläpito Kuinka suurelta aikajänteeltä tulisi olla saatavilla? Kuinka lopulta varastoida lokitieto, esim. pilveen? Järjestelmän mahdolliset reaaliaikavaatimukset 11.12.2015 Automaatio- ja systeemitekniikka 13
Yhteenveto SW-pohjaiset menetelmät houkuttelevia, jos vikadiagnostiikkaa kehitetään jälkikäteen. Erilaisia itsediagnostiikan menetelmiä runsaasti. Menetelmän/menetelmien valinta tulee tehdä järjestelmäkohtaisesti. Vaikka itsediagnostiikkamenetelmiä on kirjallisuudessa tarjolla laajasti, lähes kaikki keskittyvät lähinnä pelkästään vikojen havainnointiin eristäminen ja identifiointi vähemmällä huomiolla. Lokikäytännöt kannattaa valjastaa itsediagnostiikan tueksi ja osaksi itsediagnostiikan kehittämistä. 11.12.2015 Automaatio- ja systeemitekniikka 14