+ All Categories
Home > Documents > VS Blazinšek Matej 1978 9341417 - COnnecting REpositories · 2018. 8. 23. · Siemensu razvili...

VS Blazinšek Matej 1978 9341417 - COnnecting REpositories · 2018. 8. 23. · Siemensu razvili...

Date post: 22-Jan-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
78
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO MATEJ BLAZINŠEK DIPLOMSKA NALOGA MARIBOR, MAREC 2002
Transcript

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 ///////////////////////////////////////////////////////////////////////////////////////


Recommended