VS Blazinšek Matej 1978 9341417 - COnnecting REpositories · 2018. 8. 23. · Siemensu razvili...
Transcript of VS Blazinšek Matej 1978 9341417 - COnnecting REpositories · 2018. 8. 23. · Siemensu razvili...
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
MATEJ BLAZINŠEK
DIPLOMSKA NALOGA
MARIBOR, MAREC 2002
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Matej Blazinšek
IZDELAVA PROGRAMSKEGA PAKETA ZA REGULACIJO S KRMILNIKI SIMATIC
Diplomska naloga
Maribor, marec 2002
I
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17
Diplomska naloga visokošolskega strokovnega študijskega programa
IZDELAVA PROGRAMSKEGA PAKETA ZA REGULACIJO S KRMILNIKI SIMATIC
Študent: Matej BLAZINŠEK Študijski program: visokošolski strokovni, Elektrotehnika Smer: Močnostna elektrotehnika
Mentor: doc. dr. Jože RITONJA Somentor: red. prof. dr. Drago DOLINAR
Maribor, marec 2002
II
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17
Številka: DE/XZ-97
Datum: 3. 10. 1997
SKLEP O DIPLOMSKI NALOGI
III
ZAHVALA
Zahvaljujem se mentorju doc. dr. Jožetu Ritonji za
pomoč in vodenje pri opravljanju diplomske
naloge. Prav tako se zahvaljujem somentorju red.
prof. dr. Dragu Dolinarju ter vsem, ki so mi
pomagali pri študiju.
Posebna zahvala velja staršem, ki so mi omogočili
študij.
IV
IZDELAVA PROGRAMSKEGA PAKETA ZA REGULACIJO S KRMILNIKI SIMATIC
Ključne besede: regulacija, samonastavitev, procesni krmilniki, enosmerni motor UDK: 681.5(043.2) Povzetek
Diplomska naloga predstavlja izdelavo programskega paketa za regulacijo s krmilniki
SIMATIC S7 – 300. Programski paket sestavljata dva modula. V prvem je realiziran PID
regulator, ki preko krmilnikovih analognih vhodov in izhodov omogoča regulacijo zveznih
dinamičnih procesov. Drugi modul omogoča samonastavitev PID regulatorja na podlagi
ustreznih metod za identifikacijo dinamičnih lastnosti procesa in sintezo regulatorja.
V
PROGRAMME PACKAGE FOR CONTROL WITH SIMATIC CONTROLLERS
Key words: control, autotuning, programmable controllers, DC motor UDK: 681.5(043.2)
Abstract
The work presents creation of programme package for control with programmable
controllers SIMATIC S7-300. Programme package contains two modules. One of these is
PID control modul which enables control of dynamic processes over controllers on board
analog inputs and outputs. The second modul enables autotuning of PID controller, which
is based on suitable dynamic system identification and controller parameters tuning
methods.
VI
VSEBINA
1. UVOD 1
2. SIMATIC 3
2.1 STROJNA OPREMA 3
2.2 PROGRAMSKA OPREMA 6
3. ZAHTEVE REGULACIJSKEGA SISTEMA 12
3.1 OBRATOVALNA STANJA REGULACIJSKEGA SISTEMA 13
4. SISTEMSKI IN UPORABNIŠKI PROGRAM KRMILNIKA 15
4.1 SISTEMSKI PROGRAM 15
4.2 UPORABNIŠKI PROGRAM 16
5. SAMONASTAVITEV 19
5.1 DOLOČITEV MODELA REGULIRANEGA PROCESA 19
5.2 DOLOČITEV PARAMETROV REGULATORJA 32
6. OPIS UPORABNIŠKEGA PROGRAMA 35
6.1 VHODNE IN IZHODNE SPREMENLJIVKE 35
6.2 STRUKTURA UPORABNIŠKEGA PROGRAMA 37
7. PREIZKUS DELOVANJA 47
7.1 REGULACIJA ENOSMERNEGA MOTORJA 47
7.2 REGULACIJA ELEKTRONSKEGA VEZJA 51
8. SKLEP 57
LITERATURA 59
PRILOGE 60
A PROGRAM 60
VII
SPISEK NAJVAŽNEJŠIH SIMBOLOV
Y - izhod iz sistema
R - referenca
U - izhod iz regulatorja
k - ojačanje procesa
T - časovna konstanta procesa
L - mrtvi čas procesa (pri procesih z monotonim stopničnim odzivom)
z - dušenje procesa (pri procesih z oscilatornim stopničnim odzivom)
δ(t) - impulzno vzbujanje
h(t) - impulzni odziv
σ(t) - vzbujanje s stopnico
s(t) - stopnični odziv
Kr, Ti, Td - parametri PID regulatorja
bi, bd, ad - parametri diskretnega regulatorja
Rr - rotorska upornost enosmernega motorja s trajnimi magneti
Lr - rotorska induktivnost enosmernega motorja s trajnimi magneti
J - vztarjnostni moment enosmernega motorja s trajnimi magneti
f - koeficient viskoznega trenja enosmernega motorja s trajnimi magneti
Kem - elektromehanska konstanta enosmernega motorja s trajnimi magneti
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 1
1. UVOD
Procesni krmilniki so pričeli ob koncu šestdesetih letih na področju
avtomatizacije izpodrivati elektronske krmilne naprave in klasična ožičena krmilja
[3]. Do danes so se zaradi ugodne cene in vse večjih zmogljivosti razširili na vsa
področja avtomatizacije. Kot digitalne decentralizirane naprave so prilagojeni
industrijskemu okolju in so predvsem uporabniško orientirani. Vgrajene imajo
različne funkcije (števne, časovne, regulacijske), odlikuje pa jih tudi robustnost,
modularna zgradba, enostavna vgradnja in možnost programiranja z različnimi
programskimi jeziki.
Na tržišču obstaja množica proizvajalcev krmilnikov. V okviru našega
diplomskega dela smo se omejili na strojno in programsko opremo proizvajalca
Siemens. Siemens, ki je največji proizvajalec krmilnikov v svetu, je poimenoval
svoje izdelke namenjene avtomatizaciji procesov s skupnim imenom SIMATIC.
Osnovno značilnost družine SIMATIC predstavlja celovitost rešitev na področju
avtomatizacij procesov.
V diplomski nalogi smo prikazali razvoj programske opreme za Siemensov
krmilnik srednjega razreda. Uporabili smo krmilnik SIMATIC S7-300 CPU 314
IFM, ki predstavlja enega najbolj pogosto uporabljenih krmilnikov za
avtomatizacijo manj in srednje kompleksnih procesov. Uporabljeni krmilnik ima
integrirane analogne in binarne vhode ter analogne in binarne izhode, tako da
predstavlja primerno strojno opremo za izdelavo regulacijskega sistema.
V okviru diplomske naloge smo postavili zahteve, ki jih naj izpolnjuje
regulacijski sistem, napisali smo programsko kodo in preverili (testirali) delovanje
tako razvitega regulacijskega sistema.
Ena izmed osnovnih zahtev, ki jih naj regulacijski sistem izpolnjuje, je zahteva
po samonastavitvi regulatorja. Samonastavitev nam predstavlja najhitrejšo in
relativno enostavno metodo za določitev parametrov regulatorja.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 2
Omeniti moramo, da predstavlja izdelan uporabniški program skupaj z
uporabljenim krmilnikom alternativo k ponujenim strojnim rešitvam regulatorjev
(regulacijski modul IP 262, …) ali pa k že obstoječim programskim modulom
(PID funkcijski bloki: FB41, FB42, FB43, …). Prednost našega razvitega
programskega modula je predvsem v njegovi odprtosti, saj nam omogoča vpogled
in dopolnjevanje samega programa.
Diplomska naloga je sestavljena iz osmih poglavij:
- prvo poglavje: uvod;
- drugo poglavje: predstavljene so skupine izdelkov družine SIMATIC s
poudarkom na krmilnikih in za njihovo delovanje potrebni programski
opremi;
- tretje poglavje: predstavljene so zahteve, ki jih naj izpolnjuje regulacijski
sistem;
- četrto poglavje: prikazane so osnovne značilnosti sistemskega in
uporabniškega programa krmilnika;
- peto poglavje: opisan je potek samonastavitve regulatorja, opis dinamike
procesa, izračun parametrov procesa;
- šesto poglavje: predstavljen je uporabniški program, njegova struktura in opis
posameznih blokov;
- sedmo poglavje: predstavljena je uporaba regulacijskega sistema, testiranje;
- osmo poglavje: sklep.
V prilogi je dodan izdelan uporabniški program v programskem jeziku SCL-u
(Standard Control Language).
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 3
2. SIMATIC
Ime Simatic označuje skupino Siemensovih izdelkov za integrirano
avtomatizacijo proizvodnje. Sestavljajo jo strojne komponente in za njihovo
delovanje potrebna strojna oprema.
2.1 STROJNA OPREMA
SIMATIC S7-200 predstavlja spodnjo cenovno skupino krmilnikov in
dodatnih modulov (vhodno izhodni,…) za avtomatizacijo enostavnih krmilnih in
regulacijskih nalog strojev in procesov. To skupino odlikuje predvsem
nezahtevnost glede za njihovo programiranje potrebne programske opreme.
SIMATIC S7-300 predstavlja srednjo cenovno in zmogljivostno skupino
izdelkov za avtomatizacijo srednje zahtevnih krmilnih in regulacijskih nalog
strojev in procesov.
SIMATIC S7-400 predstavlja zgornjo cenovno in zmogljivostno skupino
izdelkov za avtomatizacijo, glede obsega in hitrosti, najzahtevnejših krmilnih in
regulacijskih nalog strojev in procesov.
SIMATIC M7 so krmilni sistemi, namenjeni za razširitev krmilnih sistemov
SIMATIC S7. Osnovo predstavlja centralna procesna enota, aplikacijski modul,
razširitveni modul in pomnilniški modul (trdi disk 520MB in mehki disk 3,5˝ )
Ločimo dve skupini izdelkov: M7-300 (za razširitev S7-300) in M7-400 (za
razširitev S7-400).
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 4
SIMATIC C7 je skupina izdelkov, ki v enem ohišju predstavljajo združena
krmilnik z vhodno izhodnimi moduli serije S7-300 in modul za vnos in prikaz.
Predstavljajo kompletno rešitev za avtomatizacijo enostavnih sistemov.
SIMATIC PC je skupina v katero spadajo robustni industrijski PC-računalniki
v različnih izvedbah in z ustreznimi perifernimi napravami (tipkovnica, monitor,
komunikacijski vmesnik).
SIMATIC PG so programirne naprave namenjene za projektiranje,
programiranje in vzdrževanje krmilnih sistemov. To so prenosni računalniki s
programskimi orodji STEP 7.
SIMATIC HMI (Human Machine Interface) so moduli za vnos in prikaz, ki
omogočajo hiter dostop do elementov krmilnega sistema. Na razpolago imamo
module z alfanumeričnim prikazovalnikom in module z grafičnim
prikazovalnikom.
SIMATIC NET so izdelki, ki omogočajo omreženje krmilnih sistemov.
Razdelimo jih v tri skupine:
- komponente za AS-Interface (Actuator Sensor Interface), omogočajo
povezavo krmilnega sistema z aktivatorji, senzorji in dajalniki,
- komponente za PROFIBUS (Process Field Bus), omogočajo povezavo
posameznih modulov krmilnega sistema po EN 50 170,
- komponente za industrijski Ethernet, omogočajo povezavo posameznih
modulov krmilnega sistema po IEEE 802.3.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 5
2.1.1 SIMATIC S7-300
Družina SIMATIC S7-300 obsega množico komponent potrebnih za izgradnjo
krmilnih sistemov. Za fizično povezavo krmilnika z dodatnimi moduli, skrbi
nosilna letev. Na skrajno levo razpoložljivo mesto pritrdimo napajalnik, katerega
nazivna moč je odvisna od izbranega krmilnika in dodatnih modulov. Sledi mu
krmilnik (CPU – centralna procesna enota). Družino SIMATIC S7-300
predstavlja šest krmilnikov:
- CPU 312 IFM,
- CPU 313,
- CPU 314 IFM,
- CPU 314,
- CPU 315 in
- CPU 315-2 DP,
ki se med seboj razlikujejo po zmogljivosti. Krmilnika CPU 312 IFM in CPU 314
IFM že imata integrirane binarne in analogne vhode in binarne in analogne
izhode. Krmilnik in napajalnik predstavljata osnovno (minimalno) postavitev
krmilnega sistema, ki jo lahko razširimo z dodatnimi moduli. Na izbiro imamo
različne periferne module, ki jih lahko razdelimo v skupine:
• signalni moduli (SM), so moduli preko katerih prenašamo analogne in binarne
signale v krmilni sistem in iz krmilnega sistema. Signalne module delimo na:
- binarne vhodne module,
- binarne izhodne module,
- binarne vhodno/izhodne module,
- analogne vhodne module,
- analogne izhodne module.
• funkcijski moduli (FM), so namenjeni izvajanju časovno kritičnih in
spominsko zahtevnih nalog (pozicioniranje, regulacije,…).
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 6
• komunikacijski procesorji (CP), ki služijo za povezavo krmilnika na
PROFIBUS-DP industrijsko omrežje.
• povezovalni moduli (IM), za povezavo več kot osmih razširitvenih modulov
na en krmilnik.
• RS 485 repetitor služi za ojačanje signalov v MPI ali PROFIBUS omrežju in
za povezavo posameznih segmentov v omrežjih.
2.2 PROGRAMSKA OPREMA
Za programsko podporo uporabnikom izdelkov skupine SIMATIC so v
Siemensu razvili programski paket STEP 7. Programski paket teče na operacijskih
sistemih Microsoft Windows. Programski paket STEP 7 ustreza standardu
EN61131-3 [7]. Programski paket razdelimo v štiri skupine izdelkov programske
opreme:
- osnovna programska orodja (Standard tools),
- inženirska programska orodja (Engineering tools),
- programska orodja za delo v realnem času (Runtime software) in
- programska orodja za povezavo človek – stroj (Human machine interface).
2.2.1 Standardni paket STEP 7
Standardna programska oprema se uporablja v vseh fazah avtomatizacije
procesa. Za nas so bile najpomembnejše:
- konfiguriranje in parametriziranje strojne opreme,
- uporaba simboličnega naslavljanja,
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 7
- editiranje programov in prenos programov v krmilnik, in iz njega,
- testiranje in diagnosticiranje napak.
Standardni paket STEP 7 sestavlja več programskih aplikacij. Osnovni
program je SIMATIC Manager, iz katerega dostopamo do ostalih aplikacij.
SIMATIC Manager upravlja podatke, ki pripadajo avtomatizacijskemu projektu,
ne glede za kateri avtomatizacijski projekt so narejeni (S7/M7/C7).
Najpomembnejše (osnovne) aplikacije so:
• urejevalnik za izdelavo uporabniškega programa (LAD/STL/FBD) nam
omogoča nam omogoča pisanje in urejanje blokov uporabniškega programa,
spremljanje delovanja programa, odkrivanje napak in prenos programa v
pomnilnik za naslednje programske jezike:
- kontaktni načrt – LAD (Ladder logic) je grafična predstavitev STEP 7
programskega jezika. Sintaksa je podobna relejnim (ladder) logičnim
diagramom.
- nabor ukazov – STL (Statement list) je tekstovna predstavitev STEP 7
programskega jezika. Sintaksa je podobna strojni kodi. Če je program
napisan v STL, se posamezne inštrukcije odzivajo po korakih s katerimi
CPU izvršuje program. Da bi bilo programiranje enostavnejše, je STL
razširjen tako, da vsebuje nekatere višjenivojske konstrukcije (strukturno
programiranje in blokovni dostop).
- funkcijski načrt – FBD (Function block diagram) je grafična predstavitev
STEP 7 programskega jezika in uporablja logične bloke poznane iz Bool-
ove algebre za predstavitev logike. Kompleksne funkcije (matematične
funkcije,…) lahko predstavimo direktno v zvezi z logičnimi bloki.
• urejevalnik za izdelavo prireditvene tabele (Symbol editor): s symbol editor-
jem urejamo vse skupne simbole. Na voljo so naslednje funkcije:
- postavljanje simboličnih imen in komentarjev za procesne signale,
- sortiranje funkcij,
- izmenjava z ostalimi Windows programi.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 8
• tabela simbolov kreirana s tem orodjem, je na voljo vsem ostalim orodjem.
Vsaka sprememba lastnosti simbolov je tako avtomatsko prepoznana pri
ostalih orodjih.
• urejevalnik za spremljanje in spreminjanje spremenljivk uporabniškega
programa (monitoring and modifying variables) omogoča dostop do
krmilnikovih spominskih elementov preko programirne neprave.
• urejevalnik za konfiguriranje strojne opreme (hardware konfiguration):
konfiguracija hardware-a je orodje, ki se uporablja za dodeljevanje parametrov
hardware-u, glede na avtomatizacijski projekt. Na voljo so naslednje funkcije:
- za konfiguracijo programabilnih krmilnikov se izbere bloke iz kataloga in
se uredi izbrane module na določena mesta na letvi;
- pri dodeljevanju parametrov do CPU lahko nastavljamo tudi njegove
lastnosti;
- pri dodeljevanju parametrov modulom, se vsi parametri, ki se dajo
nastavljati, nastavljajo z »dialog box«-i. Dodelitev parametrov modulom
se opravi avtomatsko med zagonom CPU. To pomeni, da lahko modul
zamenjamo brez določitve novih parametrov;
- določevanje parametrov funkcijskim modulom in komunikacijskim
procesorjem je prav tako opravljeno po enaki poti, kot za vse ostale
module.
2.2.2 Inženirska orodja (Engineering tools)
Inženirska programska orodja omogočajo uporabniku, da se pri načrtovanju
krmilnega sistema izogne zamudnemu programiranju v nizkih programskih
jezikih in se tako čimbolj omeji na sam problem krmilnega sistema.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 9
Višje razviti programski jeziki se uporabljajo pri programiranju krmilnikov
družin SIMATIC S7-300 in S7-400:
• S7 GRAF je programski jezik uporaben za programiranje sekvenčnih
krmilnikov. V tem jeziku je sekvenca procesa razdeljena na korake. Korak
obsega funkcije za kontrolo izhodov. Tranzicija od enega do drugega koraka
je kontrolirana s preklapljanjem stanj.
• S7 HiGRAF je programski jezik , ki se uporablja za opis asinhronskih ne-
sekvenčnih procesov v obliki diagramov stanj. Da bi to dosegli, je načrtovanje
razbito na individualne funkcijske enote in vsako se lahko zajame na drugem
stanju. Funkcijske enote so lahko sinhronizirane z izmenjavo sporočil med
grafi.
• S7 SCL (Standard Control Language) je visokonivojski tekstovni jezik, ki je
prilagojen standardu EN 61131-3 [7]. Zgradba jezika je podobna osnovam
programskega jezika Pascal. Zato je SCL še posebej primeren za uporabnike,
ki so kdaj uporabljali visokonivojske programske jezike. Uporablja se za
programiranje kompleksnih in frekvenčno ponovljivih funkcij.
CFC (Continuous Function Start) je edini predstavnik skupine grafični jeziki.
Uporablja se za grafično povezovanje obstoječih funkcij pri krmilnikih družin S7
in M7. Te funkcije pokrivajo širok niz enostavnih logičnih operacij preko
kompleksnih zaprtozančnih in odprtozančnih kontrolerjev. Veliko število funkcij
tega tipa je na voljo v obliki blokov v knjižnici.
Dodatna programska oprema:
• Borland C++ zajema Borlandovo razvojno okolje. Uporaben je samo za
družino krmilnikov M7.
• DOCPRO: z njim se organizira vse konfiguracije podatkov.
• HARDPRO je hardversko konfiguriran sistem za S7-300, za podporo
uporabnikov z velikim obsegom konfiguracije kompleksnih avtomatizacijskih
nalog.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 10
• M7-ProC/C++ (samo M7) dopušča Borlandovo razvojno okolje, za
programske jezike C in C++, da so integrirani v STEP 7 okolje.
• S7 PLCSIM (samo S7) se uporablja za simuliranje S7 programabilnega
krmilnika priključenega na programirno enoto ali PC zaradi testiranja.
• S7 PDIAG (samo S7) dopušča standardno konfiguracijo procesne diagnostike
za SIMATIC S7-300/S7-400. Z uporabo procesne diagnostike se lahko
odkrijejo napake in napačne stanja zunaj programabilnega krmilnika.
• TeleService dopušča programiranje in servis oddaljenih S7 in M7
programabilnih krmilnikov preko telefonskega omrežja z uporabo programske
enote ali PC-ja.
2.2.3 Programska orodja za delo v realnem času (Run – Time Software)
Run – Time Software pokriva pred-programirne rešitve, ki so lahko klicane iz
uporabniškega programa. Ta programska oprema je integrirana direktno v
avtomatizacijsko rešitev
Regulatorji za SIMATIC S7:
• standardni PID regulator omogoča uporabo neprekinjenih regulatorjev,
regulatorjev na pulzne in stopnične odzive v uporabniškem programu.
• modularni PID regulator se uporabi, če standardni PID ne zadostuje za
reševanje avtomatizacijske naloge.
• mehki (fuzzy) regulatorji se uporabljajo za kreiranje fuzzy logičnih sistemov.
Ti sistemi se uporabljajo, ko je procese težko ali nemogoče matematično
opisati, ko se procesi obnašajo nepredvidljivo, ko imamo opravka z
nelinearnimi dogodki, a so izkušnje s procesi na voljo.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 11
Orodja za povezavo z Windows-i:
• PRODAVE MPI je skupina orodij za prenos podatkov med SIMATIC S7 in
SIMATIC M7. Avtonomno upravlja prenos podatkov proti večtočkovnem
vmesniku.
• M7-DDE server nam omogoča, da se lahko brez posebnega napora povežejo
Windows aplikacije in spremenljivke SIMATIC M7.
Real – Time operacijski sistem:
• M7-SYS RT vsebuje operacijski sistem M7 RMOS 32 in sistemske programe.
Je prvi pogoj za uporabo M7-ProC/C++ in CFC za SIMATIC M7 pakete.
2.2.4 Programska orodja za povezavo človek – stroj (HMI – Human Machine Interface)
HMI je poseben software za nadzor operatorjev in monitoring:
• SIMATIC WinCC SCADA predstavlja odprto procesno vizualizacijo.
• SIMATIC ProTool in SIMATIC ProTool/Lite so moderna orodja za
konfiguracijo SIMATIC-ovih operatorskih panelov in SIMATIC C7
kompaktnih enot. Izvedba Lite je samo za tekstovne panele.
• Pro Agent omogoča hitro načrtno procesno diagnosticiranje v načrtih in
strojih, pri iskanju informacij o lokaciji in vzrokih napak.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 12
3. ZAHTEVE REGULACIJSKEGA SISTEMA
Pri razvoju regulacijskega sistema, realiziranega z industrijskim krmilnikom
SIEMENS SIMATIC S7-300 CPU 314 IFM, smo želeli izpolniti naslednje
zahteve.
• hitrost: osnovna zahteva pri realiziranju PID regulatorja predstavlja zahteva,
da naj bo regulator primeren tudi za reguliranje dinamično zahtevnejših
procesov, za katere so že obstoječi industrijski strojni in programski
regulacijski moduli velikokrat prepočasni.
• fleksibilnost regulacijskega algoritma: od regulatorja zahtevamo tudi možnost
realiziranja različnih linearnih in nelinearnih regulacijskih algoritmov, in ne
samo klasičnih, preddefiniranih tipov regulatorjev (P, PI, PID), kar je
značilnost večine industrijskih izvedb regulatorjev.
• samonastavitev: ker predstavlja določitev parametrov regulatorja za različne
industrijske procese zamudno in težavno opravilo, zahtevamo od regulatorja
tudi sposobnost samonastavitve. Pri izbrani samonastavitveni funkciji bo
program najprej analiziral dinamiko sistema, nato pa temu ustrezno določil
parametre regulatorja.
• možnost izbire vseh obratovalnih stanj regulatorja preko binarnih vhodov
krmilnika: izpolnjevanje zahteve omogoča, da na krmilniku izbiramo vse
funkcije direktno in ne preko za to potrebnega povezanega računalnika ali
industrijskega omrežja.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 13
3.1 OBRATOVALNA STANJA REGULACIJSKEGA SISTEMA
V uporabi regulacijskega sistema v procesu, se večkrat pojavi potreba po
različnih obratovalnih stanjih, predvsem pri zagonu procesa in testiranju. Prav
tako zahteva ustrezno reakcijo okvara v procesu, ugotavljanje napake in poprava
le te. To nam omogočajo naslednja obratovalna stanja.
3.1.1 Avtomatsko delovanje
Normalno obratovalno stanje regulacijskega modula predstavlja avtomatsko
delovanje. V tem obratovalnem stanju regulacijski modul v skladu z izbrano
regulacijsko strukturo skrbi za čim manjše odstopanje reguliranih veličin procesa
od predpisanih referenčnih vrednosti.
3.1.2 Ročna obratovalna stanja
Velikokrat je potrebno reguliran proces krmiliti ročno iz različnih vzrokov, kot
je ob zagonu, v primeru izpadov senzorjev, pri nastopu nepričakovano velikih
motenj, pri spreminjanju parametrov in strukture reguliranega procesa,…
• Varno obratovalno stanje: Pri preklopu na varno obratovalno stanje
zavzamejo izhodi iz regulacijskega modula predhodno definirane vrednosti, ki
zagotavljajo nenevarno stacionarno stanje reguliranega procesa. Varno
obratovalno stanje ima najvišjo prioriteto.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 14
• Blokirno obratovalno stanje: V blokirnem obratovalnem stanju izhodi iz
regulacijskega modula ohranijo vrednosti, ki so bile na izhodih pred
preklopom v blokirno obratovalno stanje.
• Krmilno obratovalno stanje: Krmilno obratovalno stanje omogoča direktni
prenos signala, ki ga pripeljemo na izbran analogni vhod mimo regulacijskega
algoritma na izbran analogni izhod. Na ta način je možno izvesti krmiljenje
reguliranega procesa brez dodatnega ožičenja.
• P(D) obratovalno stanje: V tem obratovalnem stanju je izklopljena
integralska veja regulacijskega algoritma. P(D) obratovalno stanje je
uporabno predvsem ob zagonu in za regulacijo procesov z integralskim
značajem. Slabost P(D) obratovalnega stanja je, da tudi v primeru regulacije
procesov brez izravnave večina motenj povzroča stacionarno odstopanje.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 15
4. SISTEMSKI IN UPORABNIŠKI PROGRAM KRMILNIKA
V krmilniku se izvajata sistemski in uporabniški program. Pri izdelavi
uporabniškega programa je potrebno tudi poznavanje sistemskega programa, saj
nam omogoča mnoge poenostavitve pri programiranju uporabniškega programa.
4.1 SISTEMSKI PROGRAM
Sistemski program je tovarniško naložen v krmilnik in je neodvisen od
krmilne naloge. Njegove naloge so:
- preslikava stanja vhodov v pomnilniško področje slika vhodov (PII – process
input image) in preslikava stanja pomnilniškega področja slika izhodov (PIQ –
process output image) na izhode,
- klicanje uporabniškega programa,
- zaznavanje prekinitev in klicanje prekinitvenih organizacijskih bokov,
- zaznavanje napak, ustrezno javljanje in ukrepanje,
- upravljanje s krmilnikovim pomnilnikom,
- skrb za pravilno odvijanje uporabniškega programa ob zagonu krmilnika.
Sistemski program skrbi za ciklično delovanje CPU-ja. Vsak programski cikel
sestavljajo naslednja opravila:
- branje vhodov – na začetku vsakega cikla program poskrbi, da se informacija
o stanju binarnih vhodov shrani v sliko vhodov (process input image). Med
samim programskim ciklom nato ne beremo stanja na binarnih vhodov, ampak
preberemo stanje slike vhodov. Analognih vhodov sistemski program ne
preslika, zato do njih dostopamo direktno.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 16
- obdelava programa – sistemski program skrbi za izvajanje glavnega programa
z ustreznimi podprogrami. Prekinitveni programi pa se izvajajo ob nastopu
prekinitve ne glede na trenutno fazo v programskem ciklu.
- obdelava komunikacijskih zahtev – v tem delu sistemski program obdela vsa
sporočila, ki so prispela na CPU preko ustreznih komunikacijskih vmesnikov.
- izvajanje samodiagnoze CPU-ja – sistemski program preveri stanje CPU-ja in
priključenih modulov.
- pisanje izhodov – binarne izhode pišemo na izhod posredno (med programom
vpisujemo stanje v sliko izhodov (process output image), na koncu
programskega cikla pa se ta slika prenese na binarne izhode), analogne izhode
pa posredno.
Prednosti omenjenega posrednega dostopa do binarnih informacij binarnih
vhodov in izhodov:
- istočasno branje in pisanje binarnih vhodov in izhodov,
- hitrejše izvajanje uporabniškega programa,
- omogočeno je dostopanje do binarnih vhodov in izhodov preko bytov, besed
in dvojnih besed.
- CPU omogoča tudi direktno dostopanje do binarnih vhodov in izhodov, pri
tem se pri direktnem branju vhodov stanje slike vhodov ne spremeni, pri
direktnem pisanju izhodov pa se slika izhodov aktualizira.
4.2 UPORABNIŠKI PROGRAM
Uporabniški program je odvisen od nalog, ki naj jih rešuje krmilni sistem.
Napiše ga uporabnik in ga naloži v krmilnik.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 17
V uporabniškem programu se določi:
- pravilna preslikava vhodnih signalov v izhodne,
- pravilno reagiranje v primeru prekinitev,
- način reagiranja v slučaju motenj med normalnim izvajanjem programa,
- naloge, ki jih naj izvede krmilni sistem ob vklopu.
Zaradi preglednosti pišemo uporabniški program v več blokih, govorimo o
strukturnem programiranju.
4.2.1 Organizacijski bloki – OB
Za povezavo med sistemskim in uporabniškim programom uporabljamo
organizacijske bloke. Najpomembnejši je osnovni organizacijski blok – OB1, ki
se izvaja enkrat v vsakem ciklu sistemskega programa. V določenih primerih
sistemski program prekine izvajanje programa v osnovnem organizacijskem bloku
in začne izvajati drug program v drugem bloku; po zaključku pa se izvajanje
nadaljuje v osnovnem bloku. Razlogi za to so lahko:
- prekinitveni signali – za hitro ukrepanje v primeru napačnega delovanja
krmilnega signala,
- ekvidistančni časovni trenutki – za enostavno programiranje periodičnih
opravil, časovno diskretnih regulatorjev, za arhiviranje podatkov v
ekvidistančnih zaporedjih,
- prekratek čas programskega cikla – za zagotavljanje konstantne dolžine
programskega cikla,
- napaka strojne opreme, …
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 18
Poleg osnovnega organizacijskega bloka obstajajo še naslednje skupine
organizacjskih blokov:
- OB10 – OB17 se izvajajo enkrat ali vsako časovno periodo, ki jo nastavimo,
- OB20 – OB23 se izvajajo po preteku nastavljene časovne zakasnitve,
- OB30 – OB38 se izvajajo peiodično (Cyclic Interupts). Intervale klicanja
lahko nastavimo od 1 ms do 1 minute,
- OB40 – OB47 se izvajajo ob pojavu signala na prekinitvenem vhodu,
- OB60 omogoča sinhronirano delovanje večih CPU-jev (Multicomputing
OB),…
4.2.2 Funkcijski bloki – FB
Funkcijske bloke programira uporabnik sam. Pri vsakem klicu funkcijskega
bloka je potrebno imenovati pripadajoč podatkovni blok (instance data blok) v
katerega se vpisujejo začasne spremenljivke in parametri.
4.2.3 Podatkovni bloki – DB
Podatkovni bloki ne vsebujejo ukazov, ampak se uporabljajo le za
shranjevanje podatkov. V njih definiramo spremenljivke in lahko določimo
vrednosti konstantam. Vanje lahko iz različnih programskih blokov neposredno
vpisujemo podatke, prav tako lahko iz njih tudi beremo.
4.2.4 Začasni (instance) podatkovni bloki - DIB:
Ti podatkovni bloki se uporabljajo za shranjevanje spremenljivk iz funkcijskih
blokov. Vsak DIB je namenjen svojemu funkcijskemu bloku.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 19
5. SAMONASTAVITEV
Samonastavitev je postopek, pri katerem regulacijski sistem sam določi
parametre regulatorja, ki ustrezajo reguliranemu procesu. Samonastavitev je
najhitrejši in najnenostavnejši postopek za določitev parametrov regulatorja.
5.1 DOLOČITEV MODELA REGULIRANEGA PROCESA
5.1.1 Določitev modela reguliranega procesa na osnovi prehodnega pojava
Metode, ki temeljijo na osnovi prehodnega pojava delimo na odprtozančne in
zaprtozančne metode. Večina metod temelji na stopničnem odzivu, obstajajo pa
tudi metode, ki temeljijo na odzivih procesa na druge oblike vzbujanj.
Odprtozančne metode se uporabljajo za samonastavitev regulatorjev
enostavnejših stabilnih procesov. Če temelji metoda na pulznem odzivu lahko
vsebuje proces integrator. Velikost stopnice oz. velikost in dolžina pulza morajo
biti dovolj veliki, da odpravimo vpliv šuma, prav tako pa ne smejo biti preveliki,
da ne prevlada nelinearnost procesa.
Odprtozančne metode se običajno uporabljajo za prednastavitev bolj
kompleksnih samonastavitvenih sistemov. Njihova slabost je, da so zelo
občutljive na motnje, kar pa ni tako moteče, ko se uporabljajo v
prednastavitvenem postopku [1].
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 20
Zaprtozančne metode lahko porabljamo neposredno v reguliranem procesu.
Stopnico oz. pulz povzročimo z referenco. Obstajajo samonastavitveni moduli, ki
ne povzročajo motenj (stopnica, pulz, …), ampak določijo parametre na podlagi
notranjih motenj v procesu.
Prednost zaprtozančnih metod je, da so parametri določeni na podlagi odziva
stvarne regulacijske zanke. Slabost pa je, ker so parameri procesa in regulatorja
ponavadi zelo povezani.
Različne vrste metod se uporabljajo glede na dinamiko reguliranega sistema,
ki je najbolj razvidna iz stopničnih odzivov. Ločimo štiri vrste stopničnih
odzivov. Slika 5.1 A prikazuje stabilen monoton naraščajoč odziv, slika 5.1 B pa
nestabilen monoton naraščajoč odziv.
Slika 5.1: Monoton stopnični odziv
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 21
Slika 5.2 prikazuje oscilatorna stopnična odziva, pri čemer je prvi – A stabilen,
in B nestabilen.
Slika 5.2: Oscilatorni stopnični odziv
Mi smo se omejili na stabilne sisteme (slika 5.1 A in 5.2 A), saj le ti
predstavljajo večji del industrijskih procesov, ki jim regulacijski sistem namenjen.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 22
5.1.2 Metode ki temeljijo na frekvenčnih karakteristikah procesov
Drugo veliko skupino predstavljajo metode, ki temeljijo na frekvenčnih
karakteristikah procesov. Med njimi je najbolj znana Ziegler-Nichols-ova metoda,
ki temelji na določitvi kritične točke Nyquist- ove krivulje (slika 5.3). Vhodemu
signalu sistema spreminjamo frekvenco, dokler ne postane sistem mejno stabilen.
Ker je meja, med frekvenco, ko je sistem mejno stabilen in ko postane sistem
nestabilen, zelo ozka, se ta metoda redko uporablja za samonastavitev [1]. Slika
5.4 prikazuje odzive, za stabilen sistem (slika 5.4 A), mejno stabilen (slika 5.4 B)
in nestabilen sistem (slika 5.4 C).
Slika 5.3: Nyquist- ova krivulja
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 23
Slika 5.4: Izhod sistema za stabilen (A), mejno stabilen (B) in nestabilen
sistem (C)
V industrijskih izvedbah regulatorjev se večinoma uporablja relejna metoda
[1]. Relejna metoda temelji na oscilaciji, ki jo povzroči pravokotni signal na
vhodu. S pomočjo negativne povratne vezave primerjamo vhodni in izhodni
signal. Na podlagi razlike na izhodu releja generiramo impulze ustrezne širine.
Tako zlahka dosežemo mejno stabilnost sistema, ko na izhodu dobimo sinusni
signal.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 24
Slika 5.5: Izhod iz procesa (Y), in izhod iz releja (U)
Slika 5.6: Blokovni diagram relejne metode
G(sE(s) Y(s
RELE PROCES U(s)
R(s)
+ _
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 25
5.1.3 Izračun parametrov modela s pomočjo metode momentov
Obravnavani procesi spadajo v skupino procesov s stopničnim odzivom
prikazanim na sliki 5.1.
Poenostavljeno lahko procese z monotonim stopničnim odzivom opišemo s
serijsko vezavo člena prvega reda in člena z mrtvim časom:
sLesT
ksG −
+=
1)( (5.1)
Prav tako lahko veliko oscilatornih procesov predstavimo s členom drugega reda:
12)( 22 ++=
szTTsksG (5.2)
Za določitev parametrov k, T in L iz prenosne funkcije 5.1 oziroma k, z, in T iz
prenosne funkcije 5.2, uporabimo metodo momentov.
Če sistem vzbujamo z impulzom:
)()( ttu δ= ,
dobimo odziv:
)()( thty = ;
z Laplace-ovo tansformacijo dobimo:
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 26
1)( =sU in ∫∞
−=0
)()( dtthesY st . (5.3)
Iz tega sledi:
∫∞
−==0
)()()()( dtthe
sUsYsG st (5.4)
G(s) odvajamo:
∫∞
−−=′0
)()( dttthesG st
∫∞
−=′′0
2 )()( dtthtesG st
Vstavimo s=0:
∫∞
=0
)()0( dtthG
∫∞
−=′0
)()0( dttthG (5.5)
∫∞
=′′0
2 )()0( dtthtG
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 27
Za konkretno prenosno funkcijo za monotone sisteme (5.1) dobimo po odvajanju
in ko vstavimo s=0 naslednje izraze:
kG =)0(
)()0( LTkG +=′ (5.6)
)22()0( 22 LTLTkG ++=′′
Iz primerjave izrazov 5.5 in 5.6 lahko določimo iskane koeficiente. Celotna
metoda pa je uporabna tudi za druge načine vzbujanja, od katerih je najbolj
uporabna stopnica. Če sistem vzbujamo z stopnico u(t)=σ(t) in dobimo odziv s(t),
velja med stopničnim in impulznim odzivom povezava:
dttdsth )()( = . (5.7)
Površino pod stopničnim odzivom dobimo:
=−−∞∞==−=−=′ ∫∫∫∞∞∞∞
0000
)()0(0)()()()()0( dttsssttsdtdt
tdstdttthG
∫∞
−∞∞=0
)()( dttss (5.8)
Dobljen izraz 5.8 nam predstavlja površino A0 na sliki 5.8.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 28
Slika 5.7: Grafični prikaz parametrov procesa z monotonim stopničnim
odzivom
Slika 5.8: Površine, potrebne za izračun parametrov procesa z monotonim
stopničnim odzivom
V primeru, ko iščemo model procesa z monotonim stopničnim odzivom (slika
5.1 A; model opisan s prenosno funkcijo 5.1), primerjamo izraze 5.6 in 5.8
enačba (5.6) )()0( LTkG +=′
enačba (5.8) ∫∞
−∞∞=′0
)()()0( dttssG
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 29
in dobimo
kA
LT 0=+ . (5.9)
Razmerje med T in L dobimo iz izraza
∫+
=LT
Adtts0
1)( , (5.10)
kjer je s(t) stopnični odziv
{ } { })()()()( 11 sUsGLaplacesSLaplacets ⋅== −− .
Za izbran model velja
sLesT
ksG −
+=
1)( in { }
stLaplacesU 1)()( 1 == − σ
in dobimo
se
sTksS sL 1
1)( −
+= .
Po razstavitvi na parcialne ulomke dobimo
sLe
Tss
ksS −
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
+−=
111)(
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 30
in inverzni Laplace-ovi transformaciji:
[ ])()()( LtekLtkts TLt
−⎥⎦
⎤⎢⎣
⎡⋅−−=
−−
σσ . (5.11)
Izraz s(t) (5.11) vstavimo v izraz 5.10 in dobimo
111
00 0 0
)()( −−
−+ + + −−
=−+=+=⋅−−⋅=∫ ∫ ∫ kTekTkTekTekTkTdtekdtLtkdttsLT LT
uLT
TLt
σ
1
1−= kTeA
11 ekA
T = (5.12)
V enačbah se pojavljata izraza A0 in A1, ki predstavljata ploščino glede na
stopnični odziv procesa, katerega model želimo določiti (slika 5.8). Ploščino
določimo z uporabo ene izmed numeričnih metod, ojačanje k pa izračunamo iz
poznanih vrednosti )(∞u in )(∞y v stacionarnem stanju.
)()(
∞∞
=uyk (5.13)
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 31
V primeru, ko iščemo model procesa z oscilirajočim odzivom (slika 5.2 A; model
opisan s prenosno funkcijo 5.2), odvajamo izraz 5.2
enačba (5.2) 12
)( 22 ++=
szTTsksG
22 )12(22)(
+++
−=′szTs
zTsksG ,
vstavimo s=0 in dobmo
zTkG −=′ )0( . (5.14)
Rezultat enačbe 5.14 je enak površini A0 (slika 5.9), pri čemer je upoštevan
predznak.
Slika 5.9: Površine, potrebne za izračun parametrov procesa z oscilatornim
stopničnim odzivom
Iz ploščine A0 izračunamo produkt
kA
Tz2
0=⋅ . (5.15)
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 32
Dušenje izračunamo iz enačbe
224 ϑπ
ϑ
+=z , (5.16)
kjer je
2
1
2
1 log303.2lnΔΔ
⋅=ΔΔ
=ϑ . (5.17)
Prav tako kot pri določanju modela za procese z monotonim stopničnim
odzivom, tudi tukaj izračunamo ojačanje procesa po enačbi 5.13 in ploščine A0, Δ1
in Δ2 z uporabo ene izmed numeričnih metod.
5.2 DOLOČITEV PARAMETROV REGULATORJA
V regulacijskem modulu bomo uporabili diskretni ekvivalent zveznega PID
regulatorja. Zvezni PID regulator predstavlja enačba:
⎥⎦
⎤⎢⎣
⎡++= ∫ dt
tdeTdsseT
teKtu di
r)()(1)()( , (5.18)
kjer je:
)()()( tytrte −= ;
r(t) – referenca,
y(t) – izhod iz sistema,
u(t) – izhod iz regulatorja,
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 33
Ti – časovna konstanta integralnega dela regulatorja,
Td – časovna konstanta diferencialnega dela regulatorja in
Kr – ojačanje regulatorja.
Za implementacijo zveznega PID regulatorja v digitalni regulacijski modul je
potrebno odvajanje in integriranje, za kar so uporabljene numerične metode.
Uporabimo lahko različne numerične metode. Pri uporabi Tustin-ove
aproksimacije za izračun integrala in metode desnih diferenc za izračun odvoda
dobimo:
)()()()( kDkIkPku ++= (5.19)
kjer je:
u(k) – izhod iz regulatorja v k-tem koraku
)1()( −⋅= keKkP r
( ))1()2()1()1()( −−−⋅+−⋅+−= kUkUhkebkIkI i (5.20)
( ))2()1()1()( −−−⋅−−⋅= kYkYbkDakD dd
Parametre diskretnega regulatorja določimo z enačbami [1]:
iri T
hKb =
NhTNhT
ad
dd +
−=
22
(5.21)
NhTNKT
bd
rdd +=
22
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 34
Za izračun izhoda iz regulatorja in parametrov diskretnega regulatorja
potrebujemo parametre zveznega regulatorja, ki jih izračunamo na osnovi
dobljenih parametrov modela reguliranega procesa z uporabo Ziegler-Nichols-
ovih nastavitvenih pravil.
Za stabilne sisteme z monotonim stopničnim odzivom izračunamo parametre
regulatorja po enačbah 5.22.
LkTK R ⋅
= 2.1
LTi ⋅= 2 (5.22)
LTd ⋅= 5.0
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 35
6. OPIS UPORABNIŠKEGA PROGRAMA
6.1 VHODNE IN IZHODNE SPREMENLJIVKE
V uporabniškem programu smo uporabili šest binarnih vhodov (I124.0 do
I124.5), dva analogna napetostna vhoda (PIW128 in PIW130) in en napetostni
analogni izhod (PQW128). Binarni vhodi, ki lahko prenašajo enobitne
informacije, služijo za izbiro med obratovalnimi stanji. Na prvi analogni vhod
pripeljemo referenco (R), na drugega vrednost izhoda iz procesa (Y), na analogni
izhod pa pošljemo izhod iz regulatorja (U). Analogni vhodi in izhodi lahko
prenašajo informacijo v formatu beseda (word).
Izbira obratovalnih stanj s pomočjo binarnih vhodov:
- v primeru, da so vsi binarni vhodi na 0, se nahajamo v varnem obratovalnem
stanju. To pomeni, da imamo na izhodu regulatorja neko vnaprej določeno
vrednost, ki zagotavlja nenevarno stacionarno stanje reguliranega procesa.
- z vhodom I 124.0 izbiramo ali deluje regulator kot popoln PID regulator
(I124.0=0), ali pa deluje brez integralnega dela (I 124.0=1). Govorimo o P(D)
obratovalnem stanju.
- če je vhod I 124.1 enak 1 postavi regulator na izhod vrednost enako referenci
(U=R)- krmilno obratovalno stanje.
- če je vhod I 124.2 enak 1 se na izhodu ohrani zadnja vrednost, ki je bila pred
ukazom- blokirno obratovalno stanje.
- v primeru, če je vhod I 124.3 enak 1 se prične izvajati samonastavitev
regulatorja, ko je le ta končana se sistem vrne v varno obratovanje.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 36
- če je I 124.4 enak 1 v avtomatsko obratovalno stanje, pri katerem skrbi
regulator za čim manjše odstopanje reguliranih veličin od referenčnih
vrednosti.
- z vhodom I 124.5 izbiramo, ali so parametri regulatorja prednastavljeni
(I124.5=0), ali pa regulator uporablja parametre dobljene z samonastavitvijo
(I124.5=1).
Prioriteta binarnih vhodov je prikazana v tabeli 3.1:
Tabela 6.1: Prioritete binarnih vhodov
PRIORITETA 1 I 124.3 SAMONASTAVITEV
PRIORITETA 2 I 124.1 U=R
PRIORITETA 3 I 124.2 U=U-zadnji
PRIORITETA 4 I 124.4 REGULATOR
PRIORITETA 5 I 124.0 PID/P(D)
PRIORITETA 5 I 124.5 PREDNAST./SAMONAST.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 37
Slika 6.1: Vhodi in izhodi regulacijskega sistema
6.2 STRUKTURA UPORABNIŠKEGA PROGRAMA
Uporabniški program je napisan v SCL (Standard Control Language)
programskem jeziku, saj standardna programska oprema ne omogoča razvoja
kompleksnejših programov. Program je napisan v strukturnem načinu. Napisan je
v večih programskih blokih.
S7-CPU 314 IFM
I 124.0
I 124.1
I 124.2
I 124.3
I 124.4
I 124.5
R
Y
U
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 38
6.2.1 OB1
OB1 je osnovni organizacijski blok, ki se izvaja enkrat v vsakem ciklu
sistemskega programa. V vsakem ciklu preberemo vhoda R (referenca) in Y
(izhod iz procesa), ju pretvorimo v ustrezen format in shranimo v podatkovni
blok. Vrednosti izhoda izračunamo v funkcijskih blokih, kjer se izvaja regulacijski
algoritem, in jih shranimo v podatkovni blok DB101. Če se ne izvaja
samonastavitev, kar nam kažeta vrednost binarnega vhoda I124.3 in spremenljivka
DB101.D64.0, izberemo na podlagi stanja binarnih vhodov (I124.0 do I124.5)
med vrednostmi izhoda zapisanimi v podatkovnem bloku DB101, preverimo ali je
njegova vrednost znotraj predpisanih (dovoljenih) meja, obdelamo tako, da
ustreza izhodnemu formatu in pošljemo na izhod. Obdelava vhodov in izhoda je
potrebna, ker analogne vhode in izhode krmilnika naslavljamo v formatu word
(beseda), v samem programu pa operiramo v formatu double integer (32 bitno
celo število). Prav tako pretvarjamo izračunane vrednosti in vrednosti vhodov v
format double word (dvojna beseda), v katerem shranjujemo informacije v
podatkovni blok. Slika 6.2 prikazuje blok shemo programa, ki se izvaja v OB1.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 39
Slika 6.2: Blok shema programa, ki se izvaja v OB1
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 40
6.2.2 OB35
OB 35 je organizacijski blok, ki ga kliče sistemski program krmilnika v
predpisanih časovnih intervalih. Časovni interval (frekvenco) klicanja izbiramo v
fazi nastavitve parametrov krmilnika. Njegovo časovno periodo lahko
spreminjamo od 1ms do 1minute, paziti pa moramo, da je čas med dvema klicema
OB35 daljši od časa izvajanja samega organizacijskega bloka (OB35) in
funkcijskih blokov, ki jih iz njega kličemo. V nasprotnem primeru nam sistemski
program javi sistemsko napako in prekine izvajanje uporabniškega programa.
Sam blok je sestavljen iz dveh IF zank (Slika 6.3). V prvi preverjamo ali je
postavljena zahteva za izvajanje samonastavitve in ali se samonastavitev morda že
ne izvaja, kar nam kaže spremenljivka, shranjena v podatkovnem bloku DB101 na
mestu 64.0 (DB101.D64.0). Če sta oba pogoja izpolnjena, kličemo funkcijski blok
FB115, v katerem se izvaja samonastavitev; če pa pogoja nista izpolnjena, se
izvede druga zanka v kateri preverjamo ali je samonastavitev že končana in če ni
zahteve po samonastavitvi. V tem primeru zbrišemo spremenljivko DB101.D64.0
in kličemo funkcijski blok FB110, v katerem se izvaja regulacija sistema.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 41
Slika 6.3: Blok shema programa, ki se izvaja v OB35
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 42
6.2.3 FB 110
FB 110 je funkcijski blok v katerem je realiziran diskretni PID regulator.
Najprej prebere vrednost binarnega vhoda I 124.5 in se na podlagi njegove
vrednosti odloči katere parametre regulatorja bo uporabil. Na izbiro imamo
parametre regulatorja, ki smo jih predhodno določili s sintezo in njihove vrednosti
vpisali v podatkovni blok DB101 in parametre, ki jih je regulator določil v
postopku samonastavitve in so prav tako shranjeni v podatkovnem bloku DB101.
Ko izbere parametre zveznega regulatorja, izračuna parametre diskretnega
regulatorja (bi, ad, bd) po enačbah 5.21 in izračuna vrednosti proporcionalnega
integralnega in diferencialnega dela regulatorja. Na podlagi vrednosti binarnega
vhoda I 124.0, pri izračunu vrednosti izhoda, upošteva oziroma izloči integralni
del. Izhodne vrednosti zapiše v podatkovni blok DB 110. Slika 6.4 prikazuje blok
shemo programa, ki se izvaja v FB110.
DB 110:
DB 110 je začasni podatkovni blok, ki služi funkcijskemu bloku FB 110 za
shranjevanje začasnih spremenljivk.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 43
Slika 6.4: Blok shema programa, ki se izvaja v FB110
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 44
6.2.4 FB 115:
FB 115 je funkcijski blok v katerem je realizirana samonastavitev. Blok
diagram programa je prikazan na sliki 6.6.
Postopek samonastavitve se izvaja v treh delih:
- v prvem delu krmilimo izhod procesa na izbrano vrednost.
- v drugem delu stopnično spremenimo vhodno vrednost, na izhodu pa merimo
odziv sistema in ga shranjujemo v vektor dolžine 100. Če prehodni pojav po
100 odtipkih še ni končan izvedemo kompresiranje.
- v tretjem delu na podlagi dobljenega odziva izračunamo najprej parametre
sistema, iz njih pa še parametre regulatorja, ki jih vpišemo v podatkovni blok
DB 101.
Kompresiranje Omejeni smo z velikostjo vektorja, ki nam služi za shranjevanje odziva na
stopnico (maksimalna velikost vektorja formata double word, ki ga lahko
shranjujemo v podatkovni blok je 100). Zato pri odzivih, daljših od sto odtipkov,
izvedemo kompresiranje. To je postopek pri katerem po vrsti prepišemo vrednosti,
ki se nahajajo na sodih mestih v vektorju v trenutku »I« (Y[I]), na prvih petdeset
mest vektorja v trenutku »I+1« (Y[I+1]). Pri tem se prepolovi frekvenca
vzorčenja, s katero vzorčimo odziv in ga shranjujemo na drugih petdeset mest. V
primeru, da odziv še ni končan, postopek ponavljamo.
Slika 6.5 Kompresiranje
Y[I]
Y[I+1]
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 45
DB 115:
DB 115 je začasni podatkovni blok, ki služi funkcijskemu bloku FB 115 za
shranjevanje začasnih spremenljivk.
Slika 6.6: Blok shema programa, ki se izvaja v FB115
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 46
6.2.5 DB101
DB101 je glavni podatkovni blok modula v katerega shranjujemo vse
spremenljivke potrebne za izvedbo regulatorja in za pravilno delovanje celotnega
modula. To so predvsem spremenljivke, ki se pojavljajo v več programskih
blokih.
6.2.6 DB 102
DB 102 je podatkovni blok v katerega shranjujemo vektor izhodnih vrednosti
potreben za izvedbo funkcije samonastavitve, vse pomožne spremenljivke in
kazalce za potrebe kompresiranja.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 47
7. PREIZKUS DELOVANJA
Uporabnost razvitega regulacijskega modula smo preizkusili za vodenje
različnih realnih objektov. V nalogi bomo ločeno ovrednotili regulacijske in
samonastavitvene zmogljivosti programa. Najprej bomo prikazali uporabnost
regulatorja za regulacijo vrtljajev enosmernega motorja s trajnimi magneti, nato
pa bomo prikazali samonastavitveno metodo na primeru določitve parametrov
elektronskega vezja. Za sintezo in simulacijo smo uporabili program Matlab s
knjižnicama Control in Simulink.
7.1 REGULACIJA ENOSMERNEGA MOTORJA
Regulacijski modul smo uporabili za regulacijo enosmernega motorja z
naslednjimi parametri:
rotorska upornost: Rr=7,42 Ω
rotorska induktivnost: Lr=0,52 mH
vztarjnostni moment: J=2,3394·10-5 kg m2
koeficient viskoznega trenja: f=4,5242·10-6 Nms/rad
elektromehanska konstanta: Kem=0,02 Nms/rad
konstanta merilnika vrtljajev: Kω=0,0134 Vs/rad
napetostno ojačanje napajalnika: Ku=1,5 V/V
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 48
Prenosno funkcijo motorja G(s) predstavlja enačba:
fRfLJRsJLsK
sUssG
rrrr
em
R +++=
Ω=
)()()()( 2 (7.1)
kjer je:
Ω(s) – Laplace-va transformiranka rotorske hitrosti motorja in
UR(s) – Laplace-va transformiranka rotorske napetosti motorja.
Prenosno funkcijo zveznega proporcionalno integralnega regulatorja opisuje
enačba:
i
ir sT
sTKsG
1)(
+= , (7.2)
Parametre ustreznega enozančnega regulatorja hitrosti smo določili z metodo
frekvenčnih karakteristik v Bodejevem diagramu za predpisano fazno rezervo
ϕrez=60°. Dobili smo:
22,2=rK
sTi 28,0=
Slika 7.1 prikazuje blokovni diagram modela enosmernega motorja s trajnimi
magneti. Rezultati simulacij so prikazani na slikah 7.2 in 7.3. Slika 7.2 prikazuje
časovni potek vrtljajev modela enosmernega motorja s trajnimi magneti pri
stopnični spremembi rotorske napetosti, slika 7.3 pa prikazuje časovni potek
vrtljajev reguliranega modela enosmernega stroja s trajnimi magneti pri stopnični
spremembi rotorske napetosti.
Slika 7.4 prikazuje rezultate laboratorijskega preizkusa. Prikazan je časovni
potek reguliranega enosmernega motorja s trajnimi magneti na stopnično
spremembo referenčnih vrtljajev.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 49
Iz primerjav slik 7.3 in 7.4 je razvidna zadovoljiva učinkovitostregulacijskega
modula. Samonastavitveni del regulatorja pa za tako hitre sisteme ni uporaben, saj
potrebuje za izvajanje enega programskega cikla FB115 60ms.
Slika 7.1: Model enosmernega motorja s trajnimi magneti
Slika 7.2: Odziv modela enosmernega motorja s trajnimi magneti na
stopnično spremembo rotorske napetosti iz 0 na 4.8V, z
upoštevanjem konstante merilnika vrtljajev
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 50
Slika 7.3: Odziv reguliranega modela enosmernega motorja s trajnimi
magneti pri stopnični spremembi referenčnih vrtljajev iz 0 na
360rad/s, kar ustreza ob upoštevanju konstante tahogeneratorja
spremembi napetosti iz 0 na 4,8V
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 51
Slika 7.4: Odziv reguliranega enosmernega motorja s trajnimi magneti pri
stopnični spremembi referenčnih vrtljajev iz 0 na 360 rad/s, kar
ustreza ob upoštevanju konstante tahogeneratorja spremembi
napetosti iz 0 na 4,8V
7.2 REGULACIJA ELEKTRONSKEGA VEZJA
Samonastavitev smo preizkusili za določitev parametrov regulatorja za
regulacijo elektronskega vezja. Za določitev matematičnega modela elektronskega
vezja smo glede na stopnični odziv (slika 7.6) uporabili prenosno funkcijo:
sLesT
ksG −
+=
1)( (7.3)
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 52
Regulatorju smo nastavili samonastavitveni delovni način in po 2 s je regulator
identificiral parametre reguliranega objekta:
k=0,98
L=4,25
T=1,65
Natančnost samonastavitvenega algoritma je razvidna iz primerjave stopničnih
odzivov identificiranega objekta in dobljenega identificiranega modela.
Slika 7.5: Primerjava stopničnih odzivov identificiranega objekta in
dobljenega identificiranega modela
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 53
Natančni matematični model vezja določimo z metodo teoretičnega modeliranja:
2)1(1)(+
=s
sG ,
s samonastavitvenim algoritmom dobljen model pa je:
25,4
64,1198,0)( ⋅−
⋅+= se
ssG . (7.4)
Samonastavitveni modul je na osnovi parametrov identificiranega modela
določil parametre PI regulatorja s pomočjo Ziegler-Nichols-ove metode. Prenosna
funkcija regulatorja je:
5,815,847,0
1)(
⋅+⋅
=+
=s
ssT
sTKsG
i
irr . (7.5)
Rezultat preizkusa pri stopnični spremembi referenčne napetosti iz 0 na 4,8V
prikazujeta sliki 7.6 in 7.7.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 54
Slika 7.6: Odziv sistema na stopnično spremembo referenčne napetosti iz 0
na 4.8V
Slika 7.7: Odziv reguliranega sistema na stopnično spremembo referenčne
napetosti iz 0 na 4.8V
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 55
Uporabnost regulacijskega modula smo preizkusili tudi na primeru poznanega
procesa z oscilatornim stopničnim odzivom (slika 7.8) in s prenosno funkcijo 7.6:
12222)( 222 ++
=++
=szTTs
kss
sG , (7.6)
kjer je:
k=1
T=0,71
z=0,71.
Parametre PI regulatorja smo določili s pomočjo Ziegler-Nichols-ove metode:
Kr=0.75
Ti=0.709
Prenosna funkcija regulatorja je:
709,01709,075,0)(
⋅+⋅
=s
ssGr . (7.7)
Sliki 7.8 in 7.9 prikazujeta odziv nereguliranega in reguliranega procesa na
stopnični odziv napetosti.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 56
Slika 7.8: Odziv oscilatornega sistema na stopnično spremembo referenčne
napetosti iz 0 na 4.8V
Slika 7.9: Odziv reguliranega oscilatornega sistema na stopnično spremembo
referenčne napetosti iz 0 na 4.8V
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 57
8. SKLEP
V diplomski nalogi je prikazana možnost izdelave regulacijskega modula z
uporabo SCL (Standard Control Language) programskega jezika.
SCL nam zelo olajša samo pisanje in razvijanje programa, saj nam omogoča
dobro preglednost napisanega programa in enostavno nadgrajevanje z dodatnimi
programskimi in podatkovnimi bloki. Pri podatkovnih blokih nam je v veliko
pomoč možnost direktnega dostopa (branje in pisanje vrednosti) do spremenljivk,
ki so shranjene v podatkovnih blokih. Takšna programska rešitev je alternativa k
že obstoječim strojnim in programskim rešitvam, saj zahteva za realizacijo
relativno malo časa, hkrati pa je cenejša in bolj zanesljiva.
Slabosti SCL-a so povezane predvsem s pretvorbami med formati, saj lahko
beremo analogne vhode in pišemo analogne izhode samo v formatu beseda
(word); računske operacije znotraj programa pa lahko izvajamo samo v primerih,
ko so operandi realna ali cela števila (formati real, integer in double integer);
vpisovanje in branje spremenljivk v podatkovnih blokih pa je možno le v formatih
bit, byte, word in double word. Za prenašanje podatkov znotraj programa (med
posameznimi bloki) je potreben relativno velik čas, hkrati pa smo omejeni tudi z
velikostjo podatkov, ki jih želimo prenašati.
Hitrost, ki nam jo je uspelo doseči z regulacijskim modulom, je zadovoljiva,
kadar uporabljamo samo funkcijo regulatorja. Takrat lahko dosežemo najhitrejši
čas vzorčenja 4ms. Ko pa uporabljamo blok za samonastavitev, pa potrebujemo za
izvajanje samonastavitvenega funkcijskega bloka okvirni čas 60ms. Vzrok za to je
predvsem v tem, ker moramo vrednosti odziva, ki ga potrebujemo za izračun
parametrov, vpisovati v vektor, ki ga shranjujemo v podatkovni blok.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 58
Uspelo nam je realizirati možnosti obratovanja v vseh zahtevanih obratovalnih
stanjih, ki jih izbiramo na podlagi vrednosti binarnih vhodov.
Prednost predstavljenega regulacijskega sistema je v njegovi fleksibilnosti, saj
ostaja program odprt za možne nadgraditve. Namesto uporabljenega
regulacijskega algoritma, bi lahko uporabili katerikoli linearni in nelinearni
regulacijski algoritem.
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 59
LITERATURA
[1] K. J. Aström, T. Hägglund, Automatic Tuning of Pid Controllers,
Instrument Society of America, 1988
[2] J. Ritonja, Industrijska krmilja – strojna in programska oprema krmilnikov
S7-300,
Fakulteta za elektrotehniko, računalništvo in informatiko Univerze v
Mariboru, 1999
[3] B. Grčar, J. Ritonja, Računalniško vodenje procesov,
Fakulteta za elektrotehniko, računalništvo in informatiko Univerze v
Mariboru, 1998
[4] D. Dolinar, Dinamika linearnih sistemov in regulacije,
Fakulteta za elektrotehniko, računalništvo in informatiko Univerze v
Mariboru, 1997
[5] Siemens, SIMATIC, Komponenten für die Vollintegrierte Automation,
1997
[6] Siemens, SIMATIC, Standard Software for S7-300 and S7-400,
1996
[7] Š. Jaklin, Povezava PLC z Matlabom, diplomska naloga,
Fakulteta za elektrotehniko, računalništvo in informatiko Univerze v
Mariboru, 2001
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 60
PRILOGE
A. PROGRAM
DATA_BLOCK DB101 STRUCT K:DWORD; H:DWORD; TI:DWORD; TD:DWORD; TT:DWORD; N:DWORD; B:DWORD; I:DWORD; V:DWORD; R:DWORD; U:DWORD; Y:DWORD; YOLD:DWORD; T_SAMONASTAVLJEN:DWORD; K_SAMONASTAVLJEN:DWORD; U_VARNI:DWORD:=DW#16#1; X:BOOL; TD_SAMONASTAVLJEN:DWORD; END_STRUCT BEGIN END_DATA_BLOCK /////////////////////////////////////////////////////////////////////////////////////// DATA_BLOCK DB102 STRUCT Y:ARRAY[1..100] OF DWORD; K0:WORD; K1:WORD; K2:WORD; KV0:WORD;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 61
KV1:WORD; KV2:WORD; IN:BOOL; K5:WORD; KV5:WORD; YP:DWORD; END_STRUCT BEGIN END_DATA_BLOCK /////////////////////////////////////////////////////////////////////////////////////// ORGANIZATION_BLOCK OB1 VAR_TEMP // Reserved Info: ARRAY[0..19] OF BYTE; MM:DINT; R_DB:DWORD; Y_DB:DWORD; U_DB:DWORD; V_DB:DWORD; RW:WORD; RD:DWORD; R:DINT; YW:WORD; YD:DWORD; Y:DINT; UW:WORD; UD:DWORD; U:DINT; V:DINT; END_VAR BEGIN //BRANJE IN OBDELAVA VHODOV RW:=PIW128; RD:=WORD_TO_DWORD(RW); R:=DWORD_TO_DINT(RD); R_DB:=RD; DB101.DD36:=R_DB; YW:=PIW130; YD:=WORD_TO_DWORD(YW); Y:=DWORD_TO_DINT(YD); Y_DB:=YD; DB101.DD44:=Y_DB; //IZBIRA OBRATOVALNEGA STANJA IF I124.3 = FALSE OR DB101.D64.0 = TRUE THEN IF DB101.D64.0 = TRUE THEN
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 62
V_DB:=DB101.DD60; V:=DWORD_TO_DINT(V_DB); ELSIF I124.1 = TRUE THEN V:=R; ELSIF I124.2 = TRUE THEN V_DB:=DB101.DD40; V:=DWORD_TO_DINT(U_DB); ELSIF I124.4 = TRUE THEN V_DB:=DB101.DD32; V:=DWORD_TO_DINT(V_DB); ELSE V_DB:=DB101.DD60; V:=DWORD_TO_DINT(V_DB); END_IF; //OMEJITEV IN OBDELAVA IZHODA IF V <= -2800 THEN U:=-2800; ELSIF V >= 2800 THEN U:=2800; ELSE U:=V; END_IF; U_DB:= DINT_TO_DWORD(U); DB101.DD40:=U_DB; UD:=DINT_TO_DWORD(U); UW:=DWORD_TO_WORD(UD); PQW128:=UW; END_IF; END_ORGANIZATION_BLOCK /////////////////////////////////////////////////////////////////////////////////////// ORGANIZATION_BLOCK OB35 VAR_TEMP // Reserved Info: ARRAY[0..19] OF BYTE; END_VAR BEGIN IF I124.3 = TRUE AND DB101.D64.0 = FALSE THEN FB115.DB115(); ELSIF I124.3 = FALSE OR DB101.D64.0 = TRUE THEN IF I124.3 = FALSE THEN DB101.D64.0:=FALSE; END_IF; FB110.DB110(); END_IF;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 63
END_ORGANIZATION_BLOCK /////////////////////////////////////////////////////////////////////////////////////// FUNCTION_BLOCK FB110 //DISKRETNI PID REGULATOR VAR_TEMP BI:DINT; AD:DINT; BD:DINT; A0:DINT; P:DINT; I:DINT; D:DINT; YOLD:DINT; V:DINT; END_VAR VAR MN:REAL; K:DINT; H:DINT; TI:DINT; TD:DINT; TT:DINT; N:DINT; B:DINT; R:DINT; U:DINT; Y:DINT; R_DB:DWORD; U_DB:DWORD; Y_DB:DWORD; K_DB:DWORD; H_DB:DWORD; TI_DB:DWORD; TD_DB:DWORD; TT_DB:DWORD; N_DB:DWORD; B_DB:DWORD; I_DB:DWORD; YOLD_DB:DWORD; V_DB:DWORD; END_VAR BEGIN //IZBIRA PARAMETROV IF I124.5 = FALSE THEN K_DB:=DB101.DD00; K:=DWORD_TO_DINT(K_DB); TI_DB:=DB101.DD08; TI:=DWORD_TO_DINT(TI_DB); TD_DB:=DB101.DD12; TD:=DWORD_TO_DINT(TD_DB);
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 64
ELSE K_DB:=DB101.DD56; K:=DWORD_TO_DINT(K_DB); TI_DB:=DB101.DD52; TI:=DWORD_TO_DINT(TI_DB); TD_DB:=DB101.DD66; TD:=DWORD_TO_DINT(TD_DB); END_IF; //BRANJE IZ DB101 H_DB:=DB101.DD04; H:=DWORD_TO_DINT(H_DB); N_DB:=DB101.DD20; N:=DWORD_TO_DINT(N_DB); TT_DB:=DB101.DD16; TT:=DWORD_TO_DINT(TT_DB); B_DB:=DB101.DD24; B:=DWORD_TO_DINT(B_DB); R_DB:=DB101.DD36; R:=DWORD_TO_DINT(R_DB); Y_DB:=DB101.DD44; Y:=DWORD_TO_DINT(Y_DB); I_DB:=DB101.DD28; I:=DWORD_TO_DINT(I_DB); YOLD_DB:=DB101.DD48; YOLD:=DWORD_TO_DINT(YOLD_DB); //IZRAČUN PARAMETROV DISKRETNEGA REGULATORJA BI:=K*H/TI; AD:=(2*TD-N*H)/(2*TD+N*H); BD:=2*K*N*TD/(2*TD+N+H); A0:=H/TT; //REGULACIJSKI ALGORITEM P:=K*(B*R-Y); D:=AD*D-BD*(Y-YOLD); I:=I+BI*(R-Y)+A0*(U-V); YOLD:=Y; //IZBIRA MED PID IN P-D REGULATORJEM IF I124.0 = FALSE THEN V:=P+I+D; ELSE V:=P+D; END_IF; //VPIS V DB101 I_DB:=DINT_TO_DWORD(I); DB101.DD28:=I_DB; YOLD_DB:=DINT_TO_DWORD(YOLD); DB101.DD48:=YOLD_DB; V_DB:=DINT_TO_DWORD(V); DB101.DD32:=V_DB;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 65
END_FUNCTION_BLOCK /////////////////////////////////////////////////////////////////////////////////////// DATA_BLOCK DB110 FB110 BEGIN MN:=1.0; END_DATA_BLOCK /////////////////////////////////////////////////////////////////////////////////////// FUNCTION_BLOCK FB115 //SAMONASTAVITEV VAR MM:REAL; I:INT; INICIAL:BOOL; YV:ARRAY[1..100] OF DINT; YDV:ARRAY[1..100] OF DWORD; YW:WORD; YD:DWORD; Y:DINT; U:DINT; K0:INT; K1:INT; K2:INT; K5:INT; KV0:INT; KV1:INT; KV2:INT; KV5:INT; KW0:WORD; KW1:WORD; KW2:WORD; KW5:WORD; KVW0:WORD; KVW1:WORD; KVW2:WORD; KVW5:WORD; AX:DINT; AY:DINT; A01:DINT; A0:DINT; A1:DINT; LT:DINT; M:DINT; MI:INT; H:DINT; K:DINT; KK:DINT; T:DINT; KD:DWORD; UD:DWORD;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 66
UW:WORD; J:DINT; L:INT; N:DINT; F1:BOOL; F5:BOOL; KZ:INT; KZW:WORD; TD:DINT; TI:DINT; TDD:DWORD; TID:DWORD; KR:DINT; YP:DINT; END_VAR BEGIN //BRANJE ODZIVA YW:=PIW130; YD:=WORD_TO_DWORD(YW); Y:=DWORD_TO_DINT(YD); Y:=Y/27; YP:=DWORD_TO_DINT(DB102.DD418); IF DB102.D412.0 = TRUE THEN KW0:=DB102.DW400; //BRANJE KAZALCEV K0:=WORD_TO_INT(KW0); KW1:=DB102.DW402; K1:=WORD_TO_INT(KW1); KW2:=DB102.DW404; K2:=WORD_TO_INT(KW2); KW5:=DB102.DW414; K5:=WORD_TO_INT(KW5); KVW0:=DB102.DW406; KV0:=WORD_TO_INT(KVW0); KVW1:=DB102.DW408; KV1:=WORD_TO_INT(KVW1); KVW2:=DB102.DW410; KV2:=WORD_TO_INT(KVW2); KVW5:=DB102.DW416; KV5:=WORD_TO_INT(KVW5); ELSE K0:=1; //INICIALIZACIJA K1:=1; K2:=1; K5:=1; KV0:=10; KV1:=100; KV2:=2; KV5:=10;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 67
INICIAL:=TRUE; DB101.D64.0:=FALSE; L:=0; END_IF; //BRANJE VEKTORJA IZ DB102 FOR I:= 1 TO 100 DO YDV[I]:=DB102.DD[(4*I)-4]; YV[I]:=DWORD_TO_DINT(YDV[I]); END_FOR; IF K5 < KV5 THEN //PROŽENJE STOPNICE U:=100; END_IF; IF (YP-Y) <= 1 AND (YP-Y) >= -1 THEN K5:=K5+1; END_IF; IF K5 >= KV5 THEN U:=500; IF (YP-Y) <= 1 AND (YP-Y) >= -1 THEN K0:=K0+1; IF K0 = KV0 THEN K:=U/YV[K1]; //OJAČANJE SISTEMA H:=120/KV2; FOR I:= 1 TO 100 DO AX:=YV[I]*H; A01:=A01+AX; END_FOR; A0:=(U*H*100)-A01; LT:=A0/K; M:=LT/H; MI:=DINT_TO_INT(M); IF M >= 100 THEN N:=100; ELSE N:=M; END_IF; FOR J:= 1 TO N DO L:=L+1; AY:= YV[L]*H; A1:=A1+AY; END_FOR;
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 68
T:=(A1/K)*27183/10000; //ČAS.KONSTANTA SISTEMA KR:=(12/10)*T/(K*L); //PARAMETRI REGULATORJA TI:=2*L; TD:=(1/2)*L; //VPIS PARAMETROV REGULATORJA V DB101 TID:=DINT_TO_DWORD(TI); TDD:=DINT_TO_DWORD(TD); KD:=DINT_TO_DWORD(KR); DB101.DD52:=TID; DB101.DD56:=KD; DB101.DD66:=TDD; INICIAL:= FALSE; DB101.D64.0:=TRUE; END_IF; ELSE IF K2 = KV2 THEN YV[K1]:=Y; K1:=K1+1; IF K1 > 100 THEN //KOMPRESIRANJE FOR I:= 1 TO 100 DO YV[I]:=YV[2*I]; END_FOR; KV2:=2*KV2; K1:=51; END_IF; K2:=1; ELSE K2:=K2+1; END_IF; END_IF; END_IF; // POŠILJANJE IZHODA UD:=DINT_TO_DWORD(U); UW:=DWORD_TO_WORD(UD); PQW128:=UW; //VPIS V DB102 FOR I:= 1 TO 100 DO
Izdelava programskega paketa za regulacijo s krmilniki SIMATIC 69
YDV[I]:=DINT_TO_DWORD(YV[I]); DB102.DD[(4*I)-4] :=YDV[I]; END_FOR; DB102.DD418:=DINT_TO_DWORD(Y); KW0:=INT_TO_WORD(K0); DB102.DW400 :=KW0; KW1:=INT_TO_WORD(K1); DB102.DW402 :=KW1; KW2:=INT_TO_WORD(K2); DB102.DW404 :=KW2; KW5:=INT_TO_WORD(K5); DB102.DW414 :=KW5; KVW0:=INT_TO_WORD(KV0); DB102.DW406 :=KVW0; KVW1:=INT_TO_WORD(KV1); DB102.DW408 :=KVW1; KVW2:=INT_TO_WORD(KV2); DB102.DW410 :=KVW2; KVW5:=INT_TO_WORD(KV5); DB102.DW416 :=KVW5; DB102.D412.0 :=INICIAL; END_FUNCTION_BLOCK /////////////////////////////////////////////////////////////////////////////////////// DATA_BLOCK DB115 FB115 BEGIN MM:=1.0; END_DATA_BLOCK ///////////////////////////////////////////////////////////////////////////////////////