aut programmerbare systemer 1 - mth...
TRANSCRIPT
AUTOMATISERINGSFAGET
Programmerbare systemer 1
Sist revidert: 24.07.2014
2
e
KURSMODUL "PROGRAMMERBARE SYSTEMER 1"
Kursmodulen inngår i følgende av Industriskolens kurs:Automatiseringsfaget
Kursmodulen har følgende innhold:Kompendium (dette dokumentet)NettleksjonNettoppgaverInnleveringsoppgaver
LÆRINGSMÅL
Etter å ha gjennomført denne kursmodulen skal du kunne:forklare hva vi mener med programmerbare systemerkjenne oppbygging og funksjon til en PLSkjenne programblokker for programmering av digitale operasjonervite hvordan et PLS-system dokumenteres og idriftsettes
FORKUNNSKAPER
Denne kursmodulen forutsetter at du kan grunnleggende elektroteknikk tilsvarendeVG1-nivå for elektrofag i yrkesskolen.
3
INNHOLD
1 Innledning ............................................................................................................................ 4
2 Programmerbare styresystemer ............................................................................................ 5
2.1 PLS ........................................................................................................................................... 5
2.2 Modulere og kompakte systemer ........................................................................................... 8
2.3 CPU .......................................................................................................................................... 9
2.4 Digitale I/O-moduler.............................................................................................................. 12
2.5 Analoge I/O-moduler............................................................................................................. 19
2.6 Kommunikasjonsmoduler ..................................................................................................... 21
2.7 Funksjonsmoduler ................................................................................................................. 23
2.8 Strømforsyning ...................................................................................................................... 26
3 Programmering................................................................................................................... 29
3.1 Programminnet ..................................................................................................................... 29
3.2 Adressering............................................................................................................................ 30
3.3 Programvare og språk ........................................................................................................... 32
3.4 Symboler................................................................................................................................ 34
3.5 Diagnose ................................................................................................................................ 35
3.6 God programmeringsskikk .................................................................................................... 38
4 PLS-funksjoner.................................................................................................................... 40
4.1 Binære porter ........................................................................................................................ 40
4.2 SR-vipper ............................................................................................................................... 43
4.3 Flankedeteksjon .................................................................................................................... 44
4.4 Tidsfunksjoner ....................................................................................................................... 45
4.5 Tellere.................................................................................................................................... 47
5 Dokumentasjon .................................................................................................................. 49
5.1 Krav og tekniske spesifikasjoner ........................................................................................... 50
5.2 IO-liste ................................................................................................................................... 53
5.3 Funksjonsbeskrivelse............................................................................................................. 54
5.4 Forriglingsmatrise.................................................................................................................. 56
5.5 Testprotokoller...................................................................................................................... 56
4
1 InnledningDe første programmerbare systemene til industrielt bruk ofte forkortet til "PLS" så dagens lys på
slutten av 1960-tallet. Industrien ble mer og mer automatisert, og det ble fort komplisert å utføre
avanserte styringsfunksjoner ved hjelp av reléer. Dette dannet grunnlaget for utviklingen av de første
PLS-systemene, som da ble omtalt som "reléerstattere".
Etter hvert har utviklingen av PLS-systemene gått videre og gitt nye muligheter for styring og
regulering av industrielle prosesser. En PLS er ikke lengre bare en reléerstatter, men ofte selve
"hjernen" i industrielle produksjonsanlegg. I dag er det helt utenkelig å se for seg fabrikk uten PLS-
systemer. Også i næringsbygg har det lenge vært vanlig å benytte programmerbare systemer til
styring av ventilasjon, varme og belysning. De siste årene har vi også sett at det har blitt mer vanlig
med programmerbare systemer i private boliger såkalte "smarthus".
Kursmodulene Programmerbare systemer 1 og 2 tar først og fremst for seg industrielle
styresystemer. Systemer spesielt beregnet for byggautomatisering er omtalt i kursmodulene
Belysning og Varme og ventilasjon.
I denne første modulen fokuserer vi først og fremst på systemenes oppbygging og grunnleggende
funksjoner. Vi skal også se på noen eksempler på PLS-programmer og ta for oss de vanligste digitale
programfunksjonene. Til slutt tar vi for oss vanlige metoder for idriftsettelse og dokumentasjon av
PLS-baserte anlegg.
Kursmodulen Programmerbare systemer 2 bygger videre på innholdet i denne modulen, og tar blant
annet for seg analog signalbehandling og noen mer avanserte programfunksjoner, samt skjerm-
systemer og industriell datakommunikasjon.
Det finnes svært mange produsenter av PLS-systemer. I våre kursmoduler har vi av praktiske årsaker
holdt oss til noen få systemer. De fleste eksemplene vil derfor være på systemer fra Siemens og
Omron, men lar seg lett overføre til PLS'er fra andre produsenter. Alle typer PLS-systemer kan stort
sett utføre de samme grunnleggende funksjonene, men det kan være litt variasjon i fremgangsmåten
i de forskjellige produsentenes programvarer.
5
2 Programmerbare styresystemer
2.1 PLS
Forkortelsen PLS står for "Programmerbar Logisk Styring" og er en fellesbetegnelse på datamaskiner
som er spesielt utviklet for automatisering og prosesstyring. På engelsk benyttes forkortelsen PLC
som står for "Programmable logic controller", og på tysk forkortelsen SPS som står for
"Speicherprogram-mierbare steuerung". De tre forkortelsene PLS, PLC og SPS går ofte igjen i litteratur
og dokumentasjon for automatiserte anlegg.
En PLS skiller seg fra vanlige datamaskiner på flere områder:
- den er kun beregnet for et bestemt formål (prosesstyring).
- den er beregnet for kontinuerlig drift og har høye krav til driftsstabilitet ("oppetid")
- den har mulighet for tilkobling av eksternt utstyr ved hjelp av inn- og utgangsmoduler
- den kan bare programmeres med bestemte tilpassede programvarer
Det finnes svært mange produsenter av PLS-utstyr, og hver enkelt produsent har gjerne en rekke
forskjellige typer og serier innen sitt produktspekter. Hvilken produsent og hvilken PLS-type man skal
velge, er avhengig av mange forhold. Noen av disse kan være:
- størrelse på systemet i form av antall signaler (inn- og utganger) systemet skal kunne
håndtere.
- hvilke funksjoner systemet skal kunne håndtere.
- krav til kommunikasjon med andre systemer.
- hvilke systemer man har kompetanse på.
- smak og behag
- pris
Figur 2.1
Bildet viser et utvalg av PLS-systemer fra Siemens, en av verdens største leverandører
av PLS-systemer.
6
Noe forenklet kan vi si at et PLS-system består av tre hovedenheter;
1. Inngangsmoduler (input)
2. Utgangsmoduler (output)
3. Prosessor (CPU)
Inngangsmoduler henter inn signaler fra prosessen. Signalene kan for eksempel være målinger utført
av instrumenter og sensorer, eller tilbakemelding fra givere, reléer og brytere. Signalene er strøm-
eller spenningssignaler som overføres ved hjelp av elektriske ledninger. Inngangsmodulen omformer
de elektriske signalene til digitale verdier før de sendes videre til prosessoren.
Prosessoren er PLS'ens "hjerne". I utgangspunktet er hjernen tom og må fylles med en programkode
for at PLS'en skal begynne å arbeide. Et PLS-program utvikles normalt på en vanlig PC ved hjelp av en
programvare som er spesielt tilpasset den aktuelle PLS'en. Når PLS-programmet er ferdig utviklet,
overføres dette til prosessoren. Basert på mottatte signaler fra inngangsmodulene, vil prosessoren
utføre de operasjonene som ligger i programkoden.
Utgangsmodulene benyttes til å overføre styresignaler til utstyr PLS'en skal kontrollere. Utgangs-
modulene mottar digitale verdier fra prosessoren ut fra de betingelsene som ligger i programkoden.
Dette kan for eksempel være en motor som skal starte eller stoppe, eller en ventil som skal åpne til
75 % åpningsgrad. Utgangsmodulen omformer disse verdiene til strøm- eller spenningssignaler som
overføres via elektriske ledninger ut til utstyret.
Figur 2.2
En PLS kan gjøre målinger i prosessen ved hjelp av sensorer eller motta kommandoer fra
betjeningsorganer. Prosessoren behandler de mottatte signalene og gir styresignaler til utstyr
som pumper, motorer og varsellys ved hjelp av utgangsmoduler.
7
Eksempel 2.1
En motor skal styres ved hjelp av en PLS. Start- og stoppkommandoer gis ved hjelp av to trykk-
knapper, og motoren skal startes ved hjelp av en kontaktor.
For at PLS'en skal kunne motta start-kommandoen, må trykknappen tilkobles en inngangsmodul,
og for at PLS'en skal kunne starte motoren, må kontaktoren tilkobles en utgangsmodul.
8
2.2 Modulære og kompakte systemer
PLS-systemer deles ofte inn i to hovedkategorier; Modulære og kompakte systemer. Modulære
systemer bygges opp av forskjellige typer moduler hvor hver modul bare har én funksjon. Antall
moduler settes sammen alt etter behov i hvert enkelt anlegg. De vanligste modultypene er:
- Prosessor (CPU)
- Digitale inngangsmoduler (DI)
- Digitale utgangsmoduler (DO)
- Analoge inngangsmoduler (AI)
- Analoge utgangsmoduler (AO)
- Kommunikasjonsmoduler (COM)
- Funksjonsmoduler
- Strømforsyning (PS)
I kompakte systemer er mange funksjoner lagt inn i samme PLS-modul. Det gjør at én enkel modul
ofte kan dekke alle behov. De fleste kompakte PLS-systemer har imidlertid også mulighet for å sette
på tilleggsmoduler og er i realiteten en blanding av kompakt og modulær.
Kompakte systemer benyttes typisk for små og middels store anlegg, mens modulære systemer
benyttes for middels og store anlegg. I de neste kapitlene skal vi se på de forskjellige modultypene.
Figur 2.3
Modulært PLS-system (Siemens S7-300).
Figur 2.4
Kompakt PLS-system (Siemens S7-1217C).
Integrerte funksjoner S7-1217C:
- CPU
- 14DI / 10 DO / 2 AI / 2AO
- 2 stk Ethernet m/switch
- Strømforsyning
- 6 Høyhastighetstellere
- Motion controll
- Strømforsyning
9
2.3 CPU
CPU står for "Central prosessor unit" og er PLS'ens "hjerne". I utgangspunktet er denne hjernen
ganske tom og PLS'en gjør ingen ting uten at vi har gitt den et program. Alle operasjoner PLS'en skal
utføre, programmeres i en programvare installert på en PC, og lastes deretter ned i PLS'ens CPU. Vi
skal se nærmere på utformingen av PLS-programmer i kapittel 3.
CPU'en arbeider i en repeterende syklus. Én syklus kaller vi gjerne for ett "scan". I løpet av ett scan
skal CPU'en utføre tre hovedoppgaver:
1. Lese innganger.
2. Utføre programkode.
3. Oppdatere utganger.
I tillegg til disse oppgavene, vil CPU'en også utføre noen systemfunksjoner. Eksempler på slike
funksjoner kan være systemdiagnose som varsler om eventuelle tekniske feil på noen av modulene,
og kommunikasjonsfunksjoner for datautveksling med andre systemer.
Den tiden CPU'en bruker på ett scan, kaller vi for PLS'ens scan-tid. Denne tiden er normalt veldig
stabil, og dette er en av fordelene en PLS har i forhold til vanlige datamaskiner. En PLS kjører sine
egne operativsystemer og vi risikerer ingen "Windows update" eller et antivirus-program som
plutselig starter opp og beslaglegger store deler av CPU'ens kapasitet. Det ville ført til økt scan-tid og
dermed skapt store problemer for regulatorer og andre tidskritiske prosesser som ofte kjøres i
PLS'er.
Figur 2.5
Programvare for utvikling av PLS-program er som regel installert på en PC. Når programmet er ferdig,
lastes det ned i PLS'ens CPU ved hjelp av en programmeringskabel. På nyere PLS'er er
produsentspesifikke programmeringskabler gjerne erstattet med standard Ethernet- eller USB-kabler.
10
Figur 2.6
CPU'en i en PLS jobber i en kontinuerlig syklus der den først leser innganger, deretter utfører
programkode og til slutt oppdaterer utganger. I tillegg utfører den noen systemfunksjoner som å
kontrollere at alle moduler fungerer som de skal, og å kommunisere med andre systemer. Én runde
gjennom denne syklusen, kalles for ett "scan".
LESE INNGANGER
UTFØRE PROGRAM
SCAN
OPPDATERE UTGANGER
SYSTEMFUNKSJONER
Figur 2.7
Tiden CPU'en bruker på ett scan, kaller vi PLS'ens "scan-tid". Mange PLS'er er utstyrt med muligheter for å
overvåke scan-tiden. Bildet ovenfor viser diagnosevinduet i programvaren for en PLS av type Siemens S7-
314. Vi ser at den aktuelle scan-tiden for siste scan ligger på 12 ms (millisekund). I tillegg logges den minste
og den største registrerte scan-tiden, som her er 10ms og 21ms. Tidsvariasjonene kan komme som følge av
systemfunksjoner som ikke kjøres i hvert scan.
11
PLS-produsenter tilbyr mange forskjellige typer PLS'er, og det kan ofte være vanskelig å se forskjellen
mellom modellene. Figuren nedenfor viser forskjell i egenskaper for forskjellige PLS'er (eller CPU'er) i
Siemens S7-300-serien. Fargekodene oppe til høyre viser de forskjellige modellene hvor CPU312 er
den minste, mens CPU319 er den største og dyreste. Fargekodene viser fire forskjellige egenskaper
ved modellene langs fire forskjellige akser:
- Aksen "Address range" angir hvor mange inn- og utganger (I/O) PLS'en maksimalt kan
håndtere. Vi ser at den minste PLS'en håndterer inntil 1000 I/O (1kb), mens den største
håndterer inntil 8000 I/O (8kb).
- Aksen "Memory in MB" angir PLS'ens minnekapasitet. Minnet har betydning for hvor mye
programkode vi kan lagre i PLS'ens. Dersom vi skal programmere mange store og komplekse
funksjoner, vil vi trenge en PLS med stor minnekapasitet. Vi ser at minnekapasiteten ligger
fra 32 til 2048 MB.
- Aksen "Processing time" viser hvor raskt PLS'en jobbe nder)
hver programinstruksjon tar. Jo større PLS, jo raskere jobber CPU'en. Vi ser at det er
betydelig forskjell fra 0,1
den raskeste.
- Aksen "Number of connections" angir antall koblinger PLS'en kan ha mot andre systemer, for
eksempel PLS'er, HMI og kontrollromsystemer. Jo større PLS jo flere koblinger håndterer den.
Figur 2.8
Figuren viser egenskapene til forskjellige CPU-modeller i Siemens S7-300 serien.
12
2.4 Digitale I/O-moduler
Inn- og utgangsmoduler omtaler vi vanligvis bare som I/O-moduler. Vi skiller mellom digitale og
analoge I/O-moduler, hvor digitale moduler bare håndterer digitale signaler altså signaler med kun
to tilstander mens analoge moduler håndterer signaler som varierer.
Vi skal først se på digitale inngangsmoduler. Slike moduler brukes til å lese signaler med bare to
tilstander. Det finnes mange måter å betegne tilstander på, og noen eksempler på tilstander er vist i
tabellen nedenfor. Når slike digitale signaler skal overføres til inngangsmodulen, skjer det som regel i
form av et 24V DC-signal. De to elektriske tilstandene vil da være 0 Volt og 24 Volt, hvor 0 Volt betyr
"0" og 24 Volt betyr "1".
Tilstander Signal
Tilstand 1: 0 Lav Av Ikke aktiv 0 V
Tilstand 2: 1 Høy På Aktiv 24 V
Det finnes noen systemer som bruker andre spenninger enn 24 VDC. Spesielt i eldre anlegg kan man
finne 230 VAC. I systemer fra land med andre spenninger i strømnettet, kan vi finne andre
spenninger. Eksempelvis kan vi finne PLS-moduler beregnet for 110 VAC i systemer fra USA. Innen
byggautomajson finner vi ofte systemer som bruker 24 VAC i stedet for 24 VDC. Men innenfor
industriell automasjon og PLS-systemer til industrielle formål, benytter de fleste produsenter 24 VDC
Figur 2.9
Digitale signaler har bare to tilstander. Vi kaller disse som regel for "0" og "1" eller "lav" og "høy".
Figur 2.10
Analoge signaler varierer kontinuerlig.
Tabell 2.1
Eksempler på digitale tilstander.
13
spenning.
Av tabell 2.1 så vi at 0 Volt betyr "0" og 24 Volt betyr "1". Men hva skjer dersom vi får en spenning
som ligger et sted mellom for eksempel 5 Volt? PLS-produsentene legger inn marginer for
signalnivå slik at et område rundt 0 Volt vil gi sikker "0" og et område rundt 24 Volt vil gi sikker "1".
Området mellom de to sikre nivåene, er det usikkert hvilket signal vi får. Dette området bør vi derfor
holde oss utenfor.
I figur 2.12 på neste side ønsker vi å koble to trykknapper til en PLS. Vi bruker et 24VDC digitalt
inngangskort, men hvordan skal tilkoblingene utføres? Trykknappene er rene mekaniske brytere uten
noen form for elektriske komponenter. Slike brytere kalles gjerne potensialfrie kontakter fordi de
Figur 2.11
PLS-produsenter definerer et område rundt 0V som sikker "0" og et område rundt 24V som
sikker "1". I området mellom de to sikre nivåene, er det usikkert om vi får "0" eller "1".
Eksempel 2.2
Tabellen nedenfor viser et utsnitt av databladet for et Siemens S7-321 PLS-kort med 16 digitale
innganger. Vi ser at Siemens garanterer at spenninger i området fra -30 til + 5 Volt vil gi et sikkert
"0"-signal, mens spenninger i området fra 13 til 30 Volt vil gi et sikkert "1"-signal. Dersom du
tilfører en digital inngang på dette kortet en spenning mellom 5 og 13 Volt, gir Siemens ingen
garanti for hvilket signal du vil få. Dette området er definert som "usikkert".
14
ikke har noe elektrisk potensial (spenning). For at bryteren skal kunne gi et signal til PLS-modulen, må
vi tilføre den en spenning fra en strømforsyning. Skissen til høyre i figur 2.12 viser hvordan en 24VDC
spenning tilføres bryterpanelet og tilkobles bryterne. Når bryteren er åpen er spenningen på kortet 0
Volt. Dersom trykknappene betjenes, føres spenningen tilbake til det digitale inngangskortet på
PLS'en. På denne måten overføres signalene "0" og "1" til PLS'ens digitale inngangskort.
Figur 2.12
Trykknappene er mekaniske potensialfrie kontakter. Vi fører en 24VDC spenning fram til
knappene, og dersom disse betjenes, føres spenningen tilbake til det digitale inngangskortet.
Eksempel 2.3
Figuren nedenfor viser et nytt utsnitt av samme datablad som for modulen i eksempel 2.2.
Figuren viser hvordan tilkobling av en signalkabel til kortet skal utføres. Nederst til høyre er det
tegnet inn en ekstern strømforsyning. 24V-siden av forsyningen kobles ut til kontaktene som gir
signal tilbake til modulen. Kortet har 16 digitale innganger på klemmene 2 til 9 og 12 til 19. Legg
spesielt merke til at 0V-siden av strømforsyningen er tilkoblet klemme 20. Dette er
referansespenningen til signal-inngangene som må tilkobles inngangsmodulen for å unngå
problemer med potensialforskjeller. Vi skal se nærmere på potensialproblemer i kapittel 2.8 om
strømforsyninger.
15
Digitale inngangsmoduler kommer med forskjellig antall innganger per modul. Antall innganger
varierer noe fra produsent til produsent og fra serie til serie, men de fleste produsentene leverer
moduler med 4, 8, 16 og 32 innganger. Noen leverer også moduler med enda flere innganger, men
disse krever ofte egne ferdigkoblede kabelsystemer fordi det blir for liten plass for skruklemmer.
Når en inngangsmodul har mottatt et signal på en inngang, må dette overføres til CPU'en slik at det
kan behandles i PLS-programmet. Dette skjer via interne databusser som er innebygget i PLS-
systemet. Figur 2.8 viser et utsnitt av databladet i eksempel 2.3, og her ser vi databussen omtalt som
"backplane bus". Databussen formidler signaler til og fra samtlige inn- og utganger i PLS-systemet.
For å unngå feil på en av inngangene for eksempel kortslutning i en signalkabel settes hele
databussen ut av drift og inngangene isoleres elektrisk fra bussen. Dette gjøres vanligvis ved hjelp av
en optokobler. Dersom vi får en feil på en eller flere av inngangen, vil databussen fortsatt fungere
som normalt slik at andre inn- og utganger ikke blir berørte. Feil kan føre til at optokobleren blir
ødelagt. Den aktuelle inngangen vil da være defekt, men de øvrige inngangene vil fungere som
normalt.
Figur 2.13
Tradisjonelt kobles én og én klemme fra PLS-kort til rekkeklemmer, slik som vist på figuren til
venstre. Det finnes imidlertid en rekke smarte løsninger på markedet hvor ferdigkoblede
mangeleder-kabler med plugg i hver ende enkelt kan plugges på PLS-kort i den ene enden og
rekkeklemmer i den andre. Skissen til høyre viser et system fra Phoenix Contact som passer PLS-
systemer fra en rekke forskjellige produsenter.
Figur 2.14
Inngangen i modulen ovenfor er elektrisk adskilt fra databussen ved hjelp av en optokobler.
16
Digitale utgangsmoduler kommer også typisk med 4, 8, 16, og 32 utganger. Utgangene kommer i to
hovedtyper; transistorutganger og reléutganger. Transistorutganger er elektrisk adskilt fra
databussen ved hjelp av optokobler tilsvarende som digitale innganger i figur 2.8, mens reléutganger
er galvanisk adskilt ved hjelp av relékontakter.
Transistorutganger gir ut en spenning på 0 VDC når utgangen er "0" og 24 VDC når utgangen er "1".
Vær oppmerksom på at det er begrenset hvor mye strøm en transistorutgang kan levere. Normalt
ligger grensen i området rundt 0,5 Ampere, men her er det viktig å kontrollere produsentens
datablader.
Dersom man ønsker å styre større strømmer eller andre spenninger, benyttes utgangsmoduler med
relékontakter. Slike moduler kan typisk håndtere opp til 5A, samt både AC og DC-spenninger opp til
230V. Man skal imidlertid være oppmerksom på at relékontakter har et begrenset antall inn- og
utkoblinger. Dersom man bruker relékontakt til en varsellampe som blinker en gang hvert sekund, tar
det ikke lang tid før utgangen er defekt og hele kortet må byttes.
Figur 2.15
Figuren viser et utsnitt av manualen for en digital utgangsmodul med relékontakter. Vi ser at et
relé gir kontakt på utgangen mellom klemme 1 og 2. Reléet er i tillegg adskilt elektrisk fra data-
bussen ved hjelp av en optokobler. Lysdioden i parallell med reléet er plassert i front på kortet for
å indikere om utgangen er "0" eller 1" ("lav" eller "høy").
Eksempel 2.4
En varsellampe i fabrikken skal styres fra en PLS. Lampen er merket med 100W/230VAC og den
skal blinke i sekundtakt. På grunn av spenningen på 230VAC, vurderer du å bruke en
utgangsmodul med relékontakter. Et utsnitt av manualen er vist på neste side.
a) Finn ut forventet levetid på relé-utgangen dersom lampen blinker kontinuerlig.
b) Hvilke alternativer til løsning kan du vurdere?
17
(eksempel 2.4 fortsetter)
Utsnitt fra utgangskortets manual:
Løsning
a) Vi ser at antall inn- og utkoblinger varierer ut fra spenning og strøm. Lampen er merket
med 100w/230VAC, og det gir følgende strøm:
0,43A230V
100W
U
PI
Ut av databladet ser vi at en spenning på 230VAC og strøm under 0,5A gir 1,5 millioner
inn- og utkoblinger. Lampen skal blinke hvert sekund. I løpet av ett døgn vil den da blinke
86400 ganger. Det gir følgende levetid:
dager17,440086
0005001Levetid
Dersom vi bruker en reléutgang til denne lampen, kan vi forvente at utgangen slutter å
fungere etter 17,4 dager.
b) Som vi forstår av oppgave a), er det en dårlig idé å bruke et slikt kort til denne lampen. Vi
kan vurdere flere alternative løsninger:
- Benytte vanlig transistorutgang og et eksternt relé som tåler flere inn/utkoblinger,
for eksempel et elektrisk relé (solid state).
- Benytte et blinkrelé slik at utgangen står permanent høy når lampen skal blinke og
permanent lav når den ikke skal blinke.
- Bytte ut varsellampen med en LED-lampe som bruker mindre strøm slik at vi kan
benytte vanlig transistorutgang.
18
Som vi ser av eksempel 2.4 må vi være bevisst på hvilken type modul vi bruker til de oppgavene vi
skal løse. Små effekter kan kobles direkte til utgangskortet, mens større effekter må kobles via reléer.
Reléer og kontaktorer inneholder magnetspoler som kan forårsake spenningstransienter når de
kobles ut. Transientene kan nå svært høye spenningsnivåer og forårsake ødeleggelser på PLS-
modulene. Problemet blir større jo større spolen er, og derfor unngår vi å koble kontaktorer direkte
på PLS'ens utgangsmoduler. Ved å gjøre en mellomkobling med mindre reléer, kan vi redusere
risikoen for at modulene ødelegges.
Figur 2.16
Små effekter som indikatorlamper og mindre reléer kan kobles direkte på utgangsmodulen.
Figur 2.18
Kontaktorer og utstyr som inneholder induktive komponenter som magnetspoler, kobles via
mindre reléer for å unngå at uønskede transienter ødelegger PLS'ens utgangsmoduler.
Figur 2.17
Større effekter må kobles via eksterne reléer eller utgangsmoduler med innebygde reléer.
19
2.5 Analoge I/O-moduler
Analoge inn- og utgangsmoduler benyttes når vi skal behandle signaler som ikke bare har to
tilstander slik som digitale signaler, men som endrer seg kontinuerlig. Analoge inngangsmoduler
benyttes typisk der vi skal gjøre analoge målinger av størrelser som trykk, temperatur og nivå. Mens
digitale inngangsmoduler stort sett bare takler to signalnivåer, 0 og 24 Volt, håndterer analoge
moduler en rekke forskjellige signaltyper. De vanligste signalene for analoge moduler er:
- ± 20 mA
- Spenningssignaler 0..10V, ±10V eller 1..5V
- RTD Pt100, Pt1000, Ni100 eller Ni1000 (kun inngangsmoduler)
- Termoelement type E, N, J, K eller L (kun inngangsmoduler)
Analoge I/O-moduler leveres som regel med 2, 4 eller 8 inn- eller utganger ofte kalt "kanaler" for
analoge moduler. De fleste produsentene har en rekke forskjellige varianter med store forskjeller i
hvor god signalkvalitet de leverer. Det er derfor viktig å vite hva man er ute etter, og å kontrollere
modulenes datablader.
Figur 2.19
Eksempel på en analog inngangsmodul med åtte kanaler. Databladet viser eksempler på
hvordan forskjellige typer signaler skal tilkobles modulen; spenning, strøm, mV og RTD. En
analog/digital-omformer (ADC="Analog/digital-converter") gjør om signalet til en tallverdi
som PLS-programmet kan bruke (f.eks. 0..100 % eller 0..500 °C). Videre ser vi at analoge
moduler i likhet med de digitale er elektrisk isolert fra PLS'ens databuss (backplane bus).
20
I denne kursmodulen skal vi først og fremst konsentrere oss om digital signalbehandling. Analog
signalbehandling blir grundigere behandlet i kursmodulene "Programmerbare systemer 2" og "Måle-
teknikk". Dersom du ønsker å lære mer om analog signalbehandling, henviser vi til disse to
modulene.
Eksempel 2.5
Vi har en prosess hvor nivået i en tank skal reguleres ved hjelp av en pumpe og et
i
tillegg til et start/stopp-signal.
Signalet fra nivåinstrumentet kobles til PLS'ens inngangsmodul. Modulen omformer 4..20mA-
signal til en tallverdi for eksempel 0..100 %. Programkoden i prosessoren behandler denne
verdien og starter og stopper pumpene ut fra de betingelsene som er lagt i programmet.
Pumpene skal gå med variabel hastighet og er derfor utstyrt med en frekvensomformer. En
analog utgangsmodul sender ut et signal på 0..10V til omformeren, alt etter hvor raskt pumpa
skal gå.
21
2.6 Kommunikasjonsmoduler
Vi ønsker ofte at PLS-systemene skal kunne kommunisere med omverdenen. Den mest vanlige
kommunikasjonen er med operatørpaneler og kontrollromsystemer hvor man skal overvåke og
betjene prosessene som er programmert PLS-systemene. I tillegg ønsker vi ofte at flere PLS-systemer
skal kunne snakke med hverandre, eller at PLS-systemene skal kunne snakke med andre typer
systemer.
For at en PLS skal kunne kommunisere, må den utstyres med en eller flere kommunikasjonsmoduler.
Det finnes mange forskjellige typer moduler alt etter hvilken type kommunikasjon vi skal utføre.
Noen eksempler på kommunikasjon vi ofte utfører med PLS kan være:
- kommunikasjon over Ethernet med et kontrollrom.
- kommunikasjon over Feltbuss med frekvensomformere, instrumenter og distribuert IO.
- seriell punkt-til-punkt-kommunikasjon (RS232) med en veieforsterker.
- utsending av alarmer via mobilt telenett (3G/GPRS).
Stadig voksende behov og ønsker om kommunikasjon i automatiserte anlegg gjør at
kommunikasjonsnettverkene kan bli store og komplekse. Dette stiller store krav til kompetanse både
hos de som utvikler og leverer slike systemer, og hos de som skal drifte og vedlikeholde dem.
Figur 2.20
Kommunikasjonsnettverk i moderne automatiserte anlegg kan ofte bli store og komplekse.
Skissen viser eksempel på utsyr som ofte inngår i slike nettverk.
22
De vanligste kommunikasjonsmodulene for industrielle PLS-systemer er:
- Ethernetmoduler for all type Ethernetbasert kommunikasjon, for eksempel TCP/IP, ProfiNet,
EtherCat og Modbus TCP.
- Moduler for kommunikasjon over Feltbusser, for eksempel Profibus, ASi-bus, Modbus,
CANopen, Fieldbus og CC-link.
- PtP-moduler for punkt-til-punktkommunikasjon over RS232, RS422 eller RS485.
- GPRS-moduler for kommunikasjon over mobilt telenett.
Innen byggautomasjon finnes det en del kommunikasjonsstandarder som vi sjelden finner på PLS-
systemer som er beregnet for industrielt bruk. De Ethernetbaserte standardene BACNet og
KNXnet/IP, samt Feltbusstandardene KNX, LON og M-Bus er eksempler på slike standarder.
I tillegg til modultyper og standarder som er nevnt ovenfor, har mange PLS-produsenter utviklet egne
standarder for kommunikasjon mellom sine egne produkter såkalte proprietære standarder.
Tendensen går allikevel i retning av at produsentene stort sett baserer seg på de åpne standardene.
Videre ser vi også at alle nyere PLS-systemer stort sett leveres med integrerte Ethernetmoduler.
Vi skal ikke gå noe dypere inn i industriell datakommunikasjon i denne kursmodulen, men dersom du
ønsker å lære mer om dette temaet, blir det grundigere dekket i kursmodulene "Datanettverk" og
"Programmerbare systemer 2".
Figur 2.21
PLS med integrert Ethernet, samt tilleggskort for GPRS, ASi-bus og Profibus (Siemens S7-1200).
Legg merke til at PLS-modulen har integrert "mini-switch" med to Ethernetporter (de to pluggene
til høyre). Dette har blitt mer og mer vanlig på de fleste PLS-systemene. Fordelen med dette er at
man da enkelt kan trekke Ethernetforbindelsen videre fra modul til modul dersom det finnes
PLS'er eller annet utstyr som skal inn på samme nett.
23
2.7 Funksjonsmoduler
De modulene vi har sett på fram til nå, er standardmoduler som finnes hos alle produsenter av PLS-
systemer. En del produsenter har i tillegg utviklet funksjonsmoduler som håndterer funksjoner
utover det standardmodulene håndterer. Noen eksempler på slike funksjonsmoduler, kan være:
- Tellerkort for registrering av pulsgivere.
- Veieforsterkere for direkte innlesing av veieceller.
- Pneumatiske moduler for luftstyrt utstyr.
- Safetymoduler for håndtering av sikkerhetsfunksjoner.
- Motorstartere og frekvensomformere integrert i PLS-rack.
Figur 2.22
Siemens ET200S PLS-system med motorstarter og frekvensomformer integrert som PLS-moduler. De
gule modulene er Safety-moduler som tillater håndtering av nødstopp- og sikkerhetsfunksjoner
direkte i PLS. Slike funksjoner må ellers håndteres av eksterne sikkerhetsreléer.
Figur 2.23
Festo PLS-system spesielt beregnet på pneumatiske anlegg. I stedet for separate luftstyrte
ventiler med ledningsforbindelse mellom PLS og ventil, er ventilene direkte integrert i PLS-
modulene. Luftslangene kobles direkte på PLS-modulen, og man sparer ledningsforbindelsene.
24
Et av funksjonskortene som brukes mest i industrielle anlegg, er høyhastighetstellerne. Årsaken til
dette er at registrering av turtall og posisjon ofte gjøres med pulsgivere gjerne kalt encoder. En
encoder er en roterende pulsgiver som gir et visst antall pulser pr rotasjon typisk et sted mellom
500 og 5000 pulser, alt etter behov. Selv om pulsene bare er vanlige digitale signaler, kommer disse
så tett at et vanlig digitalt inngangskort har problemer med å registrere dem. Derfor bruker vi
spesielle funksjonskort som klarer å håndtere den høye pulshastigheten. Vi skal se nærmere på dette
i eksempel 2.6. Dersom du ønsker å lære mer om encodere og andre pulsgivere, behandles dette
grundigere i krusmodulen "Måling av turtall og posisjon".
Eksempel 2.6
Du jobber i en kabelfabrikk og har fått i oppgave å lage en meterteller som registrerer hvor
mange meter kabel som produseres. Du setter et hjul på kabelen og monterer en pulsgiver
(encoder) på hjulet. Du regner ut at pulsgiveren gir 100 pulser pr meter kabel. Maksimal
produksjonshastighet for kabelmaskinen er 30 meter kabel pr minutt.
Pulsene fra pulsgiveren skal leses inn til en PLS. Dette kan gjøres på to måter:
1) Koble pulsgiveren til en vanlig digital inngang
2) Benytte en høyhastighets tellermodul
Du har hørt at det er viktig å kontrollere scan-tiden til PLS'en. Du sjekker denne og finner ut at
den maksimalt kan komme opp i 50 ms. Videre sjekker du databladet til tellermodulen og finner
ut at den har en maksimal frekvens på 60 kHz.
Hvilken av de to metodene velger du?
Figur 2.24
Eksempel på en optisk pulsgiver (encoder) der en kodeskive med åpne og tette felter roterer
rundt med akslingen. En lysdiode står på den ene siden av skiven, mens en fotocelle står på den
andre. Når skiven roterer, vil de åpne og tette feltene gjøre at dioden blinker på fotocellen.
Elektronikk i encoderen gjør "blinkene" om til firkantpulser som overføres til PLS'en.
25
Løsning (eksempel 2.6):
En PLS kontrollerer status på innganger én gang per scan (se kapittel 2.3). En puls er et signal som
har skiftet nivå fra "0" til "1". For at PLS'en skal kunne detektere denne endringen, trenger den
minimum to scan. Første scan detekterer "0" og andre scan detekterer "1". Når scan-tiden er
50ms, betyr det at PLS'en trenger 100 ms (to scan) for å registrere én puls. En pulsgiver sender ut
pulser kontinuerlig (pulstog). Dersom scan-tiden blir for lang, klarer ikke PLS'en å få med seg alle
pulsene, og metertellingen vil bli feil.
Vi fikk oppgitt at pulsgiveren gir ut 100 pulser pr meter kabel, og maskinen produserer maksimalt
30 meter kabel i minuttet. Det betyr at vi får 3000 pulser i minuttet. Dette gir 50 pulser i
sekundet. Hvor lang tid tar så én puls? Vi deler 1 sekund på 50 pulser:
ms/puls20sek/puls0,02pulser50
sek1Pulstid
Pulstiden er betydelig raskere enn scan-tiden og vi får da følgende situasjon:
Vi ser at PLS'en ikke klarer å få med seg alle pulsene. Dette gjør at metertellingen vil bli feil
dersom vi bruker en vanlig digital inngang. Vi må derfor se på alternativ 2 hvor vi har en
høyhastighets tellermodul med en maksimal frekvens på 60kHz. Frekvenstallet 60 kHz (60 000 Hz)
betyr at tellerkortet kan telle inntil 60 000 pulser pr sekund. Vi beregnet at metertelleren vil gi
maksimalt 50 pulser per sekund, og det skulle da være godt innenfor grensene til tellerkortet.
Svaret blir altså at vi er nødt til å bruke et høyhastighets tellerkort for å kunne registrere alle
pulsene fra metertelleren. Vi velger med andre ord metode 2.
26
2.8 Strømforsyning
De aller fleste PLS-systemer skal forsynes med 24V likespenning fra en ekstern strømforsyning. Det
finnes noen PLS'er som har innebygget transformator og kan forsynes med 230V vekselspenning.
Dette er mest vanlig på små kompakt-PLS'er hvor man ønsker å spare ekstra strømforsyning av plass-
eller kostnadsgrunner.
PLS-produsentene lager gjerne strømforsyninger i samme design som PLS-modulene, men det er
sjelden krav til at disse modulene må anvendes. I de aller fleste tilfellene kan man benytte en hvilken
som helst strømforsyning, så lenge den gir ut riktig spenning og tilstrekkelig med strøm. For å være
sikker bør du uansett sjekke manualen til det PLS-systemet du bruker.
I mange tilfeller ønsker vi at PLS'en skal være i drift selv om vi får strømutfall på anlegget. Det gir oss
mulighet til å håndtere alarm- og sikkerhetsfunksjoner, og vi får en mer kontrollert oppstart når
spenningen kommer tilbake igjen. I slike tilfeller kan man sette inn batteripakker, gjerne kalt UPS.
Forkortelsen står for "uninterruptible Power Supply" og betyr "avbruddsfri strømforsyning".
Figur 2.25
Siemens S7-1200 strømforsyning til venstre og S7-1200 PLS til høyre. Selv om disse modulene ser
ut til å høre sammen designmessig, kan man her bruke en hvilken som helst strømforsyning så
lenge spenningen stemmer.
Figur 2.26
Industriell skinnemonterbar strømforsyning med batteripakke fra Phoenix Contact. Batteriene er
plassert i kassen til høyre og kan enkelt kontrolleres eller eventuelt byttes ut.
27
Dersom vi har flere strømforsyninger i samme anlegg, skal vi være oppmerksom på at problemer
med potensialforskjeller kan oppstå. Problematikk rundt potensialer og potensialforskjeller kan være
litt vanskelig å forstå, og vi skal derfor se på et hverdagslig eksempel først.
Eksempel 2.7
De to naboene A og B skal male husene sine. Huset til B ligger noe høyere i terrenget enn huset til
A. Begge har klatret like langt opp i hver sin stige. Står de da like høyt, eller står B høyere enn A
siden huset ligger høyere i terrenget?
Svaret er at det kommer an på hvilken referanse vi bruker. Vi må spørre; "høyde i forhold til
hva?". Når vi står i en stige, mener vi som regel høyde i forhold til bakken. Vi sier da at bakken er
referansen for høydemålingen, og høyden på bakkenivå (referansehøyden) er da 0 meter. På
tegningen over ser vi at de to naboene opererer med to forskjellige referanser. For at de skal bli
enige om hvem som står høyest, må de først bli enige om en felles referanse. La oss si at de blir
enige om at de skal bruke bakken der hver av stigene står som referanse. Vi tar altså ikke hensyn
til at det ene huset står høyere i terrenget enn det andre. Vi kan si at vi har utjevnet
høydeforskjellen i terrenget. Da blir situasjonen som vist på tegningen nedenfor, hvor bakkenivå
er etablert som felles referanse for begge høydemålingene.
28
I et elektrisk anlegg snakker vi om spenningspotensialer på samme måte som vi snakker om
høydeforskjeller i eksempel 2.7. Dersom du med et voltmeter måler spenningen på klemmene til en
24 Volts strømforsyning, vil du måle et spenningspotensial på 24 Volt. Potensialet er målt i forhold til
strømforsyningens 0 Volts, på samme måte som høyden i stigen ble målt i forhold til 0 meter
(bakkenivå). Vi kan si at 0 Volt er strømforsyningens "bakkenivå".
Hva skjer dersom vi kobler sammen to systemer med to forskjellige strømforsyninger? Problemet er
at vi ikke vet hvor "i terrenget" de to forsyningene ligger i forhold til hverandre. Selv om vi måler 24V
ut av hver av forsyningene, kan disse ha forskjellig "bakkenivå". Vi aner ikke hva vi får dersom vi
måler spenningen mellom forsyningene, som vist på den midterste skissen i figur 2.27. Derfor må vi
etablere et felles referansepunkt. I eksempel 2.7 ble naboene enige om å bruke bakkenivå som felles
referanse. Vi kan gjøre akkurat det samme med strømforsyningene. For å være sikker på at begge
strømforsyningene jobber ut fra samme "bakkenivå", kobler vi enkelt og greit 0 Volt-klemmene
sammen. Dette kaller vi en utjevningsforbindelse. Vi har etablert en felles referanse, og på denne
måten unngår vi problemet med potensialforskjeller ("høyde-forskjeller") mellom to eller flere
strømforsyninger i samme anlegg. 24 Volt betyr nå 24 Volt for alle forsyningene.
Figur 2.27Vi har to forskjellige spenningskilder som begge gir 24VDC. Figuren til venstre viser at vi med etvoltmeter måler 24V på hver av disse. Men hva om vi setter målepinnene på 0V-klemmen påden ene spenningskilden og 24V-klemmen på den andre, som vist på figuren i midten? Vil vi damåle 24V? Svaret er at vi da kan måle omtrent hva som helst. Så lenge spenningskildene ikkehar en felles referanse, er det umulig å si sikkert hva en slik måling vil vise. Men dersom vi koblersammen 0V-klemmene som vist på figuren til høyre, får vi en felles referanse. Da kan vi medsikkerhet si at vi vil måle 24V.
29
3 Programmering
3.1 Programminnet
I kapittel 2 lærte vi at CPU'en er PLS'ens "hjerne" og at denne hjernen i utgangspunktet er ganske
tom. PLS-produsenten vet ikke hva vi har tenkt å bruke PLS'en til, og det er derfor opp til oss å
programmere de ønskede funksjonene i CPU'ens programminnet. En PLS kan ha flere typer minner,
og forskjellen mellom dem ligger i mulighetene til å lagre og overskrive data. De tre vanligste
formene for minne er RAM, ROM og EPROM.
- RAM står for "Random access memory", og mange kjenner uttrykket fra PC-verden. Bruks-
området og egenskapene til RAM i en PLS er omtrent de samme som for en PC. RAM er et
enkelt arbeidsminne som PLS'en bruker til midlertidig lagring i forbindelse med arbeids-
operasjoner. Minnet er lett tilgjengelig for skriving og lesing, men ved strømutfall forsvinner
alle data. Noen PLS'er har mulighet for å sette inn batteri slik at data i RAM ikke går tapt om
PLS'en blir strømløs.
- ROM står for "Read only memory" og er et beskyttet minne som bare kan leses fra. ROM
inneholder gjerne systemfunksjoner og systeminformasjon som ikke må overskrives, og data
beholdes selv ved strømbrudd.
- EPROM står for "Erasable and programmable ROM" og er en mellomting mellom RAM og
ROM. Dataene kan leses og blir tatt vare på ved strømutfall som for et ROM, men et EPROM
kan også skrives til. Dataene er noe mer beskyttet enn i et RAM slik at vi vil trenger de rette
verktøyene for å kunne skrive til et ERPOM. Vanligvis lagres PLS-programmet vi har utviklet i
dette minnet.
En PLS som styrer en prosess vil hele tiden jobbe med forskjellige typer data. Noen data oppdateres
kontinuerlig slik som instrumentmålinger som er koblet mot PLS'ens innganger mens andre data
CPU
EPROM
RAMROM
PLS
Figur 3.1Eksempel på minnehåndtering i PLS hvor program lastes ned fra PC til et EPROM. CPU'en henter innprogrammet fra EPROM og bruker RAM som arbeidsminne. Permanente systemdata ligger i ROM.
30
er innstillinger vi en sjelden gang endrer. La oss for eksempel si at PLS'en skal utføre en temperatur-
regulering. Da må vi gi CPU'en informasjon om hvilken settverdi vi ønsker for temperaturen, samt
hvilke parameter regulatoren skal styres etter. Dette er innstillinger vi helst ikke vil miste ved et
strømutfall. Hvordan kan vi unngå det?
De fleste PLS'er har noe vi kaller for et retentivt minneområde som beholder de lagrede dataene
også ved et strømutfall. Et slikt minneområde kan for eksempel brukes til å lagre regulatorparameter,
sett-verdier og andre viktige innstillinger slik at prosessen kan starte opp som før når strømmen
kommer tilbake. Retentive minneområder har begrenset størrelse og må som regel defineres i PLS-
oppsettet.
3.2 Adressering
For at vi skal kunne bruke inn- og utganger i et PLS-program, må vi gi dem adresser. Hver inngang og
hver utgang må ha en unik adresse slik at vi kan skille dem fra hverandre. Dette løses forskjellig på de
forskjellige PLS-typene, og tabell 3.1 viser noen eksempler.
Type signal eller funksjonSiemens Omron Mitsubishi
Bokstav Eksempel Bokstav Eksempel Bokstav Eksempel
Digitale innganger I I 10.0 (kun tall) 10.00 X X10
Digitale utganger Q Q 20.0 (kun tall) 20.00 Y Y20
Analoge innganger PIW PIW 10 (kun tall) 100 D D10
Analoge utganger PQW PQW 20 (kun tall) 200 D D20
Interne minneflagg M M 10.0 W W 10.00 M M10
Interne minneord (analog) MW MW 20 W W 20 D D20
Tidsfunksjoner (timer) T T1 TIM TIM 1 TC TC 1
Tellere (counter) C C1 CNT CNT 1 CC CC 1
Tabell 3.1
Eksempler på adressering av IO og minneområder.
Adressering i PLS'er har en tendens til å gå i grupper på enten 8 eller 16. Dette har sammenheng med
at adressering ofte er basert på variabeltypene byte og word som inneholder henholdsvis 8 og 16 bit.
Vi skal ikke gå nærmere inn på disse variabeltypene her, men dersom du er interessert i å lære mer
om variabeltyper, kan du lese om dette i kursmodulen "Programmerbare systemer 2".
Siemens PLS-systemer har en byte-orientert adressestruktur. Det betyr at adresseringen er
strukturert i grupper på 8 bit. Et digitalt inngangskort med 16 innganger vil da adresseres i to slike 8-
grupper, hvor inngangene i den første gruppen får adresser fra I 0.0 til I 0.7, mens den andre får
adresser fra I 1.0 til I 1.7 (se tabell 3.2 på neste side).
Omron og Mitsubishi har valgt en annen adressestruktur som er word-orientert. Et word består av 16
bit, og derfor adresserer inngangene i grupper på 16. Omron nummererer adressene etter desimal-
tallsystemet (10-tallsystemet) som vi bruker til daglig, slik at inngangene får adresse 0.00 til 0.15.
Mitubishi nummerer adressene heksadesimalt (16-tallsystemet), slik at inngangene nummereres fra
X0 til XF. Tallet "F" i det heksadesimale tallsystemet er det samme som tallet "15" i
desimaltallsystemet (FHEX = 15DEC).
31
Tabell 3.2
Eksempel på adressering av PLS-modul med 16 digitale innganger
hos tre forskjellige PLS-produsenter.
I tillegg til fysiske inn- og utganger, har PLS'er også interne minneområder. Disse benyttes for
eksempel til mellomregninger ved matematiske beregninger, eller til adressering av data som ikke
går over fysiske IO-moduler, slik som til et operatørpanel eller en PC som kommuniserer med PLS'en
over Ethernet. Interne adresser følger samme struktur som for fysisk IO, men med andre
forbokstaver. Tabell 3.3 viser eksempler på hvordan de første 16 adressene i minneområdet
adresseres.
Tabell 3.3
Adressering av de 16 første adressene i det interne minneområdet.
32
3.3 Programvare og språk
Programmering av PLS skjer i en programvare som vanligvis er utarbeidet at PLS-produsenten. En
Omron PLS må programmeres med en Omron Programvare og en Siemens PLS med en Siemens
programvare. Det er ikke mulig å programmere en Omron PLS med en Siemens programvare. Slik er
det for de aller fleste PLS-systemer, men det finnes også noen som benytter såkalte åpne program-
varer. Eksempler på to slike åpne programvarer er Codesys og Isagraf som er laget for å
programmere forskjellige typer PLS'er uavhengig av produsent. I stedet for å bruke masse penger
på å utvikle en programvare, sier da PLS-produsenten heller at deres systemer kan programmeres
med en åpen programvare. Men for at PLS og programvare skal passe sammen, må PLS-produsenten
og programvareprodusenten være enige om å følge en felles standard. En slik standard er utarbeidet
av den internasjonale elektrotekniske komité (IEC). Standarden IEC 61131 omhandler
"Programmerbare kontrollere" og definerer blant annet følgende:
- Konfigurasjon av PLS-systemer
- Språk for programmering av PLS
- Datatyper og variabler
- Funksjonsblokker
- Kommunikasjon
IEC 61131-3 definerer fem forskjellige språk for programmering av PLS (tabell 3.2). Språkene deles
gjerne inn i de to hovedgruppene tekst og grafisk.
Språk Forkortelse Type
Instruksjonsliste IL Tekst
Strukturert tekst ST Tekst
Ladderdiagram LAD Grafisk
Funksjonsblokkdiagram FBD Grafisk
Sekvensflytskjema SFC Grafisk/skjema
Tabell 3.4
PLS-språk definert i IEC 61131-3.
Ladder- og funksjonsblokkdiagram er de mest brukte språkene til standard PLS-programmering. I
Siemens PLS-systemer benyttes også en del instruksjonslister, spesielt til avanserte PLS-funksjoner. I
denne kursmodulen skal vi hovedsakelig holde oss til ladder- og funksjonsdiagrammer. Dersom du
ønsker å lære mer om andre programmeringsspråk, finnes det et godt utvalg av kurs og manualer
hos de forskjellige PLS-leverandørene.
Figur 3.2Her ser vi samme PLS-program i tre forskjellige programmeringsspråk. Figuren til venstre viser etladderdiagram (LAD), figuren i midten et funksjonsblokkdiagram (FBD) og figuren til høyre eninstruksjonsliste (IL).
33
Hvilket språk som benyttes, er først og fremst avhengig av tre forhold:
- Hvilke språk som er tilgjengelig på det aktuelle systemet. Ikke alle systemer støtter alle defem språkene, og noen systemer har også andre egne språk.
- Hvilke funksjoner som er tilgjengelig i de forskjellige språkene. Noen avanserte PLS-funksjoner kan være tilgjengelig i bare ett av språkene.
- Smak og behag. Hver programmerer har gjerne sitt "favorittspråk".
I mange programvarer kan man enkelt bytte mellom de forskjellige programmeringsspråkene. Om énprogrammerer velger å benytte ett språk, kan en annen velge å vise det samme programmet i etannet.
Tidligere kunne man bare programmere PLS med tekstbasert programkode. Programmeringen ble
gjerne utført med en enkelt håndterminal som bare viste et par programlinjer om gangen. Etter hvert
som utviklingen av datamaskiner gikk videre, kom det PC-baserte programvarer og mer grafiske
programmeringsspråk som ladder- og funksjonsblokkdiagrammer. Selv om de fleste i dag velger å
bruke grafiske språk, er det fortsatt noen programmerere som foretrekker instruksjonsliste kanskje
spesielt blant de "godt voksne" som har vært vant med dette fra tidligere. Samtidig skal det sies at
enkelte avanserte funksjoner kun lar seg programmere i instruksjonsliste eller strukturert tekst.
Figur 3.3I programvaren Siemens Step7 kan man enkelt bytte mellom de tre språkeneLAD, STL og FBD. Siemens bruker forkortelsen STL for instruksjonsliste.
Figur 3.4Utviklingen av programmeringsverktøy for PLS-systemer har gått framover i takt med utviklingenav datamaskiner heldigvis.
34
3.4 Symboler
I kapittel 3.2 så vi eksempler på adressering av PLS-systemer. Alle inn- og utganger får hver sin unike
adresse som vi bruker i programkodene i PLS-programmet. Men det kan fort bli vanskelig å holde styr
på alle adressene spesielt på større PLS-systemer. Derfor finnes det såkalte symboltabeller som gir
mulighet til å legge navn og kommentarer på adressene. La oss si at du har koblet startknapp S11 for
en pumpestyring til inngang I 0.0. Da kan du gi denne adressen "symbol" S11 i symboltabellen, samt
legge til en kommentar som forklarer hva knappen gjør. Figur 3.5 viser eksempel på hvordan en slik
symboltabell kan se ut.
Figur 3.6 viser samme PLS-program med og uten symboler. Symboler gjør det lettere både for den
som skal programmere PLS'en, og for den som skal lese programmene i ettertid. Dersom man gir
samme navn på komponenter i symboltabeller som de har i el-skjema og annen dokumentasjon (S11,
K11 etc.), gir dette en god sporbarhet gjennom hele anlegget. Det gjør at du får en god oversikt,
samtidig som du reduserer sjansen for misforståelser.
Figur 3.6Ved bruk at symboltabeller kan vi gi adressene forståelige navn og kommentarer slik at det erlettere å lese PLS-programmene. I programmet til venstre er det kun brukt adresser, mensprogrammet til høyre også har symboler og kommentarer.
Figur 3.5I en symboltabell kan du legge navn (symboler) og kommentarer til adressene.
35
3.5 Diagnose
Forskjellige PLS-typer har forskjellige diagnoseverktøy som kan være nyttige både ved utvikling av
programkode og feilsøking på PLS-systemene. Vi skal se på de mest vanlige verktøyene som finnes
hos de fleste PLS-produsentene:
- Monitor
- Variabeltabeller
- Forcetabeller
- Systemdiagnose
- Simulator
3.5.1 Monitor
Et monitorverktøy gir deg mulighet til å se PLS-programmet "live". Vi sier gjerne at vi går "online" og
får da mulighet til å se den faktiske statusen til PLS-programmet. Det betyr at vi kan se om inn- og
utganger er aktiverte eller ikke, samt verdiene til analoge inn- og utganger. Figur 3.7 viser et monitor-
bilde for pumpestyringen hvor vi ser at kontakter som "leder" er grønne, mens kontakter som
blokkerer er stiplete blå. På denne måten kan vi enkelt følge signalene gjennom programmet og se
hvor det eventuelt stopper opp.
Monitorverktøy er svært nyttige både under test og idriftsettelse av nye programmer, og ved
feilsøking i eksisterende anlegg. Selv om det ikke er feil i programkoden i seg selv, kan monitor-
verktøyet ofte være til god nytte for å finne feil i komponenter som er tilkoblet PLS'en.
Figur 3.7Monitorbildet for PLS-programmet som styrer pumpe 1 viser at pumpen er i drift (utgang Q1.0 ergrønn). Dersom vi følger signalgangen ser vi at startknappen ikke er aktivert, men at pumpenholdes i gang av holdekoblingen over K11A.
36
3.5.2 Variabeltabeller
I en variabeltabell kan vi monitorere innganger, utganger og andre variabler på samme måte som i
monitorverktøyet, men nå presenteres disse i tabellform. Når vi bruker monitorverktøyet som vist
ovenfor, kan vi bare se ett bilde og ett sted i programmet om gangen. Dersom vi ønsker å overvåke
variabler som ligger forskjellige steder, kan det derfor være mer hensiktsmessig å hente disse opp i
en variabeltabell slik som vist i figur 3.8. Av kolonnen til høyre ser vi at det også er mulig å
modifisere variabler ("modify value"). Ved å legge inn verdier i denne kolonnen, kan vi sette variabler
til ønsket status. Merk at dette kun gjelder interne variabler i PLS'en. Fysiske inn- og utganger kan
bare manipuleres ved hjelp av såkalte force-tabeller. Disse skal vi se nærmere på i neste avsnitt.
Eksempel 3.1
Pumpemotoren i figur 3.7 vil ikke starte. Du går "online" i PLS-verktøyet og ser om du klarer å
finne årsaken ved å monitorere programmet. Når du holder inne startknappen, ser
monitorverktøyet ut som på bildet nedenfor. Hva er årsaken til at pumpen ikke starter?
Vi ser at starknappen er aktivert og at vi har kontakt videre gjennom stoppknappen. Men når vi
kommer til motorvern F11 stopper det opp. Det ser ut til at motorvernet har løst ut, og det er
nok årsaken til at pumpen ikke vil starte.
Figur 3.8I en variabeltabell kan vi overvåke status til innganger, utganger og andre variabler. I tabellen ovenforser vi at startknappen på inngang I 0.0 er aktivert, men de andre inngangene er deaktiverte.
37
3.5.3 Force-tabeller
En force-tabell er lik en variabeltabell, men gir i tillegg mulighet til å tvinge - eller "force" fysiske
inn- og utganger til ønsket verdi. Det er ofte nyttig til uttesting av PLS-program ved idriftsettelse eller
feilsøking. Funksjonen kan også være nyttig dersom en sensor eller liknende er defekt og du ønsker å
tvinge utgangen til en bestemt verdi mens du venter på reparasjon eller nytt utstyr.
3.5.4 Systemdiagnose
De fleste PLS-systemer har en systemdiagnose som gir beskjed om eventuelle feil i PLS-systemet. Det
kan både være programmeringsfeil og fysiske defekter på PLS-utstyr. Diagnosemulighetene er
avhengig av hvilket PLS-system du har og kan variere både ut fra produsent, type og alder på
systemet.
En del avanserte inn- og utgangsmoduler har innebygget systemdiagnose som både varsler om
defekter på modulen i seg selv, og eventuelle kabelbrudd i ledninger på tilkoblet utstyr. Når en slik
modul detekterer en feil, sender den informasjon om dette til PLS'ens CPU. Denne informasjonen kan
brukes til å gi alarmer og eventuelt til å iverksette bestemte funksjoner i PLS-programmet. Dersom
feilen er alvorlig kan du for eksempel velge å kjøre anlegget i en sikker tilstand når feilen inntreffer.
En del systemer har innebygget funksjonalitet hvor systemdiagnose automatisk kommer opp i
alarmlister på skjermsystemene tilknyttet PLS'en. Dersom anlegget går uten overvåking, kan det
være smart å sende ut slike alarmer på epost eller SMS til vedlikeholdspersonell.
Figur 3.10Mange PLS'er har lysdioder i front på CPU som gir en enkel statusindikering. Eksemplet ovenforviser fronten til en Siemens S7-300 CPU hvor lysdioder indikerer driftsstatus og feilsituasjoner.
Figur 3.9Vi ser at en force-tabell er lik en variabeltabell. Forskjellen ligger i at en force-tabell gir mulighetfor å endre status på fysiske inn og utganger. Det er ikke mulig i en variabeltabell.
38
3.5.5 Simulator
Mange programvarer for PLS har en innebygget simulator som gjør det mulig å teste ut PLS-
programmet på en PC før det lastes ned i PLS'en. I kombinasjon med monitorverktøyene er dette et
svært nyttig verktøy for å teste ut funksjoner og luke ut eventuelle feil før programmet settes i drift
på anlegget. Dette gjør at idriftsettelsen kan gjennomføres både raskere og tryggere.
3.6 God programmeringsskikk
Det finnes ingen faste regler for hvordan et PLS-program skal se ut. Noen bedrifter har kanskje laget
sine egne standarder og prosedyrer for PLS-programmering, men utover det finnes det få retnings-
linjer. Derfor blir det opp til hver enkelt programmerer å bestemme hvordan hans skal bygge opp
sine PLS-programmer. Dersom du setter ti programmerere til å utføre eksakt samme oppgave, vil du
se at programmene kan se svært forskjellige ut. Det vil være store personlige variasjoner ut fra hver
enkelt programmeres kompetanse og erfaringsnivå. En erfaren PLS-programmerer har gjerne sine
egne måter å løse bestemte problemstillinger på. I tillegg har han ofte en bedre oversikt over det
store antall funksjonsblokker som finnes i PLS-systemet.
I tillegg til den rent faglige kompetansen og erfaringen, påvirkes PLS-programmene også i stor grad av
programmererens holdninger og ordenssans. En programmerer som er rotete av natur, har en
tendens til å lage rotete PLS-programmer. Og en programmerer som er ryddig av natur, lager gjerne
ryddige PLS-programmer. I større prosjekter kan flere programmerere jobbe på samme PLS-system,
og vi kan oppleve personlige variasjoner i programkodene i én og samme PLS.
Figur 3.11Simulatorverktøyet Simatic PLS SIM benyttes til å simulere Siemens PLS-systemer. Vi ser at vi herkan sette verdier på inngangene og overvåke responsen på utgangene. Samtidig kan vi brukemonitor-verktøyet til å kontrollere at PLS-programmet virker som det skal.
39
I de fleste tilfeller vil et PLS-program bli lest av flere personer. Enten fordi flere programmerere
jobber samme om å utvikle programmene, eller fordi programmene håndteres av forskjellige
personer gjennom PLS-ens levetid. Selv om det er en programmerer som har utviklet programmet,
kan det være andre som har ansvar for idriftsettelse, service og eventuelle endringer av systemet i
ettertid. Derfor skal vi alltid programmere PLS på en slik måte at det er mulig for andre å forstå hva
vi har gjort. Vi kaller dette for god programmeringsskikk.
Figur 3.12Legg vekt på god programmeringsskikk ved utvikling av PLS-programmer! Det skal være enkelt forandre å forstå hva du har gjort. Bruk symboltabeller og kommentarer i programmene og sørg for åha gode rutiner for backup og versjonshåndtering.
GOD PROGRAMMERINGSSKIKK
1. Bruk symboltabeller og hold disse oppdatert.
2. Legg inn kommentarer som forklarer programkoden.
3. Ha en god programstruktur som gjør det enkelt å holde oversikt. Dersom program-
nettverkene dine blir store og komplekse, bør du se på muligheten til å dele dem opp i
flere mindre nettverk.
4. Hold dokumentasjon oppdatert. Dersom du gjør endringer i programkoden, må du påse at
funksjonsbeskrivelser, brukerveiledninger og annen relevant dokumentasjon oppdateres.
5. Ha gode rutiner for lagring og versjonshåndtering av programfiler. Det skal aldri være tvil
om hvilken programfil som er gjeldende versjon og samsvarer med programmet som ligger
i PLS'en.
40
4 PLS-funksjonerVi skal nå gå gjennom grunnleggende PLS-funksjoner for digital signalbehandling. Vi begynner med
de helt grunnleggende binære portene OG, ELLER og IKKE. Videre skal vi se på SR-vipper,
flankedeteksjon, tidsfunksjoner og tellere. Dersom du ønsker å lære mer om PLS-funksjoner, tar
kursmodulen "programmerbare systemer 2" for seg analog signalbehandling og noen mer avanserte
programfunksjoner.
4.1 Binære porter
4.1.1 ELLER (OR)
Figur 4.1 viser symbolet for en ELLER-port. Porten fungerer slik at den gir "1" på utgangen om enten
inngang A eller inngang B er "1". Det er altså tilstrekkelig at én av inngangene er "1" for at utgangen
skal bli "1".
ELLER-funksjonen kan uttrykkes ved hjelp av denne formelen:
A + B = C
Dette gir følgende sannhetstabell:
A B C
0 0 00 1 11 0 11 1 1
Tabell 4.1
Nedenfor ser vi hvordan en reléstyring der trykknapp S1 eller S2 aktiverer réle K1, programmeres
i Ladder og FBD.
Tabell 4.2
Figur 4.1
Tabell 4.2
41
4.1.2 OG (AND)
Figur 4.2 viser symbolet for en OG-port. Porten fungerer slik at den bare gir "1" på utgangen dersom
både inngang A og B er "1".
OG-funksjonen kan uttrykkes ved hjelp av denne formelen:
A · B = C
Dette gir følgende sannhetstabell:
A B C
0 0 00 1 01 0 01 1 1
Tabell 4.3
Nedenfor ser vi hvordan en reléstyring der trykknapp S1 og S2 aktiverer relé K1, programmeres i
Ladder og FBD.
Reléstyring Ladder FBD
Tabell 4.4
Figur 4.2
42
4.1.3 IKKE (NOT)
Figur 4.3 viser symbolet for en IKKE-port. Porten fungerer slik at utgangen alltid er motsatt av
inngangen. Vi sier at B får den inverterte verdien av A. En IKKE-funksjon kalles derfor ofte for en
invertering.
IKKE-funksjonen kan uttrykkes ved hjelp av denne formelen:
betyr "IKKE A", altså den inverterte verdien av A).
Dette gir følgende sannhetstabell:
A B
0 11 0
Tabell 4.5
Nedenfor ser vi hvordan en reléstyring der trykknappene S1 og S2 aktiverer relé K1,
programmeres i Ladder og FBD. Vi ser at trykknapp S1 er en hvilekontakt (normalt lukket), mens S2
er en arbeidskontakt (normalt åpen). En hvilekontant i et PLS-program tegnes som en invertert
kontakt. I ladder ser vi at kontaktsymbolet da tegnes med en skråstrek. I FBD ser vi at en invertering
markeres med ring på inngangen på den aktuelle porten (i dette tilfellet en OG-port).
Reléstyring Ladder FBD
Tabell 4.6
Figur 4.3
43
4.2 SR-vipper
"SR" står for SET-RESET, og en vippe er en binær port hvor vi kan "vippe" en digital utgang fra "0" til
"1" slik at den holder verdien inntil den blir "vippet" tilbake igjen til "0". SR-vippen fungerer slik:
SET-inngangen vipper utgangen over til "1". Vi sier at en setter utgangen.
RESET-inngangen vipper utgangen over til "0". Vi sier at en resetter utgangen.
Dersom begge inngangene er "0", skjer det ingen verdens ting. Vippa blir stående i den posisjonen
den sist hadde.
Men hva skjer dersom både SET og RESET aktiveres samtidig? Da prøver vi å vippe i begge retninger
samtidig, og vi må bestemme om SET eller RESET skal være sjefen. Dersom SET er sjefen, sier vi at
vippa er SET-dominant. Vippa vil da sette utgangen slik at den får verdi "1". Dersom RESET er sjefen,
sier vi at vippa er RESET-dominant. Vippa vil da resette utgangen slik at den får verdi "0". Dette er vist
i sannhetstabellene nedenfor.
Noen PLS-programmer bytter posisjon på S og R alt etter om vippa er SET- eller RESET-dominant. Her
må du sjekke manualen eller hjelpefilene til programvaren.
Tabell 4.7 viser sannhetstabellen for en SET-dominant SR-vippe, mens tabell 4.8 viser
sannhetstabellen for en RESET-dominant SR-vippe.
S R Q
0 0 Uendret0 1 01 0 11 1 1
Tabell 4.7
S R Q
0 0 Uendret0 1 01 0 11 1 0
Tabell 4.8
Figuren på neste side viser et sekvensskjema for SET-dominant SR-vippe. Vi ser at utgangen Q går høy
med det samme SET-inngangen aktiveres. Utgangen holdes høy helt til RESET aktiveres. Utgangen går
da umiddelbart lav igjen og forblir lav inntil en ny SET-kommando gis.
Figur 4.4 Figur 4.5
44
4.3 Flankedeteksjon
Med flanke mener vi en endring i et digitalt signal fra én tilstand til en annen. En endring fra "0" til
"1" kaller vi en positiv eller stigende flanke, mens en endring fra "1" til "0" kalles en negativ eller
fallende flanke. En port som detekterer stigende flanke, betegnes med forkortelsen "PLS", mens en
port som detekterer fallende flanke, betegnes med forkortelsen "PLF". Disse betegnelsene kan
variere noe i de forskjellige programvarene.
Når en flanke detekteres på portenes inngang (IN), gir de en puls på utgangen (Q). Pulsen varer kun
ett scan før utgangen settes lav igjen. Dette er en funksjon som er nyttig dersom du ønsker at en
programfunksjon bare skal skje i det øyeblikket en hendelse inntreffer. La oss si at du ønsker at noe
skal skje akkurat i det en fotocelle aktiveres. Ved å detektere stigende flanke (PLS) oppnår du dette,
samtidig som du forhindrer at funksjonen kjøres om og om igjen dersom fotocellen skulle blir
stående aktivert en stund.
Figur 4.6Sekvensskjema for SET-dominant SR-vippe.
Figur 4.7Sekvensskjema for RESET-dominant SR-vippe.
Figur 4.8 Figur 4.9
45
4.4 Tidsfunksjoner
Utvalg av tidsfunksjoner og deres virkemåte kan variere noe fra produsent til produsent. De to
vanligste funksjonene er like hos de fleste PLS-produsentene.
- Forsinket innkobling (On-delay timer)
- Forsinket utkobling (Off-delay timer)
4.4.1 ON-DELAY TIMER
Figur 4.12 viser eksempel på symbol for en ON-Delay timer (TON). Symbolet kan variere fra
produsent til produsent. Signalet som skal tidsforsinkes legges på inngang IN og tiden legges på
inngang T. Når inngang IN blir "1", vil utgang Q bli "1" etter at tiden T er utløpt.
Figur 4.13 viser et sekvensskjema for tidsfunksjonen. Vi ser at inngangen IN går til "1" når timeren
begynner å telle. Når tiden T er utløpt, går også utgangen Q til "1". Så snart inngangen IN går tilbake
til "0", går også utgangen Q til det samme (uten forsinkelse). Merk at dersom inngangen IN går
tilbake til "0" før tiden T er uløpt, går ikke utgangen Q til "1".
Figur 4.12
Figur 4.10Sekvensskjema for PLS-funksjon (deteksjon av stigende flanke).
Figur 4.11Sekvensskjema for PLF-funksjon (deteksjon av fallende flanke).
46
Figur 4.13
4.4.2 OFF-DELAY TIMER
OFF-Delay timeren fungerer på en måte "motsatt" av ON-Delay timeren ved at tidsforsinkelsen
kommer ved utkobling i stedet for ved innkobling. Figur 4.14 viser eksempel på symbol for en OFF-
Delay timer (TOF), men også her kan symbolet variere noe fra produsent til produsent. Signalet som
skal tidsforsinkes legges på inngang IN og tiden legges på inngang T. Når inngang IN blir "1", vil
utgang Q bli "1" umiddelbart. Når inngang IN blir "0", vil utgang Q bli "0" først etter at tiden T er
utløpt. Dette kommer godt fram i sekvensskjemaet som er vist i figur 4.15.
Figur 4.14
Figur 4.15Sekvensskjema for OFF-Delay timer.
47
4.5 Tellere
En tellerport fungerer slik at den teller opp eller ned hver gang den får en puls på en inngang. Når
antall pulser har nådd en bestemt verdi, gir den signal på utgangen. På engelsk kalles tellere for
counters, og vi skiller mellom tre typer:
- Tellere som teller oppover (count up CTU)
- Tellere som teller nedover (count down CTD)
- Tellere som teller både oppover og nedover (count up/down CTUD)
4.5.1 Count up teller (CTU)
Symbolet for en count up teller er vist nedenfor. Telleren starter på null og teller opp hver gang
innganger (CU) endrer status fra "0" til "1". For at den skal telle videre, må altså inngangen først gå
tilbake til "0" før den blir "1" igjen.
Dersom vi ønsker at telleren skal gi beskjed når den har nådd en viss verdi, legger vi denne verdien på
inngangen PV. Den aktuelle tellerverdien kan vi lese på utgangen CV. Når CV = PV, vil utgang Q endre
status fra "0" til "1", slik som vist i sekvensskjemaet nedenfor. Dersom vi aktiverer reset-inngangen R,
nullstilles tellerverdien (CV).
Figur 4.16
Figur 4.17Sekvensskjema for en count up teller (CTU).
48
4.5.2 Count down teller (CTD)
En count down teller (CTD) er på en måte det motsatte av en count up teller (CTU). Telleren starter
på verdien som er programmert på inngang PV og teller ned mot null. Telleren teller ned hver gang
inngangen (CD) endrer status fra "0" til "1".
Sekvensskjema for en count down teller er vist nedenfor. Når tellerverdien (CV) har kommet ned til
null, ser vi at utgangen Q endrer status til "1". Dersom vi aktiverer reset-inngangen R, settes teller-
verdien (CV) lik PV og utgang Q tilbake til "0". Merk at noen PLS'er har motsatt funksjon slik at Q er
"1" så lenge CV er større enn null, mens den endrer status til "0" når tellerverdien er null. Q får da
omvendt verdi av hva som er vist i sekvensskjema nedenfor. Kontroller derfor manualen eller
hjelpefilene for å finne ut hvordan telleren virker i din PLS.
4.5.3 Count up/down teller (CTUD)
Count up/down-telleren er en kombinasjon av tellerne count up (CTU) og count down (CTD). Telleren
kan telle både opp og ned, og har derfor to tellerinnganger; CU for å telle opp og CD for å telle ned.
En endring på inngang CU fra "0" til "1" vil da føre til at tellerverdien (CV) teller opp, mens en
tilsvarende endring på inngang CD vil føre til at tellerverdien teller ned. Når tellerverdien CV er lik PV,
vil utgang QU (count up) endre status til "1", slik som for CTU-telleren. Utgang QD (count down) vil
endre status til "1" når tellerverdien CV er null, slik som for CTD-telleren.
Figur 4.18
Figur 4.19
Figur 4.20
49
5 DokumentasjonDokumentasjon for PLS-systemer skal først og fremst dokumentere systemenes oppbygging og
virkemåte. Til forskjell fra andre elektriske installasjoner, er det få konkrete krav til
dokumentasjonens innhold og omfang. Vi kan skille dokumentasjonen i fire hovedkategorier:
1) Dokumentasjon som er nødvendig for å kunne utvikle og programmere PLS-systemene.
2) Dokumentasjon som viser systemets fysiske oppbygging og elektriske tilkobling.
3) Dokumentasjon som beskriver systemenes virkemåte.
4) Dokumentasjon som bekrefter systemenes virkemåte.
Den første kategorien er dokumentasjon som må være tilgjengelig før vi i det hele tatt begynner å
jobbe med PLS-systemene. Det finnes mange forskjellige PLS-systemer å velge mellom, og som i alt
annet, er det en sammenheng mellom hva systemene kan og hva de koster. Begrensningene ligger
først og fremst i antall IO (inn- og utganger) systemene kan håndtere. Derfor er det viktig å vite
anleggets signalomfang. Videre er gjerne programminnet begrenset på mindre PLS-serier. Dersom
prosessen du skal programmere krever mye avansert programkode, kan du oppleve at minnet raskt
går fullt på små PLS'er. Dersom PLS-systemet skal håndtere analoge signaler, er det også viktig å
sjekke krav til nøyaktighet (oppløsningsevne) for de analoge verdiene. Her kan det være store
variasjoner.
For å kunne velge ut riktig type PLS og PLS-moduler, trenger vi altså en del informasjon. Du bør
minimum ha følgende dokumentasjon på plass før du begynner velge ut PLS-systemene:
- Krav og tekniske spesifikasjoner
- IO-liste
- Funksjonsbeskrivelse
Den andre kategorien omfatter den dokumentasjonen vi trenger for å utføre fysisk montasje og
tilkobling av PLS-systemene. Dette vil typisk være:
- Tavleskjema
- Koblingsskjema
- Komponentliste
- Liste over anbefalte reservedeler
Den tredje kategorien omfatter dokumentasjon som beskriver PLS-systemenes virkemåte. Dette er
informasjon vi først og fremst finner i anleggets funksjonsbeskrivelse. Slike beskrivelser er ofte
utarbeidet av personer med mye prosesskunnskap, men lite PLS-kunnskap. Derfor kan det være
nødvendig å gjøre disse beskrivelsene mer detaljerte, eller å utarbeide et eget "programmerings-
underlag" som inneholder all den informasjonen vi trenger for å utføre PLS-programmeringen.
Mange velger også å utarbeide forriglingsmatriser som viser alle forriglinger og sikkerhetsfunksjoner i
systemet. Programmeringsunderlag og forriglingsmatriser blir veldig tekniske og litt tungleste for de
som skal bruke systemene etter at de er satt i drift. Derfor bør det utarbeides en egen
brukerveiledning som forklarer hvordan systemet skal betjenes og vedlikeholdes.
Den fjerde kategorien omfatter dokumentasjon som bekrefter at PLS-systemene virker som det skal.
Etter at systemene er ferdig installert og programmert, må de testes grundig slik at vi vet at alle
50
funksjoner virker i henhold til beskrivelsene. Alle testene må dokumenteres ved hjelp av test-
protokoller. Det er også vanlig å lage lister over alle parameterinnstillinger som er gjort under
idriftsettelse. Dersom du eksempelvis må bytte ut en frekvensomformer etter noen år, kan du da
finne tilbake til de parameterinnstillingene som ble benyttet under idriftsettelsen og raskt få den nye
omformeren opp å kjøre. Følgende dokumentasjon bør altså utarbeides etter idriftsettelse:
- Testprotokoller
- Parameterlister
I tillegg til den dokumentasjonen vi allerede har nevnt, vil det også være krav til samsvarserklæring
for tavler og elektroinstallasjoner. Vær oppmerksom på at mange automasjonsanlegg ikke ligger
under norm NEK 400 "Elektriske lavspenningsanlegg", men under norm NEK-EN 60204 "Elektrisk
utrusting på maskiner" (populært kalt "maskindirektivet"). Dette gjelder spesielt for installasjoner i
industrianlegg. I motsetning til NEK 400, har NEK-EN 60204 en del krav til styresystemer. Det er viktig
at du setter deg inn i disse dersom NEK-EN 60204 gjelder for det anlegget du arbeider på. Vi går ikke
igjennom kravene i NEK EN-60204 i denne kursmodulen, men temaet gjennomgås detaljert i
kursmodulen "Maskinsikkerhet".
I de neste kapitlene skal vi se nærmere på noen viktige dokumenter for utforming og dokumentasjon
av PLS-systemer. I tillegg er dokumentasjon av automasjonssystemer generelt beskrevet i
kursmodulen "Automatiserte anlegg".
5.1 Krav og tekniske spesifikasjoner
Når du skal utvikle et nytt PLS-system, vil du ofte måtte forholde deg til en kravspesifikasjon. Dette
gjelder spesielt når en leverandør skal levere et PLS-system til en kunde. Kravspesifikasjonen
utarbeides av kunden eller en konsulent som kunden har engasjert og beskriver alle krav kundene
setter til de systemene som skal leveres. Dersom kunden ønsker å hente inn tilbud fra flere
leverandører, sendes kravspesifikasjonen ut til alle de aktuelle leverandørene. De som ønsker å gi
pris på det aktuelle oppdraget, må sørge for at systemene de tilbyr er i henhold til kundens krav-
spesifikasjon. Når kunden har valgt ut en leverandør, vil kravspesifikasjonen inngå som en del av
kontrakten med den aktuelle leverandøren.
Eksempel 5.1 på neste side viser et lite utdrag av en kravspesifikasjon for et tunnelanlegg til Statens
vegvesen. Den komplette kravspesifikasjonen for elektro- og automasjonsinstallasjonene i dette
anlegget, er på 532 sider. Men vi ser at de få kravene som er nevnt i utdraget allerede har stor
KRAV-
SPESIFIKASJONLEVERANDØR KUNDE
Figur 5.1Kravspesifikasjon er et sentralt dokument mellom kunde og leverandør. Dokumentetspesifiserer blant annet krav til PLS-systemene som skal leveres.
51
betydning for valg og oppsett av PLS-system. Det setter klare krav til hvilke type digitale- og analoge
signaler som skal anvendes, hvordan feil skal håndteres, hvordan datakommunikasjon mellom PLS-er
skal foregå, samt systemenes reservekapasitet og strømforsyning. Allerede med disse kravene vil nok
en hel del PLS-systemer allerede være utelukket.
Mange bedrifter har utarbeidet generelle tekniske spesifikasjoner, ofte forkortet til "GTS" både på
norsk og engelsk (general technical spesifications). Spesifikasjonen tar for seg generelle tekniske krav
som eieren av et anlegg stiller til utstyr som skal installeres i anlegget. Eksempelvis kan en fabrikk ha
utviklet en GTS som alle leverandører til fabrikken må forholde seg til. Eksempel 5.2 nedenfor viser et
utdrag av en GTS for et internasjonalt industrikonsern.
Eksempel 5.1
Teksten nedenfor viser et utdrag av kravspesifikasjonen til et anlegg for Statens Vegvesen:
Sentralutstyr (PLS) skal ha minst 30% reservekapasitet (internminne, utvidelsesmuligheter m.v.) etterinstallasjon. Sentralutstyr og distribuert IO-utstyr skal også ha minst 10 % montert reservekapasitetpå IO, pr. type IO-signal (digitale innganger, digitale utganger, analoge innganger).
Generelt gjelder:
- Digitale utganger fra PLS skal være på 24VDC.
- Analoge innganger skal være av type 4-20 mA.
- Inngangene må kunne tilpasses både aktive givere, og passive givere i 2-ledersystem.
- Dersom analoge innganger er under ca. 3 mA eller over ca. 22 mA skal det genereres alarm
etter ca. 1 min.
- Strømforsyning til styresentral og kommunikasjonsutstyr er 230 V AC ± 10%.
- All kommunikasjon mellom hoved-PLS og underordnede PLS-er i nettet skal formidles via
10/100 Mb/s Ethernet (10/100base-TX, TCP/IP).
Eksempel 5.2
Teksten nedenfor viser et utdrag av GTS for et internasjonalt industrikonsern.
52
Av GTS i eksempel 5.2 ser vi at bedriften stiller krav til både fabrikat og type PLS som skal benyttes.
Mange bedrifter velger å begrense antall typer PLS-systemer av flere forskjellige årsaker:
- Det er krevende å ha kompetanse på mange forskjellige systemer, og de ønsker derfor å
standardisere seg på noen få systemer.
- De ønsker å kunne utføre feilsøking og vedlikehold på systemene. Med mange forskjellige
systemer krever dette mange kostbare programvarer og lisenser, i tillegg til at de må ha
kompetanse på alle programvarene.
- Ved å standardisere seg på noen få PLS-typer, kan reservedeler benyttes på tvers av
anleggene. Dette gjør at de kan redusere størrelsen på reservedelslageret.
I det offentlige har man av konkurransemessige årsaker ikke anledning til å sette krav til bestemte
produsenter på samme måte som i GTS'en i eksempel 5.2. Men ofte blir produsentnavn allikevel
nevnt som eksempel på produkter som kan anvendes. Teksten "eller tilsvarende" blir da tilføyd for å
vise at tilsvarende produkt fra andre produsenter også aksepteres, slik som vist i eksempel 5.3.
Kvaliteten på kravspesifikasjonen kan være svært varierende, og i verste fall mangler den fullstendig.
Dersom kravene er upresise eller mangelfulle, oppstår det lett misforståelser som kan føre til
konflikter mellom leverandør og kunde. Leverandøren leverer noe annet enn det kunden mente han
hadde bestilt.
En god kravspesifikasjon skal inneholde alle de detaljene vi trenger for å utforme PLS-systemene, og
kravene skal være spesifisert på en slik måte at da bare kan forstås på én måte. Da er det ingen tvil
om hva som skal leveres og hvordan anlegget skal fungere.
Eksempel 5.3
Teksten nedenfor viser et utdrag av kravspesifikasjonen til et anlegg for Statens Vegvesen:
For overvåking av temperaturer skal det leveres og monteres analoge temperaturtransmittere eller -transducere i rommene. Måler skal være i industriutførelse, med egnet måleområde,og ha passiv 4-20mA utgang (2-lederprinsipp). Micromatic EFT-276 eller tilsvarende.
Figur 5.2Dårlig formulerte spesifikasjoner kan føre til misforståelser om hva som skal leveres.
Figur 5.3En god spesifikasjon kan bare forstås på én måte. Da oppstår det ingenmisforståelser om hva som skal leveres.
53
Mangelfulle eller dårlig formulert spesifikasjoner er en av de vanligste årsakene til at systemene ikke
blir slik de var tenkt. "Problemet" for oss som jobber med programmering, er at det ligger svært få
begrensninger i systemene. En PLS kan programmeres til nesten hva som helst. Denne mangelen på
begrensninger gjør det enda viktigere med gode spesifikasjoner. Dersom du opplever
spesifikasjonene i ditt prosjekt som mangelfulle, er det viktig at du gir beskjed om dette før du setter
i gang med programmeringsarbeidet.
Selv om ikke alle bedrifter har utarbeidet en GTS eller annen kravspesifikasjon som et skriftlig
dokument, har de aller fleste både krav og ønsker til systemer som skal installeres i deres anlegg.
Dette er viktig å få avklart før arbeidet med PLS-systemene går i gang.
5.2 IO-liste
IO-listene viser alle signaler som skal inn- og ut av PLS-systemet (input/output). Foruten å liste opp
hvert enkelt signal, må listene også inneholde informasjon om type signal og eventuelle krav til
nøyaktighet. En nivåmåling i tank kan være alt fra et digitalt 24VDC-signal eller en potensialfri
mekanisk kontakt, til et analogt instrument som gir ut 0..10V
for hvilken type IO-moduler vi trenger til PLS-systemet, og denne informasjonen må derfor være på
plass før vi begynner å sette opp systemene. IO-listene bør også inneholde informasjon om aktiv og
inaktiv tilstand for digitale signaler, samt skalering av analoge signaler. Med "aktiv" tilstand mener vi
hvilken status vi har på inn- eller utgangen når for eksempel en knapp eller sensor betjenes, et vern
løser ut eller en kontaktor aktiveres.
DIGITAL IO
Pos Signal Tag Type Signal Aktiv Modul Kanal Adr.
1.1 Trykknapp start pumpe 1 S11 DI 24VDC 1 U2 0 I 0.0
1.2 Kontaktorsvar pumpe 1 K11A DI 24VDC 1 U2 1 I 0.1
1.3 Trykknapp stopp pumpe 1 S12 DI 24VDC 1 U2 2 I 0.2
1.4 Motorvern utløst pumpe 1 F11 DI 24VDC 1 U2 3 I 0.3
1.5 Kontaktor pumpe 1 K11 DO 24VDC 1 U3 0 Q 1.0
Tabell 5.1
Eksempel på IO-liste for digital IO. Vi ser at listen beskriver tagkode, adresse og type signal for hver
IO. Videre ser vi at listen også inneholder informasjon om fysisk tilkobling som modul- og
kanalnummer.
ANALOG IO
Pos Signal Tag Type Signal/Skalering Modul Kanal Adr.
2.1 Temperatur tank 1 TT1 AI0..10 V
U4 0PIW90-10..50 C (±0,1C)
2.2 Nivå tank 1 LT1 AI4..20 mA
U4 2PIW940..5 m (± 0,1m)
Tabell 5.2
Eksempel på IO-liste for analog IO. Vi ser at listen angir skalering av de to analoge signalene med krav
til nøyaktighet på henholdsvis ±0,1 C og ±0,1 m.
54
På posisjon 1.4 i IO-lista for digital IO står det "Motorvern utløst pumpe 1" ved aktiv tilstand "1". Det
betyr at vi får signal "1" på inngangen når motorvernet løser ut, og signal "0" når det er i orden.
Mange velger å benytte hvilekontakter på vern og stoppfunksjoner. Dersom vi hadde gjort det på
motorvernet i vårt eksempel, hadde vi i stedet fått "0" når vernet løser ut og "1" når det er i orden.
Dette kan vi løse på to måter:
1) vi kan la teksten være slik den er og endre aktiv tilstand til "0"
2) vi kan la aktiv tilstand være slik den er og endre teksten til "Motorvern OK"
De to alternativene er vist i tabell 5.3 nedenfor. Hvilket alternativ du velger er ikke så viktig, men det
er viktig at det er samsvar mellom tekst og statusen du oppgir som aktivt signal.
Pos Signal Tag Type Signal Aktiv Modul Kanal Adr.
1.4 Motorvern utløst pumpe 1 F11 DI 24VDC 0 U2 3 I 0.3
1.4 Motorvern OK pumpe 1 F11 DI 24VDC 1 U2 3 I 0.3
Tabell 5.3
Det er ingen regel for hvordan en IO-liste skal se ut, og du vil helt sikkert komme borti IO-lister som
er utformet annerledes enn eksemplene i tabell 5.1 og 5.2. En vanlig feil er at de som utarbeider
listen ikke tar med informasjon om hva signalstatusen er i aktiv tilstand. Dersom du bare skriver
"Motorvern pumpe 1" og heller ikke oppgir aktivt signal er det vanskelig å vite hva "0" eller "1" på
inngangen betyr. Sannsynlighet for at programkoden blir feil og at den må endres etter at det er satt
spenning på systemene, er stor.
5.3 Funksjonsbeskrivelse
En funksjonsbeskrivelse beskriver alle funksjoner PLS-systemet skal håndtere. Som tidligere nevnt, er
slike beskrivelser ofte utarbeidet av personer med mye kunnskap om prosess og noe mindre
kunnskap om PLS. Og slik må det ofte være, men det er viktig at du som PLS-fagmann da er forberedt
på at beskrivelsen kan mangle informasjon som er viktig for programmering av PLS-systemene. Da
kan du enten oppdatere funksjonsbeskrivelsen slik at den inneholder den informasjonen du trenger,
eller du kan utarbeide et eget programmeringsunderlag. Med tanke på versjonshåndtering av
dokumenter, er det en fordel om man klarer seg med én funksjonsbeskrivelse.
En funksjonsbeskrivelse som også skal benyttes som programmeringsunderlag for PLS-systemene,
bør minimum inneholde følgende:
- Generell beskrivelse av funksjon
- Operasjoner i forskjellige driftsmoduser (manuell/auto)
- Forriglinger
- Betjeningsmuligheter
- Parameterinnstillinger
- Visninger
- Alarmer
Funksjonsbeskrivelsen bør deles inn slik at den ikke beskriver hele anlegget under ett, men tar for seg
ett og ett objekt eller prosessavsnitt. Dette gjør at beskrivelsen blir mer oversiktlig.
55
Eksempel 5.4
Eksempel på funksjonsbeskrivelse på pumpe 1 fra tidligere eksempler.
PUMPE 1
1. Funksjon
Pumpe 1 pumper vann i til tank 1. Pumpen skal kunne gjøres i to driftsmoduser:
- Manuell
- Auto
I manuell modus skal pumpen kunne startes og stoppes manuelt ved hjelp av
knapper trykknapper plassert ved pumpen.
I automodus skal pumpen regulere nivået i tank 1. Nivået skal reguleres mellom
øvre og nedre nivågrense (hysterese). Pumpen skal starte når den når nedre
nivågrense og stoppe når den når øvre nivågrense.
2. Forriglinger
Pumpen skal ikke kunne starte dersom nivåalarm for høyt nivå er aktivert.
3. Betjening
Følgende betjeningsmuligheter skal finnes for pumpe 1:
- Valg av auto eller manuell driftsmodus
- Starte og stoppe pumpe i manuell
- Nullstille alarm
4. Parameter
Følgende parameter skal kunne stilles inn for pumpe 1:
- Nivågrense for start av pumpe i automodus
- Nivågrense for stopp av pumpe i automodus
- Nivågrense for alarm "høyt nivå"
- Nivågrense for alarm "lavt nivå"
5. Visning
Følgende visninger skal finnes på skjermsystem (HMI) for pumpe 1:
- Indikering av driftsmodus auto/manuell
- Indikering av driftsstatus; "stopp" (hvit) , "drift" (grønn) eller "alarm" (rød)
- Nivå i tank vises med tall og animasjon av nivå i tankobjekt.
6. Alarm
Følgende alarmer skal gis for nivåreguleringen i tank 1:
Nr Alarm Konsekvens
1 Motorvern pumpe 1 utløst Stopp pumpe 1
2 Høyt nivå tank 1 Stopp pumpe 1
3 Lavt nivå tank 1 Stopp pumpe 1
56
5.4 Forriglingsmatrise
En forrigling er en sikkerhetsfunksjon som skal forebygge at en uønsket situasjon oppstår.
Forriglinger kan være løst både med programmerte funksjoner og med elektriske eller mekaniske
installasjoner. Det bør uansett utarbeides en forriglingsmatrise som viser disse funksjonene.
Forriglingsmatriser presenteres gjerne som tabeller eller blokkskjema. Figur 5.4 viser et eksempel på
en forriglingsmatrise i tabellformat. Forskjellige hendelser er beskrevet i den venstre delen av
tabellen (vertikalt), og hendelsens konsekvens i den høyre delen av tabellen.
5.5 Testprotokoller
Det er sjelden man klarer å gjøre alt programmerings- og installasjonsarbeid helt feilfritt på første
forsøk. En feil i PLS-systemene får ofte store konsekvenser og kan forårsake produksjonstap eller i
verste fall skader på mennesker og materiell. Det er derfor viktig å teste systemene grundig slik at vi
er sikre på at de fungerer i henhold til beskrivelsene og at alle feil er avdekket og utbedret.
Hvilke tester som skal gjennomføres kan variere veldig fra prosjekt til prosjekt. I noen prosjekter
setter kunden krav til hvilke tester som skal gjennomføres, mens i andre prosjekter er det opp til
leverandøren selv å avgjøre. I noen prosjekter er testene formelle og dokumenteres grundig i
detaljerte protokoller, mens andre gjennomfører uformelle tester etter "magefølelse" uten å
dokumentere noe som helst. Det siste er ikke å anbefale. For å være sikre på at alle funksjoner blir
testet, samt at man i ettertid kan gå tilbake og kontrollere testresultatene, bør alle tester
dokumenteres med testprotokoller.
Figur 5.4Eksempel på forriglingsmatrise.
57
Figur 5.5 viser tester som er vanlig å utføre for automasjonsanlegg. Selv om ikke alle utfører alle disse
testene formelt, gjennomføres allikevel de fleste testene mer eller mindre i uformelle former.
De to første testene utføres før installasjon vanligvis i leverandørens lokaler:
IAT "Internal acceptance test" er en intern test som leverandøren utfører for seg selv for å
bekrefte at systemene virker som de skal gjerne som forberedelse til FAT.
FAT "Factory acceptance test" utføres også hos leverandøren, men til forskjell fra IAT, kan kunden
være til stede.
Siden interne tester utføres før systemene installeres ute på anlegget, må disse gjennomføres med
simulatorer eller andre former for testoppkoblinger. Disse testene begrenses ofte til stikkprøver og
test av enkeltfunksjoner.
Etter installasjon ute på anlegget (eng.: site) utføres de neste tre testene:
MC "Mechanical completion" er en kontroll av at alt utstyr er korrekt installert og montert. MC
skal være godkjent før det settes spenning på utstyret.
SAT "Site acceptance test" er en komplett test av alle systemer og funksjoner som inngår i
anlegget. Dette er normalt den mest omfattende av alle testene.
OAT "Operational acceptance test" er en kontroll av at systemene fungerer som de skal over tid. I
en slik test gjøres det vanligvis bare stikkprøver av enkelte funksjoner.
Før testene gjennomføres blir partene enige om testens innhold og akseptansekriterier altså hvilke
kriterier som gjelder for at testene kan regnes som godkjent. Det må også etableres rutiner for
hvordan avvik (feil) som oppdages under testen skal håndteres. Det er vanlig å dele avvik inn i
kategorier alt etter hvor alvorlige disse er.
Kategori 1: Alvorlig avvik som må utbedres for at testen kan godkjennes.
Kategori 2: Middels alvorlig avvik som må utbedres innen neste test.
Kategori 3: Mindre alvorlig avvik som må utbedres innen overtakelse (OAT).
Den siste testen (OAT) benyttes gjerne som kriterium for overtakelse. Det betyr at OAT skal være
godkjent før kunden aksepterer å overta anlegget fra leverandøren.
Testprotokollene utarbeides gjerne i form av sjekklister. Eksempel 5.5 på neste side viser hvordan en
IAT FAT MC SAT OAT
FØR INSTALLASJON ETTER INSTALLASJON
Figur 5.5Tester som vanligvis utføres for automasjonsanlegg.
58
test- og avviksprotokoll kan se ut.
Eksempel 5.5
Eksempel på testprotokoll på pumpe 1 fra tidligere eksempler.
Pkt Test IAT FAT SAT OAT AVV.
1 Systemtest
1.1 Kontroller at PLS-systemer er korrekt satt opp. X X X X
1.2 Spenningssett systemene og kontroller at detikke kommer opp noen feilmeldinger.
X X X X
2 Funksjonstest pumpe 1
2.1 Kontroller at pumpe 1 kan startes og stoppes imanuell.
X X X X
2.2 Sett pumpe i auto og kontroller at den starterved nedre nivågrense og stopper ved øvrenivågrense.
X X X X 1
2.3 Kontroller at pumpe stopper ved utløstmotorvern.
X X X X
AVVIKSPROTOKOLL
Avvik Pkt. Beskrivelse Kat. Utbedret
1 2.2 Pumpen stopper ikke ved øvre nivågrense. 1 01.02.2014
2
3
4