Kuutioiden pakkaus - Tehtävänanto

Samankaltaiset tiedostot
Autotallin ovi - Tehtävänanto

Kuutioiden pakkaus - Teoria

Kuumavesitankki - Tehtävä

CEM DT-3353 Pihtimittari

Hissi - Tehtävä. Pisteytys. Tehtävän kuvaus

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

AUTOCAD-TULOSTUSOHJE. Tällä ohjeella selitetään Autocadin mittakaavatulostuksen perusasiat (mallin mittayksikkönä millimetrit)

Tutustuminen tuotantolinjastoon

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

Aimo-ohjauspaneelin käyttöohje Sisällys

Ohjeistus pöytäkirjan käyttöön. Suomen Lentopalloliitto ry

NUUO ETÄOHJELMA PIKAOPAS. Maahantuoja Dasys Oy Kaivolahdenkatu HELSINKI helpdesk@dasys.fi

ABT NOSTURIVAA AN KÄYTTÖOHJE 3000, 5000, ja 15000kg

Helsingin yliopiston LUMA-keskus

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

Suojamaadoitettu etäohjattava pistorasia Käyttöohje

Laskuharjoitus 9, tehtävä 6

Vianova Systems Finland Oy:n Novapoint käytön tuki

Phantom / H3-3D Gimbal Kalibrointiohjeet. Aloitus:

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Finnish. Osien nimet. Tarkistuslaiteyksikkö. Sähkökaapelin tarkistuslaite. Vaihtokytkimen tarkistuslaite SM-EC79 HAKEMISTO

Scratch ohjeita. Perusteet

Lyhyt ohje Ning-verkoston hallinnoimiseksi ja muokkaamiseksi

Epooqin perusominaisuudet

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

H5P-työkalut Moodlessa

JUnit ja EasyMock (TilaustenKäsittely)

Ohjelmoinnin perusteet Y Python

OHJE Jos Kelaimeen kirjautuminen ei onnistu Windows-koneilla

ClassPad fx-cp400 OS2-päivitys. + Manager-ohjelmisto ja Physium-sovellus

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Konfiguraatiotyökalun päivitys

ILMARI KÄYTTÖOHJE

Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

PRINTER DRIVER PÄÄKÄYTTÄJÄN OPAS

CAB Plan. CAB Plan Päivitys 5.2

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

MUSTALINJA II KÄYTTÖOHJE MUSTALINJA.FI

Johdatus ohjelmointiin

KODU. Lumijoen peruskoulu

Paikkatieto-ohjelmistot maataloudessa

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

WhatsApp-ryhmien luominen ja ylläpitäminen Windows Phone -laitteilla

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

C# Windows ohjelmointi perusopas

F-Secure KEY salasanojenhallintaohjelman käyttöönotto PC -laitteella

T Tietojenkäsittelyopin ohjelmatyö. Testisarja Ray tracing. Tietokonegrafiikka-algoritmien visualisointi. Testisarja Ray tracing

Ohjelmoinnin peruskurssi Y1

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

VSP webmail palvelun ka yttö öhje

Ohjelmoinnin peruskurssi Y1

Flowcode 6 Omien komponenttien luonti 3D- tilassa Ledi

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Siemens Webserver OZW672

Sisällysluettelo 4 ONGELMATILANTEIDEN RATKAISUT... 12

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

TOOLS KÄYTTÖOHJEET OPETTAJALLE

VHS-kasetin kopiointi DVD-levylle Adobe Premiere Elements -ohjelmalla

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Autentikoivan lähtevän postin palvelimen asetukset

SIMO MOBILOG ONGELMIEN RATKAISU

Ohjeistus pöytäkirjan käyttöön. Suomen Lentopalloliitto ry

Valitse aineisto otsikoineen maalaamalla se hiirella ja kopioimalla (Esim. ctrl-c). Vaihtoehtoisesti, Lataa CSV-tiedosto

Pikaohje Aplisens APIS type 1X0 ja 2XO

VHS-kasetin kopiointi DVD-levylle Adobe Premiere Elements -ohjelmalla

Machine Control Studio - Kuinka päästä alkuun. Ohjelmointiympäristö Unidrive M ja MCi2x0 laitteille

Webinaariin liittyminen Skype for

Skype for Business pikaohje

Muuttujien määrittely

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Opinajan käytön aloittaminen koulussa/oppilaitoksessa

Käyttöohje LogiComm ohjausjärjestelmä

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Integroidun maksupäätteen lisääminen käyttöönotossa

HP ProBook 430 G5 kannettavien käyttöönotto

ABT PÖYTÄVAAKA PAKVAAKA1

Ohjelmoinnin peruskurssi Y1

HARJOITUSTYÖ: LabVIEW, Liiketunnistin

LoCCaM. LoCCaM Cam laitteiston ohjaaminen. Dimag Ky dimag.fi

Turvallinen veneily -näyttö. VesselView-ohjelmiston päivittäminen. Automaattinen WiFi-haku. Micro SD -kortin käyttäminen. Osa 1 - Alkuvalmistelut

Outlook ja Yritysportaali Androidille

TIETOJEN SIIRTO JA TARKISTAMINEN

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

Pika-aloitusopas. Langaton IP-kamera. Tekninen tuki QG4_B

Yrjö Määttänen Kokemuksia SuLVInetin käytön aloituksen

Pikaohje formaatin valmistamiseen

KÄYTTÖOHJEET Serie RV

VHS-kasetin digitointi Adobe Premiere Elements -ohjelmalla

Pelaajan tietojen lisääminen

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Tero Mononen / Kumppanuuskampus

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu

Mainosankkuri.fi-palvelun käyttöohjeita

Labyrintti. Pelihahmon toiminta. Piirrä pelihahmo (älä piirrä esim. sivusta, ettei hahmon tarvitse

Transkriptio:

Kuutioiden pakkaus - Tehtävänanto Osa 1 - Kuutioiden pakkaus Pisteytys (max 11p) Sovellus toimii oikein: 4p Toimilohkon toteuttaminen ja yksikkötestaus: 1 piste jokaiselle virheettömästi toimivalle yksikkötestitapaukselle (max 3p) Reflektointi: 4p (1p jokaisesta ominaisuudesta). Tehtävä Tarkoitus on toteuttaa automaattinen kuudioiden pakkauslinjasto. Linjasto koostuu kahdesta liukuhihnasta, jotka kuljettavat sinisiä ja vihreitä laatikoita isompaan pakkauslaatikkoon. Tarkoitus on ohjata kahta liukuhihnaa niin, että pakkaulaatikkoon syötetään juuri oikea määrä sinisiä ja vihreitä laatikoita ja sen jälkeen vaihdetaan pakkauslaatikko. Ohje sovelluksen luomiseen 1. Lataa kuutioiden pakkaus -moduulin projektipohja kurssin MyCourses-sivulta ja avaa se Codesys-ohjelmalla (Codesys V3.5 SP9 Patch 1). 2. Ensin kannattaa avata visualization välilehti ja käynnistää ohjelma (login + play). Voit nyt kokeilla ohjata koneistoa itse painamalla toimilaitteet päälle ja pois ja tutkimalla miten anturit toimii ( ks. Kuva 1 alla). Yritä saada ohjelma toimimaan oikein ja miettiä miten yksittäinen hihna toimii. Tarkoitus on, että laatikkoa täytetään oikealla määrällä sinisiä ja vihreitä kuutioita (yhtaikaa) ja sen jälkeen vaihdetaan laatikko.

Kuva 1: Kuutioiden pakkaus -visualisaation anturit ja toimilaitteet. 3. Huomaa, että kaikki anturit ja toimilaitteet ovat määritelty globaali-muuttujiksi GVL-välilehdessä (Global Variable List). Näitä muuttujia voi käyttää samalla tavalla kuin aikaisemmissa tehtävissä olevia lokaaleja muuttujia. 4. Ohjaushihnat kannattaa toteuttaa modulaarisesti. Eli tehdään molemmille hihnoilla sama ohjauslogiikka HihnanOhjaus-toimilohkolla. Luo toimilohko klikkaamalla hiiren oikealla näppäimellä vasemmalla olevan Device-työkalurivin Application kohtaa ja valitse Add Object ja sitten POU (ks Kuva 2) (POU = Program Organizing Unit). Seuraavaksi ohjelma kysyy millaisen POUn haluat luoda. Anna nimeksi HihnanOhjaus, valitse toimilohko (Function Block), valitse toteutuskieleksi FBD ja lopuksi paino Add nappia (ks. Kuva 3).

Kuva 2: Toimilohkon luominen

Kuva 3: Toimilohkon asetuksien valitseminen. 5. Avaa siis HihnanOhjaus-välilehti ja yritä toteuttaa yksittäisen hihnan logiikka. Alla on sille annettu määritelmä: Luodaan FBD-kielellä toteutettu toimilohkoa jonka rajapinassa on seuraavat sisääntulot: sensor, eli anturi (kytketään suoraan I/O rajapinnasta saatuun mittaukseen) restart (alustaa laskurin sovelluksen alussa ja silloin kun hihna käynnistetään uudestaan. Ei liity I/O rajapinnan tietoihin vaan ohjelman pitää päätellä että milloin resetoidaan) N kokonaisluku, joka on lohkon parametri ja ilmaisee kuinka monta kuutiota hihnan anturin tulee havaita ennen hihnan pysäyttämistä ja seuraavat ulostulot:

belt, hihnan liike (kytketään suoraan I/O rajapinnan toimilaiteohjaukseen) count, Laskuri (kuinka monta kuutiota anturin tulee vielä havaita ennen kuin hihna pysäytetään. Ainoa syy ottaa tämä tieto toimilohkon rajapinnasta ulos on parantaa testattavuutta, jotta testaaja näkee testatun lohkon sisällä olevan laskurin tilan. Toimilohkon yksi instanssi ohjaa sinistä hihnaa ja toinen vihreää hihnaa. 6. Kannattaa tutustua FDB kielen oppaaseen MyCourses-sivulla ja mm. tarkistaa miten CTD-toimilohko toimii. 7. Kun toimilohko on valmis sen toimintaa pitää testata. Sitä varten luodaan testausympäristö. Alla on ohje toimilohkon testaukseen: Ohje toimilohkon testaukseen 1. Luo uusi ST kielinen ohjelma nimeltä UnitTest (Application->Add Object->POU, name: UnitTest, type: Program, Implementation language: ST) 2. Luo HihnanOhjaus-lohkon instanssi samaan tapaan kuin Autotallin Ovi tehtävässä luotiin R_TRIG-instanssi ja syötä toimilohkon N parametriksi 5 ja suorita toimilohko. Alla on vielä pikainen ohje toimilohkojen käytölle ST-kielessä: Toimilohkon käyttö ST-kielessä Instanssin luominen (pääohjelman VAR-osiossa): hihna:hihnanohjaus; lohkon input/output muuttujiin pääsee käsiksi seuraavasti: hihna.muuttujan_nimi := TRUE; Lohko suoritetaan vain jos koodissa lukee: hihna(); 3. Luodaan Kuva 2:en (kuva alla) mukainen yksikkötestausympäristö käyttäen CoDeSysin valvomo-ohjelmointi tekniikoita. Valvomo luodaan klikkaamalla oikealla hiirinapilla Devices-välilehdeltä Applications ja valitsemalla Add object/visualization.

Kuva 2: HihnanOhjaus toimilohkon yksikkötestaus ympäristö 4. Kuvassa käytetyt valvomoelementit ovat lamp, dip switch ja push switch (löytyy toolboxin valikosta Lamps/Switches/bitmaps ja Measurement controls alta löytyvä bar display, sekä Common controls alta löytyvä label). 5. Labelia lukuun ottamatta, jokaisen valvomoelementin properties näytössä pitää variable tai value kohtaan käydä konfiguroimassa UnitTest ohjelmasta relevantti muuttuja, jotta nappi ja vipu muuttaa kyseisen muuttujan arvoa ja pylväs ja lamppu visualisoivat kyseisen muuttujan arvon (ks. kuva 3 alla).

Kuva 3: Napin konfigurointi UnitTest OhjausHihna toimilohkon restart parametriin. 6. Yksikkötestausta varten mennään Devices ikkunan Main taskiin ja varmistetaan että suoritusjonossa on UnitTest ja Model (ei PLC_PRG). Nyt voidaan suorittaa seuraavat yksikkötestit. Nämä demotaan assistentille ja jokeisesta oikein tomineesta yksikkötestistä annetaan pisteitä. Yksikkötestitapaus 1: Nimi: Normaali toiminta, mukaan lukien uudelleenkäynnistys Kuvaus: 1. Painetaan nappia ja vapautetaan se 2. Liikutellaan vipua ylhäältä alas kunnes laskuri on nollassa 3. Painetaan nappia ja vapautetaan se 4. Liikutellaan vipua ylhäältä alas kunnes laskuri on nollassa Odotettu käyttäytyminen: 1. Painettaessa: laskuri alustetaan arvoon N ja lamppu syttyy ilmaisemaan sitä että hihna on liikkeessä. Vapautettaessa: ei tapahdu mitään. 2. Laskurin arvo laskee yhdellä aina kun vipu käy ylhäällä. Lamppu sammuu heti kun laskuri saavuttaa nollan. 3. Kuten kohdassa 1. 4. Kuten kohdassa 4. Yksikkötestitapaus 2: Nimi: vipua liikutetaan kun nappi on painettuna Kuvaus: 1. Painetaan nappia, mutta ei vapauteta sitä

2. Liikutellaan vipua ylhäältä alas muutaman kerran Odotettu käyttäytyminen: 1. Painettaessa: laskuri alustetaan arvoon N ja lamppu syttyy ilmaisemaan sitä että hihna on liikkeessä. 2. Mitään ei tapahdu. Yksikkötestitapaus 3: Nimi: vipua liikutetaan kun laskuri on nollassa Kuvaus: 1. Painetaan nappia ja vapautetaan se 2. Liikutellaan vipua ylhäältä alas kunnes laskuri on nollassa 3. Liikutellaan vipua ylhäältä alas muutaman kerran Odotettu käyttäytyminen: 1. Painettaessa: laskuri alustetaan arvoon N ja lamppu syttyy ilmaisemaan sitä että hihna on liikkeessä. Vapautettaessa: ei tapahdu mitään. 2. Laskurin arvo laskee yhdellä aina kun vipu käy ylhäällä. Lamppu sammuu heti kun laskuri saavuttaa nollan. 3. Mitään ei tapahdu 8. Nyt voit siirtyä kirjoittamaan varsinainen pääohjelmä (PLC_PRG) SFC-kielellä. Ohjelman ajamista varten poista suoritusjonosta (MainTask-välilehti) UnitTest ja laita sen tilalla PLC_PRG. SFC-kielestä on ohjeita tämän tehtävän teoriaosuudessa. Kysy apua tarvittaessa! 9. Kun olet mielestäsi valmis pohdi alla olevia reflektiokysymyksiä.

Reflektointi Ota kantaa miten kuutioiden pakkaus -sovelluksen yhteydessä modularisointi parantaa ohjelmiston seuraavia ominaisuuksia: Luettavuus: toinen vaihtoehto olisi ollut tehdä kaikki koodi ohjelmaan (program). Vertaile vaihtoehtoja ohjelman luettavuuden näkökulmasta. Ylläpidettävyys: tulevaisuudessa joku saattaa haluta lisätä manuaaliohjausmahdollisuuden molempiin liukuhihnoihin. Kuinka suurta osaa koodista muutos koskee? Entä jos ei olisi käytetty HihnanOhjaus toimilohkoa? Testattavuus: Modularisointi mahdollistaa pienemmän osakokonaisuuden eli HihnanOhjaus lohkon testaamista ennen kuin koko sovellus on valmis. Minkälainen testiympäristö tähän tarvitaan? Edellyttääkö testiympäristö ylimääräistä työtä vai onko se askel kohti lopullista sovellusta? Skaalattavuus: tulevaisuudessa joku saattaa lisätä kolmannen liukuhihnan josta tulee punaisia kuutioita. Miten hyvin modularisointi tukee skaalautuvuutta. Näistä keskustellaan kun demoatte sovelluksen. Dokumentti jatkuu seuraavalla sivulla!!!

Osa 2 - Valvomo-ohjelmointi Pisteytys (5p) Sovellus toimii oikein (3p) Suunnitteluperiaatteita on osattu noudattaa (1p) Reflektointi (1p) Tehtävä Valvomon luonti ja PLC sovelluksen päivitys. Toteutetaan ensimmäisen osan reflektoinnissa mainittu ylläpitotarve luomalla ohjelmaan kaksi nappia, joilla voi pysäyttää ylemmän ja alemman hihnan. Ohje 1. Valvomon kautta voidaan muuttaa ohjelman muuttujien arvoja. Päivitetään ohjelmaa ja HihnanOhjaus lohkoa siten, että kyseinen hihna pysähtyy kun muutujat PauseGreen:BOOL ja PauseBlue:BOOL saavat arvon TRUE. 2. Lisätään yksikkötestausvalvomoon paussi nappi kumpaankin liukuhihnaan. Napit pitää konfiguroida niin että ne muuttaa yllämainittujen muuttujien arvoa. Alla olevassa työvaiheessa tarkempi ohje nappien luontiin. 3. Valvomossa Toolbox/Common controls:sta raahataan Button ja nimetään se Paussaa vihreä hihna. 4. Klikataan Properties/On mouse down/configuration, Valitaan Toggle a variable ja liitetään se PauseGreen ja muuttujaan. 5. Sinisen hihnan paussaus hoidetaan vastaavasti. Demoa sovellus, kun Pause-lisäominaisuus on toteutettu. Ohjelman pitäisi toimia nyt niin, että kun kyseisen hihnan paussausnappia painetaan, tämä hihna pysähtyy ja kun nappia painetaan uudestaan, normaali toiminta jatkuu. Reflektointi Ylläpidettävyys tarkoitti sitä että sovelluksen rakenteen ansiosta muutokset kohdistuvat mahdollisimman pieneen määrään koodia. Ota kantaa siihen, miten osassa 1 käytetyt suunnitteluperiaatteet tukevat ylläpidettävyyttä. Ota vertailukohdaksi ratkaisu, jossa kaikki koodi olisi ollut ohjelmassa, eli HihnanOhjaus toimilohkoa ei olisi käytetty.