Programmeeritav kontroller
Programmeeritava kontrolleri riistvara
PLC on lühend kontrollerile, millega tähistatakse arvutit, mis on seotud töömasina andurite ja täituritega ning mis on kohandatud teatud tüüpi juhtimisülesannete jaoks. Lihtne PLC koosneb toite-, keskjuhtimis- ja signaalimooduli(te)st.
Toitemoodul (PS) varustab PLCd toitepingega, mis saadakse 120/230 V vahelduvvooluvõrgust (AC) või 24 V alalisvooluvõrgust (DC). Mõned PLCd ei vaja oma koosseisu toitemoodulit kui keskjuhtimismoodul saab 24 V DC toitepinge välisest toiteallikast (PLC saab elektrit eraldi toiteklemmide kaudu).
Keskjuhtimismoodul (CPU) on PLC aju mis töötleb automatiseeritud protsessi või masina juhtimisprogrammi, mis on salvestatud sisseehitatud programmimälusse. Peale juhtimisprogrammi töötlemist määrab CPU teiste PLCs olevate moodulite parameetreid, haldab andmesidet programmeerimisseadmega, PLC laiendusmoodulitega, teiste PLC(de)ga ja/või teiste seadmetega nagu näiteks operaatoripaneel. Keskjuhtimismoodul võib olla eraldi toitesisend, mälulaienduspesa (SD kaardi jaoks) ja andmesideliides.
Keskjuhtimismoodulil on spetsiaalne lüliti PLC töörežiimi valikuks. Praegused Siemensi PLCd omavad kaht töörežiimi: TÖÖ (RUN) režiim kasutaja programmi täitmiseks, ja STOPP (STOP) režiim, mil kasutaja programmi täitmine on peatatud. Mõlema töörežiimi ajal saab PLCst laadida üles programmeerimisseadmesse (personaalarvuti) või sealt alla PLCsse masina juhtimisprogrammi. Vanad Siemensi PLCd omasid ka kolmandat töörežiimi, mida kutsuti TÖÖ-P (RUN-P) režiimiks. Selliste PLCde puhul sai kasutaja laadida programme üles ainult STOPP või TÖÖ-P režiimis. TÖÖ režiimis täideti ainult kasutaja programmi ja samas ei saanud kasutaja programmi muuta (TÖÖ-P režiimis sai seda teha).
Signaalimoodulid (SM) on sisend-väljundmoodulid (I/O) digitaal- (DI, DO) ja analoogsignaalide (AI, AO) jaoks, mis tulevad anduritest kontrollerisse või lähevad sealt lülititesse, täituritesse ja teistesse seadmetesse. Signaalimoodul teisendab saabuvad signaalid niisugusesse vormi, mida PLC suudab töödelda ning toimetab vastupidiselt väljuvate signaalidega. Enamasti kasutavad digitaal-signaalimoodulid oma töös 24 V DC ja 120/230 V AC pinget. Analoog-signaalimoodulite juures on kasutusel alalispinge väärtusega kas ±10 V, 0 – 10 V või 1 – 5 V ja alalisvool väärtusega kas 4-20 mA või 0- 20 mA. Digitaal-väljundmoodulitest väljuvate signaalide muutmiseks on kasutusel optronid, transistorid ja releed, mis peavad kaitsma signaalmoodulit lühise, ülepinge ja ülekoormuse eest. Releedega saab lülitada erinevaid pingeid (DC ja AC) ja suuremaid voole kui transistoridega, kuid relee lubatud lülituste arv on tunduvalt väiksem kui transistoril. Ühel digitaal-signaalimoodul võib olla 8, 16 või 32 sama tüüpi sisendit ja/või väljundit ning analoog-signaalimoodulil 2, 4, 6 või 8 sama tüüpi sisendit ja/või väljundit.
Lisaks eespool loetletud moodulite võib PLC-l olla veel kassett/siin (millesse ehitatud andmeside siiniga ühendatakse PLC moodulid); liidesmoodul (IM), mis ühendab mitmed eraldiseisvad kassetid üheks PLCks; funktsioonimoodul (FM), mis tegeleb keeruliste või aeg-kriitiliste protsessidega CPUst sõltumatult (nt kiire loendamine, PID- ja positsioonjuhtimine), andmesidemoodul (CP), mis ühendab PLC tööväljasiiniga (nt Industrial Ethernet, PROFIBUS, ASi liides), jadaühendusmoodulid, kasutajaliidese moodul (nt operaatoripaneel); hajutatud sisend-väljund moodulid ja kiiretoimelised signaalimoodulid.
Igal PLC moodulil on lihtne kasutajaliides andmeside, patarei, I/O, PLC operatsiooni jne olekute ning vigade näitamiseks. Kasutatakse ka väikseid vedelkristallekraane (LCD) või valgusdioode (LED).
Joonisel 2.1 on kujutatud Siemens S7-300 kontrolleri koosseis [4]. PLC esimeses pesas peab olema PS, teises pesas CPU ja kolmandas pesas IM. Antud moodulite järjekorda Siemensi PLCs ei saa muuta. Nendele järgnevad (alates neljandast pesast) SM, FM ja CP moodulid (neid võib ühel siinil olla kokku 8 tükki). Nende moodulite omavaheline järjestus pole oluline. Üks Siemensi S7-300 PLC võib koosneda neljast eraldi seisvast siinist ja igal siinil võib olla kuni 11 moodulit.
Mõned Siemens PLCd ei vaja vahetult protsessorimooduli kõrvale toitemoodulit, kui automatiseeritud süsteemil on eraldi 24 V DC toiteseade, mille väljund on ühendatud CPUga. Samuti võib loobuda IM moodulist, kui PLC kasutab ainult ühte siini.
Mõne firma PLCde juures pole CPU ja toitemoodulite omavaheline asetus oluline. Näiteks Allen-Bradley CompactLogix PLCs võib PS paikneda siinil erinevas pesas (enne PS võib paikneda kuni 4 moodulit), kuid CPU peab paiknema esimeses pesas.
PLC tüübid
Sõltuvalt sellest, missugune on CPU mooduli ehitus ja kuidas see on ühendatud teiste moodulitega, saab PLC jagada järgmisteks tüüpideks: kompaktne PLC, moodul-PLC, kassett-PLC, operaatorpaneeliga PLC, tööstusarvuti, kaart-PLC ja tarkvaraline PLC.
Kompaktses PLCs on CPU, PS ja SM paigutatud ühte väikesesse korpusesse. Sellisel PLC-l on kindel arv digitaal I/Osid (mitte üle 30), üks või kaks andmesideliidest (üks PLC programmeerimiseks ja teine tööstusandmesideks) ning HMI liides. Kompaktse PLCga saab ühendada lisamooduleid sisendite-väljundite arvu suurendamiseks. Lisamoodulid paiknevad samasuguses korpuses nagu kompaktne PLC [5].
Kompaktseid PLCsid kasutatakse automatiseerimisel releede asendusena. Üks PLC ei maksa rohkem kui käputäis releesid. Selle programmeerimine on sama paindlik kui juhtmetega releeskeemi koostamine. Sellist tüüpi PLC nõrgaks küljeks on vähene mälu programmi ja andmete jaoks, nõrk protsessori jõudlus, taimerite ja loendurite väike arv ning mõned puuduvad andmetüübid (nt komakohaga arv, string). Kallimad kompakt- PLCd omavad samu funktsioone nagu teised PLCd. Nende ainsaks puuduseks on kindel arv I/Osid.
Moodul-PLC on võimsam ja rohkemate funktsioonidega kui kompakne PLC. Tema osad nagu näiteks CPU, SP, SM, servo-mootori juhtimismoodul, positsioneerimismoodul, CP moodul paiknevad eraldi korpustes. Moodul-PLC osad paigutatakse DIN-liistule või spetsiaalse kujuga kinnitusliistule ning need suhtlevad CPUga läbi sisese siinisüsteemi. Siinisüsteem võib olla üks osa CPUst, sellel võib olla eraldi korpus või lamekaabel. Siinisüsteemi pesade arv on piiratud, kuid seda saab laiendada kasutades spetsiaalseid siinisüsteemi mooduleid (nt IM). Seega saab moodul- PLC koostada erinevatest moodulitest nii nagu automatiseeritav masin või protsess seda nõuab.
Võrreldes kompakt-PLCga on moodul-PLC võimeline kasutama suuremal arvul sisendeid ja väljundeid, toetab suuri tööprogramme, suurte andmemahtude salvestamist ning on võimeline lahendama mitut erinevat ülesannet (tööprogrammi) korraga.
Moodul-PLC kasutatakse tänapäeval järgmiste ülesannete jaoks: masina automaatjuhtimine, -reguleerimine, positsioonjuhtimine, arvutamine, andmete töötlemine ja haldus, andmeside, jälgimine, veebi-server jne [5]. Moodul-PLC alla kuuluvad Siemensi S7-1200, S7-300 ja Allen-Bradley CompactLogix PLC (joonis 2.3).
Kassett-PLCl on peaaegu samad funktsioonid ja võimalused kui moodul-PLCl. Ainuke erinevus seisneb kassetis või siinis, kuhu PLC moodulid paigutatakse. Kassett-PLCs kasutataval kassetil on pesad PLC moodulite jaoks ja sisene siinisüsteem, mis on integreeritud tagaseina ning mis võimaldab vahetada informatsiooni eri moodulite vahel. PLC moodulitel on esipaneel koos HMIga, nende korpuse tagumises osas on pistikud. Kassett-PLC eelisteks on kiirem andmeside PLC moodulite vahel ja moodulite kiirem toimimine [5].
Nagu operaatorpaneeliga PLC (OPLC) nimi juba ütleb, on antud seadmel lisaks kontrollerile ka HMI liides automatiseeritud protsesside või masinate juhtimiseks ja nende töö jälgimiseks. HMI osa koosneb enamasti ekraanist ja klaviatuurist või puuteekraanist. HMI ekraan võib olla tekstipõhine või graafiline. Sellise süsteemi eeliseks võrreldes tavalise PLCga, mis kasutab eraldiseisvat operaatorpaneeli, on see, et operaatorpaneeli ei pea eraldi programmeerima. Süsteemi juhtimisprogramm ja HMI liides koostatakse ühes tarkvarakeskkonnas. See aitab kokku hoida süsteemi arendamise aega. OPLC alla kuuluvad Unitronics M-90 ja Vision (joonis 2.5).
Tööstusarvuti on tavaline personaalarvuti, millesse on integreeritud PLC funktsionaalsus. PLC osa antud süsteemis võib põhineda riistvaral (kaart-PLC) või tarkvaral (virtuaalne PLC). Tööstusarvuteid kasutatakse keskmistes või suurtes automatiseerimisrakendustes, kus on oluline kiire protsessijuhtimine, kiire andmete kogumine ja vahetus koos OPC ja/või SQL serveritega (paigaldatud tööstusarvutisse), süsteemi hea jälgitavus ning selle pikk eluiga. Enamikel juhtudel kasutab tööstusarvuti andmesidet automatiseeritud protsesside ja/või masinate juhtimiseks. Samas võivad sellel olla sisseehitatud I/Od ja teised PLC moodulid.
Tööstusarvuti oluliseks puuduseks on see, et teatud aja möödudes pole võimalik saada varuosi (nt mälu, protsessor, videokaart jne). See tähendab, et tootmises on uued paremad komponendid ja vanu komponente enam ei toodeta.
Kaart-PLC on spetsiaalne arvutisse paigaldatav kaart, millel on kõik tavalise PLC CPU funktsioonid. Enamasti paigutatakse see arvuti emaplaadil olevale PCI pessa, mis võimaldab otsest andmevahetust arvutis oleva HMI ja/või teiste tarkvaraliste rakendustega. Kaart-PLCl on vähemalt üks andmesideliides tema ühendamiseks otse tööstuslikku andmesidevõrku (vahetada andmeid hajutatud I/O-dega või muude PLC seadmetega).
Tarkvaraline PLC on virtuaalne PLC, mis töötab tavalises personaalarvutis ja emuleerib riistvaralist kontrolleri CPUd. Automatiseeritud protsesside või masinate juhtimiseks kasutab see arvutis olevaid andmesideliideseid (Ethernet kaart, COM pesa) või arvutisse asetatavaid spetsiaalseid andmesidekaarte suhtlemaks hajutatud I/Odega ja teiste automaatseadmetega. Tarkvaralise PLC puuduseks on lisamälu puudumine andmete salvestamiseks. Toitepinge katkemisel (kadumisel) kaotatakse kõik protsessi juhtimisandmed, kuid sellest saab üle energiasalvestiga. Lisaks on arvuti operatsioonisüsteemi vahetumisel oht, et tarkvaraline PLC ei tööta uues süsteemis. Peale selle puudub garantii, et tarkvaralise PLCga samal ajal töötavad teised tarkvaralised rakendused (HMI või OPC server) ei mõjuta PLC tööd (nt protsessi juhtimise kiiruse vähenedamine, andmeside katkestused jne).
Tööstusarvutite alla kuuluvad Siemens kassett-tööstusarvuti (paigutatav 19 tollise kasseti sisse), tavaline tööstusarvuti ja tööstusarvuti operaatorpaneeliga (joonis 2.6). Tarkvaralise PLCna pakub Siemens SIMATIC WinAC RTX, mis vajab arvuti jaoks spetsiaalset andmeside võrgukaarti.
PLC poolt töödeldavad signaalid
Automatiseeritud protsessis mõõdetakse füüsikalisi suurusi nagu temperatuur, rõhk ja elektripinge. Samas PLC mõistab ja annab välja ainult elektrilisi signaale. Seetõttu vajavad signaalimoodulid füüsikaliste suuruste väärtuste vastuvõtmiseks ja väljasaatmiseks signaali muundureid. PLC puhul eristatakse kolme tüüpi signaale, millega ta on võimeline töötama: binaar-, digitaal- ja analoogsignaalid [6].
Binaarsignaal on 1 bitine signaal, millel on ainult kaks väärtust (0 – madal, väär, ja 1 – kõrge, tõene). Binaarsignaali väljastavad näiteks surunupp ja lüliti, kui need ühendada pingestatud vooluahelasse. Normaalselt avatud kontakt edastab vooluahelas (loogika) signaali väärtusega 1 siis kui kontakt jõuga sulgeda ja (loogika) signaali väärtusega 0 kui kontakt jälle avada. Elektriseadmetes tuleb siiski arvestada teatud hälvetega. Seetõttu on standardis IEC 61131 loogikasignaalidele kindlad vahemikud määratud. 24V DC toitepingega kontaktivabade andurite väljundis loetakse pingevahemikku -3 - +5 V loogiliseks nulliks ja pingevahemikku 11 – 30 V loogiliseks üheks. 230V AC puhul loetakse pingevahemikku 0 – 40V loogiliseks nulliks ja vahemikku 164 – 253V loogiliseks üheks.
Digitaalsignaal on binaarsignaalide jada, mis moodustab ühe terviku. Igat kohta digitaalsignaalis kutsutakse bitiks. Tüüpilised digitaalsignaali vormid on: terta – 4 bitti (ei ole laialdaselt kasutusel), bait – 8 bitti, sõna (word) – 16 bitti, topeltsõna – 32 bitti, topelt pikk sõna – 64 bitti (ei ole laialdaselt kasutusel).
Analoogsignaal on mingi väärtuse (nt mõõdetud füüsikalise suuruse) esitlus elektrilise signaalina, näiteks 0..10V või 4..20mA. Nüüdisaegsed PLCd pole veel võimelised töötlema reaalseid analoogsignaale, seetõttu muundatakse kontrollerisse sissetulev analoogsignaal digitaalsignaaliks ja väljuv digitaalsignaal muundatakse analoogsignaaliks. Signaalimuundamine toimub analoogsignaalimoodulis. Kui digitaalsignaalis kasutatakse rohkem bitte (nt 8 biti asemel 13 bitti), saavutatakse suurem eraldusvõime (resolutsioon) ja analoogsignaali suurem täpsus. Tüüpilise 0..10V väärtusega analoogsignaali viga võib digitaalsignaaliks muundamise järel olla 0,1V; 0,01V või 0,001V (vastavalt digitaalsignaalis kasutatavate bittide arvule).
Kuidas töötab SIMATIC S7-1200 PLC?
PLC toimib tsükliliselt (joonis 2.8). Iga PLC sisene tsükkel algab väljundite väärtuste uuendamisega SM moodulites. Väljundite andmemälus olevad binaar- või digitaalsed signaalid saadetakse SM moodulitesse, kus need muundatakse täituritele arusaadavasse vormi (nt analoogsignaalideks) ja saadetakse sealt edasi täituritele.
Järgmine samm on PLC sisendite pildi ehk protsessikuva uuendamine. SM moodulites mõõdetakse sisendite väärtused ja muudetakse binaar- või digitaalsignaalideks. Need signaalid saadetakse sisese siinisüsteemi kaudu CPUsse ja salvestatakse sisendite andmemälus (sisendite protsessikuva). Peale seda hakkab CPU täitma programmimälus olevat kasutaja programmi (korraga täidetakse üht korralduserida), mis on salvestatud MC7 masinkoodis (sarnaneb Siemens PLC programmeerimiskeelega käsulist). See tähendab, et kõik teistes PLC programmeerimiskeeltes kirjutatud programmid tõlgitakse MC7 keelde enne nende salvestamist PLCsse. Programmi (korralduserea) täitmise käigus määratakse väljundsignaalidele uued väärtused ja need salvestatakse väljundite andmemällu (väljundite protsessikuva).
Viimaseks sammuks on muud tegevused PLCs. Siia alla kuuluvad andmeside pidamine programmeerimisseadmega, hooldustööd nagu mälu haldamine, moodulite diagnostika, jne. See osa tsüklist tehakse operatsioonisüsteemis nii kiiresti, et kasutaja seda ei märka. Kui viimane osa PLC töötsüklist on täidetud, siis PLC alustab uue tsükliga.
Siemens PLC S7-1200 PLC täidab kohe käivituse järel (esimese tsükli kestel) spetsiaalset käivitusprogrammi, mida nimetatakse käivituseks "Startup" (plokk OB 100). Siin kohal tuleks mainida, et esimese PLC töötsükli ajal ei toimu väljundite uuendamine SM moodulites ning sisendite protsessikuva uuendamine PLCs. Esmalt nullitakse sisendite protsessikuva ja siis lähtestatakse väljundite protsessikuva PLCs. Alles pärast käivitusprogrammi täitmist uuendatakse sisendite protsessikuva PLCs. Seejärel hakatakse PLC töötsüklit täitma nii nagu seda on kirjeldatud eespool, ehk siis uuendatakse väljundid SM moodulites ja sisendite protsessikuva PLCs, täidetakse põhiprogrammi (kasutaja poolt kirjutatud programmi, mis on seotud plokiga OB 1) ning teostatakse muid PLC tegevusi.
Mõnikord katkestatakse põhiprogrammi täitmine mingi sündmuse toimumise tõttu (nt vajutati hädaavarii nuppu, SM riistvara läks katki või mingi ajavahemiku järel tuleb täita teatud kindlat programmilõiku). Pärast katkestuste poolt käivitatud programmi täitmist jätkab PLC jälle põhiprogrammi täitmisega.
Teiste ettevõtete PLC töötsüklid võivad olla teistsuguse ülesehitusega. Nt Allen-Bradley CompactLogic PLCs toimub I/O signaalide väärtuste uuendamine programmi täitmise ajal, mitte enne või pärast seda.
Multitegumtöö
Tänapäeva PLCd on võimelised täitma automatiseeritud protsessi juhtimisel korraga mitut ülesannet. Iga ülesanne võib koosneda mitmest eraldi programmist. Tegelikult täidab PLC iga protsessor korraga ainult üht ülesannet (selle mingit programmi). Kuna protsessorid töötavad väga kiiresti, näib kasutajale, et PLC täidab mitut ülesannet korraga.
Standard IEC 61131 määratleb ülesannet kui hierarhiliselt kõrgemat juhtimistasandit PLC programmide täitmisel. PLC on võimeline aktiveerima ülesande kas ajaperioodi (kutsutakse perioodiliseks ülesandeks) või sündmuse baasil (kutsutakse mitteperioodiliseks ülesandeks) ning selles mingi kirjutatud programmi (korralduste kogumiku) täitmist [11]. Perioodilisi ülesandeid täidetakse tsükliliselt programmeerija poolt määratud aja möödudes. Mitteperioodilisi ülesandeid täidetakse käimasoleva ülesande koosseisus oleva programmi töös konkreetse sündmuse ilmnemisel (nt mingi andmeelemendi või signaali väärtus muutub 0 → 1).
Tootmisprotsessis multitegumtöö organiseerimisel määrab ülesannete tähtsuse ehk prioriteedi programmeerija. Prioriteedinumbri väärtus algab nullist ja see tähistab kõrgeimat prioriteeti. Suurem prioriteedinumber tähendab täitmisel väiksemat prioriteeti. Kui PLC töös püüavad mitu ülesannet kasutada CPU protsessorit samal ajal, siis määrab ülesande prioriteedinumber esimesena täidetava ülesande. Alustatakse kõige kõrgema prioriteediga ülesande täitmisest ja teised jäävad ootama. Kui mitmel täitmist ootaval ülesandel on sama prioriteet, siis peale eelmise ülesande täitmise lõpetamist (CPU protsessor saab vabaks) alustatakse pikima ooteajaga ülesande täitmist.
Kui mingi programm PLCs ei ole seotud ühegi ülesandega, siis on sellel programmil kõige madalam prioriteet ja seda täidetakse ainult siis, kui protsessor pole hõivatud [5].
Multitegumtöö jagatakse vastavalt ülesande täitmise katkestusele kaheks: eesõiguseta ja eesõigusega multitegumtöö. Eesõiguseta multitegumtöös täidetakse ülesanne lõpuni isegi siis, kui kõrgema prioriteediga ülesanne nõuab täitmist. Järgmisena jätkatakse kõige kõrgema prioriteedi ja pikima ooteajaga ülesande täitmisega. Eesõigusega multitegumtöös täidetakse mingit ülesannet seni, kuni kõrgema prioriteediga ülesanne muutub aktiivseks ja katkestab eelmise ülesande tegevuse. Seega väiksema prioriteediga ülesande täitmine on ooterežiimis seni, kuni kõrgema prioriteediga ülesande tegevus on täidetud. Eesõigusega multitegumtöös sama või väiksema prioriteediga ülesanded ei saa katkestada täidetavat ülesannet. Need peavad ootama kuni käesolev ülesanne on täidetud/lõpetatud. Peale katkestatud ülesande täitmise lõpetamist jätkatakse kõige kõrgema prioriteedi ja pikima ooteajaga ülesande täitmist.
Standard IEC 61131 määrab kindlaks ülesannete täitmise reeglid. Programmeerija peaks neid reegleid teadma [5,11].
- Ülesannet täidetakse, kui see on välja kutsutud (perioodiliselt või mingi sündmuse aktiveerumisel), ja teised allpool esitatud tingimused ei ole aktiivsed. See tähendab, et PLCl on vaba aega ülesande täitmiseks.
- Kui ootel on rohkem kui üks ülesanne, võetakse täitmisele neist kõrgema prioriteediga ülesanne. Eesõigusega multitegumtöös katkestatakse ülesande täitmine, kui uuel aktiveeritud ülesandel on täidetavast ülesandest kõrgem prioriteet. Eesõiguseta multitegumtöös peab uus aktiivne ja kõrgema prioriteediga ülesanne ootama täidetava ülesande tegevuse lõpetamist. Kui väljakutsutud ülesandel (kehtib mõlema multitegumtöö puhul) on võrreldes täidetava ülesandega sama või väiksem prioriteet, siis antud ülesanne peab ootama täidetava ülesande tegevuse lõpetamist. Kui täidetav ülesanne ja täitmist ootav ülesanne jagavad mõningaid programmilõike (programm, funktsiooni plokk, funktsioon), siis täidetakse neid programmilõike. Teisi täitmist ootava ülesande programmilõike ei täideta.
- Kui PLCs on ootel mitu sama prioriteediga ülesannet, siis vaba CPU protsessori korral hakatakse täitma pikima ooteajaga ülesannet.
- Programmid (-osad/lõigud), mis pole seotud ühegi ülesandega, omavad kõige madalamat prioriteeti. Neid täidetakse, kui muude ülesannete tegevus või nende endi tegevus on lõpetatud.
Mõnel PLCl võib olla juhtimismoodulis kaks või enam protsessorit. Sellised PLCd saavad täita mitut ülesannet üheaegselt (multitegumtöö reaalajas) ilma ajalise viivituseta. See võimaldab kiirelt reageerida protsessi või masina mitte regulaarsele käitumistele.