Ohjausjärjestelmien jatkokurssi kevät 2006 Laboraatiot 7-12 Laboraatio 7. Konenäkö robotiikassa Konenäkökamera liitetään robottiohjaimeen. Järjestelmä ohjelmoidaan niin, että robotti lajittelee kappaleita kameralta saamansa informaation perusteella. Kameran ja robottiohjaimen ohjelmat viritetään toimimaan ensin erillisinä ja laitteet liitetään sitten yhteen. 7.1 Kamera ohjelmoidaan ensin tunnistamaan kortit ja lähettämään tieto sarjaliikenneporttiin Data-linkin avulla. Sarjaliikenneparametrit asetetaan olemaan 9600, Even, 8 databittiä 2 stop-bittiä Lähetettävä merkkijono määritellään olemaan String1 jne Kamera määritellään toimimaan ulkoisella liipaisulla External trigger Onnistunut tulkinta esim kortista pata tuottaa sitten merkkijonon PATA Robotti tarvitsee merkkijonon aikanaan muodossa PRNPATA Toiminta testataan kytkemällä sarjaliikennekaapeli mikron sarjaporttiin ja käynnistämällä mikrossa Hyper Terminal, jonka Tietoliikenneparametrit asetetaan samoiksi Kameran lähettämän merkkijonon pitäisi näkyä ruudulla
7.2 Robotti ohjelmoidaan lajittelemaan kortteja eri pinkkoihin saamansa kameran viestin perusteella Robotti ohjelmoidaan liipaisemaan kameran kuvaus lähdöllään 4 silloin, kun se on käännellyt kortin oikeaan paikkaan. Lähtö 5 on johdotettu ohjaamaan imukuppia. Mallina on kaavailu robottiohjelmaksi Oikea asento selvitetään kääntelemällä robottia käsiohjauksella Silloin robotin pitää olla Teach-tilassa ja käsiohjaimessa avain Enable- asennossa ja kuolleen miehen kytkin ja Servo pidettynä pohjassa Asento on luettavissa tietokoneen COSIROP-ohjelman paikkatietoihin Online...Robot position -> PC Robotti ohjelmoidaan lukemaan kortin tieto sarjaliikenneportista INPUT #1,C1$ ja kopiomaan sen jälkeen vientipaikka taulukosta if ehdolla kuvatunkaltaisella komennolla IF C1$= PATA THEN POS3=POS13 ENDIF Tämän jälkeen kortti viedään ohjelmoituun paikkaan ja haetaan seuraava Ohjelman rakennekaavailu on erillisellä liitteellä.
7.3 Toiminta testataan antamalla robotille tieto kortista Hyper Terminalilla Sarjaliikenneparametrit asetetaan olemaan 9600, Even, 8 databittiä 2 stop-bittiä Tieto kortista esim PATA pitää antaa muodossa PRNPATA ja vielä rivinvaihto perään 7.4 Robotti ja kamera liitetään toisiinsa sarjaliikenneyhteydellä ja ohjelmoidaan lajittelemaan kortteja eri pinkkoihin kameran viestin perusteella
Laboraatio 8. PID-säätö ja tietokonevalvomo Paineproportionaaliventtiilillä tehdään pneumaattisen lihaksen liikkeen ja voiman hallinta. Ohjaaviksi laitteiksi kytketään ohjelmoitava logiikka, johon viritetään säätöpiiri 8.1 Logiikkaan ohjelmoidaan kolme Network-sääntöä, joilla paikkatieto potentiometrilta saadaan näkymään muistisanassa D0, painetieto propoventtiililtä muistisanassa D1 ja paineen ohjearvo propoventtiilille muistisanassa D3 Ohjelman monitorointitilassa toimintaa testataan syöttämällä muistisanaan D3 erilaisia ohjearvoja 8.2 Säätöpiiristä tehdään versio, jossa paikan ohjearvo voidaan syöttää muistisanaan D5 Tätä verrataan paikan oloarvoon D0 ja jos ei olla halutussa paikassa, korjataan paineen ohjearvoa ylös- ja alaspäin laskien logiikan matemaattisilla funktioilla. Jotta toiminnasta ei tule liian levotonta, korjauksia kannattaa tehdä ohjelmoiduin aikavälein. 8.3Säätöpiiristä tehdään versio, jossa käytetään logiikan PIDfunktiota Sille määritellään ohjearvon, oloarvon ja lähtöarvon muistisanojen osoitteet ja parametrien muistisanojen alkuosoite, esimerkiksi D10 Muistiosoitteissa D10...D35 on sen jälkeen PID-säätimen toimintaan vaikuttavat parametrit Niitä Entry Data Monitor Online-tilassa korjaten haetaan parametrit kohdalleen niin, että paikan ohjearvon muutoksen jälkeen järjestelmä hakeutuu uuteen paikkaan
8.4Tietokonevalvomo käyttöliittymäksi E-view tietokonevalvomo määritellään logiikan käyttöliittymäksi. Valvomoon määritellään kolme Digitaalista panelimittaria, joiden numeroikkunat liitetään paikan ohjearvon antamisessa ja todellisen paikan näyttämisessä ja paineen ohjearvolähdön näyttämisessä käytettyihin datamuistisanoihin Haettaessa panelimittari kirjastossa se pitää purkaa Ungroup Tämän jälkeen numeroikkunan ominaisuuksia Properties voidaan muutella ja liittää ikkuna halutun ohjaimen Controller, joka tässä on Mitsubishin FX1S-logiikka, haluttuun muistisanaan esim D1 Mitä muistisanoja yms on tarjolla löytyy katsomalla yhteyden määrittelyvaiheessa vihjeitä Hints Toiminta testataan antamalla paikkaohjearvoja valvomon RUNtilassa Huom! CX IEC Developer ja valvomo eivät voi olla molemmat yhtäaikaa hallitsemassa logiikan sarjaporttia ja siksi Online-tilassa.
Laboraatio 9. Logiikkapaikoitus moottoriohjaimen avulla Ohjelmoitava logiikka kytketään ja ohjelmoidaan toteuttamaan halutut liikkeet moottoriohjauksessa käyttäen hyväksi pulssitakaisinkytkentää magneettinauha-anturilta ja moottoriohjaimen hallintaa analogialähdöllä. 9.1Moottoriohjain kytketään ohjaamaan tasavirtamoottorin pyörimistä. Moottoriohjaimen ohjejännite 0..10 V tuodaan erilliseltä virtalähteeltä 9.2. Ohjejännite moottoriohjaimelle tuodaan logiikan analogialähdöltä Logiikkaan ohjelmoidaan Network-sääntö, joilla analogialähtöön vietävä jännitteet ohjearvo kerrotaan muistisanassa D3 Ohjelman monitorointitilassa toimintaa testataan syöttämällä muistisanaan D3 erilaisia ohjearvoja 9.3.Logiikkaan ohjelmoidaan toiminnat, joilla se laskee pulsseja magneettinauha-anturilta nopeaan pulssituloonsa. Pulssilaskurin nollautuminen ohjelmoidaan tapahtumaan takarajakytkimellä. Logiikkaan ohjelmoidan toiminta, jolla se saadaan peruuttamaan takarajalla käsipainikkeen avulla. Sen päällä ollessa ja kun ei olla takarajalla kopioidaan analogialähdön ohjesanaan 4 voltin jännitettä vastaava ohjearvo MOV-funktiolla. Tämä kannattaa jättää logiikkaohjelman viimeiseksi riviksi.
9.4 Logiikkaan ohjelmoidaan toiminnat, joilla se vertaa paikkaohjearvoa todelliseen paikkaan ja ajaa moottoria eteenja taaksepäin korjaamalla matemaattisesti analogialähtönsä ohjearvoa ylös- ja alaspäin laskien logiikan matemaattisilla funktioilla. Paikan vertailun, olo- ja ohjearvojen kohdalla on huomattava, että nopean pulssilaskurin talletussana on 32 bitin sana, Double Integer. Kiinteinä muistiosoitteina se käyttää 2 sanaa esim D0+D1 Pulssilaskennan osoitteita kerrottaessa kannattaa käyttää vain joka toista datasanaa. Vertailijoiden sanojen on oltava keskenään samantyyppisiä Jotta toiminnasta ei tule liian levotonta, korjauksia kannattaa tehdä ohjelmoiduin aikavälein. Ylä- ja alarajan ylittäminen estetään vertailijoilla. Analogiaviestien muistisanat ovat tyypiltään 16 bitin muistisanoja, esim D3 Ohjelman monitorointitilassa toimintaa testataan syöttämällä paikkaohjeelle erilaisia ohjearvoja
Laboraatio 10. PWM-Moottoriohjaus Ohjelmoitava logiikka kytketään hallitsemaan tasavirtamoottorin liikenopeutta ja paikoitusta pulssinleveysmodulaatiolla. 10.1Akku, MOSFET-tehotransistori ja tasavirtamoottori kytketään ajovirtapiiriin HUOM! Transistorin kotelossa olevan estosuuntaisen diodin vuoksi transistorin napaisuutta EI SAA kytkeä väärinpäin. Tehty kytkentä dokumentoidaan piirrokseksi 10.2 Ohjelmoitava logiikka kytketään hallitsemaan tasavirtamoottorin liikenopeutta antamalla tehotransistorin kannalle PWM-ohjausta transistorilähdöllään. Sopiva ohjejännite on 10 V, ei yli 20 V. 10.3Logiikkaan ohjelmoidaan sääntö, joka tuottaa em lähtöön käyttäjän määrittämillä arvoilla PWM-signaalia. Toiminta testataan muuttamalla ohjearvoa Online Monitor tilassa 10.4Logiikkaan ohjelmoidaan säännöt, joilla nopeusohjearvoa korjataan ylös- ja alaspäin kahdella katkaisijalla Kiihdytä/Hidasta Jotta toiminnasta ei tule liian levotonta, korjauksia kannattaa tehdä ohjelmoiduin aikavälein. Ylä- ja alarajan ylittäminen estetään vertailijoilla.
10.5 Ajettavaksi moottoriksi vaihdetaan moottori, jossa on pulssitakaisinkytkentä. 10.6. Logiikkaan ohjelmoidaan toiminnat, joilla se laskee pulsseja pulssianturilta nopeaan pulssituloonsa. Pulssilaskurin nollautuminen ohjelmoidaan tapahtumaan käsipainikkeella. Logiikkaan ohjelmoidaan toiminnat, joilla se vertaa paikkaohjearvoa todelliseen paikkaan ja ajaa moottoria korjaamalla matemaattisesti PWMohjearvoa ylös- ja alaspäin laskien logiikan matemaattisilla funktioilla. Paikan vertailun, olo- ja ohjearvojen kohdalla on huomattava, että nopean pulssilaskurin talletussana on 32 bitin sana, Double Integer. Kiinteinä muistiosoitteina se käyttää 2 sanaa esim D0+D1 Pulssilaskennan osoitteita kerrottaessa kannattaa siksi käyttää vain joka toista datasanaa. Vertailijoiden sanojen on oltava keskenään samantyyppisiä Jotta toiminnasta ei tule liian levotonta, korjauksia kannattaa tehdä ohjelmoiduin aikavälein. Ylä- ja alarajan ylittäminen estetään vertailijoilla. PWM-ohjauksessa käytettävät muistisanat ovat tyypiltään 16 bitin muistisanoja, esim D3 Ohjelman monitorointitilassa toimintaa testataan syöttämällä paikkaohjeelle erilaisia ohjearvoja
11.1 Laboraatio 11. Käyttöpaneeli logiikan ja paikoitusohjaimen käyttöliittymänä Toiminta: Katkonta-automaatti, jonka käyttöliittymän kautta Kerrotaan Haluttu pituus Kerrotaan Haluttu kappalemäärä Nollataan laskuri Nähdään laskurin nykyarvo Käyttöpaneli kytketään ja ohjelmoidaan toimimaan logiikan ja servo-ohjaimen käyttöliittymänä. Servo-ohjain ohjelmoidaan ajamaan jokaisella käynnistyksellä rekisteri- tai datamuistiin ohjelmoitu matka eteenpäin antamaan sen jälkeen logiikalle kättelytieto ja odottamaan logiikalta kättelyä, jonka jälkeen poistetaan logiikalle lähetetty kättely ja ollaan valmiina uuteen käynnistykseen Ohjelmointiohjelma on Servo Config SW 11.2Käyttöpaneli ohjelmoidaan niin, että sen kautta voidaan kertoa servo-ohjaimen ohjelman käyttämän rekisteri- tai datamuistin arvo. Ohjelmointiohjelma On E-Designer Toiminta testataan ajamalla servo-ohjainta käsipainikkeilla
11.3Logiikka ohjelmoidaan niin, että se, jos ollaan alle tavoitteen ja käynnityspainike on pohjassa Antaa servo-ohjaimelle käynnistyskäskyn ja poistaa vanhan kuittauksen Odottaa servon perilläolotietoa Kytkee päälle toisen lähdön 5 sekunniksi (katkaisu) Poistaa servon käynnistyskäskyn ja Kuittaa servolle tehneensä työn Tätä toistetaan, jos laskurin oloarvo on alle ohjearvon Laskurina voidaan käyttää mm laskuria CTU Sen nollaukseen käytetään muistipaikkaa esim M1 Laskurin oloarvo ohjataan Datamuistisanaan esim D1 Toistojen hallinta tehdään vertailijalla esim Less Than, LT, jolla laskurin oloarvoa verrataan toiseen datamuistisanaan esim D2 kerrottuun ohjearvoon Toiminta testataan ohjaamalla muistipaikan M1 ja datamuistisanojen arvoja Entry Data Monitor Onlinetilassa 11.4Käyttöpaneli ohjelmoidaan siten, että panelilla voidaan ohjata ja seurata Servo-ohjaimen paikkaohjetta Logiikan lukumäärän ohjearvoa Logiikan katkaistujen kappaleiden määrää Kosketuspainikkeella nollata laskuri Tämä tapahtuu liittämällä käyttöpanelin instrumentteja servo-ohjaimen ja logiikan muistisanoihin ja logiikan laskurin nollaavaan muistipaikkaan
Laboraatio 12. Teollisuustietokoneiden yhteistyö FESTO IPC-tietokoneet ohjelmoidaan hallitsemaan syöttö- ja testausasemaa siten, että kappaleita syötetään hallitusti laitteilta toiselle. Tietokoneiden välisillä kättelytuloilla/lahdöillä estetään yhteentörmäykset silloin, kun toinen laite on toisen alueella. Ohjelmien kehittäminen aloitetaan käyttäen mallina laitteissa olevia ohjelmia. Tulojen ja lähtöjen nimiä muutetaan tarvittaessa selkeämmiksi Allocation List-taulukossa. Ohjelmissa suositaan pääohjelma/aliohjelmarakennetta, jossa pääohjelma seuraa hallintalaitteita ja kiertää jatkuvaa nopeaa luuppia. Tähän päästään käyttämällä ohjelma-askelissa OTHRW NOP-rakennetta, joka päästää aina askeleesta ulos Aliohjelmissa suositaan sensijaan askeltavaa rakennetta, jossa ohjelma-askelissa odotetaan ehdon toteutumista ennen kuin suostutaan jatkamaan. Ohjelmointi- ja hallintaohjelma on FST4 Silloin, kun logiikka ei ole ajotilassa, tuloja voidaan tutkia ja lähtöjä ohjata vapaasti mikrolta Aina ohjelmamuutosten jälkeen ne on ladattava IPChen ja käynnistettävä ohjelman suoritus. Jotta lähdöt toimisivat, laitteisto on kuitattava kytkimellä. Ohjelman toimintaa voidaan seurata Online-tilassa. Muokkaamiseen päästään siirtymällä takaisin Edit-tilaan