Elektronika.lt

Elektronika.lt - elektronikos, informacinių ir
ryšių technologijų portalas

Adresas: http://www.elektronika.lt
El. paštas: info@elektronika.lt
 Atspausdinta iš: http://www.elektronika.lt/teorija/elektronika/7523/pv-programinis-valdiklis-programavimas/spausdinti/

PV (programinis valdiklis): programavimas

Publikuota: 2007-03-31 08:05
Tematika: Elektronikos technologija
Skirta: Mėgėjams
Autorius: el. paštas Marius Staskevičius
Aut. teisės: el. paštas ©Marius Staskevičius

Anksčiau buvo rašyta apie PV techninę įrangą (hardware), o po to buvo aprašyti relinių valdymo sistemų veikimo principai, todėl laikas imti ir sudaryti kokio nors PV valdymo programą.


Anksčiau buvo rašyta apie PV techninę įrangą (hardware), o po to buvo aprašyti relinių valdymo sistemų veikimo principai, todėl laikas imti ir sudaryti kokio nors PV valdymo programą.

Relių pakeitimas

Dabar panaudokime schemoje „jungiklis-relė-lemputė“ vietoje relės PV-klį (šiame pavyzdyje naudoti PV tikrai ekonomiškai nelabai efektyvu). Kadangi PV tiesiogiai nesupranta elektros schemų, turime sudaryti valdymo schemą PV-iui suprantama kalba. Programuosime taip vadinamą LAD diagramą (Ladder Diagram – tikriausiai, lietuvių kalboje tai būtų „kopėčių diagrama“).

Pirmas žingsnis – mes turime visas grandinių detales paversti valdikliui suprantamais simboliais. Vietoje sąvokų: jungiklis, relė, skambutis, lemputė ir t. t. PV naudoja sąvokas: įėjimai, išėjimai, ritė, kontaktas. PV-iui nesvarbu kokie iš tikrųjų įėjimo ir išėjimo įrenginiai prijungti, jam tik svarbu – prie kokių įėjimo/išėjimo kanalų jie prijungti, t. y. kokie yra šių įrenginių fiziniai (o kartu ir programiniai) adresai.

Pirmiausia pakeičiame elektros maitinimą dvejomis vertikaliomis linijomis, nupieštomis abiejuose diagramos šonuose. Tarkime, kairėje pusėje yra įtampa (baterijos pliusas), o dešinėje yra nulinė įtampa (žemė, minusas).

Tada parenkame įėjimo ir išėjimo simbolius. Žinoma, šiek tiek skiriasi skirtingų PV instrukcijos, tačiau, tikriausia, visi PV naudoja dvejų pagrindinių tipų instrukcijas:

  • Kontaktai (contacts)
  • Ritės (coils)

„Jungiklio-lemputės“ schemos pavyzdyje turime vieną realaus pasaulio įėjimą – jungiklį. Jungiklio simboliu gali būti relės kontaktas.

Kontaktai – tai instrukcijos, kurios faktiškai atitinka valdymo programos įėjimus (įvedimo signalus). Valdymo programos kontaktas stebi atitinkamą lauko įrenginį.

Kontaktas laukia, kad įėjimo įrenginys padarytų kažką konkretaus (pvz. įsijungtų, išsijungtų, ir t. t. – priklausomai kokio tipo yra kontaktas). Tuomet kontaktas praneša valdymo programai, kad pakito atitinkamos valdomos sistemos sąlygos, ir kad programa patikrintų, ar nereikia pakeisti kurio nors iš išvedimo įrenginių būsenos.


1 pieš. „Kontaktas“ – įvedimo įrenginys.

Liko išėjimo simbolis, kuriuo pažymėsime mūsų pavyzdžio išėjimą – lemputę. Lemputės simbolis – tai tarsi relės ritė.

Ritės yra instrukcijos, kurios priskiriamos valdymo programos išėjimams (išvedimo signalams) – tai yra nurodymas, ką sistemoje turi daryti atitinkamas išvedimo įrenginys. Kaip ir kontaktui, ritei priskiriamas konkretus lauko įrenginys, tačiau, skirtingai negu kontaktas, kuris stebi lauko įrenginį ir tuomet praneša į PV ką daryti, ritė stebi PV valdymo programą ir tuomet praneša lauko įrenginiui – ką daryti.


2 pieš. „Ritė“ – išvedimo įrenginys.

Antras žingsnis – reikia priskirti šiems mūsų simboliams adresus, kad PV žinotų, iš kur imti duomenis ir kur persiųsti išskaičiuotą loginės schemos rezultatą. Adresai, priklausomai nuo PV tipo ir gamintojo, gali būti ir paprasti skaičiai (pvz.: 0000; 01; 5022) ir tokie, kuriuose atsispindėtų įėjimo/išėjimo modulio ir prijungimo kanalo numeris (pvz. I0.0; I3.2; O2.4; Q19.31). Dažnai adresai pradedami skaičiuoti ne nuo „1“, o nuo „0“.

Mūsų pavyzdyje užduodame įėjimo (kontaktui) ir išėjimo (ritei) signalams tokius adresus: signalas iš jungiklio ateina adresu I1.1, o signalas į lemputę nueina adresu O1.1.

Trečias ir galutinis žingsnis – elektrinę schemą išversti į PV-iui suprantamą loginių įvykių seką. Programa, kurią mes tuoj parašysime, paaiškins valdikliui, ką daryti, nutikus tam tikriems įvykiams. Mūsų pavyzdžio atveju, PV turi uždegti lemputę, kai koks nors pilietis įjungia šviesos jungiklį.

Sudėję viską į vieną vietą, gauname pirmą suprogramuotą grandinę:


3 pieš. Suprogramuota grandinė: „jungiklis-lemputė“.

Turime paprasčiausią grandinę: sieninis jungiklis, PV ir lubų šviestuvas. Kadangi jungiklio įjungimas turi įjungti šviesą, tai PV valdymo programa turi turėti kontaktą, tikrinantį įvedimo įrenginio – sieninio jungiklio – įjungimo sąlygą ir ritę, skirtą šviestuvui. Kai įjungiame jungiklį, kontaktas užsidaro ir praneša PV (valdymo programai), kad stebima sąlyga išsipildė. Tada PV perduoda šią informaciją ritės instrukcijai, ją „įjungdamas“. Tai leidžia ritei suprasti, kad ji privalo priskirtam išvedimo įrenginiui – šviestuvui – pasakyti, „šviesk“.

Apibūdinant konfigūravimo principą vienu sakiniu: loginė srovė, tekėdama iš kairės į dešinę per visus loginius kontaktus, priklausomai nuo kontaktų (daviklių ir išskaičiuotų loginių sąvokų) arba užmaitina kokią nors loginę ritę (suvykdina išorinį mechanizmą), arba ne – jei kelyje lieka neuždarytų (nepraleidžiančių srovės) kontaktų.

Kadangi vieno jungiklio ir vienos lemputės užduotis net žmogui, pirmą kartą matančiam PV programavimą, yra vieni juokai, pereikime prie sudėtingesnio uždavinuko.

Užduotis: vandens siurblio valdymas

Vandens talpoje reikia palaikyti tarpinį vandens lygį, reikalui esant papildant vandenį siurbliu. Siurblys valdomas dviem kontaktiniais lygio davikliais, esančiais vandens talpoje. Suveikus žemo lygio davikliui (lygis nukrito žemiau daviklio lygio), įjungiamas siurblys ir pradedamas vandens pylimas į talpą, kol suveikia aukšto lygio daviklis, išjungdamas siurblį. Nukritus vandens lygiui vėl žemiau žemesniojo daviklio, siurblys vėl įjungiamas ir visas siurblio darbo ciklas vėl kartojamas. Siurblys gali dirbti ir rankiniu režimu, kai valdomas ne lygio daviklių, bet mygtukais START ir STOP (START mygtukas siurblį įjungia, STOP – sustabdo).

Taip pat turi būti avarinis išjungėjas, sustabdantis siurblį bet kuriame režime, bei garsinis signalas, kuris pirmas 5s. visiems garsiai praneša, kad pasileido siurblys.

Paveikslėlyje parodyti šiame pavyzdyje dalyvaujantys įrenginiai: įėjimai – kairėje, išėjimai – dešinėje.


4 pieš. Pavyzdžio struktūrinė schema.

Taigi, turime 6 įėjimus ir 2 išėjimus:

Signalo tipas

Signalo pavadinimas

Padėtys

Signalo adresas

DI

Aukšto lygio daviklis

0-normalus / 1-aukštas lygis

I1.1

DI

Žemo lygio daviklis

0-žemas / 1-normalus lygis

I1.2

DI

Automatinio/rankinio režimų perjungiklis

0-rankinis / 1-automatinis režimas

I1.3

DI

START mygtukas

0-nieko / 1-paspaustas mygtukas

I1.4

DI

STOP mygtukas

0-nieko / 1-paspaustas mygtukas

I1.5

DI

Avarinio stabdymo mygtukas

0-paspaustas mygtukas / 1-nieko

I1.6

DO

Garsinis signalas

0-nieko / 1-signalas garsui

O1.1

DO

Siurblio paleidimas

0-stabdyti / 1-paleisti siurblį

O1.2



5 pieš. Pavyzdžio programa (LAD programos kodas).

Kaip matome, visa loginė LAD diagrama suskaidyta į keturis atskirus segmentus (čia vadinamus „Network“), kuriuos sudaro elementai susiję viena logine seka (logine srove). Taip pat šiame pavyzdyje naudojamas tarpinis kintamasis (trigeris) M1.1 ir taimeris T37, duodantis 5s. impulsą. Visi kontaktai pavaizduoti normalioje būsenoje t.y. paveikslėlyje visi signalai gavę „0“ (jeigu schemoje matome uždarytą kontaktą, tai reiškia jis yra normaliai uždaras NU, ir gavęs „1“ jis atsidarys).

Žaliu šriftu yra parašyti programos darbą aiškinantys komentarai.

Šis pavyzdys nuo realaus skiriasi tuo, kad įėjimo/išėjimo signalų adresavimas skaičiuojamas nuo 1-to (mūsų pavyzdyje naudotame, bene plačiausiai Lietuvoje paplitusiame, SIEMENS SIMATIC valdiklyje adresai prasideda nuo 0 – I0.0, I0.1 ir t.t.) ir kad paprastai įspėjamasis signalas nuskamba dar nepasileidus įrenginiui (supaprastinau, kad visas programos kodas tilptų viename lape). Be to, realiuose projektuose dažniausia naudojamas grįžtamojo ryšio (kad siurblys tikrai veikia) įėjimo signalas.

‡ 1999–2024 © Elektronika.lt LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!