MINIPROSJEKTRAPPORT PROSJEKT I STYRESYSTEMER GRUPPE 1 Høgskolen i Sør-Trøndelag 2015 Prosjekt i styresystemer 2015 Gruppe 1 Sammendrag (Skrevet av ØE, AA og EB) Miniprosjektet er et delprosjekt, hvor målet er å etablere kommunikasjon på PLS-riggen og å teste denne. Vi har satt opp Profibus kommunikasjon slik at master PLSen kan kommunisere med to slave PLSer. Master PLSen kommuniserer videre med en OPC-server, InTouch HMI-grensesnitt og operatørpanel via Ethernet. Det var gitt i prosjektoppgaven hvilke funksjoner som skulle brukes og testes. Lesing og skriving av både digitale og analoge inn- og utganger, samt direkte fra operatørpanelet til HMI-grensesnittet. Flere av funksjonene og programmene som ble brukt har vi måttet bruke god tid på å finne ut hvordan de fungerte. Presentasjon av miniprosjektet ble godkjent av veileder, Pål Gisvold, Onsdag 18.03.15. Denne rapporten skal gi en person, uten detaljkunnskap innen faget, innsyn nok i prosjektet til å forstå innholdet. Prosjekt i styresystemer 2015 Gruppe 1 Forord (Skrevet av ØE) Miniprosjektet har vært en god start på selve hovedprosjektet i emnet Styresystemer og Reguleringsteknikk. Alle fem på gruppa har jobbet jevnt og godt, og det har vært en bra tone innad i gruppa. Vi har løst utfordringer ved å benytte oss av hverandres forskjellige kompetanse. Vi har valgt å la de som har minst erfaring innen de forskjellige delene av miniprosjektet, få jobbe med akkurat disse. Læringskurven har derfor vært bratt, og vi føler det har gitt best utbytte til hver av prosjektdeltakerne. Vi vil takke vår veileder, Pål Gisvold, for konstruktive tilbakemeldinger underveis. Prosjekt i styresystemer 2015 Gruppe 1 Innholdsfortegnelse 1.0 Innledning .......................................................................................................................................... 1 1.1 Bakgrunn ....................................................................................................................................... 1 1.2 Forkortelser og definisjoner .......................................................................................................... 1 1.2.1 Forkortelser ............................................................................................................................ 1 1.2.2 Definisjoner ............................................................................................................................ 2 1.3 Utstyr ............................................................................................................................................. 3 1.4 Software ........................................................................................................................................ 3 2.0 Teknisk del ......................................................................................................................................... 4 2.1 Problemstilling ............................................................................................................................... 4 2.2 Prosessbeskrivelse ......................................................................................................................... 5 2.2.1 Flytskjema............................................................................................................................... 5 2.2.2 Bilder av systemet .................................................................................................................. 6 2.3 Delprosjektmål .............................................................................................................................. 8 2.4 Kommunikasjon ............................................................................................................................. 9 2.4.1 Skisse kommunikasjon............................................................................................................ 9 2.4.2 Oppsett Ethernet og WAN/WiFi ........................................................................................... 10 2.4.3 Oppsett Ethernet mot Master Q00 PLS ................................................................................ 10 2.4.4 Oppsett Profibus-DP ............................................................................................................. 17 2.4.5 iX TA100 Operatørpanel ....................................................................................................... 19 2.4.6 Oppsett av Beijer OPC server ............................................................................................... 22 2.5 PLS- og HMI-programmering ....................................................................................................... 24 2.5.1 PLS-program ......................................................................................................................... 24 2.5.2. HMI-program ....................................................................................................................... 29 2.6 Test av kommunikasjon og brukergrensesnitt ............................................................................ 35 3.0 Prosjektgjennomføring .................................................................................................................... 37 3.1 Prosjektdeltakere ........................................................................................................................ 37 3.1.1 Prosjektgruppe ..................................................................................................................... 37 3.1.2 Veileder ................................................................................................................................ 38 3.2 Prosjektprogresjon ...................................................................................................................... 39 3.3 Tidsfrister..................................................................................................................................... 39 Prosjekt i styresystemer 2015 Gruppe 1 4.0 Vedlegg .............................................................................................................................................. 1 4.1 PLS-programkode .......................................................................................................................... 1 4.1.1 Master-PLS – Mitsubishi Q00 ................................................................................................. 1 4.1.2 Slave 1 – FX1N ........................................................................................................................ 4 4.1.3 Slave 2 – FX1N ........................................................................................................................ 7 4.2 HMI-bilder ................................................................................................................................... 11 4.2.1 InTouch ................................................................................................................................. 11 4.2.2 iX Touchpanel ....................................................................................................................... 12 Prosjekt i styresystemer 2015 Gruppe 1 1.0 Innledning 1.1 Bakgrunn (Skrevet av ØE) Det har blitt en tradisjon at studenter i 4. semester ved Elektro- og datateknikk, med valgt spesialisering automatisering, kjører et prosjekt i faget Styresystemer og reguleringsteknikk. I dette prosjektet skal vi prøve ut teorien vi har lært tidligere i semesteret i praksis. Prosjektet omhandler alle de tre hoveddelene i faget, reguleringsteknikk, sanntids-datateknikk og PLS-/HMI-programmering. Prosjektet teller 40% av karakteren i faget Styresystemer og reguleringsteknikk. Klassen er delt inn i seks prosjektgrupper, som igjen består av fem eller seks studenter. Miniprosjektet er et delprosjekt av selve hovedprosjektet. Her skal gruppene opprette og teste kommunikasjon på PLS-riggen. 1.2 Forkortelser og definisjoner (Skrevet av MB) 1.2.1 Forkortelser HiST OPC PC PLS HMI PID AD DA mA V Kp Ti Td HTML WAN Høgskolen i Sør-Trøndelag Object Linking and Embedding for Process Control. Personal computer Programmerbar logisk styring Human-Machine-Interface Proporsjonal-, Integral- og Derivat-regulator Analog til digital Digital til analog Milliampere Volt Forsterkning Integrasjonstid Derivasjonstid HyperText Markup Language Wide Area Network – Skolens nettverk i vårt tilfelle Side 1 av 39 Prosjekt i styresystemer 2015 Gruppe 1 1.2.2 Definisjoner HMI BUS Profibus-DP It’sLearning InTouch MatLab IEC HTML PID-regulator Brukergrensesnitt for skriving og lesing til prosessen. Kommunikasjonssystem for overføring av data. Feltbuss kommunikasjonsstandard brukt innen automatikk Nettportal som brukes av HiST hvor studenter og lærere kan dele informasjon. Verktøy for programmering av HMI. Matematisk verktøy for PC. International standards and conformity. Programmeringsspråk som kan brukes for å kode hjemmesider. P-regulator: Sørger for å endre pådraget proporsjonalt med avviket. PI-regulator: I-delen (integratordelen) har i oppgave å gjøre det stasjonære avviket lik null. PD-Regulator: D-delen (derivatdelen) har i oppgave å redusere det dynamiske avviket. Den gir ingen bidrag til stasjonært avvik. Stasjonært avvik Dynamisk avvik Innsvingningsforløp Forskjellen mellom referanse og måling ved stabilt system. Det største avviket fra referansen i et innsvingningsforløp. Karakteristikk på prosessverdiens forløp før systemet er stabilt. Vi opererer hovedsakelig med tre typer innsvingningsforløp: Minimum forstyrrelse, minimum areal eller minimum amplitude. Referanse Satt verdi av operatør på regulator som vi ønsker prosessverdien skal følge. Reguleringsstrategi for å motvirke forstyrrelser i prosessregulering. Foroverkobling Side 2 av 39 Prosjekt i styresystemer 2015 Gruppe 1 1.3 Utstyr (Skrevet av ØE og MB) Utstyr: Mitsubishi FX1N PLS Mitsubishi Q00CPU Mitsubishi Q61P-A2 Powersupply modul Mitsubishi QJ71PB92D Ethernet modul Mitsubishi QJ71E71-100 Profibus modul DLink AirPlus G+ Router Mitsubishi FX0N-3A AD/DA modul Mitsubishi FX0N-32NT-DP Profibus modul Beijer iX Panel TA100 Beijer OPC server PC med InTouch software Antall: 2 stk. 1 stk. 1 stk. 1 stk. 1 stk. 1 stk. 2 stk. 2 stk. 1 stk. 1 stk. 1 stk. 1.4 Software (Skrevet av ØE) Software navn: Wonderware InTouch GX Works 2 iX Developer GX Configurator-DP GX IEC Developer Benyttet til: HMI interface PLS programmering iX touchpanel programmering Oppsett Profibus-DP Oppsett Ethernet PLS Hjemmeside: www.invensys.com www.beijer.no www.beijer.no www.beijer.no www.beijer.no Side 3 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.0 Teknisk del 2.1 Problemstilling (Skrevet av ØE) I miniprosjektet skal vi konfigurere kommunikasjon mellom de forskjellige enhetene og teste denne slik at alt fungerer før vi begynner på entank delen av prosjektet. Det skal brukes Ethernet til å kommunisere mellom PC med HMI-grensesnitt, Master PLS, iX TA100 Touchpanel og skolens nettverk. I tillegg skal det benyttes WiFi til å kommunisere trådløst mot andre PC’er. Til all denne kommunikasjonen skal det benyttes en router. Oppsett av alle enhetene, med unntak av routeren skal gjøres som en del av miniprosjektet. Routeren er satt opp til å fungere mot skolens nettverk fra før. Master PLS’en skal kommunisere med to slave PLS’er via Profibus-DP. Dette er en standard feltbuss kommunikasjonsstandard. Profibus-modulene i alle tre PLS’ene skal settes opp i prosjektet. For å hente og skrive data til og fra master PLS’en fra operatør panelet eller PC’en må det benyttes en OPC server som mellom-tjener. Her skal det benyttes programvare fra Beijer. Denne må settes opp på en dedikert PC med tilhørende lisens. Gruppe 1 (og gruppe 2) skal benytte PC S03921 som står på LAB’en. For å teste at kommunikasjonen mellom alle enhetene fungerer skal det lages et program som tester alle enhetene og funksjonene. Minimum som skal testes vises av figuren under. (Bildet er hentet fra oppgaveteksten) Side 4 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.2 Prosessbeskrivelse 2.2.1 Flytskjema (Laget av AA) Side 5 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.2.2 Bilder av systemet (Tatt av EB) PLS-rigg Side 6 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Tankrigg Tankrigg bakside Side 7 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.3 Delprosjektmål (Skrevet av ØE) Sette opp Ethernet kommunikasjon slik at Q-PLS (master) kommuniserer med PC/Server og iX panel Sette opp Profibus-DP kommunikasjon mellom Q-PLS (master) og de to FX-PLSene (slave 1 og slave 2) Programmere PLSene slik at de kan hente ut og sende data fra bufferminnet til Profibusmodulen. Programmere PLSene slik at data som sendes fra master PLS slår av og på utganger i hver slave PLS. Programmere PLSene slik at data som sendes til DA utgang blir les av AD inngangen. Sette opp OPC server slik at verdiene fra Q-PLS kan leses av InTouch. Programmere InTouch slik at verdiene fra Q-PLSen kan leses og skrives i det grafiske bildet. Programmere iX TA-100 touchpanelet slik at verdiene fra Q-PLSen kan leses og skrives i det grafiske bildet. Teste alle funksjoner i henhold til prosjektoppgaven. Skrive og levere rapport på miniprosjektet inne gitt frist. Side 8 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4 Kommunikasjon 2.4.1 Skisse kommunikasjon Side 9 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.2 Oppsett Ethernet og WAN/WiFi (Skrevet av ØE) Routeren i riggen er satt opp på forhånd slik at den skal fungere mot skolens nett. Ved å koble inngangen på routeren merket WAN til et nettverkspunkt på skolens nett skal PCen få Internett og samtidig ha kontakt med PLSen og touchpanelet. Oppsettet fungerte med engang vi koblet det i skolens nett. Trådløs kommunikasjon (WiFi) med routeren måtte settes opp på nytt, da passordet for å logge seg på var ukjent. Vi fikk koblet oss på routeren via IP-adressen, og default brukernavn og passord. 2.4.3 Oppsett Ethernet mot Master Q00 PLS (Skrevet av TM og ØE) Målet med denne bolken av miniprosjektet er å opprette en ethernetforbindelse mellom Q-PLS og PC via ethernet-modulen. Når forbindelse er opprettet vil vi ha mulighet til å ta i bruk InTouch på PC, og at vi i tillegg kan sende nye, eller oppdaterte program til PLS uten å være avhengig av seriellkabel. Oversikt over IP-adressene i riggen Komponent Router Master PLS PC S03921 TA100 iX Panel IP-adresse 192.168.1.1 192.168.1.103 192.168.1.101 192.168.1.104 Side 10 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.3.1 Oppsett av forbindelse med seriellkabel Før vi får opprettet en ethernet-forbindelse med ethernetmodulen må vi konfigurere den ved å bruke seriellkabel. Når vi trykker på Connection Destination i sidemenyen nede til venstre, og dobbelklikk på Connection under Current Connection. Da kommer denne ruten opp: Når vi dobbeltklikker på Serial USB-ikonet, og deretter PLC module-ikonet, kommer disse vinduene opp, vi fylte de ut i henhold til beskrivelsen. Når dette er gjort skal forbindelsen med seriekabelen være oppe. Vi ønsker å gi Q-PLSen IP-adressen: 192.168.1.103, og nå som vi har mulighet til å konfigurere ethernetmodulen settes den ved å følge stegene på neste side. Side 11 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.3.2 Oppsett av Ethernetmodul Ved å trykke på Project-knappen nederst til venstre i hovedvinduet til GX-works, og deretter utivder Parameter, så Network Parameter og dobbelklikk på Ethernet/CC IE/ME, kommer vi inn på vinduet vist under. Operation Setting kommer vi innpå ved å dobbeltklikke på Operation setting-knappen med den røde skriften vist i bildet over. Her setter vi den IP-adressen vi ønsker, som i vårt tilfelle var 192.168.1.103. Side 12 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Dobbeltklikker vi nå på PLC Parameters i menyen til venstre, og velger I/O assignment-fanen skal en tom utgave av bildet under komme opp. Etter å ha trykket på Read PLC data vil den lese fra PLSen og fylle ut feltene selv, så lenge forbindelsen med seriekabelen er i drift. Side 13 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.3.3 Kommunikasjon direkte med Master-PLS via ethernet-modulen Tilbake i Transfer Setup-vinduet via Connection Destination og Current Connection. Dobbeltklikker vi på Ethernet board-ikonet. Vi vil bruke UDP-protokollen, ikke TCP som står der fra før Forskjellen på UDP og TCP i korte trekk er at UDP er raskere enn TCP, men du har ikke den samme garantien for at pakkene kommer fram. Side 14 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Etter protokollen er ordnet dobbeltklikker vi på Ethernet module-knappen og fyller ut det som vist på bildet under. I tillegg må du velge Other station (Single network) ikonet fra Other station rekka. Til slutt velger vi Ethernet fra Network route. Nå skal det bare være å trykke Connection test-knappen for å se om vi har forbindelse, og om forbindelsen er oppe og går vil denne bekreftelsen komme opp ganske raskt: Side 15 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.3.4 Feilsøking Om du ikke får oppdatert IP-adressen på PLS, er det første du bør gjøre å gå over ethernetkabelen som går fra modulen og til datamaskinen. Er kablene i orden og fremdeles ikke får respons fra PLS når du pinger den, må du kjøre hard reset. Hard reset gjøres ved å holde bryteren i den grønne sirkelen til venstre i 5 sekunder, for å så sette PLS tilbake i Run etterpå. Dette problemet var noe vi brukte noen timer på å finne ut. Vi fikk ikke oppdatert IP-adressen som lå på PLS fra før. Vi fikk feilmelding under Connection testen, og vi fikk ikke respons da vi pinget den. Etter noen timer med stanging kjørte vi hard reset og fikk det til. Som første gruppe på vår rig, sparte vi derfor den andre gruppen for en god del hodebry. Side 16 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.4 Oppsett Profibus-DP (Skrevet av AA) Profibus DP, Process Field Bus Decentralized Peripherals, er en industriell bus som brukes som kommunikasjon mellom Master enheter og slaver. Som navnet antyder, brukes dette til å spre nodene ut i anlegget slik at man kun trenger å trekke en Bus kabel mellom nodene. En Master vil normalt være en PLS, og en slave vil normalt være en annen PLS, frekvensomformer, motorstarter, instrument, eller et operatørpanel. Man kan da tilkoble instrumenter og utstyr lokalt. Dette vil ofte være økonomisk. Man kommuniserer normalt ikke mellom to mastere med Profibus DP. Man kan tilkoble 32 enheter på Bus`en. Profibus kabelen kjennetegnes ved at den er farget Lilla. 2.4.4.1 Master Q00 PLS (Skrevet av AA) For å sette opp utstyret slik at komponentene vet hvem de skal kommunisere med, og hvordan, bruker man programvaren GX Configurator DP. Her setter man node adressen til masteren, og forteller hvilke komponenter som er tilkoblet Profibus DP nettverket. Profibus DP kommunikasjonsenheten er montert som en spesialmodul på Mitsubishi Q PLS`en. Slike spesialmoduler kommuniserer ved hjelp av bufferminner. Vi konfigurerer masteren slik at den vet hvilke bufferminneadresser den skal bruke for å nå de forskjellige slavene. Etter at man har konfigurert utstyret i Configuratoren, genererer man et hjelpeprogram som man skal laste inn i master PLS`en. Dette førte til litt problemer for oss, da den versjonen av GX Works vi skulle bruke ikke støttet filformatet. Vi måtte da gå via GX Developer. På samme måte må man bruke bufferminner i slavene. Dette må gjøres for hver sending og mottak, da det ikke er noe automatisk generering av dette i slavene. Side 17 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Med dette oppsettet har vi muligheten til å skrive 16 ord fra masteren til hver slave, og 16 ord fra hver slave til masteren. Et analogt signal vi oppta ett ord, mens for digitale har vi kapasitet til 16 bit pr ord. I 2015 er dette veldig lite, men for dette prosjektet er det mer enn nok. Master PLS`en vil i vårt miniprosjekt kun fungere som ett grensesnitt mellom ProfiBus DP og Ethernet. Det vil ikke ligge noe annen logikk i master enn ren kommunikasjon. 2.4.4.2 Slave 1 og Slave 2 FX1n-40MR (Skrevet av EB og AA) All programkode for slave 1 og slave 2 er lik, derfor forklarer vi kun koden for slave 1. Forskjellen er bare at slavene henter data fra hver sine bufferminner på Profibus. Slave 2 får adresse 20 på bussen. Slave 1 henter data fra bufferminner på Profibus som er sendt fra master. For at slaven skal kunne kommunisere med Profibus må den få en adresse. Det gjøres ved å skrive adressen for slaven til et bestemt bufferminne, BFM#27, på Profibus ved hjelp av TO-blokka. Side 18 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.5 iX TA100 Operatørpanel 2.4.5.1 Bruk av Operatørpanel (Skrevet av AA) I en prosess som skal styres, så ønsker man ofte å ha muligheten til å endre på settpunkt eller andre driftsparameter. Dette kan gjøre på flere måter. Man kan enten bruke knapper og potensiometer som er direkte tilkoblet styringsorganet, eller man kan bruke ett grafisk grensesnitt på en PC eller et operatørpanel. Et system som kjøres på en PC har store muligheter for å presentere informasjon, logging og endring av mange innstillinger. Man må som regel litt opp i størrelse på systemene før man bruker ett PC basert system. Dette kommer mye av at Runtime lisenser er ganske kostbare, samt at timer faktureres høyt ved arbeid/produksjon på slike skjermbilder. I alle tilfeller der det brukes PC baserte operatørsystemer bør det være med ett operatørpanel. Dette er mye på grunn av at PC-er har en tendens til å stoppe, eller få andre driftsproblemer. Et industrielt operatørpanel har høy oppetid, og bryter sjelden sammen. Man må sikre seg at kontrollen over anlegget til enhver tid er ivaretatt. De er også raske til å starte opp etter at de har vært strømløse. De er som regel i industriell utførelse, normalt fra IP44 til IP66. Det gjør at et operatørpanel kan plasseres der det er mest hensiktsmessig i forhold til maskiner og operatører. Dette bør koordineres med operatørene, da det er de som best vet hvor de ønsker å betjene utstyret. Når man designer bilder på ett operatørpanel er det noen momenter man bør passe på. Bildene bør inneholde den informasjonen som trengs, men ikke for mye. Har man for mye informasjon på bildene, så kan det føre til at man går glipp av det som er viktig. Helst bør det være ett hovedbilde som gir deg ett overblikk over situasjonen. Dette bør være det bildet som vises når man ikke er inne i «undermenyen» for å se på, eller gjøre endringer i spesifikke deler av prosessen. Bildene bør lages slik at man raskt får skaffet seg ett overblikk over den viktigste informasjonen. Hold detaljnivået nede. Mer spesifikk informasjon bør plasseres i undermenyer, eller i et eventuelt PC basert system som lettere kan presentere store mengder informasjon. Bruk av fargeeffekter bør tenkes nøye gjennom. Her kan man gjerne bruke gråtoner, grønn for drift, og rød bør alltid være forbeholdt feil og alarmer. Side 19 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Testbilde for Miniprosjektet Side 20 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.4.5.2 Tagger (Skrevet av AA) iX Developer er programvaren som brukes til å skape et prosjekt i operatørpanelet TA-100. Når man oppretter ett prosjekt må man først bestemme hvilket panel som skal brukes. Deretter bestemmes IP adressen. Man bør ha tenkt gjennom hva som skal representeres på de forskjellige bildene før man starter designet. Hvilke objekter som skal brukes bør også bestemmes. Dette for at man skal kunne lage en komplett TAG-liste før man starter. En Tag er navnet på den variabelen som panelet bruker for å skille de forskjellige objektene fra hverandre. Her er det greit å bruke logiske navn, som gjerne er lik tag-navnet fra flytskjemaet. Hver Tag må ha sin Controller. Dette er kan være en PLS eller andre skjermsystemer. Selve operatørpanelet kan ha flere Controllere, men en Tag kan kun ha en Controller. Hva som er en tag`s Controller defineres ved å gi den en IP-adresse. I dette prosjektet trenger vi ikke å gå via en OPCserver når vi bruker OP-panel. Dette er normal, da panelet kommuniserer direkte med sin master, i vårt tilfelle Q-pls. Tag`er kan være enten en inngang, en utgang, eller begge deler. En Tag kan grovt deles opp i to typer variabler; Den ene er Boolsk, digital. Dette er typisk knapper for start/stopp, øke/minke og lamper som indikerer drift, feil, alarm, etc. Her jobber man normalt med «Bit». Den andre er analoge Tag`er. Disse er typisk indikatorer og målere når de er innganger, og settpunkt når de er utganger. Her kan man bruke flere datatyper avhengig av hvilken oppløsning man ønsker, og om man har behov for negative verdier. Eksempel på Tag-liste. Side 21 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Innganger til iX panel For ett digitalt objekt har man mange muligheter i iX Developer. Man kan bestemme hva som skal skje med objektet på skjermen dersom en tag skifter status. Eksempler på dette kan være skifte av farge, størrelse, synlighet og plassering. For analoge objekter vil vi tilsvarende kunne gi andre egenskaper. Dette kan være ny tallverdi, pil endrer retning i en skala og nivå kan animeres opp eller ned. Utganger fra iX panel Fra iX panelet har vi også mange muligheter. Vi kan endre statusen til digitale bit for å starte eller stoppe utstyr. Analogt kan vi skrive nye verdier for settpunkt, hastighet og generelle parameter. 2.4.6 Oppsett av Beijer OPC server (Skrevet av MB) OPC gjør kommunikasjonen mellom produkter fra forskjellige produsenter mulig. En OPC server ble derfor satt opp for å muliggjøre kommunikasjon mellom Mitsubishi master-PLS og brukergrensesnittet som ble laget i Wonderware Intouch. Det er viktig at PLS-programmet er overført til PLS’en, og at GX Works er lukket før man setter opp OPC serveren første gang. Det første vi gjør etter vi har åpnet OPC serveren er å konfigurere den for vår master-PLS som er en Mitsubishi Q-E71. Vi velger merke og serie og skriver inn PLS’en sin IP-adresse. Nå vet OPC serveren hvilken adresse den skal kommunisere med på ethernettet. I master-PLS’en brukes bit- og ordadresser for å overføre informasjon til og fra både slaver og brukergrensesnittene. I OPC serveren definerer vi alle de brukte adressene som tagger. Vi spesifiserer også hva slags type adresse den skal prate med enten det er en bitadresse, for eksempel en minnecelle, eller en ordadresse, for eksempel et dataregister. Nå vet serveren hvilke adresser den skal kommunisere med i selve PLS’en. Taggene får samme verdi i OPC som i PLS’en, og disse endres ettersom verdiene endres i PLS. Side 22 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Det er mulig å lage grupper og undergrupper som taggene kan legges i for å holde bedre oversikt. Vi valgte å lage en gruppe for hver slave, og legge taggene som sender og mottar data fra slavene i sine respektive grupper. Dette blir spesielt viktig å gjøre videre i prosjektet når vi vil få mange flere tagger. Når vi er ferdig med å opprette alle taggene vi trenger startes OPC serveren. Den har nå forbindelse til PLS’en og vi kan monitorere verdiene til alle adressene som vi har definert i serveren. Vi kan også monitorere statusen på forbindelsen mellom server og PLS. Så lenge serveren er oppe og går kan vi ikke endre de taggene vi allerede har opprettet, men vi kan opprette nye tagger og grupper. OPC serveren er nå oppe og går, og klar til bruk. Vinduet må ikke lukkes så lenge vi skal ha kommunikasjon mellom utstyret. I tillegg til en OPC server trenger vi en OPC klient som er forbindelse fra utstyret inn til serveren. Klienten som oversetter data inn fra/ut til PLS’en er innebygd i OPC serveren. OPC klienten som forbinder OPC server og Intouch heter Wonderware OPC Link og følger med Intouch. OPC Serveren er oppe og går, og satt i monitorering Når man åpner OPC Link må man opprette en konfigurasjonsfil hvor de satte innstillingene lagres. Dette fordi Intouch skal kunne åpne OPC Link automatisk når man åpner prosjektet. Etter man har opprettet filen definerer man hva OPC serveren heter som Intouch skal ha forbindelse med. I vårt tilfelle «Beijer.Electronics.OPC.Server». I tillegg definerer vi hva PLS’en heter. Dette gjøres fordi man i InTouch gjerne styrer mange forskjellige PLS’er. Nå har vi kommunikasjon mellom Intouch og server, og videre til master-PLS. Side 23 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.5 PLS- og HMI-programmering 2.5.1 PLS-program (Skrevet av EB) Både master- og slave-PLSene er programmert i GX Works 2 i funksjonsblokkdiagram (FBD). Vår oppgave i miniprosjektet var å kunne sette en utgang høy/lav på slave 1 og slave 2, lese av status på utgangene og skrive og lese verdier fra AD/DA-omformer på slavene via inTouch på pc, eller via operatørpanel. For å holde oversikt over hvilke minneceller og dataregistere som er tildelt hva, har vi laget en liste i «Global Lable». Da kan vi referere til de respektive navnene slik at programmet blir mer forståelig, og vi har oversikt over hva som er brukt. For å forstå programmet må man ha noe kjennskap til de spesielle blokkene som blir brukt. MOV-blokka MOV-blokka brukes til å kopiere data fra en plass til en annen. Den kan for eksempel kopiere data fra et dataregister over til et sett med minneceller. Da skrives dataregisteres på s-inngangen til blokka. På utgangen d kan man for eksempel skrive «K4M100». Da legges de 16-bits dataene fra dataregisteres over i 16 minneceller fra og med M100-M115. K4 betyr 4 kvartiler. Side 24 av 39 Prosjekt i styresystemer 2015 Gruppe 1 TO- og FROM-blokkene TO-blokka brukes for å skrive data til et bufferminne på Profibus. «s» angir hvilke data som skal sendes, n1 forteller hvilket slotnummer enheten som skal motta dataene har, n2 forteller hvilket bufferminne (BFM#) datene skal sendes på og n3 forteller hvor mange 16-bits ord som skal sendes. FROM-blokka brukes til å lese data fra et bufferminne på Profibus. n1 angir slotnummeret for enheten dataene skal leses fra, n2 angir BFM# og n3 forteller hvor mange 16-bits ord som skal leses. Utgangen d angir hvor dataene skal leses til, for eksempel et dataregister eller et sett minneceller. I master er det programmert et skript for å sende dataregisterne D100-D115 og D200-D215 til henholdsvis slave 1 og slave 2, og lese dataregisterne D120-135 og D220-D235 fra slave 1 og slave 2 over Profibus. Det trengs derfor ingen programbit i hovedprogrammet for master for å kunne skrive og lese data til og fra profibus. InTouch og operatørpanelet trenger bare å sende dataene, for eksempel digitale data til AD/DA-omformeren nede i slaven, til de respektive adressene, så vil disse sendes videre ned til slavene. Vi har valgt å benytte oss av funksjonsblokker for å gjøre programmet oversiktlig og for enkelt feilsøking. Vi gjør også programmeringsarbeidet lettere for oss selv da vi kan bruke funksjonsblokkene flere ganger, uten å måtte lage helt ny programkode. Noen plasser hadde det dog vært enklere for oss å ikke hatt egne funksjonsblokker der hvor det kun er enkle operasjoner som foretas. Grunnen til at vi har funksjonsblokker for enkle operasjoner, er fordi vi i utgangspunktet hadde en mer avansert kode, men som senere viste seg å være overflødig. Side 25 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Programkode for master Denne delen av programmet sender beskjed til slave 1 om å sette eller resette utgang Y0, og status for utgang Y0 leses tilbake fra slave 1 og opp i master. Master_WRITE er en funksjonsblokk som sender enten 0 eller 1 til dataregister D100. Master_READblokka leser enten 0 eller 1 fra D120 som gir oss status på utgangen Y0. Detaljert programkode for funksjonsblokkene ligger som vedlegg. Programkoden for å sette utgang Y0 på slave 2 er den samme, med en forskjell, at D200 brukes til å sette/resette utgangen og D220 brukes til å lese av status. Side 26 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Kommunikasjonsstatus for Profibus For å holde kontroll på om kommunikasjonen mellom master og Profibus er ok, henter vi ut et bestemt bit på bufferminne 21, herav BFM#21. Bit nummer 12 i BFM#21 gir oss 1 hvis kommunikasjonen er oppe, 0 når den er nede. Dette gjøres med FROM-blokka. Statussjekk kommunikasjon Profibus. Skrive og lese til og fra Profibus Under er programdelen for å lese fra og skrive til de forksjellige bufferminnene på Profibus. Funksjonsblokka BUFFER_READ_1 inneholder FROM-blokker som leser fra bufferminne og legger dataene, sendt fra master, i dataregisterene D21 og D0. WRITE_BUFFER_1-blokka inneholder TOblokker som skriver data fra D23 og D10 til bufferminner på Profibus som sendes opp til master. Side 27 av 39 Prosjekt i styresystemer 2015 Gruppe 1 AD/DA-omformer Denne programdelen skriver digitale verdier sendt fra inTouch (PC) eller operatørpanelet ut til AD/DA-omformeren som er koblet til slave PLS 1, og leser analoge verdier som gjøres digitale og legges i dataregistere inne i PLSen. Del 1: DA-omforming. Den første TO-blokka legger digitale data som skal sendes ut analogt fra omformeren til bufferminne 16 på AD/DA-omformeren. Den andre blokka starter omformingen av signalet fra digitalt til analogt signal til BFM#17. BFM#17 styrer hvilken operasjon som skal foretas av omformeren. Den siste blokka forteller hvilken analog utgang signalet skal sendes ut på. Del 2/3: AD-omforming. Den første blokka forteller hvilken analog kanal som skal leses. Her leses det av et strømsignal på 4-20 mA som skal omgjøres til en digital verdi 0-255 i PLS-en (8 bit). Blokk nr. 2 starter AD-omformingen, og blokk nr. 3 sender det digitale signalet til et dataregister som skal sende sopp i master og leses av på pc eller operatørpanel. Kommentar Underveis i programmeringen har vi støtt på en del utfordringer knyttet til sending og motakelse av data over Profibus. Misforståelser rundt programmeringen av master og hvordan kommunikasjonen over bufferminnene fungerte førte til en del feilsøking underveis som tok mye tid. Side 28 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.5.2. HMI-program (Skrevet av MB) Det første vi gjorde i Intouch var å opprette tagger for de adressene som brukes i PLS’en. Taggene kan man si er et duplikat av adressene i PLS’en, og vi kan aktivere disse for å styre adressene i PLS’en. Vi vil at taggene som brukes skal referere til de taggene vi har opprettet i OPC serveren og må derfor bruke en modul i Intouch som heter OPC TagCreator. Etter at vi har koblet OPC serveren opp mot Intouch med OPC Link finner vi nå de samme taggene som vi opprettet i serveren igjen i TagCreator. Først velger vi den Topic’en vi ønsker fra OPC Link. Her finner vi igjen navnet på PLS’en. Så lager vi et accessname for de taggene vi skal opprette. Vi laget bare ett accessname kalt ”master”, men om man har flere PLS’er og massevis av tagger er det viktig å organisere taggene med flere accessnames. Så oppretter vi en og en tag som deretter dukker opp i en liste i et eget vindu nederst på skjermen. OPC TAGCREATOR I INTOUCH Over ser vi vinduet hvor vi importerer taggene til Intouch. Vi kan se at TagCreator har importert gruppene vi laget i OPC serveren og taggene som ligger i hver gruppe. Når vi markerer en tag kan åpnes muligheten for å trykke ”Create Tag”. Hvis vi trykker på denne vises den nye taggen i en liste som vist i bildet under. TAG CREATION PROGRESS Side 29 av 39 Prosjekt i styresystemer 2015 Gruppe 1 En liste over alle tagger finner vi under Tag Directory. Her kan man også redigere navnet på taggene, hva slags type tag det skal være og andre detaljer. TAGNAME DICTIONARY Det er to slags typer tagger: I/O og memory. Memorytagger brukes kun innad i Intouch. I/O tagger brukes for å sende data inn og ut av Intouch. De taggene vi oppretter fra OPC Link blir til I/O tagger. De kan skrives til i Intouch, men også skrives til av utsyret som Intouch er koblet opp mot, i vårt tilfelle master-PLS’en. Nå har vi altså taggene som gjør at vi kan styre hva som gjøres i master-PLS’en. I Intouch kan man være ganske kreativ med bruk av tagger ettersom nesten alt kan styre, eller styres av, en tag. PLS programmet ble bygd steg for steg og testet hver gang vi hadde programmert ferdig en aksjon. Dette for å enkelt kunne gå ett steg tilbake i programmeringen hvor vi visste at alt fungerte dersom noe skulle gå skeis under selve testingen. For å gjennomføre en komplett test for hver aksjon fra Intouch til slave-PLS, ble Intouch programmeringen utført på samme måte. Dette ble gjort ved å bygge brukergrensesnittet opp bit for bit og teste hver nye ting vi la inn i brukergrensesnittet sammen med OPC server, master-PLS, Profibus og slave-PLS. Side 30 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Med tanke på dette startet vi programmeringen av Intouch meget enkelt ved å sette opp to knapper og en lampe. Knappene skulle kunne styre en digital utgang (Y0) i slave 1, mens lampen skulle vise statusen på utgangen. En knapp ble satt til å styre taggen Y0_SET som setter utgangen Y0 i slaven. Knappen ble kalt ”Sett Høy”. Den andre knappen ble satt til å styre taggen Y0_RST som resetter utgangen Y0. Denne ble kalt ”Sett Lav”. Lampen ble satt til å vise verdien på en tag som ble kalt Y0_INN. Y0_INN viser verdien 1 når utgangen går høy, så lampen ble programmert til å lyse grønt når taggen Y0_INN går høy. Taggene vi bruker på de digitale utgangene er diskrete tagger. Det vil si at de kun kan ha enten verdien 1 eller 0. PROGRAM FOR Å STYRE DIGITAL UTGANG INNSTILLINGER FOR KNAPP I INTOUCH I vinduet for innstillinger av knappen kan man velge hvilken tag som skal styres av knappen, og hva slags type knapp det skal være. Man kan for eksempel velge at taggen kun skal være høy så lenge knappen trykkes ned, eller at ett trykk på knappen skal sette taggen høy. Taggen forblir da høy helt til den blir resatt enten av en annen knapp eller av en funksjon i PLS programmet. Taggene våre for utgangen Y0 blir satt og resatt i master-PLS’en, så i vårt tilfelle var det kun nødvendig å bruke en knapp som påvirker taggen direkte. Side 31 av 39 Prosjekt i styresystemer 2015 Gruppe 1 INNSTILLINGER FOR SYMBOL I INTOUCH For å få ”lampen” vår til å lyse åpner vi vinduet for ”Fill Color”. Her bestemmer vi hvilken tag som skal aktivere/deaktivere lampen. Vi kan også velge hvilken farge lampen skal ha når taggen er høy og når den er lav. LAGE ET SYMBOL Ett tips for å gjøre ting litt enklere når man lager grafikk i Intouch er å bruke funksjonen ”Make Symbol” så mye som mulig. Denne funksjonen kan man bruke for å lage et symbol av flere objekter. Det gjør ting veldig lett når man skal endre plassering på ting i brukergrensesnittet sitt, eller klippe og lime. Side 32 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Neste steg ble å utvide programmet med en måte å styre den analoge utgangen i slave 1, samt lese av verdien fra den analoge inngangen. For å gjennomføre dette trengte vi en rute til å skrive inn verdien som vi vil sette den analoge utgangen til. I tillegg ville vi ha en grafisk visning av verdien fra den analoge inngangen slik at man enkelt kan se omtrentlig hvor mye vi har satt inngangen til i forhold til maksimum verdi. Et vindu med satt verdi i tall ble også laget. PROGRAM FOR Å STYRE ANALOG UTGANG Taggene som vi skriver til og leser fra her er såkalte integer-tagger. De kan ha en verdi mellom -32769 og 32769. Det er nødvendig å bruke slike tagger i dette tilfellet ettersom verdien vi skal sende ut til PLS’en ikke er enten av eller på, men er en verdi fra 0 til 255. Da vi skulle lage grafikk for å vise nivået på den analoge inngangen valgte vi å bruke en forhåndslaget grafikk i ”Wizard”. Wizardbiblioteket har mange ferdiglagede grafikker som sparer brukeren en del tid om man bare trenger noe enkelt å sette inn i brukergrensesnittet sitt. Det finns for eksempel målere, knapper, display, og rammer for å nevne noen. Målemeteret som vi valgte kan stilles og endres på som man vil. Man kan sette maksimum og minimum input verdi og hvor mange delmålinger man trenger i grafikken. Våre innstillinger kan sees i figur 2.5.2.9. INNSTILLINGER FOR GRAFIKK Feltet for digital visning av verdien på den analoge inngangen og feltet for å skrive til den analoge utgangen ble også funnet i wizard-biblioteket. Her ble også maksimum og minimum input verdi satt til henholdsvis 255 og 0. Side 33 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Da både digitale og analoge utganger i Slave 1 var programmert og testet var oppgaven med å programmere Slave 2 ganske enkel. Siden de to slave PLS’ene er like og vi skal sette de samme utgangene, kopierte vi hele oppsettet for Slave1. Det eneste vi trengte å endre var selvfølgelig taggene. Vi kjørte også de samme testene på hele slave 2 programmet for å forsikre oss om at alt fortsatt fungerte før vi gikk videre. SLAVE 2 I tillegg til brukergrensesnittet som ble laget i Intouch ble det satt opp ett panel med berøringsskjerm. Det var et krav i oppgaven at de to grensesnittene skulle ha kommunikasjon mellom hverandre. Vi laget derfor ett enkelt vindu hvor man kan lese og skrive fra/til panelet på riggen. Vi valgte å sette maksimum og minimums grense til 1000 og 0. Denne delen av oppgaven ble kun laget for å vise at vi har kommunikasjon mellom de to HMI’ene. KOMMUNIKASJON MED PANEL PROFIBUS STATUS De to rutene ble hentet fra wizard-biblioteket, og er de samme som ble brukt ved skriving til den analoge utgangen. Vi valgte i tillegg å legge inn en profibus-status alarm. Taggen STATUS_Profibus har verdien 0 så lenge profibusnettverket er oppe og går. Så for en del av kommunikasjonen slutter å fungere får den verdien 1. Vi valgte en lampe i wizard-biblioteket som vi stilte inn slik at den lyste grønt ved status ok, og rødt ved alarm. ALARMINNSTILLINGER FOR PROFIBUS Side 34 av 39 Prosjekt i styresystemer 2015 Gruppe 1 2.6 Test av kommunikasjon og brukergrensesnitt (Skrevet av ØE) Funksjon: Dato: OK/Not OK Kommentar: Ethernet kommunikasjon til Master PLS Seriell kommunikasjon til Slave 1 PLS Seriell kommunikasjon til Slave 2 PLS Ethernet kommunikasjon til OPCServer Ethernet kommunikasjon fra iX panel til master PLS WAN oppsett i router mot skolens nettverk WiFi kommunikasjon 06.03.15 OK 04.03.15 Ok 04.03.15 Ok 10.03.15 Ok 06.03.15 Ok 06.03.15 Ok Oppsett gjort av skolens IT-avd. 06.03.15 Ok SSID: PLS-Rigg1 WPA-PSK: heiheihei Profibus-DP kommunikasjon fra master til slave1 Profibus-DP kommunikasjon fra master til slave2 Skrive fra InTouch til DA utgang på slave 1 Skrive fra iX panel til DA utgang på slave 1 Skrive fra InTouch til DA utgang på slave 2 Skrive fra iX panel til DA utgang på slave 2 Lese fra AD inngang på slave 1 på master PLS Lese fra AD inngang på slave 2 på master PLS Sette og resette utgang Y0 på slave 1 fra InTouch og iX panelet Sette og resette utgang Y0 på slave 2 fra InTouch og iX panelet Lese status på utgangen i slave PLSene fra master PLS Hente og vise status på utgangene i slave PLSene fra master PLS i InTouch Hente og vise status på utgangene i slave PLSene fra master PLS i iX panelet Hente og vise verdiene på AD inngangene fra master PLS, via OPC server, i InTouch 07.03.15 Ok 07.03.15 Ok 12.03.15 Ok 13.03.15 Ok 12.03.15 Ok 13.03.15 Ok 12.03.15 Ok 12.03.15 Ok 16.03.15 Ok 16.03.15 Ok 16.03.15 Ok 16.03.15 Ok 16.03.15 Ok 16.03.15 Ok Side 35 av 39 Prosjekt i styresystemer 2015 Gruppe 1 Hente og vise verdien på AD inngangene fra master PLS i iX panelet Skrive verdi i iX panelet og lese verdien i InTouch Skrive verdi i InTouch og lese verdien i iX panelet Trendvindu i iX panelet for AD inngangene i slavene Lese status på Profibus kommunikasjonen fra master PLS Test av alle funksjoner samtidig 16.03.15 Ok 17.03.15 Ok 17.03.15 Ok 17.03.15 Ok 18.03.15 Ok 18.03.15 Ok Demonstrasjon godkjent 18.03.15 Ok Klar for demonstrasjon for veileder kl. 11:00 Side 36 av 39 Prosjekt i styresystemer 2015 Gruppe 1 3.0 Prosjektgjennomføring 3.1 Prosjektdeltakere 3.1.1 Prosjektgruppe Prosjektgruppen består av følgende medlemmer Eyvind E. Bjørsland Allmenn 90915799 [email protected] Anders Aabakken Elektriker 95992849 [email protected] Magnus K. Bergsbakk Fagbrev sveiser Øyvind Eklo Automatiker 99026094 [email protected] 92894293 [email protected] Torbjørn Morken Prosesstekniker 45272224 [email protected] Side 37 av 39 Prosjekt i styresystemer 2015 Gruppe 1 3.1.2 Veileder Pål Gisvold er veileder for prosjektgruppen Han jobber som Høgskolelektor ved avdeling for teknologi ved HiST, ved program for elektro- og datateknikk. Mail: [email protected] Side 38 av 39 Prosjekt i styresystemer 2015 Gruppe 1 3.2 Prosjektprogresjon (Skrevet av ØE) Miniprosjektet har blitt utført innen de tidsrammene vi har gitt i prosjektoppgaven, og innen de tidsrammene vi selv har satt i forprosjektet. Vi har ikke fått jobbet med opptak av sprangresponser på tank-riggen, og ikke målt støy fra måleelementene som vi hadde planlagt å starte med parallelt. 3.3 Tidsfrister Tirsdag 24/3: Siste frist for enkel demo og godkjenning av miniprosjektet. Rapport for miniprosjektet leveres inn. Her skal også en foreløpig utgave av prosjektets hjemmeside presenteres. Side 39 av 39 Prosjekt i styresystemer 2015 Gruppe 1 4.0 Vedlegg 4.1 PLS-programkode (Skrevet av EB) 4.1.1 Master-PLS – Mitsubishi Q00 Hovedprogram. Skriver og leser til og fra slave 1 og 2 Vedlegg 1 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «Master_READ_slave1». Leser status Y0, slave 1. Funksjonsblokk: «MASTER_READ_slave2». Leser status Y0, slave 2. Funksjonsblokk: «Master_WRITE». Setter og resetter Y0, slave 1. Vedlegg 2 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «Master_WRITE_slave2». Setter og resetter Y0, slave 2. Vedlegg 3 av 14 Prosjekt i styresystemer 2015 Gruppe 1 4.1.2 Slave 1 – FX1N Hovedprogram Slave 1. Vedlegg 4 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «BUFFER_read_fra_master». Leser fra bufferminner på Profibus. Funksjonsblokk: «»WRITE_buffer_til_master». Skriver til bufferminner på Profibus. Vedlegg 5 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «AD_DA_omforming». DA-omforming ut, AD-omforming inn på PLS 1. Funksjonsblokk: «Utganger». Setter/resetter Y0 og sender digital verdi ut på AD/Da-omformer. Vedlegg 6 av 14 Prosjekt i styresystemer 2015 Gruppe 1 4.1.3 Slave 2 – FX1N Hovedprogram Slave 2. Vedlegg 7 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «BUFFER_read_fra_master». Leser fra bufferminner på Profibus. Vedlegg 8 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «»WRITE_buffer_til_master». Skriver til bufferminner på Profibus. Funksjonsblokk: «AD_DA_omforming». DA-omforming ut, AD-omforming inn på PLS 2. Vedlegg 9 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Funksjonsblokk: «Utganger». Setter/resetter Y0 og sender digital verdi ut på AD/DA-omformer. Vedlegg 10 av 14 Prosjekt i styresystemer 2015 Gruppe 1 4.2 HMI-bilder 4.2.1 InTouch Vedlegg 11 av 14 Prosjekt i styresystemer 2015 Gruppe 1 4.2.2 iX Touchpanel Vedlegg 12 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Vedlegg 13 av 14 Prosjekt i styresystemer 2015 Gruppe 1 Vedlegg 14 av 14
© Copyright 2024