You are on page 1of 19

APP – Programiranje u TwinCAT-u

DRUGA LABORATORIJSKA VJEŽBA


- Upotreba analognih ulaza -

1. Sustav za transport biomase u plamenik peći

1.0. Kratak opis sustava

Sustav za transport biomase u plamenik peći se koristi za grijanje stambenog objekta (kuću).
Sustav je poželjno automatizirati u svrhu smanjenja angažmana čovjeka na proces i povećanja
funkcionalnosti sustava (upotrebom raznih upravljačkih uređaja).

Sustav se sastoji od vanjskog spremnika, pužnog transporta, mješača biomase, ventilacijskog


sustava, plamenika i peći za centralno grijanje.

U vanjskom spremniku je smještena biomasa. Pužni transporter (spirala) transportira biomasu


u plamenik, unutar kojeg ona izgara i dobivenom toplinskom energijom grije spremnik vode. Voda se
kasnije koristi za grijanje stambenog objekta.

Pogonski mehanizam pužnog transportera se sastoji od jednofaznog asinkronog motora koji


prenosi snagu i gibanje preko lančanog prijenosa na puž (spiralu).
1.1. Ideja automatizacije sustava

Elektromotor za transport biomase u plamenik može raditi u dva režima rada: dnevni i noćni.
Temperaturni senzor (DOL15) određuje režim rada.

U dnevnom režimu, ciklus rada spirale (motor) vremenski je duži, što rezultira većem doziranju
biomase u plamenik i većoj toplinskoj energiji, odnosno učinkovitije zagrijavanje vode u spremniku.
Motor će raditi u dnevnom ciklusu rada ukoliko je vanjska temperatura okoline manja od 18°C.

U noćnom režimu, pužni transport radi kraće te nije potrebno zagrijavanje vode u spremniku
već je poželjno održavati određenu temperaturu vode u spremniku (npr. 24°C ). Prema navedenim
zahtjevima potrebno je prilagoditi vremenski rad pužnog transportera. Motor će raditi u noćnom
ciklusu rada ukoliko je vanjska temperatura okoline veća od 18°C.
2. Provedba ideje automatizacije

2.1 Upoznavanje s drugom vježbu

Vježba je raspodijeljena na dva dijela: Najprije (Prvi dio) ćemo izraditi programsku logiku koja
će raditi određeni dio procesa te rastaviti logiku na više pojedinih operacija/cjelina. U drugom dijelu
ćemo povezati programske kodove.

Prvi dio:
Izradit ćemo programsku logiku (LD dijagram) u kojoj će se pod određenom temperaturom
paliti/gasiti motor. Počinjemo s jednostavnom programskom logikom i tokom svakog koraka ćemo je
nadopunjavati.

Najprije ćemo izraditi programsku logiku upravljanja motorom. Motor treba raditi 40 sekundi
i nakon toga čekati 20 sekundi te se ponovno upaliti. Motor će raditi ciklički na prethodan način sve
dok je uključena grebenasta sklopka motora (u poziciji 2 - AUTO). Ukoliko je uključena sigurnosna
gljivica motor prestaje s radom. PRIPAZI! Sigurnosna gljivica ima normalno zatvoren (NC) kontakt.

sustava

PLC - Ladder dijagram

Izraditi ćemo sljedeće globalne varijable u listu GVL_IO:

Ulazi i izlazi PLC Definiranje u GVL_IO Tip podataka


Grebenasta sklopka motora za položaj AUTO DI_MSwitch_AUTO BOOL
Sigurnosna gljivica (NC) DI_MSafety_Switch BOOL
Motor DO_Motor BOOL
Temperaturni senzor DOL15 (Iz prve vježbe – nije AI_DOL15 INT
potrebno dodavati)
Za svaku od prethodnih varijabla želimo znati status (status koristimo u programskoj logici).
Izradit ćemo posebnu globalnu listu GVL_ST (Status) prema sljedećoj tablici. Kako bismo pridružili
GVL_IO i GVL_ST izradit ćemo poseban Ladder dijagram nazvan FB1_STATUS.

Značenje Definiranje u GVL_ST Tip podataka


Sklopka motora u položaju AUTO MSwitch_AUTO BOOL
Pritisnuta sigurnosna gljivica (NC) MSafety_Switch_ON BOOL
Motor radi Motor_RUN BOOL
Motor ne radi Motor_STOP BOOL
Stvarna vrijednost temp. senzora DOL15 (Iz prve Temperatura_DOL15 REAL
vježbe – potrebno je premjestiti iz GVL_IO u GVL_ST)
Pogrešno učitavanje senzora (vrijednost veća od DOL15_Error BOOL
raspona senzora -40 do 60 °C – iz funkcijskog bloka)

NAPOMENA: Prilikom pridruživanja globalnih varijabla u programu, upisujemo glavnu riječ


GVL_IO. i tada se ispisuju sve definiranje globalne varijable u listi GVL_IO. Drugi način je ručno
pridruživanje varijabla. Moguće je definirati globalne varijable istog naziva unutar dva ili više različitih
globalnih lista, ali ne i u istom listu.

1. način 2. način

IZRADA PROGRAMA:

Prvo je potrebno definirati globalne varijable. Najprije definiramo globalnu listu GVL_IO:

premjestiti u GVL_ST
Sljedeći korak je definirati globalnu listu GVL_ST. Potrebno je premjestiti varijablu
Temperatura_DOL15 iz GVL_IO u GVL_ST. PRIPAZI! Prilikom svakog premještanja globalnih varijabli u
drugu globalnu listu, ukoliko su iste upotrjebljene u nekoj programskoj logici, TWINCAT NEĆE
automatski prepoznati promjenu te je potrebno ručno „ponovno“ pridružiti varijablu:

Potrebno se vratiti u program DOL15 te ponovno pridružiti vrijednost varijable:

umjesto GVL_IO.Temperatura_DOL15

Nakon svakog izrađenog programa ili definiranja globalnih varijabla dobro je pokrenuti
naredbu Build Solution.
Sljedeći korak je kreirati relaciju između GVL_IO i GVL_ST. Izradit ćemo novi Ladder dijagram
nazvan FB1_STATUS:

Sad možemo prijeći na programsku logiku upravljanja motorom (opisana na početku – PRVI
DIO). Kreirat ćemo novi Ladder dijagram FB2_MOTOR_CONTOL:

Najprije ćemo paliti motor bez tajmera. Uvjet za rad motora je uključena grebenasta sklopka u
položaju AUTO i da nije pritisnuta sigurnosna gljivica:
SIMULACIJA:

Za simulaciju kreiranih programa unijet ćemo ime kreiranih programa unutar MAIN programa!

FB1_STATUS:

FB2_MOTOR_CONTROL:
Nakon što smo se uvjerili da je program u redu možemo dodati tajmer za paljenje/gašenje
motora. Motor treba raditi 40 sekundi te 20 sekundi pauzirati. Motor radi na taj način sve dok se ne
isključi grebenasta sklopka ili pritisne sigurnosna gljivica.

U TwinCAT je moguće koristiti samo TON, TOF i TP tajmere. Jedan od načina izrade TON/OFF
tajmera je kombinacijom dva TON tajmera i zastavice (lokalna varijabla):

Kako je potrebno pridružiti svaku ulazu/izlazu varijablu (Tajmer ET) funkcionalnom bloku,
izradit ćemo dvije nove globalne varijable GVL_ST: MET_OFF (Motor Elapsed Time OFF) i MET_ON
(Motor Elapsed Time ON) tipa TIME te ih je potrebno pridružiti u Ladder programu.
Sljedeći korak je upotrijebiti temperaturni senzor DOL 15. Izradit ćemo novu globalnu varijablu
M_Mode (Režim rada motora) tipa BYTE u listu GVL_ST. Ukoliko je temperatura manja od 18 °C spremit
će se vrijednost 1 u globalnu varijablu M_Mode (def. M_Mode:BYTE, Vrijednost 1 označava dnevni
režim rada).

FB2_MOTOR_CONTROL

Ukoliko je uključen dnevni režim rada potrebno je povećati vrijeme rada motora na 50 sekundi
i 10 sekundi za pauzu.

Kreirati ćemo dvije nove varijable u GVL_ST: MPT_ON i MPT_OFF (Motor Preset Time ON/OFF)
tipa TIME. Vrijednosti ćemo pridružiti sljedećim novim varijablama iz liste GVL_CM.

Za ovaj zadatak kreirat ćemo novi list globalnih varijabla nazvan GVL_CM (Command,
komande). Unutar liste kreirat ćemo dvije globalne varijable: DAY_ON, DAY_OFF tipa TIME. Varijable
ćemo pridružiti vremenu okidanja pojedinom tajmeru.

Značenje Definiranje u GVL_CM Tip podataka Inicijalna


vrijednost
Vrijeme rada motora kod dnevnog režima T_DAY_ON TIME T#50s
Vrijeme pauze motora kod dnevnog režima T_DAY_OFF TIME T#10s
FB2_MOTOR_CONTROL:

Simulacija:
AUTOMATSKI I RUČNI NAČIN RAD MOTORA

Poželjno je izraditi automatski i ručni način rada unutar našeg PLC-a. Kad smo u automatskom
načinu rada, motor radi vremenski (vrijeme ovisi o režimu rada) preko tajmera. Kad smo u ručnom
načinu rada, želimo pomoću HMI „ručno preko sklopke (objekt)“ upaliti motor.

Kreirat ćemo novu varijablu (komande) u GVL_CM: MSET_MAN (Motor Set Manual). Navedena
varijabla će davati komandu oko načina rada motora. Ukoliko je istinita, motor će se pokrenuti (MAN).
Ukoliko je neistina (logička 0) motor će raditi preko tajmera (AUTO). Koristit ćemo ih u programu
FB2_MOTOR_CONTROL.

Kreirat ćemo nove varijable u GVL_ST: MMode_AUTO i MMode_MAN (Motor Mode


Automatic/Manual). Navedenim varijablama ćemo pridružiti pripadajuću komandu (GVL_CM) u
programu FB1_Status.

GVL_CM:

GVL_ST:

U programu FB1_STATUS dodat ćemo sljedeću logiku:


FB2_MOTOR_CONTROL:

Simulacija:
GVL_CM.MSet_MAN = OFF - AUTOMATSKI NAČIN RADA MOTORA – preko tajmera
GVL_CM.MSet_MAN = ON – RUČNI NAČIN RADA MOTORA

ZADATAK ZA VJEŽBU:
Potrebno je izraditi i noćni režim rada, M_Mode=2. Noćni režim rada je uključen ukoliko je
temperatura veća od 18 °C. Vrijeme rada motora je 15 sekundi, a vrijeme pauze 45 sekundi.

Drugi dio:
Možemo birati između dvije strukture pozivanja programa: linearna ili modularna.

Linearna struktura programa izvršava sve instrukcije/programe pozvane u glavnom programu


zadatka PLC-a (PLCTask) u sekvenci, jedan nakon drugog. U prvom dijelu smo koristili linearnu strukturu
jer smo u MAIN unijeli svaki naš program.

Modularna struktura programa poziva specifične programske kodove koji izvršavaju specifičan
zadatak. Za izradu je potrebno raspodijeliti kompleksne programe na manje operacije. U našem slučaju
izradili smo dva programa FB1_STATUS i FB2_MOTOR_CONTROL. Na primjer možemo još dodatno
rastaviti program FB2_MOTOR_CONTROL na FB3_REZIM_RADA, FB4_NACIN_RADA itd. Svaki
programski kod ima segment nasljednog programa.
Za modularno strukturu programa izradit ćemo dodatno program FB4_ALARM preko kojeg će
se ispisati svi alarmi. Izradit ćemo i novu globalnu listu GVL_ALARM.

Alarm će biti aktivan ukoliko je pritisnuta gljiva, nisu dignuti osigurači (motora i 24V), ako je
izbacio bimetal motora i ako senzor pogrešno očitava vrijednost.

GVL_ALARM:

GVL_IO:
FB3_ALARM:

Pripazi! Obrnuta logika.

MAIN (PRG) FB1_STATUS FB2_MOTOR_CONTROL

FB4_ALARM

Za izradu modularne strukture programa unutar MAIN programa ćemo pozvati program
FB1_STATUS i FB4_ALARM.

Nakon toga potrebno je pozvati program FB2_MOTOR_CONTROL unutar programa


FB1_STATUS. Da bismo realizirali pridruživanje programa potrebno je unutar programa
FB2_MOTOR_CONTROL kreirati barem jednu ulaznu varijablu. Ovdje je kreirana jedna ulazna varijabla
te jedna izlazna koja je konstantno u logičkoj jedinici:
Sad je potrebno unutar programa FB1_STATUS pozvati FB2_MOTOR_CONTROL.

Možemo pridružiti neki uvjet za pokretanje programa FB2_MOTOR_CONTROL. Kako nisam


upotrijebio novokreirane ulaze iz liste GVL_IO, pridružit ću DI_FUSEM i DI_BIMETAL za pozivanje
programa. Ukoliko nije dignut osigurač za motor i ukoliko nije bimetal izbacio (nije se zagrijao motor)
program se može pozvati.

Potrebno je sad u programu FB2_MOTOR_CONTROL iskoristiti ulaznu varijablu EN tamo gdje


je poželjno da nemamo signal kad izbaci bimetal ili osigurač.

Kad izbaci bimetal ili osigurač motor neće raditi. Fizički ako pogledamo razvodni ormar ukoliko
i izbace bimetal ili osigurač motor svejedno neće raditi, bez obzira na logiku PLC-a.
Simulacija:
UVJET OK:
BIMETAL IZBACIO:
Literatura:

Simatic, S7-1200 Easy Book, manual. Preuzeto na moj.tvz.hr

Izradio: Eduard Ciglar

You might also like