teknologiademot on the road - storage.googleapis.com · part). muuttujat määritellään pou:n...
TRANSCRIPT
Logiikoiden uudet
mahdollisuudet
Teknologiademot on the Road
13.5.2016
Automaation perusteita
Petteri Mäkelä
Automaatiojärjestelmä• Automaatiojärjestelmä voi olla yksittäinen PLC tai koko
tehtaan toiminnan ohjaamiseen tarkoitettu järjestelmä.
Automaatiojärjestelmä
• Alimmalla eli kenttälaitetasolla ovat yksittäiset ohjausyksiköt, lähettimet, anturit ja mittalaitteet sekä prosessia ohjaavat toimilaitteet.
• Seuraavalla tasolla ovat ohjainyksiköiden, säätimien ja toimilaitteiden ohjauksia kontrolloivat logiikkayksiköt (PLC).
• Ylimmälle tasolle sijoittuvat mm. valvomotietokoneet ja erilliset ohjauspäätteet ja hälytyskirjoittimet. Ylimmältä tasolta voidaan liittyä myös lähiverkkoon ja mahdollisesti Internetiin.– Tuotannonohjaus (MES) - ja toiminnanohjausjärjestelmät
(ERP)
Automaatiojärjestelmä
Ohjelmoitava logiikka
• Ohjelmoitava logiikka
– (eng.) Programmable Logic Controller, PLC
– tietokone, jota käytetään reaaliaikaisten automaatioprosessien ohjauksessa
• NC-kone, automaatiolinja jne
PLC:n rakenne
Tulot ja lähdöt
• Ohjelmoitavan logiikan ulkoisista liitännöistä käytetään yleisesti termejä tulo ja lähtö.
• Tuloporttien kautta logiikka saa tietoa järjestelmän tilasta, ja lähtöporttien kautta se voi ohjata järjestelmää
• Tulot– Kytkennän osa, jolla PLC:lle viedään tietoa (kytkimet,
painonapit, anturit, näppäimistö, hiiri, kosketusnäyttö…)
• Lähdöt– Kytkennän osa, jolla PLC antaa tietoa ulkomaailmaan
(moottorien ja venttiilien ohjaus, lmerkkivalot, näyttö…)
Ohjelman suoritus
• Ohjelmakierron aikana
– PLC lukee tuloihin liitettyjen antureiden, kytkimien ja lähettimien välittämät tiedot sisäisiin muistipaikkoihin
– PLC suorittaa ohjelman (prosessointijakso)
– Tieto välittyy lähtöyksiköistä ohjausväylän kautta toimilaitteille
IEC 61131-3 standardi
Standardi IEC 61131 ” Programmable controllers -Part 3: Programming languages” koskee
logiikoiden ohjelmointikieliä
Petteri Mäkelä
IEC 61131-3 standardi
• Standardin IEC 61131 mukaan ohjelma koostuu itsenäisistä osista, joita kutsutaan Program Organization Uniteiksi (POU).
• POU:ta on kolmea tyyppiä
– Program eli ohjelma
– Function (funktio)
– Function block (toimilohko)
POU
• Program on varsinainen pääohjelma. Programissamääritellään mm. kuinka fyysiset tulot ja lähdöt linkitetään muuttujiin
• Funktiolle voidaan antaa parametreja. Funktiolla ei ole omaa muistia tilatiedoille.– Ei muista mitään edelliseltä suorituskerralta
– Tuottaa aina saman ulostulon samoilla parametreilla
• Toimilohkolla (function block) on sisäinen muisti– Ulostulon arvo riippuu parametrien lisäksi sisäisistä
muuttujista
Muuttujat
• Muuttujat sisältävät POU:ssa käsiteltävän datan (declaration part). Muuttujat määritellään POU:n alussa
• Muuttujalle annetaan nimi muuttujan tyyppi ja tietotyyppi
Muuttujat ja tietotyypit
• Muuttujan nimi yksilöi muuttujan
• Tietotyyppi kertoo, mitä arvoja muuttuja voi saada (bool, kokonaisluku, desimaaliluku, merkkijono, päivämäärä…)
IEC 61131-3 ohjelmointikielet
• Standardi määrittelee viisi ohjelmointikieltä
• Tekstimuotoiset kielet
– Instruction lis (IL)
– Structured text (ST)
• Graafiset kielet
– Ladder diagram (tikapuukaavio) (LAD)
– Function Block Diagram (FBD)
– Sequential Function Chart (SFC)
Instruction List (IL)
• Instruction list (käskylistaus) muistuttaa assembleriä (konekieltä)
• Muut kielet on mahdollista kääntää IL-muotoon
• IL-kieli on matalimman tason kieli. Ohjelmat saattavat olla vaikeita ymmärtää koodin lukijalle
Structured text (ST)
• ST muistuttaa ”tavallisia” ohjelmointikieliä (C, Pascal)
• Korkean abstraktiotason ohjelmointikieli
• ST-algoritmi koostuu lauseista ja lausekkeista
Ladder diagram (LAD)
• LD:n tausta on sähkötekniikassa. LD perustuu virran kulun kuvaamiseen relelogiikkaohjauksessa
• LD (tikapuukaavio) lienee yleisin logiikkaohjauskieli
• Sopii parhaiten yksinkertaisiin ohjauksiin, mutta sillä on mahdollista tehdä myös suuria järjestelmiä
Function block diagram (FBD)
• Function block diagram on graafinen ohjelmointikieli, joka muistuttaa digitaalitekniikan kurssilla käytettyjä IC-piirien piirikaavioita
• Toimilohko tai funktio koostuu sisääntuloista, itse lohkosta ja ulostuloista.
• Lohkoja voidaan yhdistää toisiinsa• Ohjelma etenee samalla tavalla kuin
tikapuuohjelma eli vasemmalta oikealle ja ylhäältä alas
• (Huom. FBD vs. FB. Function Blockeja voidaan käyttää myös tikapuukaavioissa)
Sequential function chart (SFC)
• Sequential function chart voidaan tehdä graafisena tai tekstimuotoisena
• SFC:n avulla voidaan jakaa suuri ohjelma pienempiin ja helpommin hallittaviin osiin
• SFC:llä kuvataan, kuinka ohjelman suoritus etenee näiden osien välillä
• SFC koostuu askelmista ja siirtymistä askelmien välillä
Loogiset operaatiot ja
funktioblokit
Petteri Mäkelä
Loogiset operaattorit yms
• Loogiset operaattorit
• Vertailijat
• Aritmeettiset laskutoimitukset
• Loogiset operaatiot
– Invertteri (NOT)
– AND
– OR
– XOR
Function Blocks
• Tässä luvussa on esitelty valmiita funktioblokkeja ja funktioita (Beckhoff)
Esimerkki
• Lamppu voidaan sytyttää ja sammuttaa yhdellä painikkeella
• Triggeri, RS-kiikku ja AND
Arimeettiset operaatiot
• Mahdollisuus tehdä erilaisia laskutoimituksia
• Esimerkki:
– x = a * b – c * d;
Muunnokset tietotyyppien välillä
• Usein täytyy tehdä muunnoksia tietotyyppien välillä
Muunnokset tietotyyppien välillä
• Kokonaisluvusta desimaaliluvuksi (INT_TO_REAL)– a, b, c ja d ovat
kokonaislukuja
– Pakotetaan a desimaali-luvuksi (INT_TO_REAL), että saadaan desimaalilukujenjakolasku
• Desimaaliluvusta kokonaisluvuksi (REAL_TO_INT)– x ja y ovat tyyppiä REAL
– Katkaistaan desimaalitkertolaskun jälkeen(REAL_TO_INT)
Vertailijat
• Vertailijat (yhtäsuuruus, erisuuruus, pienempi kuin, suurempi tai yhtä suuri kuin…)
• Hiiren oikea näppäin ja valitaan sopiva vertailija valikosta
Pienempi kuin nolla (LT)
Suurempi tai yhtä suurikuin nolla (GE)
Ajastimet
• Kolme erilaista ajastinta– TON: Timer on-delay
• Viivästyttää ulostulon päälle laittamista
– TOF: Timer off-delay• Viivästyttää ulostulon laittamista
pois päältä
– TP: Pulse timer• Käytetään tietyn pituisen pulssin
generointiin
Laskurit
• Kolme erilaista laskuria
– CTU: Counter up
• Ylöspäin laskeva laskuri
– CTD: Counter down
• Alaspäin laskeva laskuri
– CTUD: Counter up/down
• Ylös ja alas laskeva laskuri
Omat funktiot ja toimilohkot 1/2
• PLC-ohjelmat kannattaa jakaa moduuleihin samalla tapaa kuin esimerkiksi C- tai C#-ohjelmat– Samaa koodia ei kannata monistaa moneen paikkaan
ohjelmassa. – Ohjelma on ymmärrettävämpi, jos sen toiminta jaetaan
pienempiin osiin– Ohjelmakoodin uudelleen käyttö helpottuu
• Metodien sijaan PLC-ohjelmissa tehdään funktioita ja funktioblokkeja– IEC 61131-3 standardissa (v3) on mukana myös luokat ja
oliot– Voidaan tehdä myös kirjastoja
Omat funktiot ja toimilohkot 2/2
• Funktiolle voidaan antaa parametreja. Funktiolla ei ole omaa muistia tilatiedoille.
– Ei muista mitään edelliseltä suorituskerralta
– Tuottaa aina saman ulostulon samoilla parametreilla
– Yksi paluuarvo
• Toimilohkolla (function block) on sisäinen muisti
– Ulostulon arvo riippuu parametrien lisäksi sisäisistä muuttujista
– Voi olla useita lähtöjä
Sekvenssiohjaus
Petteri Mäkelä
Sekvenssiohjaukset
• Sekvenssiohjausta käytetään tehtäviin, joissa toiminnot tapahtuvat ajallisesti peräkkäin
• Seuraavaan askeleen mennään yleensä edellisen askeleen kautta, kun siirtoehto toteutuu
• Sekvenssiohjauksesta käytetään myös nimitystä tilakone
Sekvenssiohjaukset
• Sekvenssi etenee ylhäältä alas kuvan mukaan
• Seuraavaan tilaan (askel, step) siirrytään ehdon toteutuessa
Kuva Hannu Reinilä
Sekvenssiohjaukset
• Function Block Diagramia (ja Ladderia) käytettäessä Sekvenssiohjaukset toteutetaan RS-pitopiirien ketjuilla
– Tämä on yleisesti käytetty tapa ja varsin selkeä silloin, kun askelia on suhteellisen vähän
– Toinen vaihtoehto on käyttää Sequential Flow Chartia (SFC) tilojen (askelien) ja siirtoehtojen kuvaamiseen
– Kokeneet PLC-ohjelmoijat tekevät sekvenssiohjauksen yleensä lausekielisenä Structured Textillä (ST)
Sekvenssiohjaus
• Sekvenssiohjauksessa on yleensä yksi askel (step) aktiivinen. Muut askeleet ovat poissa päältä.
• Askeleesta seuraavaan siirrytään, kun edellinen askel on voimassa ja ehto uudelle askeleelle tulee todeksi
• Uusi askel nollaa edellisen askeleen asetuttuaan
Lähde Hannu Reinilä
Sekvenssiohjaus
• Askeleeseen siirrytään, kun edellinen askel ja muut siirtoehdot ovat päällä (usein AND-piiri SETinvasemmalla puolella)
• Sekvenssin keskeyttävät toiminnot kerätään yhteen OR-toiminnolla ja kytketään RESETiin– Usein seuraava askel resetoi
edellisen askeleen– RESETiin kytketään usein
myös ”hätä-seis”
Esimerkki
• Step1: Moottori ajaa kuljetinta eteenpäin, kun Start-painiketta on painettu
• Step2: Kuljetin vaihtaa suuntaa taakse päin, kun kappale saapuu rajakytkimelle 1 (raja 1)
• Step3: Kuljetin vaihtaa suuntaa taas eteenpäin, kun kappale saapuu rajakytkimelle 2 (raja2)
• Askeleet Step1, Step2 ja Step3 kuvataan RS-kiikkuina– Set-tuloon määritellään ehdot, joilla tilaan siirrytään
– Resettiin määritellään ehdot, joilla tila nollataan
• Start-painike ja rajakytkimet 1 ja 2 ovat BOOL-tyyppisiä muuttujia
Esimerkki
Kuva: SIMATIC STEP S7 Ohjelmointiohjelma, Seppo Mäkelä TAMK
Esimerkki
• Kutakin askelta (step, tilaa) varten on määritelty RS-kiikku
• Ensimmäinen askel menee päälle, kun Startia on painettu
• Kun askel1 on päällä (askel1.Q1) ja raja1 on päällä siirrytään askeleeseen 2– Siirtymisehdot on siis askeleen 2
vasemmalla puolella olevassa ANDissä
• Kun on siirrytty askeleeseen 2, nollautuu askel 1– Tämä on tehty askeleen 1 resetissä
• Kaikki askeleet voidaan nollata muuttujalle reset (Oriin tuleva tulo)
Esimerkki
• Sekvenssipiiri ei vielä ohjaa mitään. Moottorien ohjauksia ei kytketä suoraan askelia kuvaavien RS-kiikkujen lähtöihin– Periaate: laitetta ohjataan vain yhdestä paikasta
• Ohjaukset on koottu ohjelman loppuun. Huom: eteenpäin ohjaus on kahdessa tilassa– Eteenpäin ajetaan joko askeleessa 1 TAI 3
– Taaksepäin ajetaan askeleessa 2
OPCOpen connectivity via open standards
OPC, avoimen tiedonsiirron standardi
• Avoimen tiedonsiirron valmistajariippumaton standardi
– Taustalla OPC Foundation
• Käytetäänkin automaatiosovelluksissa
– Logiikoiden
– Valvomoiden
– Käyttöliittymien
… välisenä rajapintana.
• Kaksisuuntainen yhteys
OPC, avoimen tiedonsiirron standardi
• ”Vanha” OPC DA (Data Access) protokolla
– DA on vain Microsoft Windowsissa toimiva palvelin (Microsoft DCOM teknologia).
• Uusi OPC UA (Unified Architecture) protokolla
– Uusi (2008) modernimpi määrittely joka parantaa tietoturvaa ja poistaa esimerkiksi laiteriippuvuuteen liittyviä rajoituksia
– Kommunikointi ethernet-liitynnän kautta, joko TCP tai HTTP pohjainen
OPC, avoimen tiedonsiirron standardi
• OPC kommunikointi tapahtuu serverin (palvelin) ja clientin (asiakas) avulla
– Tavallisesti palvelin sijaitsee logiikassa tai siihen yhdistetyssä tietokoneessa ja asiakkaana toimii esimerkiksi käyttöliittymäohjelmisto
PicRef: OPC and MES DAY 2012. Seminaari Espoossa
Virtuaalinen käyttöönotto
(Virtual Commissioning)
Jarkko Pakkanen
Virtuaalinen käyttöönotto
PLC-ohjattu virtuaalimalli• Virtual Commissioning – virtuaalinen käyttöönotto
• Järjestelmän tai toimilaitteen ohjaus suunnitellaan virtuaalista mallia vasten• Teknologialla voidaan validoida myös PLC-ohjausta• Demossa käytössä Siemens NX MCD, joka sisältää fysiikkamallinnuksen
• Onko meillä toimivat työkalut?• …Onko virtuaalisten käyttöönottomallien tarvitsema työmäärä
hallittavissa?
Haasteet toimialalla:• Nopea tuotekehityssykli• Rinnakkaista suunnittelua tarvitaan• Ongelmia käyttöönottovaiheessa
• “Kokonaisuus ei toimikaan yhteen”
Virtuaalinen käyttöönottoPLC ohjattu mektroniikkakonseptisuunnittelu
TIA Portal
OPC Scout
NX MCD
Virtuaalinen käyttöönottoKonseptoinnin vaiheet 1/2
• Luodaan järjestelmän 3D malli Tavallisesti tuotetaan mekaniikkasuunnittelussa Tarvittaessa voidaan käyttää useita CAD-formaatteja
• Fysiikkamallin määrittely Rigid Bodies (yhtenäiset liikkuvat järjestelmän osat) Collision Bodies (kappaleet jotka voivat törmätä toisiinsa)
• Mallin kinemattiikan määrittely Miten systeemin osat liikkuvat Johteet, nivelet jne.
Virtuaalinen käyttöönottoKonseptoinnin vaiheet 2/2
• Anturien ja käyttöjen määrittely Collision Sensors – anturien tunnistusalueet Position Controls – sijainnin ohjaaminen Speed Controls – nopeuden ohjaaminen
• Signaalien määrittely ja mäppäys INPUTS - Sensor signals MCD OPS Server PLC OUTPUTS – PLC OPS Server MCD
• Logiikan konfigurointi ja ohjelmointi (TIA Portal) PLC OPC Server … PLC Program
Pilvipalvelut ja automaatio,
data pilvessäJoitain esimerkkejä alustoista
Petteri Mäkelä
Pilvipalveluiden tarjoajia…
• Amazon Web Services (AWS)– AWS IoT, Hadoop Big Data
• Microsoft Azure– IoT Hub, IoT Suite, Hadoop Big Data
• ThingWorx– Suomessa Elisan kautta
– Graafisesti konfiguroitava ympäristö
• Siemens Mindsphere– Julkaistaan keväällä 2016
– Perustuu SAP HANAan
…ovat alustoja oman sovellutuksen pohjaksi.
…eritasoisia ratkaisuita/alustoja,myös ”IoT puolivalmisteita”
• Siemens plant data services– Data kerätään Siemensin
ylläpitämälle palvelulle
– OEE: analysoidaan tuotannon tehokkuutta
• Markkinoilla on myös kymmeniä muita IoT-palveluja– Suomessakin useita, esimerkiksi
Wapicen IoT Ticket
Pilvipalvelu ja IoTEkosysteemiajattelu on muuttunut. Esimerkiksi Microsoftin Azure tukee erityyppisiä laitteita (myös kilpailijoiden). Vastaavasti analysoinnin tuloksetvoidaan välittää myös kilpailijoiden toimittamiin järjestelmiin
Pilvipalvelu ja IoT
• Toisaalta esimerkiksi Beckhoff tukee oman datan analysointiratkaisun lisäksi useita julkisia pilvipalveluita
• Beckhoff: Useita erilaisia ratkaisuja datan viemiseksi pilvipalveluun
– TwinCAT Analytics
– Analytics Logger
– Analytics Workbench
• Matlab, C++, IEC 61131,
Wapice IoT Ticket
• Joustava konfiguroitava alusta laitteiden kytkemiseksi pilveen
– Erilaisia analysointi ja raportointityökaluja
– Mahdollisuus koodata omaa analytiikkaa R-kielellä
PicRef: www.iot-ticket.com
Azure IoT Suite
• Julkaistu syyskuussa 2015
• Perustuu IoT Hubiin ja muihin Azure IoT-palveluihin
– Lähdekoodit GitHubissa
• Esimääritellyt sovellukset
– Predictive maintenance
– Remote monitoring
• Sovellusesimerkkejä on tulossa lisää
Azure IoT Suite – Predictive Maintenance
Siemens Mindsphere
• Perustuu SAP HANAan
• Julkaistaan keväällä 2016– Tulevaisuudessa käyttäjät voivat tehdä omia sovelluksia (esim.
predictive maintenance)
• Voidaan tehdä tehtaasta digitaalinen malli, johon voidaan syöttää dataa oikeasta prosessista
• Laitteet yhdistetään Connector Boxin (Simatic IPC) kautta– Myös kilpailevien valmistajien laitteet (OPC UA:n kautta)
• Public cloud, private cloud, on-premises
Siemens Plant Cloud Services
Thingworx (Elisa IoT)
• Graafisesti konfiguroitava IoT-sovellusalusta ja pilvipalvelu
– Nopea sovelluksen tekeminen
• Elisa edustaa Suomessa
Pilvipalveluita
• Jne…
SeAMK tekniikan
automaation laboratoriotJoitain esimerkkejä
SeAMK automaation laboratoriot
SeAMK automaation laboratoriot
SeAMK automaation laboratoriot
SeAMK automaation laboratoriot
• …
• Beckhoff
• Siemens
• Omron
• Robotiikka
• Konenäkö
• Profiiliskanneri
• Jne…