Ohjelmisto osana laitetta Kari Systä Marko Leppänen 16.11.2015 1
Käytännön asioita Suurin osa 2. vaiheen palautteista ok. Sähköpostiotsikot eivät ohjeen mukaisin Ryhmännumerot puuttuvat Ohjeiden noudattamisessa suuria eroja => assareilla menee aika paljon aikaa palautteen tuottamiseen Vertaispalautteita puuttuu vielä Assarin palaute tulee ryhmäalueelle Canvasiin Seuraavan vaiheen ohjeet tulossa Läppäreitä mukaan viikkoharkkoihin 09.11.2015 TIE-02300/K.Systä 2
Viikkoharjoitusporkkanoista (Tapa 1 viime lukuvuonna) Tenttikys Harjoitystyö Tenttikys Viikkoharj Harjoitystyö + + Pisterajat Pisterajat MAX 09.11.2015 TIE-02300/K.Systä 3
Viikkoharjoitusporkkanoista (Tapa 2 parannettu painos) Tenttikys Harjoitystyö Tenttikys Viikkoharj Harjoitystyö + Huonoin pois Pisterajat + Pisterajat MAX 09.11.2015 TIE-02300/K.Systä 4
Viikkoharjoitusporkkanoista (Tapa 3 tätä käytetään nyt) Tenttikys Harjoitystyö Tenttikys Viikkoharj Harjoitystyö + Pisterajat Huonoin pois + Pisterajat MAX 09.11.2015 TIE-02300/K.Systä 5
Mielipidekysely Mitä jos kurssi olisikin yhden periodin mittainen? JOTU Kurssi X JOTU Kurssi X Kurssi X JOTU 09.11.2015 TIE-02300/K.Systä 6
Ohjelmistoja? 16.11.2015 7
Merkitys Softaa koneisiin! Ohjelmisto-osaaminen suomalaisen teollisuuden uudistajana, Etla, 2011 Suomen koko kansantalouden tasolla ohjelmistoista riippuvaista teollisuuden liikevaihtoa kertyy liki kolmannes koko liikevaihdosta eli noin 39 miljardia euroa. Suomen teollisuuden viennistä noin kolmannes eli 17 miljardia tulee tuotteista, jotka ovat ohjelmistoista riippuvaisia. Suomessa toimivat teollisuusyritykset työllistävät suoraan noin 19 500 ohjelmistokehittäjää, joista noin 9 400 työskentelee Suomessa. Teollisuuden alihankkima ohjelmistotyö työllistää melkein yhtä suuren joukon. 16.11.2015 8
Loppujen luentojen ohjelmasta PVM Aihe 02.11.2015 Projekteista erityisesti asiakasroolissa 09.11.2015 Rajapinnoista ja lisensseistä 16.11.2015 Ohjelmisto osana laitetta 23.11.2015 Vierailuluento; Olli Vistbacka (YLE) 30.11.2015 Kertausta 09.11.2015 TIE-02300/K.Systä 9
Myös Tampereella tapahtuu 16.11.2015 10
Eikä se ole hävinnyt kännykkäteollisuuden poistuessa http://www.tivi.fi/kaikki_uutiset/2015-05-25/... Oululainen Elektrobit myy herkkupalana pidetyt autoohjelmistot lähinnä rengasvalmistajana tunnetulle saksalaiselle Continentalille. Kauppahinta on hurjat 600 miljoonaa euroa. http://www.hs.fi/autot/a1415763122008 Perinteiset mittaristot korvautuvat uusissa Audeissa digitaalisilla näytöillä, joiden tekniikasta vastaa espoolainen yritys Rightware. Yhtiön toimitusjohtaja Jonas Geustin mukaan nyt julkistettu sopimus on jatkumoa aiemmalle yhteistyölle. Rightwaren tekniikkaa on Audi A3:ssa, ja uusissa malleissa A6 ja TT. 09.11.2015 TIE-02300/K.Systä 11
Pirkanmaalla vahva konepajaosaamisen perinne Sandvik, John Deere, Metso, Valmet, Cargotec jne. Sandvikin edustaja Aamulehdessä kehui TTY:n vaikutusta Cargotecin tutkimuslaitos Ruskossa osittain TTY:n läheisyyden vuoksi 16.11.2015 12
Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 16.11.2015 13
Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 16.11.2015 14
Koodia on paljon 16.11.2015 15
http://www.informationisbeautiful.net/visualizations/million-lines-of-code/ "High-end" auto Facebook Windows 7 Symbian Boeing 787 Android Chevy Volt Firefox Xbox HD DVD soitin Windows 3.1 Avaruussukkula Sydämentahdistaja 0 50000000 100000000 150000000 09.11.2015 TIE-02300/K.Systä 16
Nykyajan elämää 16.11.2015 17
Erityispiirteitä Koneenohjausjärjestelmillä on vahvoja laatuvaatimuksia johtuen sovellusalueen erityispiirteistä. Koneenohjausjärjestelmien elinkaari on pitkä, niiden turvallisuus on ensiarvoisen tärkeää, mutta toisaalta saavutettavuutta ei saa vaarantaa. Järjestelmät ovat usein hajautettuja ja niiden on reagoitava nopeasti niin ulkoisiin ärsykkeisiin kuin ohjaukseenkin. Nämä asiat yhdessä tekevät järjestelmien suunnittelusta haastavaa jopa ohjelmistoammattilaiselle ja usein järjestelmien suunnittelijoiden on oltava myös sovellusalueen asiantuntijoita. Järjestelmät ovat osa tuotantoketjuja ja niiden on toimittava yhteen. 16.11.2015 18
Työkoneen rakenne 16.11.2015 19
Yleinen työkoneen rakenne Kone Kouran ohjaus Rungon ohjaus Voimansiirron ohjaus PC väylä Tuotantojärjestelmä Etäyhteys 16.11.2015 20
http://www.aa1car.com/library/can_systems.htm Yhteensä jopa 30-50 kpl 09.11.2015 TIE-02300/K.Systä 21
Siis missä se 100 miljoonaa? Uudelleen käyttöä 09.11.2015 TIE-02300/K.Systä 22
http://www.dailytech.com/charlie+miller+releases+op en+source+car+sabotage+toolkit/article33308.htm 09.11.2015 TIE-02300/K.Systä 23
Käyttäjäkokemus 16.11.2015 24
Ympäristöarvot 16.11.2015 25
Sulautettu ohjelmisto (Embedded software) Osa laitetta ja sen toiminnallisuutta Usein piilossa käyttäjän ei tarvitse tietää ohjelmistosta Myydään laitteen mukana 09.11.2015 TIE-02300/K.Systä 26
Luennon 2 kalvo TTY POP 31.08.2015 TTY TIE-02300/Kari Systä 27
Kuvitteellinen sulautettu ohjelmisto (aikojen alussa) X: Muistiosoite A/D muunnos Ohjelmakoodi Y: Muistiosoite Vahvistin ja kytkin Read X IF X < 0.0 THEN WRITE 1 to Y WAIT 10ms Repeat Tuohon ohjaussilmukkaan on sitten helppo lisätä monimutkaisempia säätöalgoritmeja. 09.11.2015 TIE-02300/K.Systä 28
Monimutkaisemmat järjestelmät usein keskeytyspohjaisia Logiikka Keskeytyspalvelu X: Muistiosoite A/D muunnos Keskeytysvektori Y: Muistiosoite Vahvistin ja kytkin IF X < 0.0 THEN WRITE 1 to Y WAIT 10ms return 09.11.2015 TIE-02300/K.Systä 29
Nykyisin yleensä käyttöjärjestelmä Sovellus Käyttöjärjestelmä Keskeytyspalvelu Laiteajuri Keskeytysvektori Logiikka X: Muistiosoite A/D muunnos Y: Muistiosoite Vahvistin ja kytkin Reaaliaikakäyttöjärjestelmät Tavanomaiset (Linux, Android) 09.11.2015 TIE-02300/K.Systä 30
Taas yksi sattumus: Toyotan automaattinen kaasupoljin Kaasupoljin hirtti kiinni eikä auto pysähtynyt edes jarrulla Kaasupoljin ei ole enää mekaaninen ja vaijerivälitteinen vaan kaasupolkimen asento välittyy muuttujan arvoksi ohjausohjelmistoon. Analyysi osoitti että ohjausohjelmiston koodi oli spagettia 09.11.2015 TIE-02300/K.Systä 31
Ongelmia Iso osa funktioista oli liian monimutkaisia Testattavaksi Ylläpidettäväksi Mm 11000 globaalia muuttujaa Puutteellinen turvamekanismi (fail safe) Prosessi oli puutteellinen Koodausstandardeja ei oltu noudatettu (81514 standardin vastaista kohtaa) Toyota oli päättänyt käyttää omaa standardiaan Mutta sitäkään ei oltu noudatettu 09.11.2015 TIE-02300/K.Systä 32
Todistajan kalvoista (http://www.safetyresearch.net/librar y/barrslides_final_scrubbed.pdf) 09.11.2015 TIE-02300/K.Systä 33
Samasta 09.11.2015 TIE-02300/K.Systä 34
Sulautettujen järjestelmien haasteita Suoritusympäristö usein primitiivinen Vähän muistia, hidas prosessori Ei oikeaa käyttöjärjestelmää Testaaminen vaikeaa Laitteisto ei välttämättä ole valmis Virheilmoitukset ja muut ylellisyydet eivät ole saatavilla Luotettavuusvaatimukset suuria Käyttäjät eivät siedä virhetoimintoja Reaaliaikavaatimukset Virheiden korjaaminen ohjelmistopäivityksillä vaikeaa => kerralla kuntoon? Osaamisen puutteet - kehittäjät eivät ole ohjelmistoeksperttejä 09.11.2015 TIE-02300/K.Systä 35
Viimeisimmät haasteet Ohjelmiston päivitettävyys Huollossa Kentällä Osa Internettiä Etädiagnoosi Datan kertuu Internet of things Industrial Internet 09.11.2015 TIE-02300/K.Systä 36
Komponenttipohjaisuus Sulautettu järjestelmä koostuu tuotteesta, joka koostuu puolestaan ohjaimista. Ohjaimilla on oma rautansa, jota ohjaa raudan oma firmware. Firmwaren päällä sitten sovelluskohtainen ohjelmisto. Tämä hw+fw+sw on yksittäinen komponentti järjestelmässä. Kaikilla osasilla on oma versionsa. Esimerkki: näyttö ja sen ohjausohjelmisto 16.11.2015 37
ESIMERKKI KONEENOHJAUSJÄRJESTELMÄT 09.11.2015 TIE-02300/K.Systä 38
Koneenohjausjärjestelmien erikoisuuksia Monesti raudan valmistamisella pitkä perinne, ohjelmisto suhteellisen uusi tulokas. Kuitenkin ohjelmisto usein avainasemassa uusien rahaa tuottavien ominaisuuksien teossa. Tuotteen pitkä elinkaari Tiettyä tuotetta aletaan suunnittelemaan ehkä jo 5 vuotta ennen julkaisua Julkaistua tuotetta valmistetaan 5 vuotta Viimeisintäkin valmistunutta konetta tuetaan 10 vuotta Koneisiin lisätään uusia ominaisuuksia, tuotteenhallinta tärkeää Silti kentällä päivittäminen saattaa olla hankalaa 16.11.2015 39
Koneenohjausjärjestelmien erikoisuuksia Turvallisuus ja luotettavuus Kone voi aiheuttaa kuolonuhreja Kone voi aiheuttaa merkittäviä vahinkoja Kone on kallis ja sen downtime kallista Lainsäädäntö: ISO EN13849 tai IEC61508 ja IEC6260 Alihankinta Osa järjestelmistä ostetaan muilta yrityksiltä Rajapinnat tärkeitä Tietoturva tärkeää 16.11.2015 40
Koneenohjauksen erityispiirteitä Omat legacy ohjelmistot ja komponentit, COTS Pitkä elinkaari on yksi syy Olemassa oleva toimiva koodi on uudistusten pahin vihollinen COTS komponenttien tuki Ohjelmistot osana COTS-komponentteja Äärimmäinen esimerkki: moottori Saman softan pitää toimia eri alustoilla. Korporaation laajuiset alustat 16.11.2015 41
Koneenohjauksen erityispiirteitä Ohjelmistojen alihankinta: Perinteisesti konepajayritykset eivät miellä itseään ohjelmistotaloina Alijärjestelmät ostetaan => monitoimittajaprojekti, joka on usein perinteisillekin ohjelmistotaloille hankalaa. Hajautettu ohjelmistokehitys (P. Abrahamsson: Ei toimi). Alihankkijalla ei ole useasti aivan yhtä vahvaa sovellusaluetietämystä ja tämä joudutaan dokumentoimaan / kommunikoimaan alihankkijalle. Osaaminen myös vuotaa ulos talosta. NDA:t ja IPR tärkeää 16.11.2015 42
Koneenohjauksen erityispiirteitä Arkkitehtuuri usein väyläpohjainen ja hajautettu, lisänä M2M -kommunikaatio Hajautuksesta saadaan hallittavuutta (separation of concerns) Kaapelointikustannukset vähenevät Kokonaiskuva hämärtyy Hajautus, reaaliaikaisuus, järjestelmien järjestelmät Sulautettu ympäristö Työkalujen saatavuus voi olla huono Laskentateho? Palvelut 16.11.2015 43
Yleisiä ongelmia Testaus hankalaa Rautaa ei välttämättä ole projektin alussa saatavilla Reaktiivisuus Osajärjestelmä riippuu kokonaisuudesta Yksittäisen ohjainmoduulin toiminnasta ei välttämättä havaintoja ulkopuolelle ei kunnon testausinfraa/-työkaluja Alihankkijan vaikeudet testata usein paljon pahempia Testauksen (huonoja?) ratkaisuja: Itsetehtyjä testausstubeja, regressiotestaus vaikeaa testaillaan irtopurkilla omalla työpöydällä, vaikeaa integraation suhteen testaillaan simulaattorilla, jota tarvitaan muuhunkin testaillaan koneella, jota on vaikea saada käyttöön, kallis laite 16.11.2015 44
Ongelmat jatkuvat Henkilöstöongelmat kehityspuolella koko kehitys henkilöityy yhteen/kahteen toimijaan osajärjestelmäkehitys omassa talossa, kokonaisuuden hallinta näiden henkilöiden kiire vanhojen projektien kanssa liikaa palavereja (riippuvuudet muihin osiin/rautaan, alihankinnan järjestäminen) ei aikaa keskittyä omaan kehitystyöhön Huoltobisnes tärkeä tulolähde Etähuolto Ennakoiva huolto Halutaan kuitenkin nähdä joku paikan päällä Vendor lock-in Kehitysympäristön yhtenäistäminen Työkalujen elinkaari 16.11.2015 45
Ongelmat jatkuvat Vaatimustenhallinta Toiminnalliset vaatimukset usein hyvin hanskassa Ei-toiminnalliset vaatimukset hämärtyvät Asiakkaan käsite Mistä vaatimukset tulevat? Muut sidosryhmät Yleisiä ongelmia: Kehityksen ketteryys Paikallinen minimi ei ole koko systeemin minimi Dokumentaatio ei ole hyvä kommunikointiväline ja dokumenttien ylläpito on kallista Avoimuus vastaan suljetut ratkaisut 16.11.2015 46
Projekti vai tuote? Pitää muistaa tehdäänkö sarjatuotantoa vai projektitoimituksia. Tämä on keskeinen bisnespäätös ja vaikuttaa moniin asioihin. Bisnesmalliin sopimattomat toimintatavat aiheuttavat ongelmia softapuolellakin Huoltaako järjestelmiä tehtaan R&D vai erillinen huoltoorganisaatio? Joskus jonkun osan parametrisointi voi esim. vaatia oman työkalun, joka ei ole yhteensopiva tehtaan muiden työkalujen kanssa. Huoltopaketti koostuu valtavasta määrästä sovelluksia, jokainen sopii tiettyyn tuotekonfiguraatioon -> ei toimi sarjatuotannossa. 16.11.2015 47
Jos valmiissa tuotteessa ongelmia kentällä Ilman koneen diagnostiikkaa huolto ei tiedä helposti mikä on vialla, paikalle tarvitaan softan tekijä, joka voi softadiagnostiikkatyökaluilla debugata konetta. Tästä seuraa ongelmia Softamiehen paikalle saaminen kestää Softamies on paikalliseen huoltoon verrattuna kallis, etenkin matkat huomioiden Softamies on pois muista töistään. Usein paikalla selviää, että varaosia ei tarvita vaan riittää huonon kontaktin parantaminen tai kytkimen säätö tms. 16.11.2015 48
OMAT TEE-SE-ITSE KOKEILUT OVAT NYKYISIN HELPPOJA 09.11.2015 TIE-02300/K.Systä 49
Arduino 16.11.2015 50
Blink - the code // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinmode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalwrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalwrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } 16.11.2015 51
Lets make some noise long i; boolean o; long p; int k; void setup() { // pinmode(3,output); pinmode(13,output); pinmode(8,output); Serial.begin(9600); } i = 0; p = 8000; o = true; k = 0; void loop() { digitalwrite(3,high) ; delaymicroseconds(p) ; digitalwrite(3,low); delaymicroseconds(p) ; } i = i + 1; 16.11.2015 52
Loppujen luentojen ohjelmasta PVM Aihe 02.11.2015 Projekteista erityisesti asiakasroolissa 09.11.2015 Rajapinnoista ja lisensseistä 16.11.2015 Ohjelmisto osana laitetta 23.11.2015 Vierailuluento; Olli Vistbacka (YLE) 30.11.2015 Kertausta 09.11.2015 TIE-02300/K.Systä 53