Erifunktsioonid
Erifunktsioonid pole küll kindel ja iseloomustav mõiste, kuid antud juhul on see nimetus, mille alla andis koondada keerukamad funktsioonid. Paljusid neist ei annagi siinse programmilise lihtloogika baasil lahendada, kuid mõne saab asendada ka "Binaarloogika funktsioonid" peatüki alt tuntud lihtloogikafunktsioonide kogumiga.
Kõiki LOGO! funktsioone ei ole siin jälgitavuse huvides välja toodud.
Taimerid ehk viivituse teostajad
Juhtimisülesannetes on tihti vaja tekitada ajalisi viiteid, selleks on LOGO! kontrolleril terve hulk funktsiooniplokke. Põhilised neist on ka siin välja toodud.
Sisselülitusviitega taimer (On-Delay)
Väljund Q on algselt madal.
Kui pärast kõrge väärtuse andmist Trg
sisendisse, möödub parameetris T määratud aeg, siis läheb väljund
kõrgeks ja püsib kõrge kuni
Trg sisendi madalaks minemiseni.
Väljalülitusviitega taimer (Off-Delay)
Väljund Q on algselt madal.
Kui sisendi Trg väärtus läheb kõrgeks,
siis läheb koheselt kõrgeks ka väljund
Q. Kui sisend Trg
madalaks läheb, siis väljund Q on veel
parameetriga T määratud aja kõrge.
Pärast seda läheb see madalaks.
Väljundit saab enneaegselt madalaks sundida
R sisendi kõrgeks lülitamisega.
Salvestav sisselülitusviitega taimer (Retentive On-Delay)
Sarnane sisselülitusviivitusega taimeriga, aga Trg sisendist
kõrge signaali kadumine ei peata taimeri tööd.
Väljund Q on algselt madal. Kui pärast kõrge väärtuse andmist Trg sisendisse möödub parameetris T määratud aeg, siis läheb väljund kõrgeks ja püsib kõrge kuni R sisendisse antakse kõrge signaal.
Sisse-/väljalülitusviivitusega taimer (On-/Off-Delay)
Sellel taimeril on kaks viivitusparameetrit. TH määrab sisselülitusviivituse
aja ja TL määrab väljalülitusviivituse aja.
Ta on aeg, mida loetakse.
Kuni sisend Trg on kõrge, loetakse aega Ta. Kui see jõuab TH parameetriga määratud ajani (Ta = TH), siis väljund Q läheb kõrgeks ja Ta läheb nulli. Kui sisend Trg läheb madalaks, siis hakatakse jälle Ta aega lugema. Kui loetav aeg saavutab sama väärtuse, kui TL, siis läheb väljund madalaks.
Frondituvastusega pulsstaimer (Edge triggered wiping relay)
Sellel taimeril on kaks viivitusparameetrit. TL määrab sisselülitusviivituse
aja ja TH määrab väljalülitusviivituse aja.
Ta on aeg, mida loetakse.
Kui sisend Trg läheb kõrgeks,
siis hakatakse lugema aega Ta. Kuna kasutatakse frondituvastust, pole vahet,
kas Trg jääb kõrgeks või läheb kohe
madalaks.
Kui siendi tõusvast frondist on möödunud TL parameetriga määratud
aeg (Ta = TL), siis läheb väljund
Q kõrgeks ja Ta läheb nulli.
Koheselt hakatakse lugema järgmist aega, mis on väljundi väljalülitusviivitus.
Kui loetav aeg saavutab sama väärtuse, kui TH, siis läheb väljund
madalaks.
Kui taimer on aktiivne ja Trg sisendisse
saabub uus tõusev front, siis alustatakse lugemist taas algusest. Kui aktiivse taimeri R
(reset) sisendisse saabub mistahes hetkel tõusev front, siis lugemine peatatakse ja
väljund läheb madalaks.
Loendurid
Loendurid, nagu nimigi ütleb, on funktsioonid, mis võimaldavad midagi loendada. Programmiliselt võimaldavad need lugeda näiteks funktsiooni sisendisse saabuvaid tõusvaid fronte ja reaalses rakenduses juba näiteks toorikuid, nupuvajutusi või töötsükleid. Kui loendur on loendanud määratud numbrini, siis annab see sellest teada ploki väljundi oleku muutmise teel.
Üles/alla loendur (Up/down counter)
Suurendab või vähendab loendi väärtust ühe võrra iga kord, kui Cnt
sisendisse saabub positiivne front. Kui sisend Dir on madal,
siis loeb loendur ülespoole, kui kõrge, siis allapoole. See loendur ei suuda loendada alla nulli ega üle 999.
Kui R sisendisse tuleb positiivse frondiga signaal, siis võtab loendi enda
algväärtuse (nt 0) ja viib väljundi madalaks. Pärast seda on loendur algolekus.
Kui loendi väärtus saavutab On parameetri väärtuse, lülitub loenduri väljund Q kõrgeks. Kui loendi väärtus saavutab Off parameetri väärtuse, lülitub loenduri väljund madalaks. Start val parameeter määrab loendi algväärtuse.
- Kui On ≥ Off
- Q = 1, kui loend ≥ On
- Q = 0, kui loend < Off
- Kui On < Off (nagu kõrvalolevas näites)
- Q = 1, kui On ≤ loend < Off
- Q = 0, kui loend ≥ Off
Sageduspäästik (Thershold trigger)
Võimaldab paika panna aja G_T
(Gate time), mille vahemikus Fre sisendisse tulnud pulsse loetakse.
On parameeter määrab läve, mitu pulssi ajaühikus (G_T) peab tulema, et väljund
Q sisse lülitada. Off parameeter määrab läve, mitu pulssi ajaühikus (G_T)
peab tulema, et väljund Q välja lülitada. Pulsside arv ei pea olema täpne vaid sisselülitused ja väljalülitused toimuvad allmärgitud põhimõttel:
- Kui On ≥ Off
- Q = 1, kui pulsside-arv > On
- Q = 0, kui pulsside-arv ≤ Off
- Kui On < Off (nagu kõrvalolevas näites)
- Q = 1, kui On ≤ pulsside-arv < Off
- Q = 0, kui pulsside-arv ≥ Off
Muud funktsioonid
RS triger (Latching relay)
RS triger toimib mäluelemendina ja jätab oma väljundi oleku meelde. Sellel on kaks sisendit
S ehk set ja R ehk reset.
S sisend seab trigeri väljundi Q kõrgeks. See jääb kõrgeks
seni, kuni see R sisendi kaudu madalaks seatakse.
Seda on hea kasutada siis, kui mingi lühikese sisendsignaali peale peab kontrolleri väljund rakendunuks jääma kuni mingi teise lühikese sisendsignaalini. Samuti on seda mugav kasutada erinevate protsesside olekute meelde jätmiseks, näiteks "automaattsükkel hetkel töötab".
Pulssrelee (Pulse relay)
Pulssrelee Trg sisend pöörab väljundi Q
olekut. Kui enne oli väljund kõrge, siis pärast Trg sisendisse tulnud kõrget signaali
läheb väljund madalaks ja vastupidi.
Säilinud on ka RS trigerist tuntud sisendid S ja R, mis
avaldavad väljundile samasugust mõju, nagu RS trigeri puhul.
S sisend seab trigeri väljundi Q kõrgeks. See jääb kõrgeks
seni, kuni see R sisendi kaudu madalaks seatakse või ka antud juhul
Trg sisendi kaudu pööratakse.
Antud funktsioon on kasulik näiteks siis, kui ühe ja sama mittefikseeruva nupuga on vaja mingit väljundit nii sisse kui välja lülitada, kuid sama väljund peab olema juhitav paraleelselt ka erinevate sisendsignaalide kaudu (näiteks veel kaks nuppu, üks sisse, teine välja).
Tarkvaraline lüliti (Softkey)
Selle funktsiooni abil saab LOGO! kontrolleri pealsest kasutajaliidesest seda "lülitit" sisse ja välja lülitada menüüst "Set Param"
.
On mõeldud, et see "lüliti" lülitab signaali sisendist En väljundisse Q.
Parameetrite alt saab seda "lülitit" seadistada.
See võib olla fikseeruv (type: switch)
või mittefikseeruv (type: momentary pushbutton).
Saab ka valida, kas see on programmi käivitudes lülitatud (initial status:
on) või lülitamata (initial status: on).
Sisend En peab olema kõrge, et lüliti lülitamisel väljund kõrgeks läheks.
Seda funktsiooni saab kasutada LOGO! kasutajaliidese menüüsse seadistamisvõimaluste tekitamiseks, mis võimaldavad programmi käitumist või protsessi käiku muuta vastavalt sellele, kuidas see tarkvaraline lüliti programmis ühendatakse.
Analoogfunktsioonid
Analoogväärtused muudetakse kontrolleris digitaalseks, seega tegelikkuses pole tegemist analoogfunktsioonidega vaid funktsioonidega, mis töötlevad mitmebitilisi digitaalväärtuseid, mis ainult esindavad analoogväärtusi.
Analoogkomparaator (Analog Comparator)
Võrdleb kahte analoogsignaali esindavat väärtust ja lülitab ploki binaarväljundit olenevalt rakendumislävest.
Funktsioon leiab sisendite Ax ja Ay vahe.
Edasi võrdleb see vahet sisselülituslävega (parameeter On) ja väljalülituslävega
(parameeter Off). Kuigi funktsioonil on kaks sisendit, ei pea tingimata mõlemat ühendama.
Kui on soov võrrelda ainult ühte analoogsisendi väärtust rakendumislävega, võib teise sisendi tühjaks jätta.
Väljundi lülitumise tingimused:
- Kui On ≥ Off
- Q = 1, kui (Ax - Ay) > On
- Q = 0, kui (Ax - Ay) ≤ Off
- Kui On < Off
- Q = 1, kui On ≤ (Ax - Ay) < Off
- Q = 0, kui (Ax - Ay) ≥ Off
Analoog lävipäästik (Analog threshold trigger)
Sarnane analoogkomparaatorile, kuid sellel on vaid üks sisend. Kui üks sisend ja vahe arvutamine välja jätta on kõik sama.
Lülitab ploki binaarväljundit olenevalt sisendsignaalist Ay ja selle väärusest
sisselülitusläve On ja väljalülitusläve Off suhtes.
Väljundi lülitumise tingimused:
- Kui On ≥ Off
- Q = 1, kui Ax > On
- Q = 0, kui Ax ≤ Off
- Kui On < Off
- Q = 1, kui On ≤ Ax < Off
- Q = 0, kui Ax ≥ Off
Analoog differentsiaalpäästik (Analog differential trigger)
Funktsioon, mille binaarväljund läheb kõrgeks, kui sisendi Ax väärtus on vahemikus,
mis jääb parameetri On väärtuse ja sellest parameetri
Differential võrra erineva väärtuse vahele.
Mugav mingisuguse vahemiku tuvastamiseks. Kasutades mitut erinevate vahemikega instantsi sellest funktsioonist võib näiteks toorikuid kõrguse järgi sorteerida või näidata kasutajale, millal mingi küttekeha sobivas vahemikus olev temperatuur on saavutatud.
- Q = 1, kui On ≤ Ax < ( On + Differential )
- Q = 1, kui On ≥ Ax > ( On + Differential )
Analoog aritmeetika (Analog math)
Võimaldab lihtsat analoogväärtuste liitmist, lahutamist, korrutamist ja jagamist.
Funktsioonis saab kasutada kuni 4 operandi. Operand võib olla nii konstant kui ka
mõne teise analoogfunktsiooni väljund. Seda funktsiooni ei ole võimalik
otse sisenditega siduda, kuigi kohandatud sisendväärtust on võimalik lugeda läbi
analoogpäästiku (analog triger) või analoogvõimendi
(analog amplifier) funktsioonide.
Tehte järjekorra määramiseks on võimalik anda tehetele 3 erinevat prioriteeti: H - kõrge; M - keskmine; L - madal. Kõrgema prioriteediga tehted teostatakse esimesena, madalamaga viimasena.
Kõrvaloleval pildil on kujutatud tehe (B004.Ax+B005.Ax) / 2.
Operandidena saab kasutada järnevate funktsioonide näidatud parameetreid:
- Analoog komparaator (Analog comparator): Ax – Ay
- Analoog päästik (Analog trigger): Ax
- Analoog võimendi (Analog amplifier): Ax
- Analoog multiplekser (Analog multiplexer): AQ
- Analoog ramp (Analog ramp): AQ
- Analoog aritmeetika (Analog math): AQ
- PI kontroller (PI controller): AQ
- Üles/alla loendi (Up/Down counter): Cnt
Analoogvõimendi (Analog math)
Tegu on funktsiooniga, millega saab analoogväärtust skaleerida mingisse teise vahemikku. Parameetriteks on
Gain ehk võimendustegur ja Offset ehk nihe.
Pingesisendi vahemik on vaikimisi 0..1000. Selleks peab olema Gain 1,00 ja offset 0. Kui peaks tekkima vajadus saada sisend hoopis vahemikus 0..10, siis tuleb Gain parameetriks määrata 0,01. Sellisel juhul vastab väärtus täpselt pingele, kuid kaotame täpsuses. Kui peaksime vajama hoopis vahemikku 50..500, siis peaks Gain olema 0,45 ja Offset 50.
Samasugune funktsionaalsus on olemas ka mitmes teises analoogfunktsioonis.