Entanksprosjektrapport Prosjektoppgave i faget Styresystemer og ...
Entanksprosjektrapport Prosjektoppgave i faget Styresystemer og ...
Entanksprosjektrapport Prosjektoppgave i faget Styresystemer og ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Entanksprosjektrapport</strong><br />
<strong>Prosjektoppgave</strong> i <strong>faget</strong><br />
<strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk<br />
Pumpe<br />
2EA<br />
Vår 2013<br />
Reguleringsventil<br />
Vanntank<br />
Magnetventilene<br />
FT1<br />
Vannreservoar<br />
100 %<br />
60 %<br />
50 %<br />
0 %<br />
LT1<br />
ref.
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
<strong>Prosjektoppgave</strong> i <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk,<br />
Oppgavens tittel:<br />
<strong>Prosjektoppgave</strong> i <strong>faget</strong> <strong>Styresystemer</strong> <strong>og</strong><br />
reguleringsteknikk<br />
Gruppedeltagere:<br />
Entanksprosjekt<br />
Jostein S. Helland(JSH) 93030878<br />
josteish@stud.hist.no<br />
Bendik Mydland(BM) 99223347<br />
bendikm@stud.hist.no<br />
Olav Gabrielsen(OG) 93412152<br />
olavgab@stud.hist.no<br />
Erlend V. Ekren(EVE) 41767127<br />
erlendek@stud.hist.no<br />
Thomas I. Berge(TIB) 97425260<br />
thomasib@stud.hist.no<br />
Fredrik Sørvig(FS)<br />
Studieretning:<br />
48036012<br />
fredrso@stud.hist.no<br />
Oppdragsgiver:<br />
Automatiseringsteknikk<br />
Avdeling for Teknol<strong>og</strong>i v/Per Hveem<br />
Startdato:<br />
27.03.13<br />
Innleveringsdato:<br />
01.05.13<br />
Antall sider/vedlegg:<br />
218/63<br />
Veileder:<br />
Per Hveem<br />
Tlf: 73559593<br />
E-post: per.hveem@hist.no<br />
Prosjektgruppe:<br />
1<br />
Kontaktperson hos<br />
oppdragsgiver:<br />
Se veileder
Sammendrag<br />
I følgende rapport dokumenteres entanksprosjektet til prosjektet «Prosjekt i <strong>faget</strong><br />
styresystemer» utført av studenter ved bachelorpr<strong>og</strong>ram Automatiseringsteknikk på<br />
Høgskolen i Sør-Trøndelag. Det gjennomføres ett lignende prosjekt hver vår på<br />
andre halvår ved denne linjen, <strong>og</strong> denne gangen omhandler det en reguleringssløyfe<br />
som skal styre nivået i to forskjellige tanker på en tankrigg.<br />
Ved linjen Automatiseringsteknikk blir studentene tidlig introdusert til nivåregulering i<br />
tanker, som gjør dette til en naturlig oppgave.<br />
Prosjektets formål er å gi trening i å gjennomføre større prosjekter for<br />
prosjektdeltagerne.<br />
Oppgaven består i å styre nivået i et totankssystem. I det inngår modellering <strong>og</strong><br />
simulering av tankene, pr<strong>og</strong>rammering av en l<strong>og</strong>isk sekvens for styring <strong>og</strong> regulering<br />
av disse, samt pr<strong>og</strong>rammering av brukergrensesnitt på flere plattformer <strong>og</strong><br />
kommunikasjon de imellom.<br />
Denne rapporten omhandler hvordan gruppen gikk frem for å styre <strong>og</strong> regulere nivået<br />
i en tank.<br />
Dette innebærer utvikling av brukergrensesnitt på PC, operatørpanel <strong>og</strong> hjemmeside<br />
samt utvikling av en teoretisk modell for den fysiske prosessen slik at gode<br />
simuleringer kan gjøres. Kommunikasjonen mellom PC, operatørpanel, hjemmeside,<br />
web-kamera, master-PLS, slave-PLS, Profibusnettverk <strong>og</strong> ethernet utvikles slik at<br />
prosessen får en utmerket brukervennlighet <strong>og</strong> funksjonalitet.<br />
Reguleringen av nivået er optimalisert ved hjelp av finregning <strong>og</strong> fintuning. Dette<br />
sammen med et brukervennlig brukergrensesnitt, som gir nødvendig <strong>og</strong> oversiktlig<br />
informasjon, er et bra verktøy for operatøren når væskenivået i tanken skal holdes<br />
stabilt.<br />
BM, FS, OG
Forord<br />
Entanksprosjekt-rapporten er en rapport som omhandler hvordan gruppen gikk frem<br />
for å lage pr<strong>og</strong>ram <strong>og</strong> HMI for styring <strong>og</strong> regulering av tank. Dette er den mest viktige<br />
oppgaven i prosjektet på grunn av at studentene får gjennomført prosjektets formål<br />
med å styre <strong>og</strong> regulere tanken.<br />
Etter at gruppen hadde levert inn miniprosjektrapporten til arbeidsgiver, tok gruppen<br />
fatt på å modellere prosessen i Simulink, lage pr<strong>og</strong>ram i PLS <strong>og</strong> pr<strong>og</strong>ram for HMI. De<br />
har <strong>og</strong>så beregnet filter for filtrering av støyen i nivået i tanken <strong>og</strong> støyen fra<br />
magnetventilene.<br />
Vi har fått nye utfordringer <strong>og</strong> sett oss inn i nye problemstillinger. Dette er noe hele<br />
gruppen har sett frem til på grunn av at vi i større grad skal kunne få bruk for teoretisk<br />
kunnskap fra forelesningene til praktiske løsninger i prosjektet. Oppgavene ble delt ut<br />
slik at vi jobbet to <strong>og</strong> to sammen på hver arbeidspakke. Det endelige resultatet kan<br />
leses om i rapporten. Resultatet av modellering <strong>og</strong> simulering av prosessen er tatt<br />
med som vedlegg for entankrapporten.<br />
Som mål, har gruppen satt at de vil overbevise arbeidsgiver til at de er de rette til å<br />
gjøre denne jobben, <strong>og</strong> lage en god prosjektrapport innen alle «del-prosjektene».<br />
Til slutt vil gruppen fortsatt takke Per Hveem <strong>og</strong> Andreas Sørvik fra HiST for<br />
veiledning gjennom prosjekttiden. Gjennom prosjektmøte, <strong>og</strong> gode praktiske tips, har<br />
de begge vært til god hjelp. Gruppen ser frem til videre samarbeid med begge videre<br />
i totanksprosjektet.<br />
Bendik<br />
Mydland<br />
TIB<br />
Erlend V.<br />
Ekren<br />
Fredrik<br />
Sørvig<br />
Jostein S.<br />
Helland<br />
Thomas I.<br />
Berge<br />
Olav<br />
Gabrielsen
1 Innholdsliste<br />
1 Innholdsliste ......................................................................................................... 1<br />
2 Figurliste. ............................................................................................................. 2<br />
3 Tabelliste. ............................................................................................................. 6<br />
4 Vedleggsliste. ....................................................................................................... 7<br />
5 Innledning. ........................................................................................................... 8<br />
5.1 Bakgrunn: ...................................................................................................... 8<br />
5.2 Oppgavetekst: ............................................................................................... 9<br />
5.3 Definisjoner: ................................................................................................ 10<br />
6 Teknisk del. ........................................................................................................ 11<br />
6.1 Problemstilling: ............................................................................................ 11<br />
6.2 Prosjektmål .................................................................................................. 12<br />
6.3 Prosjektbeskrivelse: ..................................................................................... 13<br />
6.4 Spesifikasjoner ............................................................................................ 14<br />
6.5 Filterberegninger <strong>og</strong> konstruksjon ............................................................... 22<br />
6.6 PLS. ............................................................................................................. 36<br />
6.7 PID-regulator: .............................................................................................. 63<br />
6.8 iX-panelet. ................................................................................................... 66<br />
6.9 Webkamera til InTouch ................................................................................ 79<br />
6.10 InTouch .................................................................................................... 83<br />
6.11 Nettjenester ............................................................................................ 117<br />
6.12 Test av tankens regulering ..................................................................... 136<br />
6.13 Problemområder for prosjektutførelsen .................................................. 139<br />
7 Prosjektorganisering. ....................................................................................... 140<br />
7.1 Deltakere: .................................................................................................. 140<br />
7.2 Arbeidslokaler <strong>og</strong> utstyrstilgang: ................................................................ 144<br />
7.3 Prosjektleveranser: .................................................................................... 145<br />
7.4 Tids- <strong>og</strong> kostnadsplan: .............................................................................. 148<br />
7.5 Prosjektstyring <strong>og</strong> kvalitetssikring: ............................................................. 149<br />
8 Litteraturliste .................................................................................................... 150<br />
9 Vedlegg ............................................................................................................ 152<br />
1
2 Figurliste<br />
Figur 1: MasterPLS ................................................................................................... 14<br />
Figur 2: SlavePLS ..................................................................................................... 17<br />
Figur 3: Eksempel på InTouch grensesnitt ............................................................... 18<br />
Figur 4 Adgang – OP ................................................................................................ 19<br />
Figur 5: Krav til iX-panelet ........................................................................................ 20<br />
Figur 6:WEB-forside ................................................................................................. 21<br />
Figur 7: Bode-diagram av åpen sløyfefunksjon ........................................................ 23<br />
Figur 8: Støymåling LT1 ved 90 % <strong>og</strong> 1 åpen utventil .............................................. 24<br />
Figur 9: Andreordens Butterworth-filter ..................................................................... 25<br />
Figur 10:Støysignalet med lavest frekvens på utstrømningssignal ........................... 28<br />
Figur 11: Førsteordens Butterworth lavpassfilter ...................................................... 29<br />
Figur 12: Gul kurve: Utstrømningssignal før filter. Grønn kurve: Utstrømningssignal<br />
etter filter ................................................................................................................... 31<br />
Figur 13: Ferdig-konstruert nivåfilter ......................................................................... 32<br />
Figur 14: IC-brikken Lm358 ...................................................................................... 32<br />
Figur 15: Oppkobling til rigg av Flow-filter ................................................................. 33<br />
Figur 16: Oppkobling til panel av Nivå-filter .............................................................. 33<br />
Figur 17: Flow-filteret inne Slave-PLS skapet. .......................................................... 34<br />
Figur 18: Nivå-filter montert på tank-rigg. ................................................................. 34<br />
Figur 19:Regulator-Samplingstid .............................................................................. 38<br />
Figur 20: Slave-PLS'en <strong>og</strong> AD/DA-modulene. .......................................................... 39<br />
Figur 21: Regulator-P. .............................................................................................. 40<br />
Figur 22:Regulator-PI ............................................................................................... 41<br />
Figur 23:Regulator-PI-2 ............................................................................................ 42<br />
Figur 24: Regulator-Foroverkobling-P. ..................................................................... 43<br />
Figur 25: Utregning Regulator-foroverkobling-D. ...................................................... 44<br />
Figur 26:Regulator-Foroverkobling-D ....................................................................... 45<br />
Figur 27:Regulator-Oppdatering av gamle verdier .................................................... 46<br />
Figur 28: Skriv til Profibus fra slave. ......................................................................... 47<br />
Figur 29: Skriv til Profibus fra slave. ......................................................................... 48<br />
Figur 30: Lese fra Profibus med slavePLS'en ........................................................... 49<br />
Figur 31: Lese fra Profibus med slavePLS'en ........................................................... 50<br />
2
Figur 32: Anal<strong>og</strong>e utganger fra slaven. ..................................................................... 51<br />
Figur 33: Anal<strong>og</strong>e innganger til slaven...................................................................... 51<br />
Figur 34: Alarmbehandling. ....................................................................................... 52<br />
Figur 35: Alarmbehandling. ....................................................................................... 53<br />
Figur 36: Alarmbehandling. ....................................................................................... 54<br />
Figur 37: Lampen på tank-riggen. ............................................................................. 55<br />
Figur 38: Alarmbehandling. ....................................................................................... 56<br />
Figur 39: Styring av utløp på tank-riggen. ................................................................. 56<br />
Figur 40: Flowmåleren som måler utløpet fra tanken <strong>og</strong> ventilene som styrer dette . 57<br />
Figur 41: Bilde av master-PLS'en. ............................................................................ 58<br />
Figur 42: Hendelsessikring. ...................................................................................... 59<br />
Figur 43: Lesing av verdier fra Profibus med masteren. ........................................... 60<br />
Figur 44: Lesing av verdier fra Profibus med masteren. ........................................... 61<br />
Figur 45: Skriving av verdier til Profibus med masteren............................................ 62<br />
Figur 46: Skriving av verdier til Profibus med masteren............................................ 62<br />
Figur 47: Innhenting av blokka PIDheltall. ................................................................ 64<br />
Figur 48: Implementering av PIDheltall. .................................................................... 64<br />
Figur 49: Variabelliste for PIDheltall ......................................................................... 65<br />
Figur 50: Bakgrunn til iX-panelet: ............................................................................. 67<br />
Figur 51: Innl<strong>og</strong>gingsside til iX-panelet. .................................................................... 68<br />
Figur 52: Betingelse ved innl<strong>og</strong>ging. ......................................................................... 68<br />
Figur 53: Sikkerhetsgruppe. ...................................................................................... 69<br />
Figur 54: Sikkerhetsbetingelser. ............................................................................... 69<br />
Figur 55: Trendvinduet i iX-panelet. .......................................................................... 70<br />
Figur 56: Prosessvinduet i iX-panelet. ...................................................................... 71<br />
Figur 57: Betingelser for synlighet. ........................................................................... 72<br />
Figur 58: Betingelser for styring. ............................................................................... 72<br />
Figur 59: Ved aktive- <strong>og</strong> inaktive-enheter. ................................................................ 73<br />
Figur 60: Alarmvinduet i iX-panelet. .......................................................................... 74<br />
Figur 61: Alarmsituasjon under kjøring. .................................................................... 75<br />
Figur 62: Alarmer i iX-panelet ................................................................................... 75<br />
Figur 63:Alarmbetingelse <strong>og</strong> pop-up vindu ............................................................... 76<br />
Figur 64: Alarmbetingelse i iX-panelet. ..................................................................... 77<br />
Figur 65: Popup-vinduer ved nivå over 90 % <strong>og</strong> under 10 %. ................................... 77<br />
3
Figur 66: Alarmbetingelser i iX-panelet. .................................................................... 78<br />
Figur 67: Port-webkamera. ....................................................................................... 80<br />
Figur 68: Innl<strong>og</strong>ging på ruter. .................................................................................... 81<br />
Figur 69: Port-ruter. .................................................................................................. 82<br />
Figur 70: Port-router-kamera. ................................................................................... 82<br />
Figur 71: Innl<strong>og</strong>gingsvinduet ..................................................................................... 85<br />
Figur 72: Operatør3 vinduet ...................................................................................... 86<br />
Figur 73: Operatør2 vinduet ...................................................................................... 86<br />
Figur 74: Operatør1 vinduet ...................................................................................... 87<br />
Figur 75: Sanntidstrendvinduet ................................................................................. 87<br />
Figur 76: Historisk trendvindu ................................................................................... 88<br />
Figur 77: Alarmhistorikkvinduet ................................................................................ 88<br />
Figur 78: Kameraovervåkningsvinduet ..................................................................... 89<br />
Figur 79: InTouch I - XXXXIII .................................................................................... 91<br />
Figur 122: Sending <strong>og</strong> mottak av informasjon. ....................................................... 118<br />
Figur 123: Aksessfilter ............................................................................................ 119<br />
Figur 124: Reise for IP-adresse. ............................................................................. 120<br />
Figur 125: Styring av prosessen fra nettside. ......................................................... 120<br />
Figur 126: Oversikt over kommunikasjonen til nettsiden......................................... 121<br />
Figur 127: REST eksempel. .................................................................................... 122<br />
Figur 128: Iframe-element fra iX-webserver. .......................................................... 124<br />
Figur 129: “Unknown port"-error i Chrome. ............................................................. 125<br />
Figur 130: Salgstall for mobiloperativsystem, hentet fra Wikipedia.org. ................. 127<br />
Figur 131: MIT App Inventor. .................................................................................. 128<br />
Figur 132: Grafisk fremstilling av prosessen for å bytte til et nytt brukergrensesnitt.<br />
............................................................................................................................... 129<br />
Figur 133: Inndeling av fragmenter. ........................................................................ 130<br />
Figur 134: RRC ikonet. ........................................................................................... 130<br />
Figur 135: "Splash"-side. ........................................................................................ 131<br />
Figur 136: Oversiktsside. ........................................................................................ 132<br />
Figur 137: WebCam. .............................................................................................. 132<br />
Figur 138: Kontrollside. ........................................................................................... 133<br />
Figur 139: Produktet som sett på en Samsung Galaxy S2. .................................... 135<br />
Figur 140: Resultat fra modellering. Kurvene viser nivå i %. .................................. 136<br />
4
Figur 141: Modellerte reguleringsparametere uten(tv) <strong>og</strong> med(th) foroverkobling .. 137<br />
Figur 142: Finjusterte reguleringsparametere uten(tv) <strong>og</strong> med(th) foroverkobling .. 138<br />
Figur 143: Tankriggen............................................................................................. 144<br />
Figur 144: Nettsiden til prosjektgruppen. ................................................................ 147<br />
Figur 145: L<strong>og</strong>gført timeforbruk. ............................................................................. 148<br />
5
3 Tabelliste<br />
Tabell 1: Støymåling LT1 .......................................................................................... 24<br />
Tabell 2: Støymåling på flowsignal ........................................................................... 29<br />
Tabell 3: Krav til iX-panelet ....................................................................................... 66<br />
Tabell 4: Rettigheter for forskjellige operatører i InTouch ......................................... 84<br />
Tabell 5: Tabell over finjusterte regulatorparametere ............................................. 137<br />
6
4 Vedleggsliste.<br />
Vedlegg A: Testskjema – 7s<br />
Vedlegg B: PID-kode i strukturert tekst – 3s<br />
Vedlegg C: Android pr<strong>og</strong>ramfiler – 8s<br />
Vedlegg D: Arbeidspakker – 10s<br />
Vedlegg E: Arbeidsnotat – 35s<br />
7
5 Innledning.<br />
5.1 Bakgrunn:<br />
Ved Høgskolen i Sør-Trøndelag, HiST, pr<strong>og</strong>ram for Elektro- <strong>og</strong> Datateknikk,<br />
studieretning Automatiseringsteknikk, skal alle ingeniørstudentene gjennomføre ett<br />
prosjekt under vårsemesteret i det andre året i studiene. Elevene blir delt opp i<br />
grupper på fem til seks elever <strong>og</strong> får utlevert en oppgave som skal gjennomføres som<br />
om det var et prosjekt som forekommer i arbeidslivet. Dette er ett større prosjekt hvor<br />
både planlegging av prosjektet i et forprosjekt <strong>og</strong> utførelsen av prosjektet inngår.<br />
Studentene skal <strong>og</strong>så presentere prosjektet når arbeidet med det er ferdig. I<br />
prosjektet så kreves det at studentene bruker kunnskap de har fått med seg halvveis<br />
inn i bachelorpr<strong>og</strong>rammet, <strong>og</strong> setter det ut i praksis. Samtidig så må studentene for å<br />
gjennomføre prosjektet fordype seg innen aktuelle fagområder som inngår i<br />
oppgaven. Prosjektet utgjør 12 studiepoeng, dvs. 40 % av et semester, <strong>og</strong> tidsmessig<br />
vil dette utgjøre cirka 320 arbeidstimer per student. Det er faglærerne som leverer ut<br />
oppgaven til studentene, <strong>og</strong> de opptrer selv som veileder <strong>og</strong> arbeidsgiver under<br />
prosjektet. Prosjektet går samtidig som undervisning i store deler av<br />
prosjektperioden, mens nærmere slutten av perioden vil det bli mindre undervisninger<br />
<strong>og</strong> mer avsatt tid til jobbing med prosjektet.<br />
Entanksprosjektet har vært en videreføring av miniprosjektet. Kommunikasjonen på<br />
AD-DA-modulen har blitt videreført til et større pr<strong>og</strong>ram. Vi har modellert prosessen<br />
<strong>og</strong> funnet fram til optimale regulatorinnstillinger som vi har tatt i bruk. Vi har skrevet et<br />
PLS-pr<strong>og</strong>ram med HMI for styring <strong>og</strong> regulering av nivået i tanken.<br />
EVE; JSH; OG<br />
8
5.2 Oppgavetekst:<br />
Prosjektgruppen skal lage pr<strong>og</strong>ram for InTouch, operatørpanel <strong>og</strong> PLS’ene som<br />
oppfyller prosjektkravene når det gjelder styring av den ene tanken på tankriggen ved<br />
hjelp av en FX1N-PLS. Dette skal presenteres for veileder <strong>og</strong> godkjennes som<br />
entanksprosjektet. Entanksprosjektet skal dokumenteres i en rapport.<br />
Gruppen skal kunne bruke operatørpanelet <strong>og</strong> InTouch for å sette parametere som<br />
referanse, <strong>og</strong> se at nivået skal svinge stille seg inn på angitt referanse.<br />
Det skal bli lagt inn alarmer for angitte nivå i tanken, som vi kan se <strong>og</strong> behandle i<br />
HMI-ene, som er InTouch <strong>og</strong> iX-panel. Vi skal finne frem til regulatorinnstillinger ved<br />
å modellere <strong>og</strong> simulere prosessen i Simulink. Pr<strong>og</strong>rammet Gx-works2 skal bli<br />
benyttet for å pr<strong>og</strong>rammere regulatoren med <strong>og</strong> uten forover-kobling. Den skal ha et<br />
innsvingingsforløp av typen minimum areal.<br />
Målet er å oppnå raskest mulig innsvingingstid ved endring i<br />
utløpet(magnetventilene) fra 3 åpne til 1 åpen.<br />
Pr<strong>og</strong>rammet skal kunne fungere både som P- <strong>og</strong> PI-regulator med rykkfri overgang<br />
ved skifte av regulatortype i tillegg til skifte mellom manuell modus <strong>og</strong> automatisk<br />
modus.<br />
Gruppen skal konstruere et filter for å filtrere bort støy i nivået <strong>og</strong> et filter for filtrering<br />
av støy fra flowmåleren, som er utstrømning fra magnetventilene. De skal se hvordan<br />
støyen blir filtrert bort ved å koble filtrene til riggen.<br />
Gruppen vil gjennomgå egne selvlagde testskjema for «entanksprosjektet» før det<br />
skal demonstreres for arbeidsgiver. Arbeidsgiver vil ha eget testskjema som vil bli<br />
gjennomgått ved selve demonstrasjonen, for se at alt fungerer etter spesifikasjonene.<br />
Nettsiden skal være oppdatert <strong>og</strong> vil bli evaluert av arbeidsgiver i løpet av<br />
entanksprosjektet.<br />
EVE; TIB<br />
9
5.3 Definisjoner:<br />
PROFIBUS: Process Field Bus, en bredt utbredt feltbuss kommunikasjonsstandard<br />
innen automasjon.<br />
InTouch: Pr<strong>og</strong>ramvare for å lage HMI.<br />
iX Panel TA100: Pr<strong>og</strong>rammerbar berøringsskjerm.<br />
iX Developer: Utviklingsmiljø for pr<strong>og</strong>ramvaren til iX Panelet<br />
Server: Pr<strong>og</strong>ramvare som styrer kommunikasjon på et datanettverk.<br />
IP: Internet Protocol<br />
FTP: Filoverføringsprotokoll. Protokoll for overføring av filer i et TCP/IP-basert<br />
nettverk.<br />
Router: Veiviser mellom lokale <strong>og</strong> eksterne nettverk<br />
JavaScript: Dynamisk pr<strong>og</strong>rammeringsspråk for nettsider.<br />
REST api: REpresentational State Transfer application pr<strong>og</strong>ramming interface<br />
Ethernet: Den mest vanlige teknol<strong>og</strong>ien brukt for kommunikasjon i lokalnett,<br />
spesifisert i standarden IEEE 802.3.<br />
Webkamera: Kamera brukt for å overføre video over nett.<br />
HiST - Høgskolen i Sør-Trøndelag<br />
PC – Personal Computer<br />
PLS – Pr<strong>og</strong>rammerbar L<strong>og</strong>isk Styring<br />
HMI – Human Machine Interface<br />
OPC: Object Linking and Embedding for Process Control<br />
OPC-Server: Skaper kobling til PLS for visning <strong>og</strong> kontroll av verdier fra PLS.<br />
OPC-Link: Et pr<strong>og</strong>ram som kobler InTouch opp mot OPC-Serveren.<br />
WindowViewer: InTouch sitt testmiljø<br />
WindowMaker: InTouch sitt utviklermiljø<br />
JSH; EVE<br />
10
6 Teknisk del.<br />
6.1 Problemstilling:<br />
Riggen er allerede ferdigkoblet. Vi må sette oss inn i koblingstegninger for å finne ut<br />
hvordan vi skal kjøre sprang på prosessen. Deretter så må vi finne riktige regulator-<br />
innstillinger for prosessen.<br />
Det er viktig å modellere prosessen for å kunne oppnå best mulig regulering. Også<br />
under filterberegningene er det viktig å finne riktige verdier for å få luket bort mest<br />
mulig støy <strong>og</strong> ikke miste nyttesignal.<br />
EVE; OG<br />
6.1.1 Dagens situasjon<br />
Per dags dato er modulenes pr<strong>og</strong>ramvare satt opp <strong>og</strong> testet ut. Filtrene er ferdig<br />
montert <strong>og</strong> fungerer som de skal. Systemet er forsøkt regulert <strong>og</strong> prosjektgruppen er<br />
fornøyd med resultatet de har oppnådd med prosjektet.<br />
EVE; OG<br />
6.1.2 Prosessbeskrivelse<br />
Systemet reguleres <strong>og</strong> behandles i slave-PLS’en, mens den styres fra HMI’ene. Det<br />
stilles inn ønsket nivå <strong>og</strong> reguleringsmetode i HMI’ene, før PLS’en sender verdier til<br />
ventilen som kontrollerer hvor mye vann som strømmer inn i tanken. Tankriggen har<br />
enheter som måler utløp <strong>og</strong> nivå, som hjelper PLS’en til å kontrollere ventilen. På<br />
denne måten får PLS’ens regulator regulert inn nivået til innstilt referanse. Utløpene<br />
stilles inn i HMI’ene, <strong>og</strong> der kan <strong>og</strong>så alle verdier leses av.<br />
EVE; OG<br />
6.1.3 Løsning<br />
Gruppen har delt opp oppgaven i flere deler. Studentene deler den opp i<br />
pr<strong>og</strong>rammering, modellering <strong>og</strong> filterberegning. Når alle av disse delene ble gjort,<br />
samlet prosjektgruppen delene sammen <strong>og</strong> kontrollerte om alt fungerte. Når alle<br />
enkeltdelene ble ferdig testet prosjektgruppen om systemet fungerte i henhold til<br />
kravene i oppgaveteksten.<br />
OG; EVE<br />
11
6.2 Prosjektmål<br />
6.2.1 Effektmål<br />
1. Vise hvordan vi på en god måte kan styre <strong>og</strong> regulere nivået i en tank.<br />
2. Legge grunnlaget for videre arbeid med riggen til totanksprosjektet.<br />
3. Oppdatere fremgang gjennom nettsida.<br />
JSH; OG<br />
6.2.2 Resultatmål<br />
Prosjektgruppen skal:<br />
1. Oppdatere pr<strong>og</strong>ramvare til InTouch <strong>og</strong> iX-panelet for styring <strong>og</strong> regulering av<br />
nivået i tanken.<br />
2. Pr<strong>og</strong>rammere PLS’en for å regulere nivå <strong>og</strong> behandle alarm. PLS’en skal<br />
utvides for å ha mulighet for bruk av foroverkobling.<br />
3. Oppdatere Q-PLS med nye kommunikasjonsadresser.<br />
4. Måle støy, dimensjonere <strong>og</strong> lage filter.<br />
5. Modellere prosess for å kunne beregne regulatorparametere.<br />
6. Komme godt i gang med følgende tilleggsoppgaver:<br />
PID-regulator i strukturert tekst.<br />
Kameraovervåking via webkamera over internett.<br />
7. Vurdere følgende bonusoppgaver dersom tid:<br />
Fjernstyring av tankriggen med smarttelefon.<br />
Regulering av nivået ved hjelp av frekvensomformer.<br />
JSH; OG<br />
6.2.3 Prosessmål<br />
Studentene skal:<br />
1. Øke kompetansen <strong>og</strong> forståelsen av styring <strong>og</strong> regulering av nivå i tank.<br />
2. Øke kompetansen om riktig bruk av grafiske elementer i HMI, i forhold til<br />
prosessen.<br />
3. Øke kompetansen om kommunikasjonsprotokollene som knytter de ulike<br />
delene sammen.<br />
4. Øke evnen til å lære seg ny teknol<strong>og</strong>i gjennom tilleggsoppgavene.<br />
5. Øke det sosiale samarbeidet <strong>og</strong> trivselen innad i gruppa.<br />
JSH; OG<br />
12
6.3 Prosjektbeskrivelse:<br />
I entanksprosjektet har gruppen jobbet med regulering <strong>og</strong> styring av tanken.<br />
Prosessen blir styrt fra iX-panelet <strong>og</strong> InTouch, <strong>og</strong> skal regulere seg inn til referanse<br />
ved endring i utløp.<br />
Entanksprosjektet er «hovedprosjektet», som forprosjektet <strong>og</strong> miniprosjektet ligger til<br />
grunnlag for. De store utfordringene vil komme i denne delen av prosjektet, hvor vi<br />
møter problem. Entanksprosjektet vil ligge til grunnlag for totanksprosjektet som vil<br />
komme etter entanksprosjektet er ferdig. Det er derfor viktig at entanksprosjektet blir<br />
grundig gjennomgått, slik at totanksprosjektet blir enklere å samkjøre med den andre<br />
gruppen.<br />
TIB<br />
13
6.4 Spesifikasjoner<br />
6.4.1 PLS<br />
PLS-Master<br />
Anlegget består av to datanettverk som lar styringsenhetene i anlegget kommunisere<br />
med hverandre. Dette er et Ethernet <strong>og</strong> en Profibus-DP feltbuss. MasterPLS-en er en<br />
modulbasert PLS av typen Mitsubishi Q00 <strong>og</strong> skal være bindeleddet mellom<br />
nettverkene. MasterPLS-en muliggjør kommunikasjon mellom SlavePLS, koblet til<br />
Profibus-DP, <strong>og</strong> HMI, koblet til Ethernet. Produktspesifikasjoner til MasterPLS er<br />
beskrevet i prosjektets Miniprosjektrapport.<br />
Figur 1: MasterPLS<br />
BM<br />
PLS-Slave<br />
Væskenivået i en tank skal reguleres. Denne tanken har et innløp, som styres av<br />
reguleringsventil, <strong>og</strong> et utløp, som styres av tre magnetventiler. SlavePLS-en er en<br />
PLS av typen Mitsubishi FX1N med mulighet for utvidelser. SlavePLS-ens oppgave<br />
er å stå for reguleringen av nivået i tanken. Detaljerte produktspesifikasjoner til<br />
SlavePLS er beskrevet i prosjektets Miniprosjektrapport.<br />
Slaven skal lese nivå <strong>og</strong> utstrømning samt sende ut signal til reguleringsventilen ved<br />
hjelp av en ekstern anal<strong>og</strong> modul.<br />
14
Slaven skal kommunisere direkte med MasterPLS-en ved hjelp av Profibus-DP <strong>og</strong><br />
skal sende ut følgende verdier:<br />
- Anal<strong>og</strong>e verdier:<br />
o Avvik<br />
o Nivå<br />
o Utstrømning<br />
o Manuelt pådrag<br />
o Referanse<br />
o Nominelt pådrag<br />
o Pådraget til ventil<br />
- Digitale verdier:<br />
o Stopp av pumpe<br />
o Alarm ved avvik over 25 %<br />
o Alarm ved nivå over 90 %<br />
o Alarm ved nivå under 10 %<br />
o Resetting av kvittering<br />
I tillegg skal Slaven motta følgende verdier fra MasterPLS-en:<br />
- Anal<strong>og</strong>e verdier:<br />
o Referanse<br />
o Samplingstid<br />
o Kp<br />
o Ti<br />
o KpFF<br />
o TdFF<br />
o Nominelt pådrag<br />
o NFF<br />
o Manuelt pådrag<br />
15
- Digitale verdier:<br />
o Auto/manuell<br />
o P/PI<br />
o Foroverkobling på/av<br />
o Pumpe på/av<br />
o Utløpsventil 1 på/av<br />
o Utløpsventil 2 på/av<br />
o Utløpsventil 3 på/av<br />
o Alarmkvittering<br />
o Reverserende/direkte regulator<br />
Pr<strong>og</strong>rammet skal kunne fungere både som P- <strong>og</strong> PI-regulator med rykkfri overgang<br />
(bumpless transfer) ved skifte av regulatortype. Det skal ha både direkte <strong>og</strong> reversert<br />
modus. Det skal <strong>og</strong>så være mulig å sette regulatoren i manuell modus i tillegg til den<br />
automatiske. Regulatoren skal <strong>og</strong>så inneholde mulighet for foroverkobling av PD-<br />
type. Overgangen mellom manuell <strong>og</strong> automatisk modus skal <strong>og</strong>så foregå rykkfritt.<br />
Følgende parametere skal kunne justeres i regulatoren: proporsjonal forsterkning<br />
(Kp), integrasjonstid (Ti), nominelt pådrag, referanse <strong>og</strong> samplingstid. I manuell<br />
modus skal pådraget styres fra MasterPLS. I foroverkoblingsdelen skal det være<br />
mulig å stille inn KpFF, TdFF <strong>og</strong> NFF.<br />
Regulatoren skal justeres inn så det blir et innsvingningsforløp av typen minimum<br />
areal når nivået har stabilisert seg uten stasjonært avvik med referanse på 60 % <strong>og</strong><br />
det kommer et sprang i utløpet fra 3 ventiler til 1 ventil åpen.<br />
Det skal gå alarm dersom nivået avviker mer enn 25 % fra referansen(25 % av totalt<br />
måleområde). Kritisk alarm skal aktiveres dersom det absolutte nivået i tanken<br />
overstiger 90 % eller går under 10 %. Ved vanlig alarm skal ei varsellampe, koblet til<br />
SlavePLS-ens utgang Y5, på tanken blinke med 0,5 sekunder på <strong>og</strong> 0,5 sekunder av.<br />
Ved kritisk alarm skal blinkefrekvensen økes slik at lampa står på i 0,2 sekunder <strong>og</strong><br />
av i 0,2 sekunder. Dersom alarmen er kvittert ut fra operatørpanelet eller InTouch-<br />
applikasjonen, men det fortsatt er alarmtilstand, skal lampa ha fast lys. Lampa skal bli<br />
mørk når det ikke lenger er alarmtilstand. Hvis prosessen går ut av alarmtilstand uten<br />
16
at alarmen er kvittert, skal lampa fortsette å blinke inntil alarmen er kvittert.<br />
Alarmtilstander som varer mindre enn fem sekunder skal ikke utløse alarm.<br />
Pr<strong>og</strong>rammet må utformes slik at pumpa til tanken skal kunne slås av <strong>og</strong> på. Ved<br />
kritisk høy alarm skal pumpa stoppes automatisk. Det er viktig at pr<strong>og</strong>rammet<br />
automatisk sørger for at nivået i tanken reguleres rett ved strøminnkobling etter<br />
strømbrudd.<br />
De tre magnetventilene som styrer utløpet er styrt av SlavePLS-ens utganger Y10,<br />
Y11 <strong>og</strong> Y12. Pr<strong>og</strong>rammet i PLS-en skal utformes slik at magnetventilene kan styres<br />
av PC med HMI-pr<strong>og</strong>rammet InTouch.<br />
Figur 2: SlavePLS<br />
BM<br />
17
6.4.2 InTouch<br />
InTouch er et operatør-grensesnitt hvor operatør kan koble seg til PC for å styre <strong>og</strong><br />
overvåke prosessen. Operatørgrensesnittet har tre forskjellige operatører som har<br />
ulik tilgang til styringen av prosessen. Eksempel på hvordan operatør-grensesnittet<br />
ser ut er vist i bildet under.<br />
Figur 3: Eksempel på InTouch grensesnitt<br />
Det som skal kunne settes <strong>og</strong> styres fra InTouch er vist i Figur 4for de forskjellige<br />
operatørene. NB! Tank2 er ikke med i dette prosjektet.<br />
TIB<br />
18
Figur 4 Adgang – OP<br />
Alarmer:<br />
TIB<br />
• Det går alarm dersom nivået har et avvik på mer en 25 % i forhold til<br />
referansen.<br />
• Dersom nivået er under 10 % vil kritisk alarm aktiveres.<br />
• Kritisk alarm dersom det absolutte nivået oversiger 90 % i tanken.<br />
• Alarmtilstand som varer i mindre enn 5 sekunder vil ikke aktiveres.<br />
• Alarmer vil kunne kvitteres fra InTouch.<br />
• Alarmhistorikk vil være tilgjengelig i Historikk-vinduet i InTouch.<br />
19
6.4.3 iX-panel<br />
iX-panelet er et operatørpanel med touchskjerm lokalt på riggen. Skjermen viser et<br />
bilde av prosessen. Panelet er for enkelt kunne styre <strong>og</strong> overvåke prosessen, <strong>og</strong> for<br />
å detektere <strong>og</strong> kvittere alarmer.<br />
Figur 5: Krav til iX-panelet<br />
OG<br />
20
6.4.4 Nettside<br />
Det er laget en nettside som presenterer gruppe <strong>og</strong> prosjektet på en enkel måte.<br />
Nettsiden ligger på WEB-adressa www.hekta.org/~p2ea1.<br />
Figur 6:WEB-forside<br />
Figur 6 viser hvordan forsiden på nettstedet er utformet. Nettsidene inneholder<br />
informasjon om prosjektet med beskrivelse av gruppa <strong>og</strong> oppgaven.<br />
Dokumentarkivet på siden inneholder blant annet rapporter, innkallinger <strong>og</strong> referater.<br />
En side presenterer fremdriften på prosjektet <strong>og</strong> blir jevnlig oppdatert.<br />
Operatørpanelet i anlegget har en innebygget WEB-server som nettsiden bruker til å<br />
styre prosessen med. Denne siden krever innl<strong>og</strong>ging med passord for å hindre<br />
uønsket tilgang til styringen. Den samme siden viser WEB-kamera som brukes til å<br />
overvåke prosessen med.<br />
BM; TIB<br />
21
6.5 Filterberegninger <strong>og</strong> konstruksjon<br />
Som en del av prosjektet, skal prosjektgruppen konstruere to lavpass-filtre som skal<br />
settes inn før signalet går inn på AD-DA modulen i slave-PLS’en. Prosessen er<br />
plaget med en god del støy, forårsaket blant annet av fallhøyden fra innløpet i tanken<br />
til vannoverflaten, samt tankens smale radius. Ved å filtrere bort unyttig støy er<br />
tanken å få et bedre bilde av tankens faktiske tilstand.<br />
JSH<br />
6.5.1 Beregningsbakgrunn<br />
Prosjektriggen har to målepunkter som skal sendes til AD-DA omformeren i PLS’en.<br />
Man måler nivået i tanken, samt strømningen ut av tanken. AD-DA omformeren<br />
opererer med 8 bit, som vil si at et anal<strong>og</strong>t signal inn vil tolkes som et digitalt signal<br />
mellom 0 <strong>og</strong> 255 inn. Ønsket man har med filtrene er at støysignal, enten i selve<br />
målingen eller fra andre omliggende støykilder, skal filtreres bort slik at det ikke gir<br />
utslag på mer enn 1 bit på den digitale siden. Det vil si at man vil ha en maksimal<br />
amplitude til støysignalet på under 0,5 av størrelsen til 1 bit. Man forkorter ofte dette<br />
størrelsesmålet til ½ LSB(Least Significant Bit). Man vet at begge målerne gir ut et<br />
signal mellom 0-5 V, <strong>og</strong> kan dermed regne ut amplituden det er ønskelig å ligge<br />
under:<br />
1<br />
2<br />
=<br />
5 − 0<br />
2 − 1<br />
2<br />
= 0.00976 ≈ 0.01<br />
En annen viktig faktor som må tas hensyn til, er frekvensen til nyttesignalet som<br />
kommer fra tanken. Kommer et av filtrenes knekkfrekvens for nærme, eller før<br />
knekkfrekvensen til tanken vil dens nyttsignal bli dempet, noe som blant annet kan<br />
skade prosessens regulator sin evne til å reagere raskt på endringer i tanken. Ved å<br />
ta nytte av den matematiske modellen som ble laget i tilknytning til arbeidsnotatet, så<br />
man på frekvensresponsen til tanken, her representert i et Bode-diagram.<br />
22
Figur 7: Bode-diagram av åpen sløyfefunksjon<br />
Man fant her fasekryssfrekvensen ved 0,367 rad/s, eller sirka 0,06 Hz. Det kan da<br />
defineres at nyttesignalet er opp til <strong>og</strong> med denne frekvensen, da tankens system<br />
ikke er rask nok til å følge med på innsignaler raskere enn dette. Så lenge filtrenes<br />
knekkfrekvens ligger et godt stykke over denne frekvensen vil de ikke påvirke<br />
prosessen i en betydelig grad.<br />
JSH; FS<br />
23
6.5.2 Nivåmåler<br />
Nivåmåleren er relativt mye plaget av støy, <strong>og</strong> med ganske høy amplitude. Dette<br />
kunne gitt store feilmeldinger om nivåets stabilitet, hvis det ikke ble filtrert bort før det<br />
sendes inn i regulatoren.<br />
JSH<br />
Støymåling<br />
For å komme frem til en god design av filteret, måtte man først finne hvilke<br />
frekvenser man vil filtrere bort. Dette ble gjort ved at en ekstern regulator ble tilkoblet<br />
riggen, innstilt ved hjelp av autotuner, <strong>og</strong> at man så på støyfrekvens målt ved<br />
forskjellige høyder, samt forskjellige verdier på utløpet. Støyen ble målt med<br />
oscilloskop ut fra LT1(-)(Level Transmitter 1) på tankriggen.<br />
Figur 8: Støymåling LT1 ved 90 % <strong>og</strong> 1 åpen utventil<br />
Beregning # Nivå i % Utløpsventiler Amplitude i mV Frekvens i Hz<br />
1 90 1 48,75 208,33<br />
2 90 3 226,62 166,67<br />
3 60 1 210,37 454,55<br />
4 60 3 446,25 113,64<br />
5 10 1 370,12 208,33<br />
6 10 3 280,87 192,75<br />
7 Sprang 5 - 90 3 280,75 192,31<br />
Tabell 1: Støymåling LT1<br />
24
£Støymåling_LT1 viser gir oss verdier på hva slags støy vi måler fra LT1(-). Det man<br />
er mest interessert i, er målingene som gir oss lavest frekvens på støyen, da det er<br />
denne man må basere filteret ut på, men man er <strong>og</strong>så interessert i hvilken amplitude<br />
dette signalet har.<br />
JSH<br />
Design<br />
Filteret som skal være tilkoblet nivåmåleren til tank 1, LT1, skal ifølge<br />
prosjektspesifikasjonene være et andreordens Butterworth-filter.<br />
Figur 9: Andreordens Butterworth-filter<br />
For å finne passende verdier, begynner man som oftest ved å velge størrelsen på<br />
kondensatorene, C1 <strong>og</strong> C2. I dette tilfellet valgte man disse lik: C1 = C2 = 1 µF.<br />
Før man kan regne ut verdiene til R1 <strong>og</strong> R2, må man regne ut hvor man ønsker å ha<br />
filterets knekkfrekvens. Det vil si, ved hvilken frekvens skal dempningen av signalet<br />
begynne, <strong>og</strong> hvor mye signalet skal være dempet før man når støyfrekvensen.<br />
=<br />
!ø #<br />
$<br />
%<br />
∗ 2' ∗ ()ø*<br />
Fra beregningene av ½ LSB tidligere i kapittelet fant man den ønskede amplituden<br />
etter dempning, nemlig 0,01 V. Under målingene fant man at støysignalet på sitt<br />
laveste har en amplitude rundt 114Hz. For sikkerhets skyld rundes dette ned til<br />
100Hz. Ved denne frekvensen måltes det en amplitude på 446 mV. Dette rundes opp<br />
til 500 mV. Avrundingene gjøres for å ta hensyn til uforutsette hendelser. Man setter<br />
så disse verdiene inn i formelen for å finne knekkfrekvensen. N i formelen designerer<br />
filterordenen.<br />
25
= 0.01<br />
0.5 #<br />
$<br />
+<br />
∗ 2' ∗ 100 ≈ 88.86 ≈ 14.14 /0<br />
-<br />
Så skal selve filteret beregnes. Man har allerede sett seg ut to kondensatorer, <strong>og</strong> vil<br />
nå regne ut verdien til motstandene.<br />
1<br />
1 $ =<br />
2 ∗∝∗ 3 $<br />
1 + =<br />
2 ∗∝<br />
+ ∗ 3+<br />
Variabelen α er her avhengig av graden til filteret. For et annenordens filter, vil man<br />
ha 4 poler i det komplekse plan, <strong>og</strong> 2 poler i venstre halvdel. Disse finner man jevnt<br />
fordelt utover enhetssirkelen, <strong>og</strong> α finnes ved hjelp av vinklene til disse i forhold til<br />
den reelle aksen. For denne ordenen har vi 2 poler, begge med 45 graders forhold til<br />
den reelle aksen, <strong>og</strong> vi finner α ved denne formelen:<br />
∝ = ∗ cos7458 = 88 ∗ cos7458 = 44√2<br />
Da er alle variablene på plass, <strong>og</strong> man kan finne motstandene.<br />
1<br />
1 $ =<br />
≈ 8
Resultat<br />
Avlesninger av nivå i PLS viser markant bedring ved tilkobling av filter. Man ser av<br />
avlesningene at signalet, ved stabilt nivå <strong>og</strong> utløp, varierer med sirka en bit, noe som<br />
tilsier at man har lyktes i målet om at støyen skal være mindre enn 1 LSB.<br />
Konstruksjon av nivåfilter er derfor en suksess med tanke på de kriterier som ble satt<br />
i spesifikasjonene.<br />
JSH<br />
27
6.5.3 Strømningsmåler<br />
Strømningsmålersignalet er ikke betydelig plaget av støy <strong>og</strong> støyen er med relativt<br />
lav amplitude. Strømningssignalet blir filtrert for ikke å få et feil bilde av hva<br />
utstrømningen er, <strong>og</strong> videre påvirke utregninger i foroverkoblingsregulator.<br />
FS<br />
Støymåling<br />
For å designe filteret på en bra måte er vi avhengig av å vite hvilke frekvenser vi ikke<br />
ønsker, <strong>og</strong> dermed vil filtrere bort. Signalet ble l<strong>og</strong>get ved hjelp av oscilloskop ved<br />
forskjellig vannhøyde i tanken, ved forskjellig mengde på utløp <strong>og</strong> ved påfylling <strong>og</strong><br />
tømming av tank. Etter utførte tester stod vi igjen med støyfrekvensene som vi tok<br />
utgangspunkt i for design av filter. Det støysignalet vi var mest interessert i var det<br />
med lavest frekvens, samt å analysere amplituden på dette støysignalet samt<br />
amplitude på eventuelle nærliggende støysignal.<br />
Figur 10:Støysignalet med lavest frekvens på utstrømningssignal<br />
28
Beregning# Nivå i % Utløpsventiler Amplitude i mV Frekvens i Hz<br />
1 90 1 4,5 10,2<br />
2 90 3 11,25 6,8<br />
3 60 1 4,5 7,6<br />
4 60 3 7,5 6,4<br />
5 10 1 2,5 8,47<br />
6 10 3 8,63 7,04<br />
Tabell 2: Støymåling på flowsignal<br />
FS<br />
Design<br />
Figur 11: Førsteordens Butterworth lavpassfilter<br />
I følge prosjektspesifikasjonene var det ikke oppgitt noen andre spesifikasjoner annet<br />
enn at det skulle være et antialiasing filter på målt utløp, <strong>og</strong> at ic-brikken LM358<br />
skulle brukes. Valget vårt ble derfor et lavpassfilter av typen butterworth av første<br />
orden. Bakgrunnen for at det ble valgt et første ordens filter var på bakgrunn av<br />
analysene som ble gjort med tanke på bodediagrammet <strong>og</strong> at den laveste<br />
støyfrekvensen som ble funnet lå ca. to dekader over maksimum frekvens systemet<br />
greier å følge med på. Behovet for en bratt fallkurve i filteret trengs dermed ikke siden<br />
fasekryssfrekvens <strong>og</strong> laveste støyfrekvens ikke ligger nært hverandre.<br />
29
Vi regnet oss frem til knekkfrekvensen til filteret ved hjelp av formelen<br />
=<br />
!ø #<br />
$<br />
%<br />
∗ 2' ∗ ()ø*<br />
Under målingene som ble gjort på signalet fra flowmåleren fant vi den laveste<br />
støyfrekvensen til å være 6,4Hz. Denne frekvensen ble rundet ned til 5Hz for å ta<br />
hensyn til uforutsette hendelser. Dette kan man gjøre siden 5Hz ligger langt fra den<br />
høyeste frekvensen systemet kan håndtere som beskrevet under<br />
Beregningsbakgrunn. Amplituden til støysignalet på 6,4 Hz var på 7,5 mV, men<br />
nærliggende støysignal på 6,8Hz hadde en amplitude på 11,25 mV. Det ble derfor<br />
valgt å bruke amplituden til støysignalet på 6,8Hz. N i formelen viser til grad av<br />
filterorden.<br />
=<br />
0.01<br />
0,01125 #<br />
$<br />
$<br />
∗ 2' ∗ 5 ≈ 27,93 ≈ 4 /0<br />
-<br />
For å finne verdier til komponentene i filteret må man først ta utgangspunkt i<br />
størrelsen på kondensatoren. Vi valgte C1 = 1 µF. Deretter regnet vi ut størrelsen på<br />
R1 ved formelen<br />
1 $ =<br />
1 $ =<br />
1<br />
∗ 3 $<br />
1<br />
= 39793 Ω<br />
25,13 ∗ 1 ∗ 10 :;<br />
Motstanden velger vi ut fra E-12 serien, <strong>og</strong> nærmeste verdi ble da 39 kΩ.<br />
FS<br />
30
Oppkobling av Flowmåler-filter<br />
For å få analysert <strong>og</strong> målt støyen på utstrømningssignalet fant vi ikke noe god<br />
dokumentasjon på hvor vi kunne hente ut utstrømningssignalet fra FT. Prøvde å<br />
hente ut signalet fra koblingspanelet bak på tankriggen uten hell. Til slutt greide vi å<br />
finne utstrømningssignalet direkte på inngangen til AD/DA modul på slave-PLS 1.<br />
Filteret vil kobles inn i samme skap som slave-PLS 1.<br />
FS<br />
Resultat<br />
Figur 12: Gul kurve: Utstrømningssignal før filter. Grønn kurve: Utstrømningssignal etter filter<br />
Rent grafisk ser vi at vi har en tydelig forbedring av av signalet etter filteret. Etter en<br />
litt nærmere sjekk fant vi heller ingen støyamplitude over $<br />
feil signal på inngang til AD/DA.<br />
FS<br />
+ som ville kunne gitt<br />
31
6.5.4 Konstruksjon <strong>og</strong> oppkobling<br />
Gruppen sendte inn bestilling til arbeidsgiver med de verdiene man kom frem til<br />
under beregningene. I tillegg bestilte man to veroboard man kunne montere filtrene<br />
på. Komponenter <strong>og</strong> ledninger blir loddet på, <strong>og</strong> filtrene er klare til montering.<br />
Figur 13: Ferdig-konstruert nivåfilter<br />
JSH<br />
Figur 14: IC-brikken Lm358<br />
32
Flow-filter<br />
Figur 15: Oppkobling til rigg av Flow-filter<br />
På IC-brikken koblet vi oss på pinne 1,2,3,4 <strong>og</strong> 8 som vist på tegning over.<br />
Nivå-filter<br />
Figur 16: Oppkobling til panel av Nivå-filter<br />
På IC-brikken koblet vi oss til her som vi ser: OP-AMP 1:1,2,3,4 <strong>og</strong>8. OP-AMP2:<br />
4,5,6,7 <strong>og</strong> 8.<br />
33
Figur 17: Flow-filteret inne Slave-PLS skapet.<br />
Figur 18: Nivå-filter montert på tank-rigg.<br />
OG<br />
34
Filtrene blir forsynt med 24 V DC spenning fra riggens uttak, som går til<br />
operasjonsforsterkerne, mens filtrenes ut- <strong>og</strong> inn-ganger kobles i serie med signalene<br />
fra nivåmåler <strong>og</strong> flowmåler til inngangene på PLS.<br />
JSH<br />
6.5.5 Konklusjon filter<br />
De to filtrene er nå konstruert <strong>og</strong> satt opp på riggen. Det kan diskuteres om filteret til<br />
flowmåleren strengt tatt var nødvendig for stabiliteten av dens avlesninger, men det<br />
var uansett nyttig for gruppen å gå gjennom beregninger <strong>og</strong> konstruksjon av begge,<br />
da det var beregninger av flowmålerens filter som satte lys på problemstillingen<br />
angående bruk av filtergrad.<br />
Jevnt over ser man at bruk av filter mellom de anal<strong>og</strong>e målerne <strong>og</strong> de digitale leserne<br />
er svært nyttig, <strong>og</strong> var en flott måte for gruppen å få satt kunnskapen om<br />
filterkonstruksjon ut i praksis.<br />
JSH<br />
35
6.6 PLS.<br />
6.6.1 Slave-PLS:<br />
Prosjektgruppen har tidligere under det store prosjektet vært igjennom et delprosjekt<br />
som inneholder kommunikasjon. Under dette prosjektet ble en prosjektrapport levert,<br />
som omhandler kommunikasjonen mellom master- <strong>og</strong> slave-PLS, HMI’ene <strong>og</strong> tank-<br />
riggen. Derfor henviser prosjektgruppen til rapporten om det er ønsket mer<br />
informasjon som omhandler kommunikasjonen. Der vil det <strong>og</strong>så stå forklart<br />
oppbyggingen av pr<strong>og</strong>rammene som brukes under entanksprosjektet. Både i iX-<br />
panelet, i InTouch <strong>og</strong> i PLS-pr<strong>og</strong>rammet er det masse oppbygging, for eksempel i<br />
PLS vil det brukes spesialblokker som står forklart i rapporten.<br />
Under entanksprosjektet skal prosjektgruppen utarbeide ett pr<strong>og</strong>ram som følger alle<br />
krav i henhold til oppgaveteksten. Pr<strong>og</strong>rammet skal kunne fungere både som P- <strong>og</strong><br />
PI-regulator med rykkfri overgang ved skifte av regulatortype. Det skal ha både<br />
direkte <strong>og</strong> reversert modus. Det skal <strong>og</strong>så være mulig å sette regulatoren i manuell<br />
modus i tillegg til den automatiske. Denne overgangen skal <strong>og</strong>så foregå rykkfritt.<br />
Regulatoren skal <strong>og</strong>så inneholde mulighet for foroverkobling av P-, D- eller PD-type.<br />
Følgende parametere skal kunne justeres: proporsjonal forsterkning, integrasjonstid,<br />
nominelt pådrag, referanse <strong>og</strong> samplingstid. I manuell modus skal pådraget settes. I<br />
foroverkoblingsdelen skal det være mulig å stille inn KpFF, TdFF <strong>og</strong> NFF.<br />
I tillegg til spesifikasjonene for regulatoren forklarer oppgaven spesifikk hvilke<br />
alarmer systemet skal inneholde <strong>og</strong> hvordan de forskjellige alarmene skal opptre. Det<br />
skal gå alarm dersom nivået avviker mer enn 25 % fra referansen. Kritisk alarm skal<br />
aktiveres dersom det absolutte nivået overstiger 90 % eller går under 10 %. Ved<br />
vanlig alarm skal ei varsellampe på tanken blinke med 0,5 sekunder på <strong>og</strong> 0,5<br />
sekunder av. Ved kritisk alarm skal blinkefrekvensen økes slik at lampen står på i 0,2<br />
sekunder <strong>og</strong> av i 0,2 sekunder. Dersom alarmen er kvittert ut fra operatørpanelet eller<br />
InTouch-applikasjonen, men det fortsatt er alarmtilstand, skal lampen ha fast lys.<br />
Lampen skal bli mørk når det ikke lenger er alarmtilstand. Hvis prosessen går ut av<br />
alarmtilstand uten at alarmen er kvittert, skal lampen fortsette å blinke inntil alarmen<br />
er kvittert.<br />
En annen viktig del av alarmbehandlingen er at om alarmtilstanden varer mindre enn<br />
fem sekunder, skal ikke alarmen utløses. Pumpen på riggen skal kunne styres av<br />
36
pr<strong>og</strong>rammet, man skal kunne slå den av <strong>og</strong> på. Ved kritisk høy alarm skal pumpen<br />
stoppes automatisk. Det er viktig at pr<strong>og</strong>rammet automatisk sørger for at nivået i<br />
tanken reguleres rett ved strøminnkobling etter strømbrudd.<br />
En vesentlig problemstilling er at PLS pr<strong>og</strong>rammet ikke klarer å regne med<br />
desimaler. Derfor har prosjektgruppen opparbeidet et pr<strong>og</strong>ram der enkelte variabler<br />
som ønskes med desimaler multipliseres med faktoren 10, for så å dividere på 10<br />
senere i pr<strong>og</strong>rammet så systemet ikke mister viktige verdier under utregningen. I<br />
PLS-pr<strong>og</strong>rammet er det <strong>og</strong>så en grenseverdi for hvor høye tall som de forskjellige<br />
dataregistrene kan håndtere. Prosjektgruppen har med tanke på denne<br />
begrensningen tatt en gjennomgang der ekstremtilfeller regnes ut, for så å sjekke om<br />
tallverdiene holder seg innom det mulige området.<br />
De neste sidene inneholder en gjennomgang av prosjektgruppens pr<strong>og</strong>ram. Det har<br />
blitt bestemt internt i gruppen at gjennomgangen vil inneholde bilder <strong>og</strong> forklaring<br />
parallelt, så det blir enklest mulig oversikt. Det er <strong>og</strong>så satt inn tekst i pr<strong>og</strong>rammet,<br />
som skal forklare nok til at man skal få god oversikt bare med bildene.<br />
Prosjektgruppen har plassert formlene til regulatoren ved siden av bildene <strong>og</strong><br />
teksten, så leseren kan få et innsyn i bakgrunnen til pr<strong>og</strong>rammeringen.<br />
EVE<br />
37
Regulatoren<br />
Om regulatoren blir slått i manuell skal brukeren kunne styre pådraget fra en av<br />
HMI’ene. U_m er det manuelle pådraget som setter U0, Pådraget <strong>og</strong> pådraget til PI-<br />
regulatoren. Referansen settes lik prosessverdien, for å sikre at avviket er lik 0. U0<br />
settes så en rykkfri overgang til P-regulator skal kunne utføres. Pådraget til PI-<br />
regulatoren settes så en rykkfri overgang til PI-regulator skal kunne utføres.<br />
!7A B == 08{<br />
Figur 19:Regulator-Samplingstid<br />
D< − 1 = D E; D0 = D E; = G; D = D E;}<br />
Neste del av pr<strong>og</strong>rammet sørger for at kjøringen med P-regulator <strong>og</strong> foroverkobling<br />
skal fungere sammen, <strong>og</strong> da må U0 settes lik 0.<br />
Som forklart i innledningen i denne teksten, så er det mange variabler som er<br />
multiplisert med 10 for å få regnet med ønsket antall desimaler. På grunn av at de<br />
38
forskjellige variablene allerede er multiplisert med 10, vil det ikke vises på en annen<br />
måte enn å gi tallene samme verdi <strong>og</strong> å kalle de noe annet. Gruppen ønsket å<br />
innføre denne biten, så det skulle bli enklere å få et raskt overblikk, for eksempel vil<br />
Kp multiplisert med 10 bli kalt Kp10.<br />
Samplingstiden skal stilles inn av operatører på systemet. Gruppen har bestemt at de<br />
ville bruke en desimal på samplingstiden. Den vil bli multiplisert med 10 i iX-panelet<br />
<strong>og</strong> i InTouch før den videresendes til master- <strong>og</strong> slave-PLS. Om dette ikke utføres<br />
allerede i HMI’ene, vil desimaler falle av før det kommer ned til utregningene i slave-<br />
PLS’en. Samplingstiden bestemmer hvor ofte regulatoren skal kjøre. I denne<br />
pr<strong>og</strong>rambiten sørger vi for med ett hopp <strong>og</strong> en timer, at regulatoren ikke kjører oftere<br />
enn den bestemte samplingstiden tilsier. Timeren buker verdien 100ms, så til vanlig<br />
for å få f.eks. 1s må man multiplisere verdien med 10 for å få riktig verdi inn på<br />
timeren. Siden studentene allerede har multiplisert samplingstiden med 10 i HMI’ene,<br />
vil gruppen slippe å gjøre ytterlige endringer før vi sender den inn i timeren.<br />
Figur 20: Slave-PLS'en <strong>og</strong> AD/DA-modulene.<br />
39
Figur 21: Regulator-P.<br />
Avviket utregnes, enten i reversert eller direkte modus.<br />
!71 H - == 18{<br />
- {<br />
I = − G}<br />
I = G − }<br />
Neste del er P-regulatoren som slår inn om det er valgt automatisk regulator <strong>og</strong> ikke<br />
PI-regulator i HMI’ene. I en tidligere del av pr<strong>og</strong>rammet var det en nullstillingsdel,<br />
som nullstiller U0 om foroverkoblingen er tilkoplet, da denne ikke skal innvirke i den<br />
situasjonen.<br />
K!7A B == 18{ !7LK == 08{<br />
DIM = N<br />
10 ∗ I + N $ % I<br />
+ D0; }<br />
10<br />
40
Figur 22:Regulator-PI<br />
For å unngå å bruke verdier som PLS’en ikke aksepterer har prosjektgruppen gjort<br />
en utregning der de for eksempel bruker «%» som betyr at man henter resten. Dette<br />
har prosjektgruppen utført så viktige verdier ikke skal mistes, <strong>og</strong> for at utregningen<br />
skal holde seg innen ønsket område.<br />
PI-regulatoren skal brukes om auto <strong>og</strong> PI-regulator er aktivert i HMI’ene. Utregningen<br />
er vanligvis mindre enn den prosjektgruppen har benyttet, fordi at prosjektgruppen<br />
ønsket å få med en desimal på proporsjonal forsterkning <strong>og</strong> integrasjonstid.<br />
if7Auto == 18{if7PI == 18{<br />
ΔD I = YN $<br />
10 ∗ I + N $ %10 ∗ I + ΔDZ[()I:$ 10<br />
\<br />
;<br />
ΔD - I = N $<br />
10 ∗ I + N $ %10 ∗ I + ΔDZ[()I:$ # %] M^ ;<br />
10<br />
DI = DI:$ + ΔDMI + _`<br />
$ ∗ 7 I − I:$8 + _`%$ ∗7[ a:[ abc8<br />
;}<br />
$<br />
] M^<br />
41
Figur 23:Regulator-PI-2<br />
42
Neste del av pr<strong>og</strong>rammet er en bit som håndterer foroverkoblingens P-del, har<br />
brukes utløpet sammen med en innstilt KpFF til å hjelpe systemet å håndtere en<br />
endring i utløpet. I denne delen er det <strong>og</strong>så pr<strong>og</strong>rammert for å ta vare på verdier <strong>og</strong><br />
for å holde verdiene innenfor ønskede verdier.<br />
!7A B == 18{ !7Ld == 18{<br />
Figur 24: Regulator-Foroverkobling-P.<br />
D ee I = N ee $<br />
10<br />
ΔH I = H I − H I:$ ; }<br />
∗ ΔH I + N ee $ %10 ∗ ΔH I<br />
10<br />
Foroverkoblingens P-del <strong>og</strong> P- eller PI- regulatorens pådrag adderes før der<br />
grensesjekkes.<br />
; }<br />
43
En grensesjekk er å sørge for at en verdi holder seg innenfor de lovlige verdiene. I<br />
dette tilfellet er det lovlige området mellom 0 til 255, derfor utføres testen på måten<br />
som er vist på bildet <strong>og</strong> i formelen.<br />
Figur 25: Utregning Regulator-foroverkobling-D.<br />
!7D I > 2558D I = 255;<br />
!7D I < 08D I = 0;<br />
Gjennom pr<strong>og</strong>rammet utføres mange utregninger flere ganger. Derfor har<br />
prosjektgruppen laget pr<strong>og</strong>rambiter for å utregne disse, så lengre regnestykker kan<br />
kortes ned ved at verdiene er utregnet tidligere.<br />
44
Neste steg er foroverkoblingens D-del. For å gjøre hovedpr<strong>og</strong>rambiten litt mindre<br />
utregnes en del på forhånd. Prosjektgruppen har bestemt at de skal bruke desimaler<br />
<strong>og</strong>så på foroverkoblingen, <strong>og</strong> pr<strong>og</strong>rammet er lagt opp ut ifra det. Det vises med at det<br />
divideres med 10 i regnestykket, for at riktige verdier skal sendes ut.<br />
!7A B == 18{ !7Ld == 18{<br />
Ddee I<br />
=<br />
N ee $<br />
10<br />
Figur 26:Regulator-Foroverkobling-D<br />
∗ ΔH I + N ee $ %10 ∗ ΔH I<br />
10<br />
+ ]!ee ∗ Ddee I:$ + ]!ee $ %10 ∗ Ddee I:$<br />
10<br />
- --]!ee<br />
Foroverkoblingens D-del adderes så med verdien som er blitt grensesjekket tidligere,<br />
for så å bli grensesjekket igjen.<br />
45<br />
; }
For å få en rykkfri overgang fra auto til manuell har prosjektgruppen legt til en del<br />
som overfører pådragets verdi til det manuelle pådraget, så lenge regulatoren er satt<br />
til auto.<br />
!7A B == 18{D E = D; }<br />
Det er <strong>og</strong>så lagt inn en blokk for å få rykkfri overgang fra PI- til P-regulator, denne<br />
delen gir U0 verdien til PI-regulatorens pådrag.<br />
Figur 27:Regulator-Oppdatering av gamle verdier<br />
!7LK == 18{D0 = D I; }<br />
Etter hver gjennomkjøring skal regulatoren oppdatere verdiene sine, så det stemmer<br />
til neste gjennomkjøring. Det er det denne pr<strong>og</strong>rambiten utfører.<br />
EVE<br />
46
Profibus:<br />
I miniprosjektet opprettet vi kommunikasjon mellom de forskjellige enhetene som<br />
brukes i prosjektet. I entanksprosjektet viderefører prosjektgruppen kunnskapen<br />
videre til å kunne motta <strong>og</strong> avgi de aktuelle verdiene for en bra styring av systemet.<br />
Under er pr<strong>og</strong>rambiten som inneholder lesing <strong>og</strong> skriving av data til bufferminnene.<br />
EVE<br />
Skriving til Profibus:<br />
Her sender vi: pådraget, prosessverdien, utløpet, noen utvalgte minneceller,<br />
referansen <strong>og</strong> det manuelle pådraget. Referansen skal kun sendes opp når<br />
regulatoren står i manuell, <strong>og</strong> det manuelle pådraget skal kun sendes når regulatoren<br />
står i auto. Dette har prosjektgruppen bestemt fordi at om verdiene ble sendt<br />
kontinuerlig innvirker det på prosesstyringen.<br />
Figur 28: Skriv til Profibus fra slave.<br />
47
Figur 29: Skriv til Profibus fra slave.<br />
EVE<br />
48
Lesing fra Profibus:<br />
Innhentingen av data er <strong>og</strong>så grundig forklart i miniprosjektrapporten, <strong>og</strong> derfor vil det<br />
<strong>og</strong>så forekomme en overfladisk gjennomgang av innhentings delen. Slave-PLS<br />
henter inn følgende data fra bufferminnene: referansen. Samplingstiden, proporsjonal<br />
forsterkning, integrasjonstid, U0, NFF, det manuelle pådraget, et utvalg minneceller<br />
<strong>og</strong> foroverkoblingens proporsjonale forsterkning <strong>og</strong> derivasjonstid. Referansen skal<br />
kun leses om regulatoren står i auto, <strong>og</strong> det manuelle pådraget skal kun leses om<br />
regulatoren står i manuell.<br />
Figur 30: Lese fra Profibus med slavePLS'en<br />
49
igur 31: Lese fra Profibus med slavePLS'en<br />
EVE<br />
50
Anal<strong>og</strong> inn <strong>og</strong> ut:<br />
I miniprosjektet var oppgaven å sende en verdi til DA modulen, for så å motta samme<br />
verdi fra AD modulen. I entanksprosjektet har prosjektgruppen opprettet<br />
kommunikasjon med tank-riggen. I entanksprosjektet brukes nå DA modulen til å<br />
sende pådraget som styrer ventilen til tank-riggen. AD-modulen brukes til avlesning<br />
av utløpet <strong>og</strong> prosessverdien.<br />
Figur 32: Anal<strong>og</strong>e utganger fra slaven.<br />
Figur 33: Anal<strong>og</strong>e innganger til slaven.<br />
EVE<br />
51
Figur 34: Alarmbehandling.<br />
Digitale utganger <strong>og</strong> alarmbehandling:<br />
I denne pr<strong>og</strong>rambiten har gruppen satt sammen alarmbehandlingen som blant annet<br />
styrer en lampe på tank-riggen, med styring av pumpen <strong>og</strong> utløpene. Denne delen er<br />
pr<strong>og</strong>rammert ut ifra kravene fra prosjektoppgaven som nevnt tidligere. Under denne<br />
delen av pr<strong>og</strong>rammet vil det bli satt mange minneceller for de forskjellige<br />
alarmtilstandene <strong>og</strong> ved kvittering. Dette gjøres for å utfylle kravene som er satt i<br />
oppgaveteksten, <strong>og</strong> for å tilfredsstille behovet i iX-panelet <strong>og</strong> i InTouch.<br />
Prosjektgruppen har valgt å utføre kravspesifikasjonene med en lampe som blinker i<br />
alarmtilstand <strong>og</strong> forsinkelser, med hjelp av blant annet timere. I pr<strong>og</strong>rambiten ovenfor<br />
er det brukt både timere <strong>og</strong> setting av minneceller, som forklart ovenfor er for å hjelpe<br />
iX-panelet <strong>og</strong> InTouch med sin alarmkontroll.<br />
52
Figur 35: Alarmbehandling.<br />
Alarmene kvitteres i HMI’ene, dermed vil en kvitteringsminnecelle i pr<strong>og</strong>rammet<br />
utføre oppgaver ut ifra oppgaveteksten. For eksempel vil alarmlampen slutte å blinke,<br />
men den vil fortsatt lyse om systemet fortsatt er i alarmtilstand.<br />
53
Figur 36: Alarmbehandling.<br />
54
På forrige side ble pr<strong>og</strong>rambiten som styrer lempen på tanken vist, Under kan du se<br />
et bilde av den fysiske lampen som lyser under alarmtilstand.<br />
Figur 37: Lampen på tank-riggen.<br />
55
Figur 38: Alarmbehandling.<br />
Om operatøren har kvittert for en alarm så skal ikke kvitteringen være aktiv for<br />
eventuelle senere alarmer. I pr<strong>og</strong>rambit 9 er det opprettet en del som vil resette<br />
kvitteringsminnecellen om en ny alarm blir aktiv.<br />
Figur 39: Styring av utløp på tank-riggen.<br />
56
Figur 40: Flowmåleren som måler utløpet fra tanken <strong>og</strong> ventilene som styrer dette<br />
EVE<br />
57
6.6.2 Master-PLS:<br />
Prosjektgruppen har tidligere under det store prosjektet vært igjennom et delprosjekt<br />
som inneholder kommunikasjon. Under dette prosjektet ble en prosjektrapport levert,<br />
som omhandler kommunikasjonen mellom master- <strong>og</strong> slave-PLS, HMI’ene <strong>og</strong> tank-<br />
riggen. Derfor henviser prosjektgruppen til rapporten om det er ønsket mer<br />
informasjon som omhandler kommunikasjonen. Der vil det <strong>og</strong>så stå forklart<br />
oppbyggingen av pr<strong>og</strong>rammene som brukes under entanksprosjektet. Både i iX-<br />
panelet, i InTouch <strong>og</strong> i PLS-pr<strong>og</strong>rammet er det masse oppbygging, for eksempel i<br />
PLS vil det brukes spesialblokker som står forklart i rapporten.<br />
Master-PLS’en jobber i prosjektet som bindeleddet mellom slave-PLS’en som<br />
behandler verdiene <strong>og</strong> HMI’ene som styrer systemet. I prosjektet skulle<br />
prosjektgruppen pr<strong>og</strong>rammere ut ifra diverse krav satt i oppgaveteksten. Mesteparten<br />
av kravene vil bli løst i slave-PLS’en, men det er enkelte hendelser studentene har<br />
behandlet i master-PLS’en.<br />
De neste sidene inneholder en gjennomgang av prosjektgruppens pr<strong>og</strong>ram. Det har<br />
blitt bestemt internt i gruppen at gjennomgangen vil inneholde bilder <strong>og</strong> forklaring<br />
parallelt, så det blir enklest mulig oversikt. Det er <strong>og</strong>så satt inn tekst i pr<strong>og</strong>rammet,<br />
som skal forklare nok til at man skal få god oversikt bare med bildene.<br />
Figur 41: Bilde av master-PLS'en.<br />
EVE<br />
58
Hendelsessikring:<br />
Slave-PLS’en vil sørge for at pumpen blir avslått om nivået kommer over 90%, men i<br />
master-PLS’en vil minneceller sørge for at brukeren <strong>og</strong>så i HMI’ene kan se at<br />
pumpen er av. For at kvitteringen skal bli deaktivert når systemet har en ny<br />
alarmtilstand må master-PLS’en sette kvitteringen til 0 for HMI’ene, når slave-PLS’en<br />
registrerer en ny alarmtilstand.<br />
Figur 42: Hendelsessikring.<br />
I pr<strong>og</strong>rambit 3 har prosjektgruppen opprettet ett dataregister for sending av<br />
informasjon angående alarmtilstander til nettsiden.<br />
EVE<br />
59
Profibus:<br />
Spesielt denne delen av entanksprosjektet er grundig gjennomgått under<br />
miniprosjektet, <strong>og</strong> vil stå detaljert forklart i miniprosjektrapporten. Derfor henviser<br />
prosjektgruppen til miniprosjektrapporten om grundigere informasjon innenfor dette<br />
feltet er ønskelig.<br />
EVE<br />
Lesing fra Profibus:<br />
På forrige side sto det forklart hvordan master-PLS’en bruker verdier fra slave-<br />
PLS’en til å utføre viktige handlinger for for eksempel HMI’ene. For å klare disse<br />
oppgavene krever det at master-PLS’en har mottatt informasjonen. HMI’ene skal<br />
<strong>og</strong>så vise hvilke verdier systemet har til enhver tid, disse verdiene leses <strong>og</strong>så fra<br />
Profibus. Master-PLS’en leser av: avviket, nivået, utløpet, diverse minneceller, det<br />
manuelle pådraget, referansen, U0 <strong>og</strong> pådraget. Dette utføres via lesning fra Profibus<br />
modulen som vist under.<br />
Figur 43: Lesing av verdier fra Profibus med masteren.<br />
60
Noen av verdiene som leses fra Profibus skal kun leses når visse krav er oppfylt. For<br />
eksempel skal det manuelle pådraget kun avleses om regulatoren er satt til auto <strong>og</strong><br />
referansen skal kun avleses om regulatoren er satt til manuell.<br />
Figur 44: Lesing av verdier fra Profibus med masteren.<br />
EVE<br />
Skriving til Profibus:<br />
For å styre systemet er prosjektgruppen avhengig av at slave-PLS’en mottar<br />
styringsverdiene operatøren skriver til HMI’ene. Denne oppgaven utføres ved at<br />
master-PLS’en skriver mottatte verdier fra HMI’ene til Profibus, som senere leses av<br />
slave-PLS’en. Under denne pr<strong>og</strong>rambiten løser <strong>og</strong>så prosjektgruppen et eventuelt<br />
strømbrudd ut ifra kravene satt i oppgaveteksten.<br />
Om systemet mister strømmen skal prosjektgruppen sørge for at systemet ved<br />
oppstart skal regulere nivået riktig. Prosjektgruppen har løst dette problemet ved å<br />
bruke dataregister som husker sine verdier, <strong>og</strong> ved å bruke hendelser som skjer kun<br />
ved oppstart. Master-PLS’en skriver følgende verdier til Profibus: referansen,<br />
samplingstiden, proporsjonal forsterkning, integrasjonstiden, KpFF, TdFF, U0, NFF,<br />
diverse minneceller <strong>og</strong> det manuelle pådraget.<br />
61
Figur 46: Skriving av verdier til Profibus med masteren.<br />
Figur 45: Skriving av verdier til Profibus med masteren.<br />
62
Prosjektgruppen har løst problematikken med at referansen ikke klarte å huske sin<br />
verdi etter et strømbrudd fordi dataregisteret fikk en verdi fra avlesning fra Profibus.<br />
Studentene har satt opp et nytt dataregister som husker sin verdi som hele tiden blir<br />
satt lik referansen, <strong>og</strong> ved ett eventuelt strømbrudd vil en spesialblokk sørge for at<br />
referansen får sin siste verdi ved oppstart. Denne metoden brukte prosjektgruppen<br />
<strong>og</strong>så på minnecellene, da huske-minnecellene ikke fungerte optimalt.<br />
EVE<br />
6.7 PID-regulator:<br />
Som en tilleggsspesifikasjon er det laget en PID-regulator pr<strong>og</strong>rammert med<br />
pr<strong>og</strong>rammeringsspråket strukturert tekst i pr<strong>og</strong>rammet GX Works 2. PID-regulatoren<br />
er en inverterende regulator <strong>og</strong> er laget slik at den kan implementeres i prosesser<br />
hvor slike regulatorer trengs. Det at den er laget som en funksjonsblokk gjør at de<br />
enkelt kan kopieres over i andre PLS-er. I tillegg er det mulig å bruke flere regulatorer<br />
i samme PLS-pr<strong>og</strong>ram. For fleksibilitet er det mulig å kjøre regulatoren manuelt <strong>og</strong> en<br />
kan velge om en skal bruke en P(D)- eller PI(D)-regulator.<br />
Regulatoren er laget som en funksjonsblokk med inngangene <strong>og</strong> utgangene som en<br />
PID-regulator trenger for å kunne regulere et system. Funksjonsblokka heter<br />
PIDheltall da den er laget for å regne med heltall da mange PLS-er ikke regner med<br />
desimaltall. Det er i mange tilfeller ønskelig å finjustere reguleringsparameterne i<br />
regulatoren. For å ha muligheten til å stille inn variablene med en nøyaktighet på 0,1<br />
må verdiene ganges med en faktor på 10 før de sendes inn på regulatoren. Denne<br />
nøyaktigheten er kun tilgjengelig på inngangene SampTid, Kp, Ti <strong>og</strong> Td. De<br />
resterende inngangene <strong>og</strong> utgangene er enten enkelt bit, eller 8-bits anal<strong>og</strong>e verdier<br />
Ved implementering i et pr<strong>og</strong>ram hentes regulatoren frem som en funksjonsblokk <strong>og</strong><br />
tildeles en variabel. Denne tildelte variabelen fungerer som en adresse for<br />
regulatoren. Funksjonsblokka inneholder flere interne variabler <strong>og</strong> for at PLS-en, ved<br />
bruk av flere regulatorblokker, skal kunne skille mellom variablene i hver enkelt blokk<br />
må hver av blokkene ha hver sin adresse. Innhenting av PIDheltall-blokka gjøres i<br />
GX Works 2 ved å skrive inn PIDheltall som vist i Figur 47. Eksempel på<br />
implementering i et PLS-pr<strong>og</strong>ram ser du i Figur 48.<br />
63
Figur 47: Innhenting av blokka PIDheltall.<br />
Figur 48: Implementering av PIDheltall.<br />
I Figur 49 er det, i tillegg til PIDheltall-blokka satt inn et hopp. Dette hoppet er for å<br />
kunne sette samplingstiden til reguleringa. Det er ikke alltid ønskelig at regulatoren<br />
skal kjøre en sampling for hvert scan-syklus i PLS-en da dette bruker unødig<br />
datakapasitet.<br />
Inngangene på PIDheltall er verdier regulatoren bruker til utregning av pådraget.<br />
Pådraget er begrenset til et 8-bits anal<strong>og</strong>t signal hvilket vil si heltall området 0 til 255.<br />
Det er <strong>og</strong>så forutsatt at verdiene inn på PV, SV, uNOM <strong>og</strong> uMAN er heltall i området<br />
0 til 255. Den regulerte verdiens settes inn på PV-inngangen (ProsessVerdi). Om det<br />
er nivået i en tank som skal reguleres, kobles nivåverdien inn på PV. Prosessens<br />
referanse kobles til SV-inngangen (SkalVerdi) hvilket er den verdien en ønsker<br />
prosessen skal ha. Samplingstiden som blir brukt for regulatoren må settes inn på<br />
inngangen SampTid da regulatoren bruker denne verdien for å regne ut pådraget.<br />
Prosessens avvik leses av på Avvik, mens pådraget leses av på utgangen u.<br />
Ved valg av regulator type brukes PD_PID-inngangen. Dette skal være en verdi på<br />
en bit (TRUE/FALSE). Dersom verdien er FALSE kjøres regulatoren som en PD-<br />
regulator. Derimot om verdien på PD_PID er TRUE vil regulatoren kjøres som en<br />
64
PID-regulator. For å koble ut derivasjonsdelen (D-delen) i reguleringa settes<br />
inngangen Td til 0. For å kjøre regulatoren manuelt settes inngangen Auto til FALSE.<br />
Dermed vil regulatorens pådrag bli satt lik inngangen uMAN. For automatisk<br />
utregning av pådraget settes Auto til TRUE.<br />
Variablene SV, uNOM <strong>og</strong> uMAN er definert som både innganger <strong>og</strong> utganger. Dette<br />
sørger for rykkfri overgang mellom de forskjellige regulatorfunksjonene. Rykkfri<br />
overgang forutsetter stabil prosess idet overgangen inntreffer.<br />
Figur 49 viser en liste over alle variablene brukt i PIDheltall-blokka. I kommentarfeltet<br />
står det beskrevet hvilke variabler som på multipliseres med en faktor på 10 før de<br />
sendes inn i blokka.<br />
Figur 49: Variabelliste for PIDheltall<br />
Koden til blokka PIDheltall er lagt ved i Vedlegg om PIDheltall<br />
BM<br />
65
6.8 iX-panelet.<br />
Prosjektgruppen skulle i prosjektperioden opprette et iX-panel for styringen av<br />
systemet. I arbeidslivet ville iX-panelet stått ved prosessen <strong>og</strong> derfor ha blitt brukt<br />
mest av operatører. Derfor skal det ikke være for stor grad av styring fra iX-panelet. I<br />
oppgaveteksten var det spesifisert hva som skal være med i iX-panelet, både hva<br />
som skal skrives <strong>og</strong> leses.<br />
Tabell 3: Krav til iX-panelet<br />
Prosjektgruppen har utført pr<strong>og</strong>rammeringen av iX-panelet etter kravene i<br />
oppgaveteksten <strong>og</strong> har fokusert på å holde en oversiktlig <strong>og</strong> ryddig design.<br />
66
Prosjektgruppen jobbet i entanksprosjektet med en stor del av ett større prosjekt som<br />
omfatter blant annet kommunikasjon. I kommunikasjonsdelen av prosjektet<br />
pr<strong>og</strong>rammerte studentene opp et enkelt iX-panel som var koblet til systemet via<br />
Ethernet <strong>og</strong> prosjektgruppen viste i det prosjektet hvordan man snakker til tags <strong>og</strong><br />
sender verdier. Om leseren har interesse av kommunikasjonsbiten av prosjektet<br />
henviser prosjektgruppen til miniprosjektrapporten der kommunikasjonen er forklart<br />
grundigere, da entanksprosjektrapporten vil være mer overfladisk <strong>og</strong> omhandle<br />
styringen av systemet. Prosjektgruppen har valgt å bruke en fast bakgrunn som gjøre<br />
det lett å navigere mellom de forskjellige styringsvinduene.<br />
Figur 50: Bakgrunn til iX-panelet:<br />
Ingen spesiell design som kan lede bort fra viktige punkter <strong>og</strong> store knapper som<br />
fører en videre til ønsket side. Det er lagt inn tidspunkt <strong>og</strong> dato som kan være<br />
praktisk å ha med i en hvilken som helst prosess, for eksempel om noe skal kvitteres<br />
eller noteres. Nede i høyre hjørne på bildet er det ett flagg som varsler om alarmer <strong>og</strong><br />
denne biten vil bli nevnt senere i rapporten.<br />
67
Prosessen skal ikke være åpen for alle, derfor har prosjektgruppen opprettet en<br />
innl<strong>og</strong>gingsside <strong>og</strong> ordnet panelet på en måte som gjør minimalt med informasjon<br />
tilgjengelig for utenforstående. Det eneste en tilfeldig forbipasserende skal få tilgang<br />
til er trend-vinduet som viser hvilke verdier prosessen har. Prosjektgruppen har valgt<br />
å opprette iX-panelet på denne måten så ikke utenforstående skal med eller uten<br />
hensikt fjerne viktige beskjeder eller styre systemet.<br />
Figur 51: Innl<strong>og</strong>gingsside til iX-panelet.<br />
Når en skal hindre tilgang til komponenter eller sider på iX-panelet må man gå inn på<br />
den gjeldende siden eller enheten å skrive inn en kode for at en valgt gruppe har<br />
tilgang.<br />
Figur 52: Betingelse ved innl<strong>og</strong>ging.<br />
68
Prosjektgruppen har valgt å kalle sin gruppe for «Gruppe1», som er den eneste<br />
gruppen som har tilgang til iX-panelet. «Gruppe1» kalles for «Operators» i iX-panelet<br />
<strong>og</strong> det er den gruppen studentene har jobbet med når de har laget begrensninger iX-<br />
panelets innsyn.<br />
Figur 53: Sikkerhetsgruppe.<br />
For å ha et system som er enklest mulig å jobbe med, har prosjektgruppen satt<br />
betingelser for det meste som en kan foreta seg. Om iX-panelet ikke brukes på 5<br />
minutter har prosjektgruppen bestemt at brukeren automatisk skal l<strong>og</strong>ges ut, så det<br />
da ikke er åpent for andre om operatøren har forlatt prosessen. Det er <strong>og</strong>så<br />
pr<strong>og</strong>rammert slik at om brukeren uten innl<strong>og</strong>ging prøver å få tilgang til en låst del av<br />
prosessen, vil brukeren få beskjed om at innl<strong>og</strong>ging kreves for å få tilgang.<br />
Figur 54: Sikkerhetsbetingelser.<br />
69
Det man har sikkerhetsklarering til å se uten innl<strong>og</strong>ging er trend-vinduet. Det er en<br />
side på iX-panelet der du har oversikt over de forskjellige verdiene i kretsen i sanntid.<br />
Også i trend-vinduet har prosjektgruppen lagt vekt på et oversiktlig <strong>og</strong> enkelt bilde,<br />
som gir brukeren en behagelig opplevelse.<br />
Figur 55: Trendvinduet i iX-panelet.<br />
I trenden vises Referansen i grønt, nivået i blått <strong>og</strong> utløpet i rødt. Valget av farger er<br />
bestemt da de ikke er like på noen som helst måte, <strong>og</strong> er lette å se med den hvite<br />
bakgrunnen i trend-vinduet. Prosjektgruppen har <strong>og</strong>så bestemt bakgrunnen til trend-<br />
vinduet til hvit, så det skal være så enkelt som mulig. Studentene har pr<strong>og</strong>rammert<br />
inn to knapper for bedre oversikt over hva som skjer på trenden. Den ene knappen<br />
som heter «Vis legend», vil vise brukeren verdiene på referansen, nivå <strong>og</strong> utløp i et<br />
popup-vindu. Prosjektgruppen ønsker <strong>og</strong>så å kunne gå tilbake i tid for å få oversikt<br />
over hvordan prosessen har blitt styrt tidligere. Dette kan de gjøre med «Endre<br />
tidsakse» knappen som fungerer som enn inn- <strong>og</strong> ut-zoom.<br />
70
Prosessvinduet er der brukeren får inn mest informasjon. På grunn av all den<br />
informasjonen som skulle inn på begrenset plass valgte prosjektgruppen å holde det<br />
som resten av iX-panelet, enkelt <strong>og</strong> oversiktlig.<br />
Figur 56: Prosessvinduet i iX-panelet.<br />
I prosess-vinduet skal alt av styring foregå, bortsett fra kvittering av alarmer. Det er<br />
<strong>og</strong>så i prosess-vinduet operatøren vil finne all avlesning fra prosessverdier.<br />
Prosjektgruppen har valgt å gjøre alle komponenter tydelige, som for eksempel<br />
bryterne som styrer pumpen <strong>og</strong> manuell- <strong>og</strong> automatisk-regulator styring. De er store<br />
<strong>og</strong> om de aktiveres vil bryteren slå opp så du <strong>og</strong>så kan se at bryteren ligger inne. Alt<br />
av smådetaljer har prosjektgruppen pr<strong>og</strong>rammert for å gi en mest mulig behagelig<br />
opplevelse ved prosesstyringen.<br />
Innstillingen av manuelt pådrag skal kun kunne utføres om regulatoren står i manuell.<br />
Derfor har studentene valgt at ruten <strong>og</strong> teksten for innstilling av manuelt pådrag vil<br />
være borte helt til regulatoren ikke står i auto.<br />
71
Figur 57: Betingelser for synlighet.<br />
På samme måte skal referansen ikke kunnes stilles ved manuell kjøring, da den får<br />
tilgitt prosessverdien av PLS-en. Derfor har studentene valgt at ved manuell kjøring<br />
så skal det ikke være mulig å stille inn referansen. Både slideren <strong>og</strong> ruten for<br />
referanse innstilling vil bli «read only» som betyr at du kan lese av verdien, men ikke<br />
stille den selv.<br />
Figur 58: Betingelser for styring.<br />
72
Prosjektgruppen har lagt stor vekt på at pr<strong>og</strong>rammet skal være lett forståelig, <strong>og</strong><br />
derfor har de <strong>og</strong>så dannet animasjoner så brukeren skal kunne se hva som hender i<br />
systemet. Tanken vil fylle seg likt med prosessverdien i den fysiske tanken, <strong>og</strong> når<br />
brukeren har referanse slideren ved siden av tanken så vil man fort få oversikt i om<br />
tanken stiller seg inn til angitt referanse.<br />
Det er <strong>og</strong>så mange ventiler <strong>og</strong> en pumpe som prosjektgruppen har tatt hensyn til. Når<br />
pumpen er aktiv vil den på iX-panelet lyse grønt så brukeren forstår at pumpen er i<br />
gang. Dessuten vil alle ventiler som er åpne bli grønne <strong>og</strong> en signal-lampe vil tennes,<br />
samtidig som brukeren kan avlese verdien for åpningen av ventilene. Både pumpen<br />
<strong>og</strong> ventilene vil være grå når den ikke er aktiv eller åpen, <strong>og</strong> lampene for ventilene vil<br />
ikke være tent.<br />
Figur 59: Ved aktive- <strong>og</strong> inaktive-enheter.<br />
73
Den siste delen av iX-panelet som prosjektgruppen har pr<strong>og</strong>rammert er<br />
alarmbehandlingen. I iX-panelet er det mange skjulte hendelser som <strong>og</strong>så er forklart<br />
tidligere i rapporten, men under alarmbehandling vil den største delen av skjulte<br />
hendelser foregå.<br />
Figur 60: Alarmvinduet i iX-panelet.<br />
Selve alarmbildet er ferdigstilt i iX-panelet, med alle knapper <strong>og</strong> utseende. Derfor har<br />
ikke prosjektgruppen jobbet med denne delen når det gjelder alarmene, det er selve<br />
pr<strong>og</strong>rammeringen om hva som skal utløse alarmer <strong>og</strong> hva som skal skje ved de<br />
forskjellige alarmene.<br />
74
I oppgaveteksten er det forklart hva som skal utløse alarmer. Om nivået i tanken<br />
avviker mer enn 25 % fra referansen skal det gå vanlig alarm. Kritisk alarm skal<br />
aktiveres dersom det absolutte nivået overstiger 90 % eller går under 10 %. Hvis<br />
prosessen går ut av alarmtilstand uten at alarmen er kvittert, skal lampen fortsette å<br />
blinke inntil alarmen er kvittert.<br />
Figur 61: Alarmsituasjon under kjøring.<br />
Figur 62: Alarmer i iX-panelet<br />
75
Inne i oppbyggingen av pr<strong>og</strong>rammet velges det ut at det skal være tre<br />
alarmtilstander, iX-panelet vil motta verdier fra slave-PLS’en om det er alarmtilstand<br />
via tag’ene: alarm- 1,2 <strong>og</strong> 3. Deretter har prosjektgruppen satt opp betingelser for<br />
hver enkelt alarm, over hva som skal skje når den bestemte alarmen slår inn <strong>og</strong> hva<br />
som skjer når den ikke lenger er aktiv eller når den blir kvittert. Dersom nivået avviker<br />
referansen i tanken mer enn 25% vil alarm1 bli satt høy i slave-PLS’en <strong>og</strong> iX-panelet<br />
vil registrere alarmtilstand. Deretter vil brukeren bli varslet med et popup-vindu, en<br />
lampe <strong>og</strong> et flagg.<br />
Figur 63:Alarmbetingelse <strong>og</strong> pop-up vindu<br />
76
Figur 64: Alarmbetingelse i iX-panelet.<br />
Deretter om alarmen blir inaktiv før brukeren har vært på iX-panelet vil popup-vinduet<br />
automatisk krysses ut, <strong>og</strong> alarmoversikt-vinduet vil vises. Der vil brukeren ha<br />
fullstendig oversikt, <strong>og</strong> kan kvittere for eventuelle aktive eller inaktive alarmer.<br />
Flagget vil vises helt til brukeren har kvittert for både aktive <strong>og</strong> inaktive alarmer. Dette<br />
har prosjektgruppen bestemt med tanke på at lampen vil blinke helt til det blir kvittert.<br />
Figur 65: Popup-vinduer ved nivå over 90 % <strong>og</strong> under 10 %.<br />
77
Flagget styres med en alarm-tag som aktiveres hver gang en ny alarm aktiveres, <strong>og</strong><br />
som deaktiveres hver gang alle alarmer blir kvittert. Mens alarm indikatoren kun vil<br />
lyse om en alarm er aktiv <strong>og</strong> vil forsvinne om en alarm ikke lenger er aktiv.<br />
Figur 66: Alarmbetingelser i iX-panelet.<br />
iX-panelet skal samkjøres med InTouch pr<strong>og</strong>rammet ved alle aspekter i systemet,<br />
dermed <strong>og</strong>så alarmene. Om operatøren kvitterer en alarm i iX-panelet skal alarmen<br />
<strong>og</strong>så kvitteres i InTouch <strong>og</strong> omvendt. Derfor har prosjektgruppen opprettet en<br />
fjernstyring av kvitteringene, ved å sette inn den samme tagen som brukes i begge<br />
HMI’ene.<br />
EVE<br />
78
6.9 Webkamera til InTouch<br />
For å koble webkameraet til InTouch er port-forward brukt.<br />
TIB<br />
6.9.1 Port i webkamera:<br />
For å sette eller «fremheve» en port til webkameraet, last ned<br />
IPsetupPr<strong>og</strong>ramV1_4_1_10. Dette er et pr<strong>og</strong>ram som brukes for å sette porter på<br />
Sony sine web-kamera. Pr<strong>og</strong>rammet ligger på hjemmesiden til Sony:<br />
http://pro.sony.com/bbsc/ssr/mkt-security/resource.downloads.bbsccms-assets-cat-<br />
camsec-downloads-SecurityDownloadsIPCameraTools.shtml<br />
Installer pr<strong>og</strong>rammet <strong>og</strong> koble deg serielt til kameraet via en ethernet-kabel. Du vil da<br />
få opp et vindu som vist i Figur 67: Port-webkamera..<br />
IP-adressen til webkamera vil automatisk komme opp når du kobler deg til. Sett et<br />
port-nummer til webkameraet. Vi har valgt å bruke(fremheve) Port nr. 6668, som<br />
burde være i området rundt 6000-7000 for å være sikker porten ikke er i bruk av et<br />
annet pr<strong>og</strong>ram.<br />
Skriv inn brukernavn <strong>og</strong> passord. Dette er samme passord <strong>og</strong> brukernavn som gir<br />
tilgang til routeren. Trykk OK for å lagre innstillingene.<br />
79
Figur 67: Port-webkamera.<br />
TIB<br />
80
Port i ruteren<br />
Når porten i webkameraet er fremhevet eller satt, må samme port bli fremhevet i<br />
ruteren. For å sette eller fremheve en port i ruteren, må du koble deg serielt til ruteren<br />
via ethernetkabel. Åpne en web-leser <strong>og</strong> skriv inn IP-adressen til ruteren.<br />
Du vil da få opp en boks lik Figur 68: Innl<strong>og</strong>ging på ruter., <strong>og</strong> på denne skal du skrive<br />
inn brukernavn <strong>og</strong> passord til ruteren. Når brukernavn <strong>og</strong> passord er godtatt vil et<br />
vindu som blir likt Figur 69: Port-ruter. dukke opp. Denne gir tilgang til ruterens<br />
innstillinger.<br />
Figur 68: Innl<strong>og</strong>ging på ruter.<br />
For å fremheve en port i ruteren for webkameraet, gå til Advanced – Virtual Server,<br />
<strong>og</strong> skriv inn IP-adressen til webkameraet i feltet Private IP. Sett Port-nr. 6668.<br />
Huk av Enabled <strong>og</strong> trykk Apply for å lagre innstillinger.<br />
81
Figur 69: Port-ruter.<br />
Videre vil du få opp kamera i listen som vist i figur Figur 70. En port i ruteren er da<br />
fremhevet for web-kameraet.<br />
Figur 70: Port-router-kamera.<br />
For at en annen datamaskin som vil ha tilgang til webkamera, kan den skrive i en<br />
web-leser: http://158.38.53.252:6668/home/JViewer.html. Datamaskinen vil da få<br />
tilgang til port-nr.6668 hvor webkameraet ligger, <strong>og</strong> vil få sendt bilde fra webkameraet<br />
gjennom ruteren.<br />
TIB<br />
82
6.10 InTouch<br />
6.10.1 Intro<br />
Ut fra arbeidsbeskrivelsen var det ønskelig å ha et operatørgrensesnitt på PC som<br />
prosessen skulle kunne styres- <strong>og</strong> overvåkes fra. Grensesnittet skulle utvikles i<br />
pr<strong>og</strong>rammet InTouch. Pr<strong>og</strong>rammet skulle inneholde flere forskjellige vinduer der<br />
operatør kan få nødvendig informasjon, <strong>og</strong> utføre eventuelle tiltak.<br />
FS<br />
6.10.2 Beskrivelse av oppgave<br />
I arbeidsbeskrivelsen stod det hva de forskjellige vinduene skulle inneholde. Et av<br />
vinduene skulle inneholde et prosessbilde der det blant annet skulle fremkomme<br />
informasjon om pumpens tilstand, nivå i tankene, pådrag <strong>og</strong> alarmtilstander. Det<br />
skulle <strong>og</strong>så være et vindu for lesing/l<strong>og</strong>ging av alarmer. Eventuelle alarmer skal<br />
kunne kvitteres mot PLS. Et eller flere vinduer skulle lages for sanntidstrender, <strong>og</strong> et<br />
eller flere vinduer skulle lages for å vise historiske trender. Pr<strong>og</strong>rammet skulle <strong>og</strong>så<br />
inneholde et vindu for innl<strong>og</strong>ging der operatøren må l<strong>og</strong>ge seg inn med eget passord.<br />
De forskjellige brukerne av pr<strong>og</strong>rammet skulle være OPERATØR1, OPERATØR2 <strong>og</strong><br />
OPERATØR3, med henholdsvis passordene Op1, Op2 <strong>og</strong> Op3. Videre ble det<br />
presentert en tabell i arbeidsbeskrivelsen som beskriver hvilke rettigheter de<br />
forskjellige brukerne av pr<strong>og</strong>rammet skulle ha.<br />
83
FS<br />
Tabell 4: Rettigheter for forskjellige operatører i InTouch<br />
84
6.10.3 Tanker rundt det endelige grensesnittet.<br />
I gruppen kom vi frem til at vi så det som mest hensiktsmessig å ha et stilrent,<br />
oversiktlig <strong>og</strong> ryddig grensesnitt. Bakgrunnen for det var en forelesning vi hadde i<br />
nettopp InTouch der kurshaver fortalte om sine erfaringer med utvikling av grafiske<br />
grensesnitt <strong>og</strong> hva kunden <strong>og</strong> operatørene erfaringsmessig ble fornøyd med. På<br />
bakgrunn av erfaringene vi gjorde oss på forelesningen samt praktisk erfaring med<br />
brukergrensesnitt fra enkelte av gruppemedlemmene utformet vi et grensesnitt vi tror<br />
vil tilfredsstille arbeidsbeskrivelsen.<br />
FS<br />
6.10.4 De ulike vinduene.<br />
Figur 71: Innl<strong>og</strong>gingsvinduet<br />
I innl<strong>og</strong>gingsvinduet vil brukeren av pr<strong>og</strong>rammet få muligheten til å l<strong>og</strong>ge seg inn. Det<br />
er i dette vinduet at rettighetene til brukeren bestemmes ut i fra om brukeren har<br />
tilgang på OPERATØR1, OPERATØR2 eller OPERATØR3 kontoen.<br />
85
Figur 72: Operatør3 vinduet<br />
Figur 73: Operatør2 vinduet<br />
86
Figur 74: Operatør1 vinduet<br />
OPERATØR3 er den brukeren som har alle rettigheter for styring av prosessen. Hvis<br />
man sammenligner vinduene for de ulike operatørene ser man hvordan funksjonene<br />
endres. Enten ved at skrivefunksjoner endres til kun å være lesbare, eller ved at dem<br />
fjernes helt fra vinduet. Dette i henhold til arbeidsbeskrivelse <strong>og</strong> tabell for rettigheter<br />
for de forskjellige brukerne.<br />
Figur 75: Sanntidstrendvinduet<br />
87
I sanntidstrendvinduet får brukeren av pr<strong>og</strong>rammet en grafisk fremstilling av hvordan<br />
referanse, nivå i tank <strong>og</strong> pådrag har forandret seg det siste minuttet.<br />
Figur 76: Historisk trendvindu<br />
I historisk trendvinduet får brukeren av pr<strong>og</strong>rammet en grafisk fremstilling av hvordan<br />
referanse, nivå i tank <strong>og</strong> pådrag har forandret seg historisk. I dette vinduet kan<br />
brukeren se tilbake i tid, måle kurvenes verdi <strong>og</strong> i større grad analysere prosessen<br />
sammenlignet med sanntidstrenden.<br />
Figur 77: Alarmhistorikkvinduet<br />
88
I alarmhistorikkvinduet blir alarmer registrert <strong>og</strong> vist i tabell. Her kan bruker få<br />
informasjon om hvilken alarm som ble utløst, ved hvilket tidspunkt, om alarmen ble<br />
kvittert mens prosessen var i alarmtilstand, hvilken prioritet alarmen har m.m.<br />
Figur 78: Kameraovervåkningsvinduet<br />
I kameraovervåkingsvinduet får brukeren mulighet til å overvåke prosessen live<br />
gjennom et kamera. Ut fra bildene håper vi at du som leser får et visst inntrykk av<br />
hvordan grensesnittet vil fungere. Gjennomgående i alle vinduene, foruten<br />
innl<strong>og</strong>gingsvinduet, har vi menyen for hvilket vindu brukeren ønsker å entre,<br />
prosessbildet <strong>og</strong> alarmtilstander. I arbeidsbeskrivelsen var det ikke satt noe krav til at<br />
alarmtilstander <strong>og</strong> prosessbildet skulle være i alle vinduene. Vi i gruppen kom frem til<br />
at dette kunne være hensiktsmessig for å gi brukeren full oversikt over prosessen til<br />
enhver tid, uavhengig av hvilket vindu brukeren er inne på. I prosessbildet får man en<br />
rask oversikt over hvordan nivået i tanken er i forhold til innstilt referanse, hvor<br />
mange av magnetventilene som er åpne, pumpetilstand, hvor mange prosent utløp<br />
<strong>og</strong> prosent pådrag. Ut fra prosessbildet får man <strong>og</strong>så en hvis grafisk informasjon om<br />
hvordan prosessen er satt sammen. Dette for å gjøre det enklere for vedlikeholds<br />
personell å kunne raskt finne eksempelvis hvor nivåmåleren sitter (bunntrykksmåler i<br />
dette tilfellet) ved eventuell reparasjon eller utskifting.<br />
FS<br />
89
6.10.5 Indikasjoner<br />
For å indikere pumpetilstand <strong>og</strong> tilstand til ventiler har vi i gruppen valgt å bruke<br />
grønn bakgrunnsfarge når pumpen går, <strong>og</strong> grønn bakgrunnsfarge når en ventil er<br />
åpen. Vi har <strong>og</strong>så implementert en liten animasjon når pumpen går der korset i<br />
midten roterer. Ved pumpestopp <strong>og</strong> stengt ventil er bakgrunnsfargen valgt til grå. Ved<br />
alarmer har vi valgt å bruke rød farge. Dette for at brukeren raskt skal skjønne at nå<br />
er tilstanden til prosessen unormal, <strong>og</strong> krever brukers oppmerksomhet. De fleste<br />
kjent så er jo rødt en farge som ofte er forbundet med faresituasjoner i dagliglivet.<br />
FS<br />
6.10.6 Kommunikasjon<br />
InTouch som grafisk grensesnitt på PC må kommunisere med PLS for at prosessen<br />
skal kunne styres. Dette skjer først ved at et pr<strong>og</strong>ram kalt OPC-server blir satt opp til<br />
å kommunisere med PLS. I OPC-serveren blir det opprettet såkalte tags som er<br />
knyttet opp mot dataregistre <strong>og</strong> minneceller i PLS <strong>og</strong> gjør det mulig å skrive til dem<br />
fra PC. Deretter settes det opp et pr<strong>og</strong>ram som muliggjør kommunikasjon mellom<br />
OPC-server <strong>og</strong> InTouch. Dette pr<strong>og</strong>rammet heter OPC-Link <strong>og</strong> fungerer da som<br />
bindeleddet, tolken om du vil, mellom OPC-server <strong>og</strong> InTouch. Når både OPC-server<br />
<strong>og</strong> OPC-Link er satt opp starter man opp et lite tilleggspr<strong>og</strong>ram i InTouch kalt OPC<br />
Tag Creator. I dette pr<strong>og</strong>rammet hentes taggene som ble opprettet i OPC-server inn<br />
til InTouch. Når taggene er hentet inn til InTouch er dem klare for å bli knyttet til det<br />
grafiske grensesnittet, <strong>og</strong> kan dermed skrive til- <strong>og</strong> lese fra PLS.<br />
90
Figur 79: InTouch I<br />
For utfyllende info om hvordan oppsett av OPC-server, OPC-Link <strong>og</strong> innhenting av<br />
tagger til InTouch via OPC Tag Creator vil vi henvise leseren til Miniprosjektrapport<br />
kapittel 6.5.1.<br />
FS<br />
6.10.7 InTouch, AD/DA <strong>og</strong> skripting<br />
I prosessen har slave-PLS’en en AD/DA modul på 8 bit. Det vil si at ved sending <strong>og</strong><br />
mottak av anal<strong>og</strong>e signal i slave-PLS (0-20 mA) vil de anal<strong>og</strong>e signalene bli omgjort<br />
til et heltall med verdi på mellom 0-255. I brukergrensesnittet ville vi i gruppa omgjøre<br />
disse verdiene til verdier som tilsvarer 0-100 % i brukergrensesnittet. Vi hadde <strong>og</strong>så<br />
andre tilfeller der vi ønsket å skalere enkelte tagger opp om de skulle leses av PLS<br />
(PLS kan ikke håndtere desimaltall direkte), eller ned om taggen skal leses av i<br />
InTouch. I den forbindelse ble vi i gruppa enige om å skrive en del skript i InTouch for<br />
omregningen.<br />
FS<br />
91
6.10.8 Skript<br />
For å oppnå ønsket resultat på skriptene måtte vi opprette lokale tagger i InTouch.<br />
Følgende vil nå vise deg et eksempel på hvordan det ble gjort:<br />
Figur 80: InTouch II<br />
I InTouch går mann inn på fanen Special >> Tagname Dictionary. Da kommer<br />
vinduet øverst på bildet opp. Velg New <strong>og</strong> fyll inn ønsket navn, i dette tilfellet<br />
Kp_lokal_skriv. Etterpå velger du hvilken datatype den lokale taggen skal være, her<br />
memory real siden vi ønsker at tallet skal kunne være desimaltall. Trykk OK <strong>og</strong> Save.<br />
Du har nå opprettet en lokal tag.<br />
PLS kan ikke direkte håndtere desimaltall, <strong>og</strong> måten det ble løst på var at verdier inn<br />
til PLS ble multiplisert med en faktor på 10 (i dette tilfellet) for å bøte på problemet.<br />
Deretter ble videre utregning utført i PLS-pr<strong>og</strong>ram. Følgende vil vise deg hvordan det<br />
ble gjort i InTouch:<br />
92
Figur 81: InTouch III<br />
Vi ønsker å bestemme verdien til proporsjonalforsterking, Kp, i regulator fra InTouch.<br />
Denne verdien sendes til PLS via taggen kalt Kp. I skriptet (data change script) på<br />
bildet ser du hvordan det skjer ved at det er opprettet en lokal tag kalt Kp_lokal_skriv<br />
av typen memory real (håndterer desimaltall) som multipliseres med en<br />
skaleringsfaktor på 10. Dette for at bruker i InTouch skal ha muligheten til å ha med<br />
et tall bak komma i verdien til Kp. I InTouch knyttes taggen Kp_lokal_skriv til der<br />
bruker taster inn ønsket verdi til Kp. Deretter sendes Kp til PLS med rett verdi for<br />
videre regning i PLS-pr<strong>og</strong>ram.<br />
93
For å kunne presentere den riktige verdien til Kp i InTouch må vi gjøre det omvendt.<br />
Følgende vil vise deg hvordan det ble løst:<br />
Figur 82: InTouch IV<br />
Først ble det opprettet en lokal tag kalt Kp_lokal_les av typen memory real. Denne<br />
taggen knyttes til det grafiske grensesnittet for å vise hva Kp er i tallverdi. Siden Kp<br />
er skalert opp med en faktor på 10 må Kp divideres på 10 for å vise den riktige<br />
verdien i InTouch. Skriptet som ble skrevet er av typen data change script, <strong>og</strong> koden<br />
vises i bildet.<br />
I enkelte andre tilfeller som for eksempel tallverdi på referanse var det ønskelig å<br />
kunne angi 0-100 % nivå i tanken. For enklere utregning i PLS-pr<strong>og</strong>ram ble vi i<br />
gruppen enige om at verdien på referanse inn til PLS skulle være fra 0-255, <strong>og</strong><br />
omregningsfaktoren ble da 2,55.<br />
Disse omregningene måtte gjøres på en rekke variabler, men fremgangsmåten for<br />
alle er lik eksemplene presentert her.<br />
For å tydeliggjøre når pumpen er i drift spurte vi arbeidsgiver om det kunne være<br />
aktuelt å implementere en animasjon som viste det. Arbeidsgiver sa det ville være et<br />
designvalg, <strong>og</strong> vi valgte derfor å ha det med for å tydeliggjøre pumpens tilstand.<br />
Følgende vil ta deg gjennom hvordan det ble gjennomført:<br />
Vi startet med å lage en lokal tag kalt rotasjon. Deretter ble det laget et condition<br />
skript:<br />
94
Figur 83: InTouch V<br />
Vilkåret for at skriptet skal kjøres er som bildet viser at Pumpe (en tag) == 1. Her vil<br />
rotasjon’s taggen øke med 5 helt opp til 360, for deretter å bli resatt til 0. Økningen<br />
skjer her hvert 100 msek. Taggen rotasjon brukes videre på korset inne i<br />
pumpeikonet.<br />
Figur 84: InTouch VI<br />
Dobbeltklikk på korset, <strong>og</strong> du får opp bildet:<br />
Figur 85: InTouch VII<br />
95
Huk av på orientation <strong>og</strong> konfigurer som vist på neste bilde:<br />
Figur 86: InTouch VIII<br />
Pumpeanimasjonen er nå ferdig konfigurert.<br />
FS<br />
96
6.10.9 Smarte valg <strong>og</strong> problemområder<br />
InTouch overskriver verdier fra iX-panelet, <strong>og</strong> Application Scripts.<br />
For å sende <strong>og</strong> motta verdier til <strong>og</strong> fra PLS var vi litt usikre på hvordan vi skulle gjøre<br />
det siden PLS ikke kan håndtere kommatall uten videre, <strong>og</strong> i InTouch ville vi ha<br />
muligheten for at bruker skulle kunne taste inn kommatall for enkelte verdier. I<br />
enkelte andre tilfeller ville vi <strong>og</strong>så skalere opp tallverdien fra InTouch fra å gå fra 0-<br />
255.<br />
Vi prøvde først med å legge de aktuelle verdiene i skript som oppdateres med jevne<br />
mellomrom (application script) <strong>og</strong> regnet ut ønsket verdi. Dette skriptet fungerer som<br />
en while-sløyfe <strong>og</strong> vil skrive med jevne mellomrom til PLS. Samtidig ønsket vi å<br />
regne om verdien fra PLS for at rett tallområde skulle vises i InTouch. En annen ting<br />
som ble vanskelig med while-sløyfe løsningen var at verdier til PLS fra InTouch ble<br />
oppdatert med jevne mellomrom noe som gjorde det umulig å sende verdier fra iX-<br />
panelet til PLS siden InTouch skrev over dem. Dette viste seg å være en vanskelig<br />
måte å løse det på, <strong>og</strong> vi kom derfor frem til en bedre løsning ved å opprette lokale<br />
tagger i InTouch som kunne brukes til mellomregninger. Vi slapp da <strong>og</strong>så å bruke<br />
application scripts noe som løste problemet med at InTouch overskrev iX-panelet.<br />
FS<br />
Flowmåler<br />
Riggen er utstyrt med en flowmåler som måler utstrømning fra tanken. På riggen er<br />
det <strong>og</strong>så montert et display som kan vise utstrømningen i % eller i liter/time. Ønsket<br />
fra gruppen var at vi i InTouch skulle kunne lese av hvor mange liter /time<br />
utstrømning vi hadde til en hver tid. Fra PLS kom verdien til InTouch fra flowmåler<br />
med en verdi fra 0-255. I InTouch regnet vi om verdien slik at vi hadde sirka samme<br />
verdi som displayet viste. Dette skulle vise seg å endre seg med ujevne mellomrom<br />
når vi testet på riggen, <strong>og</strong> det som skjedde var at displayet <strong>og</strong> verdien vist i InTouch<br />
ikke stemte overens, noe den hadde gjort før. Vi tilkalte lab ingeniør Andreas Sørvik<br />
for hjelp, men han kunne ikke finne ut hva som var feil. Flowmåler var kalibrert slik at<br />
100 % utløp var ved sirka full tank <strong>og</strong> tre ventiler åpne, noe som var en grei<br />
kalibrering, men verdien på liter/time som displayet viste endret seg. Vi tok derfor en<br />
beslutning om å vise % utløp i InTouch siden det så ut til å være stabilt.<br />
FS<br />
97
6.10.10 Symbolbruk i InTouch<br />
Ved bruk av enkelte symboler i InTouch, særlig med tanke på inkrementeringspiler<br />
fikk vi i gruppen en del problemer. Det lå som regel i at ferdige symboler ikke har den<br />
friheten til å gjøre alt man vil med et symbol. Det største problemet var at i enkelte<br />
tilfeller ønsket vi å skjule pilene om brukeren av grensesnittet ikke skulle ha<br />
muligheten til å taste inn en verdi. Det kunne vi ikke umiddelbart bare gjøre. Her<br />
måtte vi først bryte symbolet for så å endre på synligheten til symbolet. Likevel ville<br />
ikke synligheten for hele objektet forsvinne. Etter hvert fant vi en løsning på<br />
problemet, men sett i ettertid hadde vi muligens foretrukket å lage symbolene med<br />
kode selv for rett <strong>og</strong> slett å spare tid.<br />
FS<br />
6.10.11 Design<br />
På prosessbildet ønsket gruppen at bildet skulle gi en god visuell beskrivelse av<br />
prosessen. Noe som kanskje virker selvsagt er valg av høyden på referansemåler på<br />
bildet. Dette var et bevisst valg ut fra hvor høy nivåmåleren på prosessbildet er.<br />
Tanken med å ha samme høyde var at man rent visuelt skulle kunne sammenligne<br />
nivået mot referansen.<br />
Andre bevisste valg som ble tatt var indikasjon på hvilke ventiler (gjelder ikke for<br />
OPERATØR1) som er åpne ved å ha grønn bakgrunnsfarge ved åpen ventil <strong>og</strong> grå<br />
bakgrunnsfarge ved stengt ventil. Det samme gjorde vi på pumpen der grønn<br />
bakgrunnsfarge betyr pumpe i drift <strong>og</strong> grå bakgrunnsfarge betyr pumpe stoppet. I<br />
tillegg implementerte vi en animasjon i pumpen for ytterligere å synliggjøre drift eller<br />
ei.<br />
FS<br />
98
6.10.12 Forbedringsmuligheter<br />
Sett i ettertid kunne tidsbruken på å lage grensesnittet vært redusert. Dette grunnet<br />
at mye tid i starten gikk til å gi grensesnittet et pent utseende, plassere ting i forhold<br />
til hverandre <strong>og</strong> så videre. Etter hvert som vi oppdaget flere ting som måtte endres på<br />
måtte bildene flyttes på <strong>og</strong> utseende vi hadde brukt tid på fra før av var bortkastet.<br />
Erfaringer vi gjorde oss fra dette er at vi neste gang ikke bruker for mye tid på å få<br />
ting til å se 100 % perfekt ut i starten, <strong>og</strong> heller venter til grensesnittet er omtrent<br />
ferdig testet. På den måten får man <strong>og</strong>så testet litt av grensesnittet etter hvert så<br />
deler av det kan anses ferdig <strong>og</strong> dermed perfeksjoneres.<br />
FS<br />
6.10.13 Fremgangsmåte<br />
Kameraovervåking<br />
I gruppen ble vi enige om å prøve oss på bonusoppgaven «Kameraovervåking av<br />
tankriggen via internett <strong>og</strong> kameraovervåking som eget vindu i InTouch», <strong>og</strong> vi skal<br />
her ta for oss hvordan vi implementerte kameraovervåkingen i InTouch. For å få opp<br />
vinduet til kameraet i InTouch måtte vi ta i bruk ActiveX. Siden vi ønsket å hente<br />
kamerabildet over internett brukte vien Internet Explorer basert ActiveX kontroller<br />
som vi måtte legge til InTouch.<br />
Figur 87: InTouch IX<br />
99
For å legge inn ActiveX kontrolleren velger du fanen «Special >> Configure >><br />
Wizard/ActiveX Installation…» som vist på bildet.<br />
Figur 88: InTouch X<br />
Nå får du opp en meny som vist på bildet. Her velger du «Microsoft Web Browser».<br />
Figur 89: InTouch XI<br />
Etterpå kan du finne ActiveX kontrolleren under «Wizard Selection».<br />
100
Figur 90: InTouch XII<br />
Legg til ActiveX kontrolleren på en ny side. På dette bildet vises det som den hvite<br />
ruten i bakgrunnen på bildet. Nå kan du dobbeltklikke på ActiveX kontrolleren <strong>og</strong><br />
legge til et navn til den. Lag <strong>og</strong>så en knapp (button).<br />
Figur 91: InTouch XIII<br />
Dobbeltklikk på knappen <strong>og</strong> velg «Touch Pushbuttons» <strong>og</strong> undermenyen «Action».<br />
101
Figur 92: InTouch XIV<br />
Trykk deretter på «Insert >> ActiveX…» Deretter velger du det navnet du kalte<br />
ActiveX kontrolleren, <strong>og</strong> finner under «Method / Property» det som kalles for<br />
«Navigate(«String», «Pointer», «Pointer»… <strong>og</strong> velg OK.<br />
Figur 93: InTouch XV<br />
Etterpå skal du ha noe slikt som vist på bildet. Bytt ut «String» med adresse til<br />
kameraet (her http://158.38.53.252:6668/home/AViewer.html), <strong>og</strong> slett resten slik at<br />
det blir som angitt. Da er kameravinduet ferdig konfigurert <strong>og</strong> vil vise bildet til<br />
kameraet i InTouch når man trykker på knappen.<br />
FS<br />
102
Innl<strong>og</strong>ging <strong>og</strong> forskjellige innl<strong>og</strong>gingsnivå.<br />
Det er i innl<strong>og</strong>gingsvinduet det bestemmes hvilke rettigheter de forskjellige<br />
operatørene skal få til grensesnittet. «OPERATØR1» har minst rettigheter,<br />
«OPERATØR2» har litt flere rettigheter <strong>og</strong> «OPERATØR3» har alle rettigheter.<br />
Oppsettet av dette er som følger:<br />
Figur 94: InTouch XVI<br />
Velg fanen “Special >> Security >> Select Security Type >> InTouch”.<br />
Figur 95: InTouch XVII<br />
103
Velg samme sti igjen men gå inn på «L<strong>og</strong> On».<br />
Figur 96: InTouch XVIII<br />
Da får du opp dette vinduet, <strong>og</strong> l<strong>og</strong>ger på med brukernavn «administrator» <strong>og</strong><br />
passord «wonderware».<br />
Figur 97: InTouch XIX<br />
Gå inn på samme sti igjen, men velg «Configure Users…».<br />
Figur 98: InTouch XX<br />
Da får du opp denne menyen, <strong>og</strong> her legger du inn «OPERATØR1», passord «Op1»<br />
<strong>og</strong> «Access Level «: «1000», «OPERATØR2», passord «Op2» <strong>og</strong> «Access Level:»<br />
«2000» <strong>og</strong> «OPERATØR 3», passord «Op3» <strong>og</strong> «Access Level:» «3000».<br />
104
Figur 99: InTouch XXI<br />
Lag deretter en knapp som heter «L<strong>og</strong>g på». Konfigurer knappen til å være en<br />
«Touch Pushbutton» med undermeny «Action». Skriv inn som på bildet. Dette vil<br />
gjøre at når du trykker på knappen «L<strong>og</strong>g på» så vil et popup vindu komme opp der<br />
bruker kan taste inn brukernavn <strong>og</strong> passord. Hvis brukernavn <strong>og</strong> passord er korrekt<br />
vil brukeren bli l<strong>og</strong>get inn med den access levelen som ble assignert til den repektive<br />
brukeren.<br />
Figur 100: InTouch XXII<br />
Etterpå lager du 3 knapper som heter «Fortsett», en for hver bruker. Deretter går du<br />
inn en knapp på Miscellaneous <strong>og</strong> undermenyen Visibility <strong>og</strong> får opp menyen på<br />
bildet. Her skriver du <strong>og</strong>så inn som vist på bildet for «OPERATØR3». Gjør det<br />
samme med de to andre knappene <strong>og</strong> «OPERATØR2» <strong>og</strong> «OPERATØR1», men bytt<br />
ut «>=» med «==». Etterpå plasserer du knappene oppå hverandre.<br />
105
Figur 101: InTouch XXIII<br />
Figur 102: InTouch XXIV<br />
106
Videre går du inn på de tre knappene igjen, en etter en, <strong>og</strong> velger «Touch<br />
Pushbuttons» <strong>og</strong> undermenyen «Show Window» <strong>og</strong> send så brukeren til det vinduet<br />
du vil, her sender jeg «OPERATØR3» til «Operatør3» vinduet. Vår struktur i<br />
pr<strong>og</strong>rammet ser omtrent slik ut:<br />
Operatør1<br />
Sanntidstrend1<br />
Historisktrend1<br />
Kameraovervåking1<br />
Alarmhistorikk1<br />
Innl<strong>og</strong>ging<br />
Operatør2<br />
Sanntidstrend2<br />
Historisk trend2<br />
Kameraovervåking2<br />
Alarmhistorikk2<br />
Figur 103: InTouch XXV<br />
Operatør3<br />
Sanntidstrend3<br />
Historisk trend3<br />
Kameraovervåking3<br />
Alarmhistorikk3<br />
107
Her ser man at så lenge man er pål<strong>og</strong>get som en bruker vil man være uavhengig av<br />
de andre brukerene av grensesnittet.<br />
Figur 104: InTouch XXVI<br />
Videre lager du en knapp som du kaller «L<strong>og</strong>g ut». Siden vi kun vil vise denne<br />
knappen hvis det allerede er en bruker som er l<strong>og</strong>get inn går vi inn på<br />
«Miscellaneous» <strong>og</strong> undermenyen «Visibility». Skriv inn som på bildet. Da vil<br />
knappen kun være synlig ved om en bruker med «Access Level» større eller lik<br />
«1000» ha mulighet for å se knappen, <strong>og</strong> siden vi kun har brukere i dette systemet<br />
med «Access Level» større eller lik «1000» vil alle brukerne kunne se den såfremt<br />
dem er innl<strong>og</strong>get.<br />
Figur 105: InTouch XXVII<br />
Etterpå ønsker vi å gå inn på «Touch Pushbuttons» <strong>og</strong> undermenyen «Action». Her<br />
skriver du inn som på bildet. Denne koden vil utføre en utl<strong>og</strong>ging av den brukeren<br />
som er innl<strong>og</strong>get.|<br />
FS<br />
108
Sanntidstrend<br />
For å lage sanntidstrend i InTouch klikker du på et ikon i windowmaker som heter<br />
«Real-Time trend». Deretter drar du ut et bilde slik du vil at sanntidstrenden skal<br />
være. Klikk deretter på trenden <strong>og</strong> du har da fått opp slik som på bildet.<br />
Figur 106: InTouch XXVIII<br />
Her kan man gjøre forskjellige innstillinger, men i hovedsak må vi fylle ut der det står<br />
«Pens:». Der legger vi inn de forskjellige taggene som skal vises i<br />
sanntidsdiagrammet. Sanntidstrenden er nå ferdig.<br />
FS<br />
109
Historisk trend<br />
Figur 107: InTouch XXIX<br />
For å kunne lage en historisk trend må vi finne ut av hvilke tagger vi ønske <strong>og</strong> l<strong>og</strong>ge.<br />
Vi finner derfor frem de forskjellige taggene i «Tagname Dictionary». Her i bildet har<br />
vi funnet frem taggen referanse, <strong>og</strong> vi huker av der hvor det står «L<strong>og</strong> Data». Vi<br />
bestemmer <strong>og</strong>så Min Value <strong>og</strong> Max Value, her 0-100.<br />
Figur 108: InTouch XXX<br />
Etterpå henter vi ut «Hist Trend w/Scooters and Scale» i Wizard Selection under<br />
menyen Trends. Og plasserer den i det vinduet vi ønsker å ha den i.<br />
Figur 109: InTouch XXXI<br />
110
Dobbeltklikk på trendvinduet, <strong>og</strong> trykk p «Suggest». Da vil «Hist Trend» <strong>og</strong> «Pen<br />
Scale» navnene endre seg.<br />
Figur 110: InTouch XXXII<br />
Nå ønsker vi å legge til styringer flere muligheter i trendvinduet, som for eksempel<br />
zoom. Vi velger da «Trend Zoom/Pan Panel» fra Wizard Selection».<br />
Figur 111: InTouch XXXIII<br />
Vi dobbeltklikker vi på «Trend Zoom/Pan Panel» <strong>og</strong> trykker på «Suggest». Nå er det<br />
viktig at navnene vi får er de samme som vi fikk da vi lagde den historiske trenden.<br />
Det for at de skal høre sammen <strong>og</strong> at for eksempel zoom funksjonen skal fungere i<br />
rett historisk trend vindu.<br />
111
Figur 112: InTouch XXXIV<br />
For å kunne lese av kurvene med større nøyaktighet legger vi til en «Trend Pen<br />
Legend» for hver tagg vi ønsker å l<strong>og</strong>ge. Her får vi <strong>og</strong>så informasjon om hvilken farge<br />
på kurven den tilhører.<br />
Figur 113: InTouch XXXV<br />
Etterpå klikker vi oss inn på «Trend Pen Legend» <strong>og</strong> får opp menyen som på bildet.<br />
Her klikker vi igjen på «Suggest», <strong>og</strong> passer på at navnene er de samme som for de<br />
andre konfigurasjonene ovenfor. Vi ser her at vi <strong>og</strong>så velger hvilket «Pen Number» vi<br />
vil asosiere med den «Trend Pen Legend» vi konfigurerer. Det vil si hvilken tagg som<br />
skal tilhøre denne «Trend Pen Legend».<br />
112
Figur 114: InTouch XXXVI<br />
For å kunne lagre de historiske dataene ønsker vi å ha med «HistData Wizard».<br />
Figur 115: InTouch XXXVII<br />
Vi konfigurerer «HistData Wizard ved å dobbeltklikke på det, <strong>og</strong> menyen som på<br />
bildet kommer opp. Her passer vi igjen på å klikke på «Suggest» <strong>og</strong> ser til at vi får det<br />
samme navnet igjen. Vi kan <strong>og</strong>så konfigurere «Numbers of Records to Write per CSV<br />
File:». Det vil si hvor mange ganger du ønsker å få l<strong>og</strong>get kurvene mellom to punkter<br />
som du kan bestemme i historisk trendvinduet.<br />
113
Figur 116: InTouch XXXVIII<br />
Til slutt beveger vi oss inn på fanen «Special >> Configure >> Historical L<strong>og</strong>ging».<br />
Figur 117: InTouch XXXIX<br />
Her huker vi av for «Enable Historical L<strong>og</strong>ging», <strong>og</strong> legger inn ønsket plassering for<br />
hvor l<strong>og</strong>gene skal lagres. Oppsettet av historisk trend er da ferdig.<br />
FS<br />
114
Alarmer<br />
For å knytte alarmer mot InTouch må vi inn i «Tagname Dictionary» <strong>og</strong> legge inn<br />
noen bestemmelser for taggene vi ønsker å knytte til alarmer.<br />
Figur 118: InTouch XXXX<br />
På bildet har vi funnet frem niva taggen som eksempelvis er et flagg fra PLS som går<br />
høyt når alarmtilstand er tilstede. Her vil vi velge radioknappen «Details & Alarms».<br />
På denne menyen skriver vi inn «Alarm Comment». Husk <strong>og</strong>så <strong>og</strong> sett «Alarm State»<br />
On. Nå vil alarmfunksjoner i InTouch registrere når denne niva taggen går høy. Hvis<br />
vi her hadde hatt en anal<strong>og</strong> tagg kunne InTouch selv registrert om det var alarm ved<br />
at vi setter inn kriterier for det i samme meny.<br />
Figur 119: InTouch XXXXI<br />
Videre går vi inn på «Group:…» <strong>og</strong> kan legge denne taggen inn i en ønsket<br />
alarmgruppe, i dette eksempelet har vi lagt inn alarmgruppen «kritiskalarm». Videre<br />
kan man ved å legge alarmer i forskjellige alarmgrupper for eksempel kvittere ut bare<br />
en gruppe av gangen om man ikke ønsker å kvittere ut alle alarmene samtidig. Nå er<br />
det registrert alarml<strong>og</strong>ging mot akkurat taggen niva. Hvis andre tagger ønskes å<br />
knyttes mot alarml<strong>og</strong>ging gjennomføres det på samme måte som vist.<br />
115
Figur 120: InTouch XXXXII<br />
Etterpå ønsker vi å få frem alarmene i et vindu <strong>og</strong> går derfor inn på «Wizard<br />
Selection» <strong>og</strong> finner «Dist. Alarm Display» under menyen «Alarm Displays».<br />
Figur 121: InTouch XXXXIII<br />
Den drar vi ut som vist på bildet. Etterpå klikker vi oss inn på alarmdiagrammet. Her<br />
kan vi gjøre forskjellige innstillinger, men vi legger merke til der det står «Query<br />
Type». Her kan vi velge om alarmene skal være «Summary» noe som betyr at<br />
alarmene ikke vil l<strong>og</strong>ges i vinduet. Har det vært alarm <strong>og</strong> prosessen har gått ut av<br />
alarmtilstand vil du ikke se det i vinduet. Velger du derimot «Historical» vil alarmene<br />
bli l<strong>og</strong>get i vinduet.<br />
FS<br />
116
6.11 Nettjenester<br />
6.11.1 Bakgrunn<br />
I forbindelse med prosjektet er det ikke kun arbeid som har blitt gjort ved <strong>og</strong> på selve<br />
riggen. For å kunne presentere prosjektet for arbeidsgiver <strong>og</strong> andre interesserte,<br />
samt å kunne holde oversikt med, <strong>og</strong> styre prosessen selv når man ikke er på<br />
arbeidsplassen, er det satt opp flere nettjenester for å dekke disse behovene. I dette<br />
kapittelet er det beskrevet mer om de forskjellige tjenestene, hvilke roller de fyller, <strong>og</strong><br />
generelt om hvordan ting har blitt satt opp.<br />
JSH<br />
6.11.2 Webserver<br />
Touchpanelet som brukes i prosjektet, har en innebygd webserverfunksjonalitet.<br />
Denne webserveren har File Transfer Protocol (FTP) -tilgang <strong>og</strong> mulighet for å vise<br />
en nettside. Funksjonaliteten aktiveres enkelt via pr<strong>og</strong>rammet iX-Developer, hvor<br />
man huker av for de mulighetene man vil ha, i tillegg til at man velger portnummer <strong>og</strong><br />
innl<strong>og</strong>gingsinfo til FTP-serveren. Det er en relativt enkel webserver, som ikke<br />
håndterer mange pål<strong>og</strong>gede klienter samtidig, men den har likevel fungert som<br />
gruppens base for å sende sanntidsinformasjon om prosessen ut til andre<br />
nettjenester.<br />
JSH<br />
117
6.11.3 Port-forwarding<br />
Hver komponent i nettverket har sin egen IP-adresse. IP-adressen er delt opp i flere<br />
porter. For å gjøre det enklere, kan en tenke seg at IP-adressen er en lang gate, <strong>og</strong><br />
portene er husene langs gaten. «Informasjonen» blir hentet fra husene langs gaten.<br />
Datamaskinen sender <strong>og</strong> mottar informasjon gjennom portene.<br />
Figur 122: Sending <strong>og</strong> mottak av informasjon.<br />
Port forward går ut på å fremheve porter for sending <strong>og</strong> mottak gjennom ruteren. I<br />
eksempelet Figur 122, er ruteren «bindeleddet» mellom Datamaskin 2 <strong>og</strong><br />
Datamaskin 1.<br />
Det er illustrert et eksempel på hvordan datamaskinene sender <strong>og</strong> mottar pakker i<br />
Figur 122. Dersom datamaskin2 har lyst å hente en spesiell «pakke» med<br />
informasjon fra datamaskin1, vil datamaskin2 sende en forespørsel som routeren<br />
registrerer. Ruteren vil videre sende en forespørsel til Datamaskin1 om å få tilgang til<br />
pakken som ligger på Port-nr. 6668. Pakken som ligger på Port-nr. 6668 vil da bli<br />
overført fra Datamaskin1 til Datamaskin2 gjennom ruteren.<br />
For å få tilgang til ruterens Port-nr. 6668 må datamaskin2 skrive inn i adressefeltet i<br />
en web-leser:<br />
http://158.38.53.252:6668<br />
TIB<br />
118
6.11.4 Statisk IP-adresse <strong>og</strong> Aksessfilter<br />
En statisk IP-adresse vil si at komponenten alltid vil ha den samme IP-adressa. I<br />
forhold til HIST sitt nettverk, har ruteren på rigg1 den statiske IP-adressen:<br />
158.38.53.252.<br />
Figur 123: Aksessfilter<br />
Hist har aksessfilter på web-serverne sine for IP-adressen vår. Dette er vist hvordan<br />
fungerer i Figur 123. IP-adressen blir videresendt gjennom web-serverne uten at den<br />
blir forandret.<br />
Aksessfiltrene er konfigurert slik at når IP-adressen 152.38.53.252 blir sendt til web-<br />
serveren, vil serveren videresende samme IP-adressen til neste web-server. I<br />
eksempelet ovenfor sender vi ut IP-adressen 153.38.53.252 <strong>og</strong> mottar den samme<br />
tilbake.<br />
Figur 124 viser hvordan IP-adressen «reiser» gjennom systemet. I dette tilfellet<br />
sporer vi hvilke web-serverer IP-adressen går gjennom på veien fra dataen vår til<br />
go<strong>og</strong>le.com.<br />
Vi har brukt samme fremgangsmåte i Figur 123 som Figur 124. Dette for å se<br />
«reiseruten» til IP-adressen fra datamaskinen, ut på «nettet» <strong>og</strong> tilbake til ruteren.<br />
119
Figur 124: Reise for IP-adresse.<br />
Det er mulig å styre prosessen fra nettsiden til gruppen: http://www.hekta.org/~p2ea.<br />
Eksempel er vist i Figur 125.<br />
Fordelen med å åpne aksessfilter er at brukeren fra nettsiden kan få tilgang til port 80<br />
på ruteren, som er koblet opp mot iX-panelet. Dermed kan nettsiden ha en eller flere<br />
parameter som har tilgang til port nr. 80 på ruteren, <strong>og</strong> styre parameterne i iX-<br />
panelet. Nettsiden er altså koblet opp mot IP-adressa til ruteren <strong>og</strong> portadresse 80 på<br />
ruteren.<br />
Måten ruteren <strong>og</strong> iX-panelet kommuniserer gjennom port nr.80 er vist i kapittelet om<br />
port-forward.<br />
Figur 125: Styring av prosessen fra nettside.<br />
TIB<br />
120
6.11.5 Nettside<br />
Under miniprosjektet ble det opprettet en nettside, som har blitt videreutviklet under<br />
entanksprosjektet. Gruppen fikk en del tilbakemeldinger på oppsettet av nettsiden, <strong>og</strong><br />
har prøvd så langt det går å forbedre de punktene som var mangelfulle. Det er gjort<br />
enkelte grafiske endringer for å endre lettleseligheten <strong>og</strong> fremkommeligheten, blant<br />
annet med en mer nettvennlig font <strong>og</strong> nye sider med innhold som var litt skjult ved<br />
forrige iterasjon. Det generelle designet på siden er derimot ganske likt det<br />
opprinnelige, med noen unntak. Selv om gruppen fikk tilbakemelding om at siden<br />
manglet litt «wow-faktor», var det vanskelig å gjøre store endringer uten å bygge mye<br />
av siden opp fra bunnen av igjen, som var noe man i denne omgang ikke ville ta seg<br />
tid til. Håpet er at de små visuelle endringene som er gjort, samt et større fokus på<br />
billedlig dokumentasjon av prosjektet vil hjelpe litt, selv om en større rekonstruksjon<br />
kunne vært hensiktsmessig hadde prosjektets tidsramme vært større.<br />
Figur 126: Oversikt over kommunikasjonen til nettsiden.<br />
Funksjonelt er det en stor endring siden sist, nemlig at man nå kan styre prosessen<br />
via nettsiden. For å kunne gjøre dette er det laget en kobling mellom iX-panelet sine<br />
variabler, <strong>og</strong>så kalt tagger, <strong>og</strong> webserveren til iX-panelet. Webserveren har to måter<br />
man kan bruke for å hente informasjon fra variablene. Disse er beskrevet under.<br />
JSH<br />
121
REST api<br />
Man vil ideelt sett bruke en protokoll kalt «REST api», som står for «Representational<br />
State Transfer application pr<strong>og</strong>ramming interface». Ved hjelp av kommandoene GET,<br />
PUT, POST <strong>og</strong> DELETE kan man hente <strong>og</strong> manipulere informasjonen lagret i<br />
variablene til iX-panelet. På denne måten kan man få verdiene i variablene rett inn i<br />
variabler i det språket man ønsker å arbeide med, i denne sammenheng JavaScript<br />
eller PHP. Deretter kan man bearbeide disse variablene, <strong>og</strong> velge hva man vil vise til<br />
brukeren.<br />
Figur 127: REST eksempel.<br />
Dessverre møtte man på problemer fra webserveren. Selv om man ganske raskt<br />
hadde oppe kode som kunne sende kommandoer til webserveren på iX-panelet,<br />
virket ikke alltid koden slik den skulle. Man kunne sende identisk kode, <strong>og</strong> få svar det<br />
ene sekundet, men ingenting det neste. I tillegg fikk man etter et par forsøk en<br />
feilmelding fra webserveren om at det var for mange tilkoblede aktive klienter. Det var<br />
ingen dokumentasjon om denne feilmeldingen i iX-Developer sine hjelpefiler, så<br />
gruppen henvendte seg til leverandøren av utstyret, Beijer Electronics. De kunne<br />
fortelle at dette var et kjent problem, som kunne oppstå når webserveren ikke fikk<br />
122
lukket forbindelsen med klienten på en god måte. Feilmeldingen som dukket opp var<br />
et indirekte resultat av dette; når en webserveren mistet kontakt med en klient, ventet<br />
den på svar i 15 minutter før den gav opp <strong>og</strong> koblet seg selv ned. De opplyste videre<br />
om at det var en oppdatering på vei som forhåpentligvis ville løse en del av disse<br />
problemene, men at den for øyeblikket var en tid unna levering. Naturligvis kunne<br />
man ikke basere seg på en metode som kun ville vise informasjon hvert femtende<br />
minutt, man måtte finne en annen måte å løse problemet.<br />
JSH<br />
JavaScript & JQuery<br />
JQuery er et tilleggsbibliotek til pr<strong>og</strong>rammeringsspråket JavaScript. I versjon 1.7 er<br />
det i inkludert et bibliotek i JQuery, kalt iX.js. Dette biblioteket inneholder ferdige<br />
funksjoner for å vise verdier fra iX-panelet på en nettside. Oppsettet <strong>og</strong> syntaksen til<br />
biblioteket er lett å sette seg inn i, <strong>og</strong> man får raskt opp en grunnleggende nettside<br />
hvor man kan sende <strong>og</strong> motta verdier. Ved første øyekast virker dermed denne<br />
metoden som det naturlige valget. Dessverre har dette oppsettet et stort problem<br />
som er vanskelig å ignorere. Nettsiden man kan konstruere, må ligge på den lokale<br />
webserveren til iX-panelet. Da får man to mulige måter å gå videre på, enten ved å<br />
legge hele nettsiden til prosjektgruppen ligge på den lokale serveren, eller ved å<br />
hente inn den lokale nettsiden ved hjelp av HTML-komponenten «iframe». Skulle<br />
man velge å legge hele nettsiden på den lokale webserveren, møter man på ett av<br />
de samme problemene som man møtte på med REST api, nemlig enkelheten til iX-<br />
panelets webserver. Den største utfordringen der er at man ikke kan ha mange<br />
klienter tilkoblet samtidig. Testing har vist at panelet ikke godtar mer enn 2-3<br />
tilkoblinger simultant, som er alt for lite for en nettside som realistisk sett i dette tilfelle<br />
i det minste må kunne tåle et par titalls tilkoblinger simultant. Den andre løsningen er<br />
da å hente inn den lokale nettsiden, fra iX-panelet sin webserver, inn i en «iframe».<br />
Man vil fortsatt møte tilkoblingsproblemet, men det vil kun affektere de som l<strong>og</strong>ger<br />
inn på nettsidens side for prosesstyring. Besøkende som ikke har tilgang her vil aldri<br />
møte på problemet. Dessverre er «iframe» objektet et problem i seg selv. Opp<br />
gjennom årene er det ingen andre html-objekter som har vært kilden til flere<br />
sikkerhetsbrudd. Man kan finne artikkel på artikkel på nettet som advarer mot bruk av<br />
«iframe», <strong>og</strong> gruppen var i det lengste motvillige til å bruke dette, men da man ikke<br />
123
fikk problemene rundt REST api løst innen rimelig tid før entanksprosjektet nærmet<br />
seg slutten, så man seg nødt til å ta det i bruk. Dagens løsning er altså en «iframe»<br />
som viser den lokale nettsiden til iX-panelet.<br />
Figur 128: Iframe-element fra iX-webserver.<br />
JSH<br />
Kameraovervåkning<br />
En av bonusspesifikasjonene til oppgaven var overvåkning av riggen med et<br />
webkamera som skulle vises på nettsiden samt i InTouch. HiST har satt opp et<br />
webkamera med innebygd server, som man kan hente inn på nettsiden via et<br />
«iframe»-element. Nettsiden man fikk opp på denne måten fremstilte bildet med en<br />
stor svart marg på høyre side <strong>og</strong> på undersiden. Det var altså hverken en god teknisk<br />
eller estetisk måte å importere bildet til gruppens nettside. Det dukket <strong>og</strong>så opp et<br />
annet problem i <strong>og</strong> med at nettsiden, som nevnt i miniprosjektrapporten, var designet<br />
i hovedsak for nettleseren «Chrome». Som en sikkerhetsfunksjon i denne nettleseren<br />
nettopp mot utnyttelse av «iframe»-elementet til uønskede aktiviteter, nekter Chrome<br />
å laste inn den lenkede adressen når innholdet kommer fra en ukjent port ved IP-<br />
adressen.<br />
124
Figur 129: “Unknown port"-error i Chrome.<br />
Problemet kan unngås, men det må gjøres endringer i sikkerhetskonfigurasjonen til<br />
hver enkelt nettleserklient. Dette legger problemet over i brukerens hender, som på<br />
ingen måte er ønskelig. Gruppen valgte derfor å gå tilbake til det som var<br />
reserveløsningen mens man ventet på bekreftelse på at høyskolens webkamera<br />
skulle settes opp, nemlig å benytte seg av et privat webkamera. Ved hjelp av et<br />
pr<strong>og</strong>ram kalt «YAWCAM»(Yet Another WebCam software), satte man kameraet til å<br />
laste opp et bilde hvert andre sekund til webserveren på iX-panelet, <strong>og</strong> man kunne<br />
derfra hente ut bildet til nettsiden, slik som vist på Figur 126. Denne løsningen gir<br />
ikke et like responsivt bilde som høyskolens webkamera, da det kun oppdateres<br />
hvert andre sekund, men man har fordelen av å unngå et nytt «iframe»-element, det<br />
ser mer ut som en naturlig del av siden da man kan behandle det som et vanlig bilde-<br />
element, <strong>og</strong> det vil fungere i en hvilken som helst nettleser. Med tanke på at man på<br />
samme side som webkamera <strong>og</strong>så får opplyst de reelle verdiene til viktige variabler<br />
fra tanken, mener gruppen at fordelene mer enn veier opp for ulempene ved å bruke<br />
en egen kameraløsning.<br />
JSH<br />
125
6.11.6 Fjernstyring med smarttelefon<br />
Bakgrunn<br />
En bonusspesifikasjon i prosjektet var oppretting av en mobilapplikasjon for<br />
fjernstyring <strong>og</strong> overvåkning av prosessen. En mobilapplikasjon vil være en plattform<br />
med mange fordeler over stasjonære styringsalternativer, størst av disse er<br />
muligheten til å holde oversikt over prosessen <strong>og</strong> ta raskt handling, selv om man ikke<br />
er i nærheten av de statiske kontrollene.<br />
Samtidig var det en stor utfordring for gruppen. For at systemet skulle fungere, måtte<br />
man ha oversikt over hvordan informasjon blir sendt fra <strong>og</strong> til iX-panelet <strong>og</strong> hvordan<br />
man enklest får tak i bilder fra webkamera. Dette stod på lik linje som ved<br />
konstruksjon av nettsidens prosesstyring, <strong>og</strong> møtte på mange av de samme<br />
problemene. I tillegg måtte de i gruppen som jobbet med applikasjonen sette seg inn<br />
Java, XML(eXtensible Markup Language) <strong>og</strong> Android sitt java-bibliotek. Sistnevnte er<br />
et språk i hurtig utvikling, med opptil flere årlige iterasjoner, noe som igjen gjorde<br />
søket etter gode fremgangsmåter vanskelig da de allerede kunne vært utdatert.<br />
Gruppen så allikevel på oppgaven som en givende prosess å gjennomgå, selv om<br />
man ikke skulle nå alle mål innen fristen. Et uferdig produkt kan eventuelt<br />
videreutvikles i et senere prosjekt.<br />
JSH<br />
Drøfting av valg rundt utviklingsprosessen<br />
Et av de første valgene man måtte ta, var hvilket operativsystem man skulle basere<br />
seg rundt, da man ikke hadde ressurser til å lage en applikasjon over flere<br />
operativsystem. Man valgte Android OS, da dette er et av de mest åpne<br />
operativsystemene <strong>og</strong> veldokumentert. Det ble <strong>og</strong>så lagt vekt på at dette er langt på<br />
vei det mest brukte operativsystemet, med rundt 66 % av markedsandelen ved<br />
utgangen av 2012. Bildet under viser salgsraten til mobile enheter med forskjellige<br />
operativsystem, <strong>og</strong>så her ser man at Android er det definitivt mest brukte.<br />
126
Figur 130: Salgstall for mobiloperativsystem, hentet fra Wikipedia.org.<br />
Det neste valget som måtte gjøres, var hvilken måte man skulle gå frem for å bygge<br />
applikasjonen. Go<strong>og</strong>le, som står ansvarlige for utviklingen av Android OS, utviklet<br />
<strong>og</strong>så noe kalt "Android App Inventor". Go<strong>og</strong>le selv støtter ikke lenger App Inventor,<br />
men Massachusetts Institute of Technol<strong>og</strong>y(MIT) tok over kildekoden <strong>og</strong> har til en<br />
viss grad fortsatt utviklingen. Under kan man se et eksempelbilde av hvordan en<br />
while-løkke kan se ut i MIT App Inventor.<br />
127
Figur 131: MIT App Inventor.<br />
App Inventor fungerer omtrent som et puslespill, hvor man grafisk kan koble sammen<br />
pr<strong>og</strong>ramkode. Man oppdaget ganske raskt under pr<strong>og</strong>rammering av en test<br />
applikasjon at denne metoden var lite fleksibel i utføringen, <strong>og</strong> ble veldig uoversiktlig<br />
ved større pr<strong>og</strong>ram. Til sammen veide ikke lettheten i pr<strong>og</strong>rammeringen opp for de<br />
negative sidene, <strong>og</strong> man valgte å legge vekk App Inventor til fordel for en mer<br />
grunnleggende fremgangsmåte, nemlig Android Software Development Kit(SDK).<br />
Android SDK er den faktiske måten å konstruere Android baserte applikasjoner på.<br />
Her bruker man en blanding av Java, XML <strong>og</strong> et Java - basert Android bibliotek, til å<br />
pr<strong>og</strong>rammere utseende <strong>og</strong> funksjonaliteten til applikasjoner. Fordelene er høy grad<br />
av fleksibilitet, god oversikt selv ved store pr<strong>og</strong>ram <strong>og</strong> lettere videreutvikling. Dette<br />
ble dermed det naturlige valget for gruppen.<br />
JSH<br />
128
Applikasjonsteori<br />
En applikasjon bygget i Android har flere komponenter som jobber sammen for å<br />
formidle informasjonen til brukeren. Dette delkapittelet vil gå gjennom basisen for<br />
hvordan en applikasjon ser ut innvendig, for økt forståelse når prosjektgruppens<br />
applikasjon beskrives.<br />
Figur 132: Grafisk fremstilling av prosessen for å bytte til et nytt brukergrensesnitt.<br />
I all hovedsak er en applikasjon bygget opp av tre hoveddeler; Manifestet, Java-<br />
klassene <strong>og</strong> aktivitetene. Hvis man tenker på en applikasjon som et tre, vil Manifestet<br />
være stammen. Manifestet er stedet operativsystemet går til først for informasjon om<br />
applikasjonen, <strong>og</strong> om hvilke aktiviteter som skal kjøres ved oppstart. Det definerer<br />
hvilke rettigheter man har, <strong>og</strong> hvilke rettigheter de individuelle aktivitetene har.<br />
Grenene i treet vil dermed bli Java-klassene. Når Manifestet får en forespørsel, vil<br />
det lete etter en Java-klasse som passer forespørselen, <strong>og</strong> starte denne. Java-<br />
klassen inneholder hoveddelen av pr<strong>og</strong>rammet. Her hentes informasjon inn <strong>og</strong><br />
legges i variabler, <strong>og</strong> variablene blir behandlet før de blir sendt videre. Det er Java-<br />
klassen som bestemmer om, <strong>og</strong> hvilken aktivitet som skal startes. Aktiviteten blir da<br />
bladene på treet. Når en Java-klasse gir beskjed om at aktiviteten skal startes, vil det<br />
nåværende brukergrensesnittet bli byttet ut med den nye aktivitetens<br />
brukergrensesnitt, eller UI(User Interface). Brukergrensesnittet består av alle de<br />
interaktive elementene til applikasjonen, <strong>og</strong> er den delen en sluttbruker vil ha<br />
kjennskap til. I nyere versjoner av Android kan aktivitetene <strong>og</strong>så deles opp videre i<br />
noe kalt "Fragments", eller "deler". Hver Fragment består av en eller flere grafiske<br />
129
elementer, som kan samles i en "ramme"-aktivitet. Fordelen med denne<br />
fremgangsmåten er økt gjenbruk av elementer som ellers ville tatt mye utviklingstid å<br />
sette sammen for hver aktivitet.<br />
Figur 133: Inndeling av fragmenter.<br />
JSH<br />
Applikasjonsinnhold<br />
Bonusspesifikasjonen om fjernstyring via smarttelefon gir jo kravet om at<br />
applikasjonen skal ha mulighet for å styre enkelte aspekter på riggen. I tillegg satte<br />
gruppen seg mål om at man skulle kunne få webkameraet inn på telefonen, for å<br />
videre øke oversikten sluttbruker har over prosessen.<br />
Med disse kriteriene startet designet av applikasjonen. Den ble døpt til navnet<br />
"Remote Rig Control"(RRC), <strong>og</strong> man konstruerte et lett gjenkjennelig ikon som vil<br />
være applikasjonens ansikt utad på brukerens telefon.<br />
Figur 134: RRC ikonet.<br />
130
Den aller første siden brukeren får opp, er en introduksjonsside. Denne siden viser i<br />
kort tid informasjon om gruppen <strong>og</strong> applikasjonen. I tillegg til god reklame for<br />
gruppen, gir det <strong>og</strong>så sluttbrukeren en påminnelse om hvor han eller hun kan ta<br />
kontakt for support eller andre henvendelser.<br />
Figur 135: "Splash"-side.<br />
Etter en predefinert tid, sender den brukeren automatisk videre til hovedsiden. Denne<br />
siden er bygget opp etter "Fragments"-prinsippet, <strong>og</strong> er delt opp i to fragmenter. Den<br />
første er en konstant meny på venstre side av skjermen, som viser l<strong>og</strong>oen til HiST <strong>og</strong><br />
alternativene på menyen. Det andre fragmentet er hovedinnholdet på siden, <strong>og</strong><br />
byttes ut når man velger et nytt alternativ på menyen. Når man først kommer til<br />
hovedsiden får man opp et fragment som gir brukeren oversikt over prosessen. Har<br />
man tilkobling til riggen, hva er nivået nå, med mer. Det var <strong>og</strong>så planer om å legge<br />
til en grafisk fremstilling av nivået i tanken <strong>og</strong> alarmtilstander.<br />
131
Figur 136: Oversiktsside.<br />
Via menyen kan man så navigere seg videre til andre elementer i applikasjonen. Den<br />
neste på listen er WebCam. Tanken var at man her kunne få vist bilder fra<br />
prosessens webkamera, som ville gitt en god oversikt over hvordan det stod til med<br />
tanken i det øyeblikket <strong>og</strong> være utfyllende til informasjonen man kunne få fra tallene.<br />
Figur 137: WebCam.<br />
Den siste siden som er med, er Kontroll. Som navnet tilsier , kan man her styre mer<br />
detaljerte aspekter ved prosessen. Spørsmålet er hvor mye kontroll man ville vurdert<br />
det forsvarlig å legge inn på en mobilapplikasjon. Svaret blir vel at; jo mer<br />
informasjon man kan gi til brukeren, <strong>og</strong> jo bedre protokoller man har for hva som skal<br />
skje hvis det oppstår et kommunikasjonsbrudd, jo mer kontroll kan man gi brukeren. I<br />
første omgang ville det nok vært naturlig, i tillegg til pumpekontrollen man har på<br />
132
oversiktssiden, å gi kontroll over referansen <strong>og</strong> utventilene. Man kunne <strong>og</strong>så vurdert,<br />
som vist i bildet under, å gi kontroll over regulatorparametrene, men spørsmålet er<br />
om det vil være aktuelt å gjøre så store endringer uten å være tilstedet ved<br />
prosessen.<br />
Figur 138: Kontrollside.<br />
JSH<br />
Problemområder<br />
I det man gikk inn i arbeidet var man klar over at det var en stor bonusspesifikasjon,<br />
<strong>og</strong> at det sannsynligvis ville dukke opp problemområder man måtte hanskes med i<br />
løpet av prosjektet.<br />
Et av de første problemene man møtte på, var iX-panelet sin bruk av REST api, som<br />
beskrevet i kapittelet om fjernstyring fra nettsiden. Etter en del arbeid med generelle<br />
REST protokoller koblet man seg opp mot iX-panelet sin server, <strong>og</strong> fikk svar med<br />
navn på taggen man spurte etter, verdien <strong>og</strong> annen informasjon. Dessverre viste det<br />
seg at det eksakt samme pr<strong>og</strong>rammet ikke presterte å hente inn informasjonen når<br />
man lastet det på nytt igjen. Hvis man prøvde å laste pr<strong>og</strong>rammet flere ganger videre<br />
fikk man etter hvert den kjente feilmeldingen man først møtte på når man jobbet med<br />
REST opp mot nettsiden, om at det for tiden var for mange tilkoblede klienter, med<br />
tilhørende 15 minutters pause før man kunne koble seg til på nytt. Man kom til<br />
samme konklusjonen som under arbeidet med nettsiden, at man måtte prøve å finne<br />
andre løsninger.<br />
133
Et annet problem man møtte på, var utdatert informasjon. Mange av hjelpefilene man<br />
kunne finne på nettet med informasjon om Android SDK var utdaterte, <strong>og</strong> det gikk<br />
relativt lang tid før man fant ut av at en hjelpefil man fulgte var så utdatert at d<strong>og</strong><br />
koden fungerte for seg selv ville den ikke fungere sammen med andre elementer<br />
man trengte. Dette førte til at det ble mye frem <strong>og</strong> tilbake med koden, <strong>og</strong> ofte<br />
vanskelig å skille ut feilmeldinger da de kunne komme fra mange forskjellige punkter.<br />
JSH<br />
Sluttprodukt<br />
Applikasjonen slik den eksisterer i dag kan finnes på prosjektets hjemmeside <strong>og</strong><br />
prosjektgruppens sider på It's Learning. Denne finnes som en .apk fil. Hvis man vil<br />
installere denne på en mobil med Android OS, er det lettest å sende .apk-filen til seg<br />
selv på e-post, <strong>og</strong> åpne e-posten på mobilen. Når man aktiverer vedlegget vil man få<br />
spørsmål om man vil installere applikasjonen. Da det er en applikasjon fra en ukjent<br />
utgiver, er det viktig å stille inn telefonen sin for dette i forkant. Dette gjør man ved å<br />
gå inn på "Innstillinger -> Sikkerhet -> Enhetsadministrasjon" <strong>og</strong> huke av for "Ukjente<br />
Kilder".<br />
All kildekode til applikasjonen ligger som vedlegg til denne rapporten.<br />
JSH<br />
134
6.11.7 Konklusjon mobilapplikasjon<br />
Som man kan se av applikasjonen, er det mye som mangler. Man har ikke stabil<br />
kontakt med iX-panelet, som vil være nødvendig for kontroll av prosessen. Det er<br />
heller ikke satt opp kobling til webkameraet. Etter prosjektmøte 4 så gruppen at det<br />
var mye arbeid som gjenstod både med hovedprosessen <strong>og</strong> nettsiden. Når man i<br />
tillegg hadde en del problemer med REST api'et til iX-panelet, valgte man å sette<br />
tilside arbeidet med mobilapplikasjonen inntil videre. Mulighetene rundt en slik<br />
mobilapplikasjon er enorme, men man ser at det kanskje har blitt bitt over litt mer enn<br />
man klarer å svelge. Man har allikevel valgt å presentere arbeidet som har blitt gjort<br />
med applikasjonen, <strong>og</strong> med den nåværende applikasjonen som et grunnlag som kan<br />
gi arbeidsgiver en pekepinn på funksjonaliteten til den endelige applikasjonen. Skulle<br />
det vise seg at man får tid til overs under arbeidet med totanksprosjektet er det d<strong>og</strong><br />
fullt mulig å legge mer arbeid i det.<br />
Figur 139: Produktet som sett på en Samsung Galaxy S2.<br />
JSH<br />
135
6.12 Test av tankens regulering<br />
Væskenivået i tanken reguleres ved hjelp av en PLS som styrer innløpet til tanken.<br />
Tanken har da et utløp som endres ved at 3 magnetventiler som åpnes eller lukkes.<br />
Det er satt krav <strong>og</strong> retningslinjer til hvordan tanken skal reguleres <strong>og</strong> styres. PLS-en<br />
kommuniserer med omverdenen gjennom et operatørpanel med touchskjerm <strong>og</strong><br />
webserver som står ved anlegget <strong>og</strong> en PC med pr<strong>og</strong>rammet InTouch.<br />
I et anlegg som dette er det mange bindeledd <strong>og</strong> mange potensielle feilkilder. Det er<br />
derfor viktig at utstyret er testet grundig slik at uforutsette hendelser unngås.<br />
Vedlagt denne rapporten er flere testskjemaer som leder testeren gjennom en rekke<br />
oppgaver for å sjekke funksjonaliteten til utstyr <strong>og</strong> pr<strong>og</strong>ram som inngår i reguleringen.<br />
Dette er gjennomgått <strong>og</strong> anlegget er funnet uten feil.<br />
Et arbeidsnotat til prosjektet er lagt ved rapporten. Arbeidsnotatet tar for seg<br />
modellering av prosessen <strong>og</strong> beregning av reguleringsparametere som skal gi best<br />
resultat når det gjelder stabilitet <strong>og</strong> innsvingning på reguleringen. Kravet er at<br />
prosessen skal ha innsvingning tilsvarende minimum areal ved et sprang i utløpet fra<br />
3 til 1 ventil åpen. I tillegg skal prosessen stabilisere seg raskest mulig. Prosessen<br />
ansees som stabil når nivået ikke svinger mer ±2% fra referansen.<br />
Modellen som ble laget ble simulert <strong>og</strong> gav resultatene som vist i Figur 140.<br />
75<br />
70<br />
65<br />
60<br />
55<br />
50<br />
45<br />
40<br />
3 til 1 ventil<br />
Uten foroverkopling<br />
Med foroverkopling<br />
1 til 3 ventiler<br />
300 350 400 450<br />
Tid [sekunder]<br />
500 550 600 650<br />
Figur 140: Resultat fra modellering. Kurvene viser nivå i %.<br />
136
I Figur 140 er det brukt følgende reguleringsparametere:<br />
Kp 2,7<br />
Ti 35<br />
KpFF 0,15<br />
TdFF 20<br />
NFF 10<br />
Tabell 5: Modellerte regulatorparametere<br />
Figur 141 foroverkobling viser resultat ved bruk av modellerte reguleringsparametere.<br />
For å teste innsvingningen er det foretatt et sprang i fra 3 til 1 ventil åpen. Det viser<br />
seg raskt at simuleringsmodellen ikke er helt i samsvar med den virkelige prosessen<br />
da det ikke oppstår svingninger i systemet. En Ti-verdi på 35 er tydelig for stor da det<br />
går lang tid før avviket er lik 0. Foroverkobling innkoblet gir derimot raskere<br />
innsvingning, men fortsatt lang.<br />
Figur 141: Modellerte reguleringsparametere uten(tv) <strong>og</strong> med(th) foroverkobling<br />
Etter litt finjustering ved bruk av erfaring <strong>og</strong> lærte teorier ble det besluttet at følgende<br />
verdier gir en tilfredsstillende regulering av nivået i tanken.<br />
Kp 2,7<br />
Ti 18<br />
KpFF 0,4<br />
TdFF 10<br />
NFF 10<br />
Tabell 6: Tabell over finjusterte regulatorparametere<br />
137
Figur 142 viser hvordan prosessen svarer på sprang ved bruk av finjusterte<br />
reguleringsparametere. Ved gruppens egne finjusterte verdier vises stor forbedring.<br />
Dynamisk avvik <strong>og</strong> innsvingningstid er betydelig mindre. Ved innkobling av<br />
foroverkoblingen, på regulatoren, blir dynamisk avvik <strong>og</strong> innsvingningstid praktisk talt<br />
lik 0.<br />
Figur 142: Finjusterte reguleringsparametere uten(tv) <strong>og</strong> med(th) foroverkobling<br />
Testing av reguleringen viser at gruppen har i stor grad oppnådd kravene som stilles<br />
til anlegget. Reguleringen fungerer utmerket til sitt forhold.<br />
BM<br />
138
6.13 Problemområder for prosjektutførelsen<br />
EVE<br />
1. Tiden prosjektgruppen får til å teste systemet er begrenset da det er en annen<br />
gruppe som <strong>og</strong>så skal ha tilgang. Problemet ble løst med at gruppene fikk<br />
annenhver dag på systemet. At det er to grupper som skal ha tilgang på<br />
systemet gjør <strong>og</strong>så at det er mange forskjellige pr<strong>og</strong>rammer <strong>og</strong> verdier i bruk,<br />
derfor må prosjektgruppen huske å endre alt til sitt eget hver gang.<br />
2. Gruppen består av seks deltakere, noe som skaper problemer ved oppdeling<br />
<strong>og</strong> om flere jobber med samme oppgave. Prosjektgruppen har under<br />
prosjektperioden hatt mange forskjellige oppgaver som har blitt godt fordelt, <strong>og</strong><br />
på grunn av dette har dette problemet blitt løst på en ypperlig måte.<br />
3. Samkjøringen av de forskjellige enhetene er problematisk, både på design <strong>og</strong><br />
ved styring. Når det er to systemer som skal styre samme enheter, må det<br />
alltid legges opp krav til sending <strong>og</strong> innhenting av verdier. Systemet må <strong>og</strong>så<br />
rapportere alt som skjer til de andre enhetene så det ikke er forskjellige<br />
verdier.<br />
4. Under rapportskrivingen vil det være seks personer som skriver på hver sin<br />
måte, denne problematikken vil prosjektgruppen møte på under alle<br />
delprosjektene når alt skal legges sammen.<br />
5. Informasjonen til de forskjellige varierer veldig, noen enheter er godt forklart<br />
på både internett <strong>og</strong> i lærebøker, mens andre er det vanskelig å finne<br />
informasjon om. Dette gjør det vanskelig, spesielt om prosjektgruppen har<br />
planlagt å gjøre noe på en måte, men finner ikke ut hvordan det utføres.<br />
139
7 Prosjektorganisering.<br />
«<strong>Prosjektoppgave</strong> i <strong>faget</strong> <strong>Styresystemer</strong>» er et prosjekt for en gruppe på seks<br />
studenter ved Høgskolen i Sør-Trøndelag, som utfører en oppgave gitt av faglærerne<br />
i <strong>faget</strong> «<strong>Styresystemer</strong> <strong>og</strong> reguleringsteknikk». HiST stiller med veiledere til<br />
studentene. Prosjektgruppen vil få en karakter på sitt prosjekt satt av veileder fra<br />
HiST.<br />
7.1 Deltakere:<br />
7.1.1 Oppdragsgiver <strong>og</strong> veiledere:<br />
Per Hveem<br />
Førsteamanuensis ved Pr<strong>og</strong>ram for Elektro- <strong>og</strong> Datateknikk,<br />
Avdeling for Teknol<strong>og</strong>i, HiST<br />
Dr. Ing. reguleringsteknikk<br />
Tlf: 73559593<br />
E-post: per.hveem@hist.no<br />
Andreas Sørvik<br />
Lab-ingeniør.<br />
Tlf: 73 55 94 50<br />
E-post: andreas.sorvik@hist.no<br />
7.1.2 Prosjektgruppe:<br />
Prosjektgruppen består av seks studenter fra HiST ved linjen automatiseringsteknikk,<br />
tredje semester. Gruppen er satt sammen av faglærerne, med tanke på bakgrunnen<br />
til hver enkelt student. Prosjektet er vårt semesterprosjekt i <strong>faget</strong> <strong>Styresystemer</strong> <strong>og</strong><br />
reguleringsteknikk.<br />
JSH; EVE<br />
140
Jostein Svanholm Helland<br />
Alder: 26<br />
Tlf: 93030878<br />
E-post: josteish@stud.hist.no<br />
Arbeidserfaring: 2008 – 2012:<br />
Utdanning: 2012 –<br />
2009 – 2012:<br />
2007 – 2009:<br />
Prosjekter: 03.2010 – 05.2010:<br />
Erlend Vist Ekren<br />
Alder: 21<br />
Tlf: 41767127<br />
E-post: erlendek@stud.hist.no<br />
Arbeidserfaring: 2011 – 2013:<br />
Utdanning: 2011 –<br />
V2011:<br />
2009 – 2010:<br />
2007 – 2009:<br />
Redaktør i produksjonsavdelingen<br />
Akademika forlag, sommer/jul<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Teknisk Kybernetikk, NTNU<br />
Kristendom grunnfag + språkfag <strong>og</strong><br />
eksegese, NLA B&M<br />
Prosjekt i <strong>faget</strong> Kybernetikk Intro,<br />
modellering <strong>og</strong> regulering av styresystemer<br />
på forenklet rakettmodell.<br />
Norsk Hydro, Sunndal, sommerjobb.<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Halvårsforkurs, HiST<br />
Sunndal VGS, Allmenn påbygg<br />
Sunndal VGS, Elektrofag<br />
141
Thomas Igesund Berge<br />
Alder: 22<br />
Tlf: 97425260<br />
E-post: thomasib@stud.hist.no<br />
Arbeidserfaring: S2012:<br />
Utdanning: 2011 –<br />
Olav Gabrielsen<br />
Alder: 25<br />
2007 – 2010:<br />
Tlf: 93412152<br />
E-post: olavgab@stud.hist.no<br />
Arbeidserfaring: S2012:<br />
S2010:<br />
7.9.2009:<br />
2007 – 2009:<br />
Utdanning: 2011 –<br />
2002 – 2006:<br />
Havyard 3D-avdeling, sommerjobb.<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Studiespesialisering, Ulstein VGS<br />
Sommerjobb Aibel<br />
Sommerjobb Rønning Elektro<br />
Fagprøve Automatiker<br />
Lærling Hitec Products Drilling, Forus<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Yrkesfag, Grand VGS<br />
142
Fredrik Sørvig<br />
Alder: 24<br />
Tlf: 48036012<br />
E-post: fredrso@stud.hist.no<br />
Arbeidserfaring: 2011 – 2012:<br />
Utdanning: 2011 –<br />
2010:<br />
24.6.2009:<br />
2006 – 2007:<br />
2005 – 2006:<br />
2004 – 2005:<br />
Prosjekter: 2008 – 2009:<br />
Bendik Mydland<br />
Alder: 24<br />
Tlf: 99223347<br />
E-post: bendikm@stud.hist.no<br />
Arbeidserfaring: S2012:<br />
2007 – 2011:<br />
Utdanning: 2011 –<br />
2009 – 2011:<br />
2004 – 2009:<br />
Mekanisk arbeid <strong>og</strong> vedlikehold,<br />
Bis Production Partner AS.<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Realfagskurs<br />
Fagbrev industrimekaniker, ISS Industri<br />
Allmennfaglig påbygning, Mosjøen VGS<br />
VK1 Elektromekaniske fag, Vefsn VGS<br />
GK Elektrofag, Vefsn VGS<br />
Utskiftning av kranbane hos Alcoe,<br />
Bis Production Partner AS<br />
National Oilwell Varco, automatiker<br />
Elkem Solar AS, automatiker<br />
Automatiseringsteknikk, Avdeling for<br />
Teknol<strong>og</strong>i, HiST<br />
Fagskole, fordypning automasjon,<br />
Kvadraturen Skolesenter<br />
Fagbrev, Automatiker<br />
Mandal VGS, Elkem Solar AS<br />
143
7.2 Arbeidslokaler <strong>og</strong> utstyrstilgang:<br />
Prosjektgruppen er ikke tildelt noen private rom for arbeid med prosjektet, men har<br />
tilgang til fellesrom <strong>og</strong> studieretningens klasserom ved HiST sine lokaler på<br />
Kalvskinnet i Trondheim. Her har studentene f.eks. tilgang til datasaler, der store<br />
deler av prosjektet har foregått. Prosjektet har <strong>og</strong>så en praktisk del som krever<br />
tilgang til en «PLS-rigg», som vil befinne seg på en lab i lokalene. Der har gruppen<br />
bestilt tid til å utføre arbeidet som ligger i arbeidspakkene.<br />
EVE<br />
Figur 143: Tankriggen.<br />
144
7.3 Prosjektleveranser:<br />
7.3.1 Pr<strong>og</strong>ramvare:<br />
Prosjektgruppen skulle i løpet av prosjektperioden utvikle pr<strong>og</strong>ramvare til de<br />
forskjellige enhetene i systemet. Prosjektgruppen har pr<strong>og</strong>rammert et PLS-pr<strong>og</strong>ram<br />
som skal bestå av alarmbehandling <strong>og</strong> et reguleringssystem. Pr<strong>og</strong>rammet regulerer<br />
nivået i en tank, med mulighet for automatisk- <strong>og</strong> manuell-styring, foroverkobling med<br />
PD-regulator <strong>og</strong> regulatoren har muligheten til å kjøres som både P- <strong>og</strong> PI-regulator. I<br />
pr<strong>og</strong>rammet har prosjektgruppen sørget for at reguleringen blir riktig ved oppstart<br />
etter et strømbrudd. Systemet regulerer <strong>og</strong>så inn til ønsket nivå om kontakten opp til<br />
HMI’ene blir brutt. Ved hjelp av et en master-PLS, skal slave-PLS’en ha kontakt opp<br />
til HMI’ene. Master-PLS’en er pr<strong>og</strong>rammert for å motta <strong>og</strong> videresende verdier. PLS-<br />
pr<strong>og</strong>rammene prosjektgruppen har levert står mer detaljert tidligere i rapporten, <strong>og</strong><br />
prosjektgruppen vil henvise dit om mer informasjon er ønsket.<br />
I HMI’ene har prosjektgruppen utviklet pr<strong>og</strong>ram i både InTouch <strong>og</strong> i iX-panelet. Det<br />
var satt opp diverse krav til hva HMI’ene skulle inneholde fra oppgaveteksten, <strong>og</strong> det<br />
er med utgangspunkt fra kravene prosjektgruppen har satt opp sine system. HMI’ene<br />
skal la operatøren styre systemet, der en større del av styringen skal foregå i<br />
InTouch enn i iX-panelet. Prosjektgruppen har lagt vekt på designet for å holde det<br />
enkelt <strong>og</strong> lett forståelig. Begge HMI’ene er forklart tidligere i rapporten, <strong>og</strong><br />
prosjektgruppen vil henvise dit om mer informasjon er ønsket.<br />
EVE<br />
145
7.3.2 Skriftlige leveranser:<br />
<strong>Entanksprosjektrapport</strong><br />
Rapporten skal forklare hvordan prosjektgruppen har gått frem for å fullføre<br />
oppgaven, samtidig som de skal dokumentere at systemet fungerer som det skal.<br />
Rapporten skal være skrevet på en måte som gjør at leseren ikke trenger å være en<br />
ingeniør innen samme fagfelt som prosjektgruppen for å forstå hvordan systemet<br />
fungerer <strong>og</strong> hvordan det er oppbygd.<br />
EVE<br />
Simuleringsnotat<br />
Prosjektgruppen skal levere et simuleringsnotat der de skal dokumentere hvordan de<br />
har gått frem for å finne systemets overføringsfunksjon. Studentene skal i<br />
dokumentet vise hvordan de simulerer systemet. I simuleringsnotatet skal<br />
prosjektgruppen ha lagt frem forslag til innstillinger for regulatoren, som er utregnet<br />
ved hjelp av simuleringene.<br />
EVE<br />
Arbeidspakker<br />
Ferdiggjorte arbeidspakker <strong>og</strong> arbeidspakker som er påbegynt, men vil fortsette å<br />
løpe fremover i prosjektet, skal leveres inn som vedlegg til entanksprosjektrapporten.<br />
Dette for å gi arbeidsgiver en oversikt over hvordan gruppen ligger an i forhold til<br />
planlagte timer.<br />
JSH<br />
Nettside<br />
En nettside med informasjon om prosjektet har tidligere blitt opprettet. Nettsiden vil<br />
fortløpende legge ut informasjon som forklarer prosjektgruppens fremgang. Her<br />
finner leseren <strong>og</strong>så tidligere rapporter <strong>og</strong> innkallinger <strong>og</strong> referat fra prosjektmøtene.<br />
Prosjektgruppen har <strong>og</strong>så forklart alle delprosjekter <strong>og</strong> lagt ut annen informasjon som<br />
er relevant til prosjektet.<br />
EVE<br />
146
Figur 144: Nettsiden til prosjektgruppen.<br />
147
7.4 Tids- <strong>og</strong> kostnadsplan:<br />
Prosjektgruppen har i et forprosjekt lagt frem et forslag til bruk av ressurser. I dette<br />
prosjektet vil det ikke forekomme andre utgifter enn timebruk, så ressursene vil bli<br />
arbeidstimer per student. Hvordan prosjektgruppen har kommet ut av det de planla i<br />
forprosjektet ligger med som vedlegg, her kommer det fram hvor mye det er blitt<br />
jobbet med hver arbeidspakke. Det vil vises at det er sprik mellom planlagt tid brukt<br />
på de forskjellige arbeidspakkene <strong>og</strong> faktisk brukt tid, men dette er naturlig da<br />
studentene ikke vet hva som faktisk inngår før de kommer i kontakt med oppgaven.<br />
Antall timer<br />
2000<br />
1800<br />
1600<br />
1400<br />
1200<br />
1000<br />
800<br />
600<br />
400<br />
200<br />
0<br />
Figur 145: L<strong>og</strong>gført timeforbruk.<br />
I Figur 145 kan man se hvordan l<strong>og</strong>gførte timer er i forhold til planlagte timer.<br />
Prosjektgruppen har utnytt arbeidsdagene i ukene de har jobbet, <strong>og</strong> jobbet frivillig<br />
individuelt på helgene. Det kommer tydelig frem i diagrammet at timeforbruket har økt<br />
kraftig de siste ukene før innlevering. Til tross for kraftig øking vil gruppen etter all<br />
sannsynlighet ikke overstige endelig estimert timeforbruk. I dette prosjektet, hvor<br />
kostnadene er direkte knyttet til timeforbruk, vil det si at kostnadene vil holdes under det<br />
som først ble forespeilt.<br />
EVE; BM<br />
Timeforbruk<br />
9 10 11 12 13 14 15 16 17 18 19 20<br />
Estimert<br />
L<strong>og</strong>gført<br />
148
7.5 Prosjektstyring <strong>og</strong> kvalitetssikring:<br />
7.5.1 Statusrapportering:<br />
Statusrapportering er en tilbakemelding på hva som har blitt gjennomført den siste<br />
tiden. Denne utarbeides hver andre uke av prosjektgruppen. Slike rapporter<br />
gjennomgås på prosjektmøte med prosjektgruppe <strong>og</strong> veileder. Timebruk l<strong>og</strong>gføres <strong>og</strong><br />
møteinnkallinger <strong>og</strong> møtereferater lastes opp på nett i tillegg til å sendes ut til<br />
deltakere.<br />
JSH<br />
7.5.2 Versjonskontroll:<br />
Under utarbeiding av filer <strong>og</strong> rapporter opplever vi ofte at vi må skrive om <strong>og</strong><br />
oppdatere filene. For å unngå unødvendig forvirring, i forhold til hvilken fil som er<br />
hvilken versjon, så fører vi på dato, <strong>og</strong> eventuelt et tall for versjonsnummer. Dette er<br />
spesielt viktig for pr<strong>og</strong>rammeringsfiler ettersom at en ofte gjør utbedringer <strong>og</strong><br />
utvidelser underveis, uten å alltid være klar over at en på utvidelsen ubevisst har gjort<br />
småfeil som resulterer i at pr<strong>og</strong>rammet ikke fungerer. På denne måten så kan en<br />
begrense tiden på feilsøking betraktelig. Feilfrie utbedringer som gjøres skriver vi<br />
forklaringer på i kommentarfeltet slik at andre raskt forstår hvordan pr<strong>og</strong>rammet<br />
fungerer.<br />
OG<br />
149
8 Litteraturliste<br />
A Deutsch, LA Grimsland & S Solvang, Prossesstyringspr<strong>og</strong>ram for<br />
silisiumsstørkningsovn, Bacheloroppgave 2010, lastet ned 5.3.2013,<br />
https://www.itslearning.com/file/download.aspx?FileID=2371488&FileVersionID=-1<br />
(Begrenset tilgang)<br />
A Hofstad, PLS-Teknikk, 7. utg., 2. opplag, Kybernetes Forlag, 2009<br />
DE Seborg, TF Edgar, DA Mellichamp, FJ Doyle III, Process Dynamics and Control,<br />
3d edn, John Wiley & Sons (Asia) Pte Ltd, China, 2011<br />
K Bjørvik & P Hveem, Reguleringsteknikk, Kybernetes Forlag, Trondheim, 2012<br />
K Bjørvik & V Tyssøy, Dynamiske Systemer<br />
NN, Training Manual, InTouch HMI 9.6 Fundamentals of Application Development<br />
Course, WonderWare Training, 2006, Rev. E.<br />
P Hveem & AS, Tips til prosjekt i <strong>Styresystemer</strong> våren 2012, lastet ned 20.3.2013,<br />
https://www.itslearning.com/file/download.aspx?FileID=2371492&FileVersionID=-1<br />
(Begrenset tilgang)<br />
Wikipedia, Port Forwarding, lastet ned 2.5.2013,<br />
http://no.wikipedia.org/wiki/Port_forwarding<br />
Wikipedia, Mobile operating system, Current market share and outlook, lastet ned<br />
2.5.2013,<br />
http://en.wikipedia.org/wiki/Mobile_operating_system#Current_market_share_and_ou<br />
tlook<br />
Youtube, iX Developer Trend, lastet ned 2.5.2013,<br />
http://www.youtube.com/watch?v=d_lztVdrYyU<br />
Youtube, iX Developer Alarm, lastet ned 2.5.2013,<br />
http://www.youtube.com/watch?v=hdRMkHSvtbI<br />
150
151
9 Vedlegg<br />
152
Vedlegg A<br />
Testskjema<br />
7 sider
Vedlegg B<br />
PID-kode i strukturert tekst<br />
3 sider
PIDheltall i strukturert tekst<br />
(*PID-regulator (inverterende)*)<br />
(*Med mulighet for manuell kjøring, valg av P(D) eller PI(D).*)<br />
(*For å koble ut D-delen velges denne til 0*)<br />
(*NB! Denne regulatoren er laget for å kunne bruke tall med ett desimal;<br />
Det vil si at Kp, Ti, Td <strong>og</strong> SampTid må ganges med en faktor på 10<br />
før de sendes inn i PIDheltall-blokka*)<br />
y_k:=PV;<br />
e_k:=SV-PV;<br />
Tih:=Ti/SampTid;<br />
IF Auto THEN<br />
(*Utregning for D-delen*)<br />
Del1:=(Td/SampTid)*10+((Td MOD SampTid)*10)/SampTid;<br />
Del2:=(Kp/10)*Del1+((Kp MOD 10)*Del1)/10;<br />
Del3:=(y_k-(2*y_km1)+y_km2)*10;<br />
D_pid:=(Del2/10)*Del3+((Del2 MOD 10)*Del3)/10;<br />
Del4:=(y_k-y_km1)*10;<br />
D_pd:=(Del2/10)*Del4+((Del2 MOD 10)*Del4)/10;<br />
(*Grensesjekking. D_pid holdes i området -2550 - 2550*)<br />
IF (D_pid=2550) THEN<br />
D_pid:=2550;<br />
END_IF;<br />
END_IF;<br />
(*Grensesjekking. D_pd holdes i området -2550 - 2550*)<br />
IF (D_pd=2550) THEN<br />
D_pd:=2550;<br />
END_IF;<br />
END_IF;
IF PD_PID THEN<br />
(*Beregning PID når PD_PID er høy*)<br />
deltau_ik:=(Kp*e_k+deltau_irestkm1)/(Tih*10);<br />
deltau_irestk:=(Kp*e_k+deltau_irestkm1) MOD (Tih*10);<br />
u_k:=u_km1+deltau_ik+Kp*(e_k-e_km1)/10-(D_pid/10);<br />
uNOM:=u_k;<br />
ELSE<br />
(*Beregning PD når PD_PID er lav*)<br />
u_k:=(Kp/10)*e_k+((Kp MOD 10)*e_k)/10+uNOM-(D_pd/10);<br />
END_IF;<br />
ELSE<br />
(*Manuell kjøring når Auto er lav*)<br />
u_k:=uMAN; (*Sørger for rykkfi overgang fra Manuell til Auto*)<br />
uNOM:=uMAN; (*Sørger for rykkfi overgang fra Manuell til Auto*)<br />
SV:=PV; (*Sørger for rykkfi overgang fra Manuell til Auto*)<br />
e_k:=0; (*Sørger for rykkfi overgang fra Manuell til Auto*)<br />
u:=uMAN;<br />
END_IF;<br />
(*Grensesjekking. u_k holdes i området 0 - 255*)<br />
IF (u_k=255) THEN<br />
u_k:=255;<br />
END_IF;<br />
END_IF;<br />
u:=u_k; (*u_k sendes til regulatorens utgang*)<br />
uMAN:=u; (*Sørger for rykkfi overgang fra Auto til Manuell*)<br />
(*Oppdatering av "gamle" verdier*)<br />
e_km1:=e_k;<br />
u_km1:=u_k;<br />
y_km2:=y_km1;<br />
y_km1:=y_k;<br />
deltau_irestkm1:=deltau_irestk;<br />
Avvik:=e_k;<br />
BM
Vedlegg C<br />
Android pr<strong>og</strong>ramfiler<br />
8 sider
Pr<strong>og</strong>ramfiler Android Mobilapplikasjon<br />
Android Manifest
Java classes<br />
Splash.java
Hovedside.java
Kontroll.java, WebCam.java & Oversikt.java
HttpRetriever.java
Eksempel på vanlige <strong>og</strong> fragmenterte aktiviteter<br />
hovedside.xml
kontroll_frag.xml
Vedlegg D<br />
Arbeidspakker<br />
10 sider
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Modellering. Aktivitet nr: 07<br />
Startdato: 03.04.13 Sluttdato: 22.04.13<br />
Avhengighet: Foregående aktiviteter: 06 Ferdigstille rapport.<br />
Etterfølgende aktiviteter: 11 tilleggsspesifikasjoner.<br />
Mål: Få laget en model av prosessen.<br />
Arbeidsbeskrivelse: Studentene skal opprette en så bra modell som mulig av systemet. Her<br />
skal de levere arbeidsnotat <strong>og</strong> simuleringsnotat av ferdig produkt.<br />
Timeverk: 170,5 timer Fordeling: Thomas I. Berge 63,5t<br />
Jostein S. Helland 18,5t<br />
Fredrik Sørvig 16,5t<br />
Bendik Mydland 15t<br />
Olav Gabrielsen 50,5t<br />
Erlend V. Ekren 6,5t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Studentene må være flinke til å taste alt de gjør underveis så de ikke ender opp med<br />
feil verdier <strong>og</strong> regner videre med dem.<br />
Faglig ansvarlig:<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Filter. Aktivitet nr: 08<br />
Startdato: 03.04.13 Sluttdato: 08.04.13<br />
Avhengighet: Foregående aktiviteter: 05 Ferdigstille rapport.<br />
Etterfølgende aktiviteter: 10 Test.<br />
Mål: Studentene skal bygge et filter egnet for å fjerne støy i prosessen.<br />
Arbeidsbeskrivelse: Prosjektgruppen må finne ut hvilken type støy som påvirker prosessen<br />
for så å beregne komponenter til et filter som har i oppgave å filtrere bort støyen.<br />
Timeverk: 62 timer Fordeling: Thomas I. Berge 3,5t<br />
Olav Gabrielsen 4,5t<br />
Jostein S. Helland 29,5t<br />
Fredrik Sørvig 24,5t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Studentene må være flinke til å taste alt de gjør underveis så de ikke ender opp med<br />
feil verdier <strong>og</strong> regner videre med dem.<br />
Faglig ansvarlig:<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Pr<strong>og</strong>rammering. Aktivitet nr: 09<br />
Startdato: 03.04.13 Sluttdato: 12.04.13<br />
Avhengighet: Foregående aktiviteter: 05 Ferdigstille rapport.<br />
Etterfølgende aktiviteter: 10 Test.<br />
Mål: Studentene skal pr<strong>og</strong>rammere de forskjellige enhetene for styring av prosessen.<br />
Arbeidsbeskrivelse: Prosjektgruppen må lage pr<strong>og</strong>rammer for PLS, Intouch <strong>og</strong> IX-panel.<br />
Dette skal være enkle oversiktlige pr<strong>og</strong>ram som skal regulere nivået i entanksystemet.<br />
Timeverk: 123,5 timer Fordeling: Jostein S. Helland 2t<br />
Bendik Mydland 6t<br />
Erlend V. Ekren 49t<br />
Thomas I. Berge 2,5t<br />
Fredrik Sørvig 64t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Studentene må være flinke til å taste alt de gjør underveis så de vet at problemet ikke<br />
ligger i pr<strong>og</strong>rammene når de skal teste dem på systemet senere.<br />
Faglig ansvarlig:<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Test. Aktivitet nr: 10<br />
Startdato: 03.04.13 Sluttdato: 12.04.13<br />
Avhengighet: Foregående aktiviteter: 08 Filter.<br />
09 Pr<strong>og</strong>rammering.<br />
Etterfølgende aktiviteter: 11 Tilleggsspesifikasjoner.<br />
Mål: Filteret <strong>og</strong> pr<strong>og</strong>rammene skal testes på systemet.<br />
Arbeidsbeskrivelse: Prosjektgruppen skal teste det de har jobbet med i starten av<br />
entankprosjektet på systemet.<br />
Timeverk: 94,5 timer Fordeling: Fredrik Sørvig 24t<br />
Bendik Mydland 36t<br />
Olav Gabrielsen 4t<br />
Erlend V. Ekren 30,5t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Om jobben som er gjort tidligere ikke er grundig kan det være vanskelig å få en god<br />
gjennomkjøring.<br />
Faglig ansvarlig:<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Tilleggsspesifikasjoner. Aktivitet nr: 11<br />
Startdato: 24.04.13 Sluttdato: 30.04.13<br />
Avhengighet: Foregående aktiviteter: 10 Test.<br />
Etterfølgende aktiviteter: 13 Samkjøre oppgave med gruppe 2.<br />
Mål: Gjennomføre så mange tilleggsspesifikasjoner som mulig.<br />
Arbeidsbeskrivelse: Studentene har rangert tilleggsspesifikasjoner etter hvilke oppgaver de<br />
helst vil gjennomføre, målet vil være å gjennomføre så mange som mulig.<br />
Timeverk: 145 timer Fordeling: Jostein S. Helland 93t<br />
Bendik Mydland 8t<br />
Thomas I. Berg 26t<br />
Fredrik Sørvig 7t<br />
Olav Gabrielsen 11t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Risikoen her handler om tidsbruk, gruppen må prioritere pprosjektet over<br />
tilleggsspesifikasjonene.<br />
Faglig ansvarlig:<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Ferdigstille rapport, entankprosjekt. Aktivitet nr: 12<br />
Startdato: 03.04.13 Sluttdato: 30.04.13<br />
Avhengighet: Foregående aktiviteter: 05 Ferdigstille rapport, miniprosjekt.<br />
Etterfølgende aktiviteter: 13 Samkjøre oppgave med gruppe 2..<br />
Mål: Prosjektgruppen skal få få ferdig et endelig produkt som skal reflektere hele<br />
prosjektet.<br />
Arbeidsbeskrivelse: Prosjektgruppen skal jobbe kontinuerlig med å få ned hva de gjør<br />
underveis <strong>og</strong> dokumentere ferdige produkt.<br />
Timeverk: 99,5 timer Fordeling: Jostein S. Helland 21,5t<br />
Bendik Mydland 10t<br />
Erlend V. Ekren 39t<br />
Thomas I. Berg 5t<br />
Fredrik Sørvig 12t<br />
Olav Gabrielsen 12t<br />
Kostnader: I dette prosjektet vil det ikkje forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Tidsbruken kan være vanskelig å beregne <strong>og</strong> det er en frist for levering.<br />
Faglig ansvarlig:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Prosjektmøter Aktivitet nr: 17<br />
Startdato: 04.03.13 Sluttdato: 15.05.13<br />
Avhengighet: Foregående aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Etterfølgende aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Mål: Arbeidsgiver skal overbevises om at han har tatt det rette valget ved å ansette<br />
prosjektgruppen.<br />
Arbeidsbeskrivelse: Studentene skal en <strong>og</strong> en beskrive hva han har gjort siden sist<br />
prosjektmøte. De skal lede et møte hver <strong>og</strong> alle skal ta referat fra et møte.<br />
Timeverk: 75 timer Fordeling: Jostein S. Helland 13,5t<br />
Bendik Mydland 12t<br />
Erlend V. Ekren 8t<br />
Thomas I. Berg 16t<br />
Fredrik Sørvig 7,5t<br />
Olav Gabrielsen 18t<br />
Kostnader: I dette prosjektet vil det ikke forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Om det er en oppgave studentane har stått fast med, så kan det være problematisk å<br />
komme med veldig mye informasjon til arbeidsgivar.<br />
Faglig ansvarlig:<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: Gruppemøter. Aktivitet nr: 18<br />
Startdato: 04.03.13 Sluttdato: 13.05.13<br />
Avhengighet: Foregående aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Etterfølgende aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Mål: Gruppen skal samles hver uke for å få en bedre oversikt av prosjektets fremgang.<br />
Arbeidsbeskrivelse: Prosjektet består mye av å dele lærdom <strong>og</strong> kunnskap underveis.<br />
Samtidig som gruppen skal få en oversikt over fremgang <strong>og</strong> eventuelle tidsendringer ut ifra<br />
det planlagte, så skal gruppen lære bort ny kunnskap <strong>og</strong> forklare hva de har gjort siden sist.<br />
Timeverk: 71,5 timer Fordeling: Jostein S. Helland 11,5t<br />
Bendik Mydland 12t<br />
Erlend V. Ekren 15t<br />
Thomas I. Berg 11t<br />
Fredrik Sørvig 19t<br />
Olav Gabrielsen 3t<br />
Kostnader: I dette prosjektet vil det ikke forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Om dette ikke gjennomføres som planlagt kan det gå utover enkelt studenter som ikke<br />
får tatt imot den informasjonen <strong>og</strong> kunnskapen han trenger senere i prosjektet.<br />
Faglig ansvarlig:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Thomas I. Berge tlf: 97425260 e-post: thomasib@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
Fag: EDT211T <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk Dato: 05.03.13<br />
Prosjekt: Nivåregulering i et totanksystem<br />
Aktivitet: L<strong>og</strong>gføring. Aktivitet nr: 19<br />
Startdato: 08.03.13 Sluttdato: 10.05.13<br />
Avhengighet: Foregående aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Etterfølgende aktiviteter: Denne oppgaven går frå start til slutt, <strong>og</strong> ingen<br />
oppgaver er avhengig av den.<br />
Mål: Det settes av en time hver fredag for å få skrevet ned tid brukt på prosjektet.<br />
Arbeidsbeskrivelse: L<strong>og</strong>gføring av brukt tid på prosjekt, er en viktig oppgave så arbeidsgiver<br />
får en bedre oversikt av prosjektet.<br />
Timeverk: 8 timer Fordeling: Jostein S. Helland 2t<br />
Bendik Mydland 3t<br />
Erlend V. Ekren 1t<br />
Fredrik Sørvig 1t<br />
Olav Gabrielsen 1t<br />
Kostnader: I dette prosjektet vil det ikke forekomme noen kostnader.<br />
Ressurser: Ressursene som brukes i prosjektet blir bare arbeidet til studentene.<br />
Risiko: Om denne planen ikke blir gjennomført <strong>og</strong> det er lenge siden sist gang studentene<br />
noterte i l<strong>og</strong>gboken, kan der være vanskelig å huske når <strong>og</strong> hvor lenge man har jobbet.<br />
Faglig ansvarlig:<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Prosjektmedarbeidere:<br />
Jostein S. Helland tlf: 93030878 e-post: josteish@stud.hist.no<br />
Bendik Mydland tlf: 99223347 e-post: bendikm@stud.hist.no<br />
Erlend V. Ekren tlf: 41767127 e-post: erlendek@stud.hist.no<br />
Fredrik Sørvig tlf: 48036012 e-post: fredrso@stud.hist.no<br />
Olav Gabrielsen tlf: 93412152 e-post: olavgab@stud.hist.no
Vedlegg E<br />
Arbeidsnotat<br />
35 sider
HØGSKOLEN I SØR-TRØNDELAG<br />
Avdeling for teknol<strong>og</strong>i<br />
Studiepr<strong>og</strong>ram for elektro- <strong>og</strong> datateknikk<br />
7004 TRONDHEIM<br />
<strong>Prosjektoppgave</strong> i <strong>Styresystemer</strong> <strong>og</strong> Reguleringsteknikk,<br />
Oppgavens tittel:<br />
Arbeidsnotat<br />
<strong>Prosjektoppgave</strong> i <strong>faget</strong> <strong>Styresystemer</strong> <strong>og</strong> reguleringsteknikk<br />
Gruppedeltagere:<br />
Jostein S. Helland(JSH) 93030878<br />
josteish@stud.hist.no<br />
Bendik Mydland(BM) 99223347<br />
bendikm@stud.hist.no<br />
Olav Gabrielsen(OG) 93412152<br />
olavgab@stud.hist.no<br />
Erlend V. Ekren(EVE) 41767127<br />
erlendek@stud.hist.no<br />
Thomas I. Berge(TIB) 97425260<br />
thomasib@stud.hist.no<br />
Fredrik Sørvig(FS)<br />
Studieretning:<br />
48036012<br />
fredrso@stud.hist.no<br />
Automatiseringsteknikk<br />
Oppdragsgiver:<br />
Avdeling for Teknol<strong>og</strong>i v/Per Hveem<br />
Startdato:<br />
21.03.13<br />
Innleveringsdato:<br />
22.04.13<br />
Antall sider/vedlegg:<br />
34/00<br />
Veileder:<br />
Per Hveem<br />
Tlf: 73559593<br />
E-post: per.hveem@hist.no<br />
Prosjektgruppe:<br />
1<br />
Kontaktperson hos<br />
oppdragsgiver:<br />
Se veileder
Arbeidsnotat<br />
<strong>Prosjektoppgave</strong> i <strong>faget</strong> <strong>Styresystemer</strong><br />
Pumpe<br />
2EA<br />
Vår 2013<br />
Reguleringsventil<br />
Vanntank<br />
Magnetventilene<br />
FT1<br />
Vannreservoar<br />
100 %<br />
60 %<br />
50 %<br />
0 %<br />
LT1<br />
ref.
Sammendrag<br />
En tank, som inneholder vann, skal reguleres slik at nivået i tanken holdes mest<br />
mulig stabilt under drift. Tanken består av et innløp <strong>og</strong> ett utløp, hvor innløpet blir<br />
styrt av en pumpe <strong>og</strong> reguleringsventil i serie, mens utløpet blir styrt av tre<br />
magnetventiler montert parallelt.<br />
Det er gitt krav om at et sprang i utløpet skal reguleres inn raskest mulig slik at nivået<br />
holder seg stabilt på ønsket verdi.<br />
Nivået i tanken reguleres ved hjelp av en PI-regulator hvor det er mulighet for<br />
foroverkobling med PD-regulator. Regulatorens innstillinger finnes ved hjelp av å lage<br />
matematisk modell av prosessen for så å simulere <strong>og</strong> beregne regulatorene ved hjelp<br />
av blokkskjemaregning <strong>og</strong> Ziegler-Nichols-metode. Prosessens modeller er delt opp i<br />
reguleringsventil, tank <strong>og</strong> nivåmåler, utstrømning <strong>og</strong> regulatorene.<br />
PI-regulatorens beste verdier er Kp = 2,7 <strong>og</strong> Ti = 35.<br />
PD-regulatorens beste verdier er Kp = 0,15, Td = 20, n = 10<br />
Disse verdiene gir innsvingning som tilfredsstiller kravene for prosessen <strong>og</strong> er vist i<br />
figuren.<br />
75<br />
70<br />
65<br />
60<br />
55<br />
50<br />
45<br />
40<br />
BM<br />
3 til 1 ventil<br />
Uten foroverkopling<br />
Med foroverkopling<br />
1 til 3 ventiler<br />
300 350 400 450<br />
Tid [sekunder]<br />
500 550 600 650
Forord<br />
Arbeidsnotatet omhandler modellering av systemet prosjektet er basert på. Det er<br />
vanlig å lage en matematisk modell av systemet, da det ofte er billigere <strong>og</strong> mindre<br />
tidskrevende å gjøre simuleringer av antagelser på en modell, enn å utføre det på<br />
den faktiske prosessen. For at simuleringen på modellen skal være relevant, er det<br />
derfor viktig at de individuelle delene av modellen representerer sin reelle motpart så<br />
nøyaktig som mulig. Arbeidsnotatet går derfor <strong>og</strong>så inn på hvordan man best går<br />
frem for å gjøre gode målinger av moduler, <strong>og</strong> hvilke problemer man kan møte på<br />
langs veien.<br />
Det har for gruppen vært meget givende å gjennomføre denne simuleringen, da man<br />
her faktisk går gjennom hele prosessen fra reelt system til matematisk modell,<br />
regulering av denne, <strong>og</strong> får se at reguleringsparameterne man kommer frem til<br />
stemmer i virkeligheten. Dette står i sterk kontrast til tidligere oppgaver, hvor man kun<br />
har hatt en av delene, <strong>og</strong> som oftest ikke har hatt mulighet til å sjekke at verdier man<br />
kommer frem til gir mening utenfor den simulerte modellen. Prosessen med å finne<br />
frem til riktige modeller gav <strong>og</strong>så mulighet for gruppen til å bli bedre kjent med<br />
prosessen, <strong>og</strong> hvordan de forskjellige delene av prosessen fungerer individuelt, <strong>og</strong><br />
som en del av den større prosessen. Gruppen håper at arbeidsnotatet viser til<br />
arbeidsgiver at man i prosjektet går frem for å gjøre en meget grundig jobb med<br />
oppgaven, <strong>og</strong> på denne måten gjør senere arbeid <strong>og</strong> vedlikehold av prosessen<br />
lettere.<br />
Til slutt vil gruppen fortsatt takke Per Hveem <strong>og</strong> Andreas Sørvik fra HiST for<br />
veiledning gjennom prosjekttiden. Gjennom prosjektmøte, <strong>og</strong> gode praktiske tips, har<br />
de begge vært uvurderlige. Gruppen ser frem til videre samarbeid med begge.<br />
Bendik Mydland Erlend V. Ekren Fredrik Sørvig Jostein S. Helland Thomas I. Berge Olav Gabrielsen<br />
JSH
Innholdsfortegnelse<br />
Innholdsfortegnelse .................................................................................................... 1<br />
Figurliste ..................................................................................................................... 2<br />
Innledning ................................................................................................................... 3<br />
Skjematisk oppsett ..................................................................................................... 4<br />
Modellering ................................................................................................................. 7<br />
Tank, reguleringsventil & nivåmåler ........................................................................ 7<br />
Magnetventilene .................................................................................................... 11<br />
Flowmåler ............................................................................................................. 18<br />
Problemområder ................................................................................................... 21<br />
Regulering ................................................................................................................ 22<br />
PI-regulator ........................................................................................................... 22<br />
PI-regulator med PD-regulert foroverkobling ......................................................... 26<br />
Resultat .................................................................................................................... 29<br />
Litteraturliste ............................................................................................................. 30<br />
1
Figurliste<br />
Figur 1: Bilde av tanken .............................................................................................. 3<br />
Figur 2: Prosesskjema ................................................................................................ 4<br />
Figur 3: Oppkobling ved måling av tankens sprangrespons ....................................... 5<br />
Figur 4: Oppkobling ved måling av magnetventilenes sprangrespons ........................ 6<br />
Figur 5: Tankens sprangrespons ................................................................................ 7<br />
Figur 6: Beregning av tankens sprangrespons ........................................................... 8<br />
Figur 7: Modell av reguleringsventil ............................................................................ 9<br />
Figur 8: Modell av tank med omregningsfaktor ........................................................... 9<br />
Figur 9: Modell av måleelement ................................................................................ 10<br />
Figur 10: Blokkskjema for tank <strong>og</strong> reguleringsventil ................................................. 10<br />
Figur 11: Simulering av tankens sprangrespons ....................................................... 11<br />
Figur 12: Sprangrespons for åpning av 2 magnetventiler ......................................... 12<br />
Figur 13: Sprangrespons for magnetventil med markert tidskonstant ....................... 15<br />
Figur 14: Sprangrespons for åpning av én magnetventil med markert tidsforsinkelse<br />
................................................................................................................................. 16<br />
Figur 15: Blokkskjema for magnetventilene .............................................................. 17<br />
Figur 16: Sprang med 1 ventil åpen .......................................................................... 18<br />
Figur 18: Blokkskjema for PI-regulator ..................................................................... 22<br />
Figur 17: Blokkskjema for prosess med PI-regulator ................................................ 22<br />
Figur 19: Prosessverdi <strong>og</strong> pådrag ved høy Kp-verdi ................................................. 23<br />
Figur 20: Innsvingning med parameterverdier fra manuell selvjustering ................... 24<br />
Figur 21: Innsvingning ved bruk av finjusterte regulatorparametere ......................... 25<br />
Figur 22: Blokkskjema for prosessen med foroverkopling ........................................ 26<br />
Figur 23: Innsvingninger med sprang i utløpet med <strong>og</strong> uten bruk av foroverkopling . 28<br />
2
Innledning<br />
I dette arbeidsnotatet presenteres en matematisk modell for nivåregulering <strong>og</strong><br />
foreslåtte regulatorinnstillinger. Nivåreguleringen av tanken er simulert, både med <strong>og</strong><br />
uten forover kobling. For å simulere <strong>og</strong> analysere modellen brukes Matlab /Simulink.<br />
For å kunne finne en brukbar modell for prosessen er prosessen del opp i flere<br />
komponenter. Dette forenkler muligheten for implementering av foroverkobling, med<br />
regulatorinnstillingene, i simuleringen. Foroverkoblingen måler direkte på prosessens<br />
forstyrrelse <strong>og</strong> gir da et ekstra pådrag i regulatoren som vil kompensere for endring i<br />
forstyrrelsen.<br />
Figur 1: Bilde av tanken<br />
TIB<br />
3
Skjematisk oppsett<br />
Bakgrunn<br />
For å kunne lage gode modeller er det nødvendig med måling av relevante fysiske<br />
størrelser som finnes på anlegget. I dette tilfellet er nivå i, <strong>og</strong> utstrømning av, tanken<br />
de relevante målbare størrelsene. Ut i fra disse målene, i kombinasjon med at<br />
tankens fysiske mål er kjent, er det mulig å beregne de resterende fysikalske<br />
kvalitetene som trengs for å lage nøyaktige modeller.<br />
BM<br />
Prosesskjema<br />
Prosessen består av en sylindrisk tank hvor en pumpe i serie med reguleringsventil<br />
styrer innløpet <strong>og</strong> tre magnetventiler i parallell styrer utløpet. Tankens væskenivå blir<br />
Figur 2: Prosesskjema<br />
BM<br />
Pumpe<br />
Reguleringsventil<br />
Vanntank<br />
Magnetventilene<br />
FT1<br />
Vannreservoar<br />
100 %<br />
60 %<br />
50 %<br />
0 %<br />
LT1<br />
ref.<br />
målt ved hjelp av en trykkmåler<br />
i bunnen av tanken som sender<br />
ut et strømsignal hvor 4 – 20mA<br />
tilsvarer et nivå på 0 – 100%.<br />
Utløpet av tanken blir målt av<br />
en flowmåler plassert mellom<br />
tanken <strong>og</strong> de tre<br />
magnetventilene. Flowmåleren<br />
sender òg ut et strømsignal,<br />
men som her representerer<br />
utgående volumstrøm per<br />
sekund<br />
Figur 2 viser skjematisk<br />
hvordan tanksystemet er satt<br />
opp<br />
4
Koblingsskjema<br />
Måling ved tankens sprangrespons<br />
Grunnen til at vi har valgt å koble det opp som vist i Figur 3, er at vi får kjørt ett<br />
sprang fra 4-20mA inn på reguleringsventilen(LV1). Vi henter ut «nivået» fra LT1 over<br />
motstanden R2. Nivået vi får ut på skopet er fra 1-5V på grunn av at vi måler over<br />
motstanden.<br />
TIB<br />
Figur 3: Oppkobling ved måling av tankens sprangrespons<br />
OG<br />
5
Måling ved magnetventilenes sprangrespons<br />
For å lage en modell for magnetventilene <strong>og</strong> flowmåleren ser man hvordan<br />
utstrømningen fra tanken endrer seg i forhold til antall åpne ventiler. Det er da<br />
nødvendig å måle endringen tankens væskenivå samtidig med utgående signal fra<br />
flowmåler. Koblingene er vist Figur 4.<br />
BM<br />
Figur 4: Oppkobling ved måling av magnetventilenes sprangrespons<br />
OG<br />
6
Modellering<br />
Tank, reguleringsventil & nivåmåler<br />
Bakgrunn<br />
Vi har valgt å isolere tank <strong>og</strong> reguleringsventil for seg selv. Nivåmåleren har vi<br />
tilnærmet til en konstant, siden den relativ rask i forhold til resten av prosessen. I<br />
dette tilfelle vil det si at eventuelle tidskonstanter i nivåmåleren ikke vil utgjøre en<br />
vesentlig forskjell i simuleringa. For å finne overføringsfunksjonen til tank, ventil <strong>og</strong><br />
måleelement, har vi kjørt et sprang på reguleringsventilen fra 0-100 % uten utløp.<br />
TIB<br />
Målinger<br />
Prosessen i Figur 5 viser hvordan nivået endrer seg når vi kjører på ett sprang på<br />
reguleringsventilen fra 4-20mA. Det som vi oppnår med dette, er at vi får skilt ut<br />
tidsforsinkelsen. Vi ser når spranget kommer, <strong>og</strong> når tanken er på 100 % (5V).<br />
TIB<br />
Figur 5: Tankens sprangrespons<br />
7
Måleelement:<br />
Måleelementet omformer fra høyde(%) til V(1-5V). Blokken fra Simulink er vist under i<br />
Figur 9.<br />
Figur 9: Modell av måleelement<br />
TIB<br />
Resultat<br />
Simulert i Simulink:<br />
For å kontrollere at overføringsfunksjonen vi har regnet er rett, har vi laget<br />
blokkskjema, som vist i Figur 10.<br />
Har simulert modellen med pådrag 4V inn på reguleringsventilen, <strong>og</strong> får ut Figur 11<br />
på scoopet. Dette er likt i forhold til resultatet av Figur 5, <strong>og</strong> kan derfor si at vi har<br />
funnet en god modell for Reguleringsventilen <strong>og</strong> tanken.<br />
Figur 10: Blokkskjema for tank <strong>og</strong> reguleringsventil<br />
10
Målinger<br />
For hver ventiltilstand (1, 2, eller 3 åpne ventiler) ble det målt hvor mye<br />
gjennomstrømning som gikk ut av tanken. Gjennomstrømning ble målt ved å se på<br />
hvor raskt nivået sank i tanken. I tillegg ble det målt hvor mye<br />
gjennomstrømningsmåleren, FT1, gir ut ved hver ventiltilstand. Det er her forutsatt at<br />
alle ventilene er likt dimensjonert. Utløpet som funksjon av nivået i tanken er ikke<br />
lineært da gjennomstrømningen er en funksjon av kvadratroten av differansetrykket<br />
over ventilene. Dette differansetrykket endrer seg proporsjonalt med nivået i tanken.<br />
For å gjøre simulering <strong>og</strong> beregning enklere ble det utført målinger bare rundt<br />
arbeidspunktet til tanken <strong>og</strong> dermed beregnet som om det er lineært. Arbeidspunktet<br />
til tanken er gitt til et nivå på 60% av maks.<br />
Figur 12 viser målingene som ble gjort ved 2 ventiler åpne. Bildet viser nivået (Gul<br />
kurve) <strong>og</strong> signalet fra FT1 (Grønn kurve)<br />
Figur 12: Sprangrespons for åpning av 2 magnetventiler<br />
BM<br />
12
Flowmåler<br />
Bakgrunn<br />
Tanken har 3 magnetiske ventiler som styrer utløpet fra tanken, i tillegg til en manuell<br />
ventil som man i dette tilfelle ikke regnes med. Utløpet blir målt med en flowmåler,<br />
som gir et utslag mellom 0-5 V, hvor gyldig område ligger mellom 1-5 V, <strong>og</strong> 0-1 V<br />
ansees som feilmelding.<br />
Man har altså en måler som måler volumstrøm, <strong>og</strong> gir ut spenning. Denne<br />
spenningen vil så bli brukt for effektivt å kunne beregne en god<br />
foroverkoplingsregulator, <strong>og</strong> det er derfor viktig å ha en god modell av måleren.<br />
JSH<br />
Målinger<br />
For å se målingene fra flowmåleren målte man signalet som gikk inn på PLS’en sin<br />
AD-DA omformer. Fra omformeren sin andre kanal måltes samtidig nivået i tanken.<br />
Man hadde mål for volumet i tanken fra beregninger, som vist under kapittelet om<br />
magnetventilenes overføringsfunksjon, <strong>og</strong> kunne dermed approksimere utløpet ved å<br />
måle hvor mye tankens nivå endret seg over en viss periode med x antall<br />
magnetventiler aktive. Grunnet utløpets ulinearitet gjorde man små sprang rundt<br />
arbeidspunket på 60 %. Man leste <strong>og</strong>så av det flowmåleren viste i punktet 60 %, for å<br />
kunne ha en referanse på hva man ville ha ut fra flowmåleren relativt til antall aktive<br />
utløp.<br />
Figur 16: Sprang med 1 ventil åpen<br />
JSH<br />
18
Problemområder<br />
Under analysen av tanken møtte gruppen på noen problemer som gjorde det<br />
utfordrende å gjengi prosessen korrekt i en matematisk modell. I stor grad utgikk de<br />
fleste problemene fra en <strong>og</strong> samme kilde, nemlig at det, slik oppsettet av prosessen<br />
er per dags dato, var vanskelig å skille fra hverandre de fysiske egenskapene til<br />
selve tanken <strong>og</strong> reguleringsventilen som styrer dens innstrømning.<br />
Problemet ble i første omgang løst ved å ta sprangresponsene over både ventil <strong>og</strong><br />
sprang samtidig. Det resulterte i en overføringsfunksjon som inneholdt både en<br />
førsteordens prosess med tidsforsinkelse, samt et integratorledd. Teoretisk sett vil en<br />
tank som oftest være en ren integrator, <strong>og</strong> man kan i likhet tenke seg at en ventil godt<br />
kan gjengis som en førsteordens prosess med tidsforsinkelse. Det ble dermed mulig<br />
å tilkjenne de forskjellige delene av sprangresponsen til de to modulene.<br />
Beklageligvis forplantet denne avgjørelsen seg gjennom resten av modellen, som nå<br />
måtte ta hensyn til denne antagelsen. I første omgang møtte man på problemet om<br />
hvor utstrømningen skulle kobles inn i modellen. I en vanlig modell vil utstrømninger<br />
<strong>og</strong> innstrømninger adderes rett før selve tanken, <strong>og</strong> utsignalet fra tanken da være et<br />
godt mål på det nåværende volumet i tanken. Gruppen kom til enighet om at det ikke<br />
uten videre ville være naturlig å gjøre dette denne gangen, men at man måtte ta<br />
hensyn til utstrømning utenfor den sammenkoblede modellen for tank <strong>og</strong> ventil. Det<br />
igjen førte til at man måtte legge til en integrator for innstrømningen før man kan<br />
legge den til prosessignalet etter tankens overføringsfunksjon.<br />
Denne fremgangsmetoden gjør at modellen ikke er skjematisk lik den reelle<br />
prosessen, men gruppen kom frem til at det allikevel var den beste måten å<br />
presentere den på uten å måtte ta antagelser om tanken <strong>og</strong> ventilen man ikke kunne<br />
stå til gode for.<br />
JSH<br />
21
Regulering<br />
PI-regulator<br />
Figur 17: Blokkskjema for prosess med PI-regulator<br />
Bakgrunn<br />
I arbeidsnotatet er formålet å komme frem til best mulig regulatorinnstillinger for<br />
systemet. Vi har konstruert en PI-regulator, som vist i Figur 18.<br />
Regulatorblokken:<br />
Figur 18: Blokkskjema for PI-regulator<br />
Det er satt inn anti-windup på integratoren for å kunne sette grenser på maks/min<br />
pådrag fra I-delen. Setter <strong>og</strong>så metningsgrense etter regulatoren for at pådraget ikke<br />
skal overstige maks pådrag.<br />
TIB<br />
22
Måling<br />
For å finne innstillinger for regulatoren, har vi brukt manuell selvjustering som<br />
fremgangsmåte. Regulatoren stilles inn med veldig høy P-forsterkning <strong>og</strong><br />
integratordelen utkoblet, slik at pådraget i dette tilfelle svinger mellom 0 % -100 %.<br />
100<br />
90<br />
80<br />
70<br />
60<br />
50<br />
40<br />
30<br />
20<br />
10<br />
0<br />
Figur 19: Prosessverdi <strong>og</strong> pådrag ved høy Kp-verdi<br />
Referansen er stilt inn på 60 %. Grunnen til at regulatoren ikke greier å svinge rundt<br />
60 %, er at utløpet er lite i forhold til pådraget. Regulatoren vil kunne motvirke positivt<br />
avvik raskere enn negativt avvik. På grunn av tidsforsinkelse for pådraget, vil<br />
regulatoren sent merke at nivået er høyere enn referansen.<br />
TIB<br />
Prosessverdi Pådrag<br />
Tk<br />
180 200 220 240 260<br />
Tid [sekunder]<br />
280 300 320 340<br />
23
Resultat<br />
I følge oppgaven skulle vi stille inn regulatoren etter minimum areal, som vil si 4-6<br />
halvperioder, samtidig som den skal stille seg inn på ±2 % av referansen raskest<br />
mulig.<br />
For at nivået skal svinge seg inn etter minimum areal, har vi funnet nye<br />
regulatorinnstillinger hvor:<br />
Kp= 2.7<br />
Ti= 35<br />
80<br />
75<br />
70<br />
65<br />
60<br />
55<br />
50<br />
Figur 21: Innsvingning ved bruk av finjusterte regulatorparametere<br />
TIB<br />
Nye regulatorinnstillinger<br />
240 260 280 300 320<br />
Tid [sekunder]<br />
340 360 380 400<br />
±2%<br />
25
PI-regulator med PD-regulert foroverkobling<br />
Bakgrunn<br />
I prosjektet behandles en prosess som i hovedsak kan sees på som relativt treg. Den<br />
er i tillegg utsatt for variable forstyrrelser i form av at utløpet kan endres relativt<br />
drastisk. En vanlig reguleringssløyfe vil dermed få vanskeligheter med å effektivt<br />
motvirke endringer i forstyrrelsen, <strong>og</strong> prosessen vil bruke relativt lang tid på å stille<br />
seg inn igjen. For å motvirke dette, tilsier spesifikasjonene til prosjektet at sløyfen<br />
skal inneholde en foroverkoplingsregulator, som er en metode for nettopp å motvirke<br />
endringer i en forstyrrelse. Håpet er at denne regulatoren vil føre til en raskere<br />
regulering, <strong>og</strong> bedre stabilitet for sløyfen som helhet.<br />
Figur 22: Blokkskjema for prosessen med foroverkopling<br />
JSH<br />
Beregning<br />
Tanken bak en ideell foroverkopling er å gi foroverkoplingsregulatoren en<br />
overføringsfunksjon som gjør at utsignalet fra prosessen ikke er påvirket av<br />
forstyrrelsen. Denne er ikke alltid fysisk realiserbar, men brukes ofte til å gi en<br />
pekepinn på hvordan regulatoren kan gjennomføres.<br />
26
Resultat<br />
Gruppen har funnet frem til en modell som tilsynelatende er en god representasjon<br />
for den reelle prosessen. Denne modellen er brukt til simuleringer ved hjelp av<br />
pr<strong>og</strong>rammet Simulink <strong>og</strong> det er funnet tilfredsstillende verdier for<br />
regulatorparameterene.<br />
PI-regulatorens beste verdier er Kp = 2,7 <strong>og</strong> Ti = 35.<br />
PD-regulatorens beste verdier er Kp = 0,15, Td = 20, n = 10<br />
Det er gitt krav om at nivået i tanken skal reguleres stabilt <strong>og</strong> raskest mulig ved<br />
eventuelle sprang i utløpet. Hurtigheten er definert som tiden det tar før prosessens<br />
avvik er stabilt innenfor 2 % av maksimalt måleområde.<br />
Ved hjelp av foroverkobling blir krav som er stilt til hurtighet <strong>og</strong> stabilitet i tankens<br />
nivå oppfylt tilfredsstillende ved de foreslåtte regulatorparameterene under<br />
simulering.<br />
BM; JSH<br />
29
Litteraturliste<br />
DE Seborg, TF Edgar, DA Mellichamp, FJ Doyle III, Process Dynamics and Control,<br />
3d edn, John Wiley & Sons (Asia) Pte Ltd, China, 2011<br />
K Bjørvik & P Hveem, Reguleringsteknikk, Kybernetes Forlag, Trondheim, 2012<br />
P Hveem & AS, Tips til prosjekt i <strong>Styresystemer</strong> våren 2012, lastet ned 20.3.2013,<br />
https://www.itslearning.com/file/download.aspx?FileID=2371492&FileVersionID=-1<br />
(Begrenset tilgang)<br />
30