Procesanalyse & Automation

Regulering, PLC, instrumentering og industrinetværk samlet i korte opslag med praktiske principper, signaler og centrale beregninger.

Grundlæggende regulering

Lukket sløjferegulering (feedback)
#regulering
Feedback er det princip der gør et procesanlæg robust over for lastændringer, forstyrrelser og modelusikkerhed. Regulatoren sammenligner den ønskede værdi med den målte værdi og korrigerer på afvigelsen, så processen søger tilbage mod sin arbejdstilstand. I praksis er det især vigtigt at skelne mellem servo-opgaven, hvor setpunktet flyttes, og regulatoropgaven, hvor processen skal holde kursen trods forstyrrelser. Det er den sidste der afgør om et anlæg opleves som stabilt i drift.
On/off-regulering vs. kontinuerlig regulering
#regulering
Valget afhænger af hvor præcis processen skal være, og hvor komplekst anlægget må være.
On/offPID
PræcisionLav (hysterese)Høj
KompleksitetSimpelKræver tuning
Typisk brugAlarmer, pumpestartTemperaturstyring, tryk
PID-regulator
#regulering #formler
PID kombinerer tre bidrag, så regulatoren både kan reagere på den aktuelle fejl, akkumulere systematisk afvigelse og forudse hurtige ændringer i processen.
PID-formel
$$u(t) = K_p \cdot e(t) + K_i \cdot \int e \, dt + K_d \cdot \frac{de}{dt}$$
u(t) = regulatoroutput · e(t) = reguleringsfejl · Kp, Ki og Kd bestemmer hvor hårdt regulatoren reagerer.
Bruges især til temperatur, tryk, niveau og flow, hvor processen skal holdes stabil omkring et setpunkt. Det vigtige trade-off er altid mellem hurtighed, robusthed og støjfølsomhed.
2.00
3.0 s
0.40 s

Processen er en simpel 2. ordens model med dødtid. Setpunktet hopper fra 0 til 1 ved $t = 1$ s. Klik et scenarie eller skru på skyderne og se i realtid hvordan reguleringen ændrer sig - måletallene øverst til højre opdateres med oversving, indsvingningstid og blivende afvigelse.

Instrumentering

4–20 mA signalstandard
#instrumentering
Industristandard for analoge signaler - robust over lange afstande. Strømsløjfer er robuste fordi signalet bæres som strøm og derfor er langt mindre følsomt for spændingsfald i kablerne. Det gør 4-20 mA velegnet i støjende industrimiljøer, ved lange føringsveje og når transmitter og PLC ikke deler helt samme potentiale.

Grunden til at 4 mA (og ikke 0 mA) bruges som "levende nul" er, at det gør det muligt at skelne mellem "signal = 0%" og "ledningsbrud/fejl". Et signal på 0 mA indikerer altid fejl, uanset procesværdi.

P&ID - Rørsystemtegning med instrumentering
#instrumentering
Piping and Instrumentation Diagram viser alle rør, ventiler og instrumenter. Et P&ID er ikke bare en tegning, men anlæggets funktionelle kort. Det bruges i drift, fejlfinding, commissioning og sikkerhedsarbejde, fordi det viser hvor der måles, reguleres, isoleres og alarmeres.

PLC - Programmable Logic Controller

PLC - hvad er det og hvad gør det
#plc
En PLC (Programmable Logic Controller) er en industriel computer designet til at styre maskiner og processer i realtid. Den erstatter relæpaneler og er bygget til at tåle industrimiljø (støv, vibration, temperatur). Typiske fabrikanter: Siemens (S7), Rockwell/Allen-Bradley (ControlLogix), Beckhoff (TwinCAT), Schneider (Modicon), Mitsubishi. PLC'ens styrke er den deterministiske eksekvering. I almindelig IT accepteres variation i svartid, men i automation er timing en del af funktionen, fordi sekvenser, interlocks og safety afhænger af at systemet reagerer forudsigeligt hver eneste scan.
PLC-opbygning
#plc
SignalTypeEksempelTypisk niveau
DIDigital indTrykknap, endestop24 VDC / 0 VDC
DODigital udKontaktor, ventil24 VDC / relæ
AIAnalog indTryktransmitter4–20 mA / 0–10 V
AOAnalog udFrekvensom­former4–20 mA / 0–10 V
PLC scan-cyklus
#plc
PLC'en kører i en kontinuerlig løkke - scan-cyklussen. Typisk scan-tid: 1–20 ms.
  1. Læs inputs: alle fysiske inputs kopieres til process image input (PII)
  2. Udfør program: programmet kører mod PII - ikke direkte mod hardware
  3. Skriv outputs: process image output (PIQ) skrives til fysiske outputs
  4. Kommunikation & diagnostik: netværkspakker, watchdog, selvtest
Fordelen ved process image: outputs ændres ikke midt i en scan - sikrer konsistens.
Watchdog: hardware-timer der genstarter CPU'en hvis scan-tid overskrides.

Scan-tiden sætter en øvre grænse for hvor hurtige processer PLC'en kan styre. Ved hurtige processer (vibration, flow-pulsationer) kan scan-tiden betyde at ændringer misses mellem to scans.

IEC 61131-3 - PLC-programmeringssprog
#plc #programmering
International standard der definerer fem PLC-programmeringssprog:
SprogTypeEgnet til
LD - Ladder DiagramGrafiskRelælogik, on/off-styring - mest udbredt
FBD - Function Block DiagramGrafiskRegulering, dataflow, PID-blokke
ST - Structured TextTekstKompleks logik, beregninger, algoritmer
IL - Instruction ListTekstAssembler-lignende - forældet i IEC 61131-3 ed. 3
SFC - Sequential Function ChartGrafiskSekventielle processer, tilstandsmaskiner
Alle fem sprog kan blandes i samme projekt - typisk: LD til simpel I/O, ST til beregninger, SFC til sekvenser.

PLC - Ladder Diagram (LD)

Ladder Diagram (LD) - grundelementer
#plc #programmering
LD ligner et relæskema - strøm flyder fra venstre skinne til højre hvis betingelserne er opfyldt.
SymbolNavnFunktion
-| |-NO-kontaktLukket (sand) når bit er 1
-|/|-NC-kontaktLukket (sand) når bit er 0
-( )-Spole (output)Sætter bit til 1 når rung er sand
-(S)-Set (latch)Sætter bit til 1 - forbliver sat
-(R)-Reset (unlatch)Nulstiller bit til 0
-[P]-Positiv flankeÉn scan sand ved stigende flanke
-[N]-Negativ flankeÉn scan sand ved faldende flanke
Eksempel - start/stop-kredsløb med selvholdning:
|--[ Start ]--[/Stop ]--+--[ Motor ]--+--( Motor )--|
|                        |             |             |
|                        +--[ Motor ]--+             |
Ladder Diagram - timere og tællere
#plc #programmering
Timere (IEC 61131-3):
BlokFunktionVigtige pins
TONTimer On-Delay - Q går høj efter PT sekunderIN, PT, Q, ET
TOFTimer Off-Delay - Q forbliver høj i PT sekunder efter IN falderIN, PT, Q, ET
TPPuls-timer - Q er høj i præcis PT sekunder ved IN-stigende flankeIN, PT, Q, ET
IN = start-signal  |  PT = preset tid (f.eks. T#5S, T#500MS)  |  ET = forløbet tid  |  Q = output

Tællere:
BlokFunktion
CTUCount Up - tæller CU-pulser op, Q = 1 når CV ≥ PV
CTDCount Down - tæller ned fra LD-værdien, Q = 1 når CV ≤ 0
CTUDCount Up/Down - kombination af CTU og CTD
CU/CD = tælle-puls  |  R = reset  |  PV = preset  |  CV = aktuel tælling

PLC - Struktureret Tekst (ST)

Struktureret Tekst - syntaks og datatyper
#plc #programmering
ST er et Pascal/C-lignende tekstsprog - kraftfuldt til beregninger og kompleks logik.
DatatypeStørrelseEksempel
BOOL1 bitTRUE / FALSE
INT16 bit-32768 til 32767
DINT32 bit± 2 milliarder
REAL32 bitKommatal: 3.14
TIME32 bitT#5S, T#500MS
STRINGvariabel'Hej verden'
Operatorer: := (tildeling)  ·  + - * / MOD (aritmetik)  ·  AND OR NOT XOR (logik)  ·  = <> < > <= >= (sammenligning)
Kommentarer: (* dette er en kommentar *)

Simpelt eksempel - start/stop med timer:
IF StartButton AND NOT EmergencyStop THEN
    MotorOutput := TRUE;
    Timer1(IN := TRUE, PT := T#5S);
ELSE
    MotorOutput := FALSE;
    Timer1(IN := FALSE);
END_IF;

(* Alarm efter 5 sek uden flow *)
IF Timer1.Q THEN
    Alarm_NoFlow := TRUE;
END_IF;
Struktureret Tekst - kontrolstrukturer
#plc #programmering
IF / ELSIF / ELSE:
IF Tryk > 10.0 THEN
    Alarm := TRUE;
ELSIF Tryk > 8.0 THEN
    Advarsel := TRUE;
ELSE
    Alarm := FALSE;
    Advarsel := FALSE;
END_IF;
CASE (switch):
CASE Tilstand OF
    0: Motor := FALSE; Ventil := FALSE;
    1: Motor := TRUE;  Ventil := FALSE;
    2: Motor := TRUE;  Ventil := TRUE;
ELSE
    Motor := FALSE;
END_CASE;
FOR-løkke:
FOR i := 0 TO 9 DO
    Gennemsnit := Gennemsnit + Maaling[i];
END_FOR;
Gennemsnit := Gennemsnit / 10;
WHILE og REPEAT:
WHILE Tæller < 100 DO
    Tæller := Tæller + 1;
END_WHILE;

REPEAT
    Tæller := Tæller + 1;
UNTIL Tæller >= 100
END_REPEAT;
Undgå WHILE/REPEAT i PLC-kode uden exit-betingelse - de blokerer scan-cyklussen.

Kommunikationsprotokoller

Industrielle busser - overblik
#protokol #plc
ProtokolFysisk lagHastighedTopologiTypisk brug
Modbus RTURS-4859,6–115 kbaudMaster/Slave busSensorer, simple enheder
Modbus TCPEthernet100 Mbit/sClient/ServerPLC↔SCADA, HMI
PROFIBUS DPRS-485op til 12 Mbit/sMaster/Slave busSiemens I/O-moduler, frekvensomformere
PROFINETEthernet100 Mbit/s+Linje/Stjerne/RingSiemens PLC, distribueret I/O
EtherNet/IPEthernet100/1000 Mbit/sStjerneRockwell/Allen-Bradley
CANopenCAN-busop til 1 Mbit/sBusMaskiner, automotive, drives
OPC UAEthernet/TCP-Client/ServerPLC↔IT/Cloud, tværfabrikat
Modbus RTU og Modbus TCP
#protokol #plc
Modbus er den enkleste og mest udbredte industriprotokol - åben standard fra 1979. Function codes (FC):
FCFunktionRegisterttype
01Read CoilsDigitale outputs (bit)
02Read Discrete InputsDigitale inputs (bit)
03Read Holding RegistersAnaloge outputs / setpoints (16-bit word)
04Read Input RegistersAnaloge inputs (16-bit word)
05/06Write Single Coil/RegisterSkriv ét element
15/16Write Multiple Coils/RegistersSkriv blok
Registre er 16-bit (0–65535). Float = to på hinanden følgende 16-bit registre (IEEE 754, 32-bit).
PROFIBUS DP
#protokol #plc
Process Field Bus - Siemens-drevet feltbus, IEC 61158. Dominerende i 1990'erne–2010'erne.
BaudrateMax kabellængde pr. segment
9,6 – 187,5 kbaud1200 m
500 kbaud400 m
1,5 Mbit/s200 m
12 Mbit/s100 m
GSD-filer (General Station Description) beskriver enhedens parametre og bruges ved konfiguration.
PROFINET
#protokol #plc #netværk
Siemens Ethernet-baseret efterfølger til PROFIBUS - IEC 61158/61784. Kommunikationsklasser:
KlasseCyklustidBrug
NRT (Non-Real-Time)>100 msParameterisering, diagnostik
RT (Real-Time)1–100 msStandard I/O, standard PLC-kommunikation
IRT (Isochronous Real-Time)31,25 µs – 1 msMotion control, synkroniserede drives
GSDML-filer (XML) beskriver enheder. Understøtter ring-topologi med MRP (Media Redundancy Protocol) for fejltolerance.
OPC UA - dataudveksling på tværs af fabrikanter
#protokol #netværk
OPC Unified Architecture - platform-uafhængig standard for industriel dataudveksling (IEC 62541). OPC UA er "sproget" der gør Industry 4.0 muligt - PLC kan tale direkte med ERP, cloud og historian.

Netværk & TCP/IP

OSI-modellen og TCP/IP-stakken
#netværk
OSI-modellen beskriver kommunikation i 7 lag - TCP/IP bruger i praksis 4 lag.
OSI-lagNavnTCP/IP-lagEksempler
7ApplikationApplikationHTTP, FTP, Modbus TCP, OPC UA, SMTP
6PræsentationSSL/TLS, MIME, kryptering
5SessionRPC, NetBIOS
4TransportTransportTCP (port-til-port, pålidelig), UDP (hurtig)
3NetværkInternetIP (routing), ICMP (ping), ARP
2DatalinkNetværksadgangEthernet (MAC-adresser), VLAN (802.1Q)
1FysiskKabler, switches, RJ45, fibre
Industriel kommunikation bevæger sig typisk: applikationsprotokol → TCP/UDP → IP → Ethernet.
IP-adressering og subnetting
#netværk
IPv4: 32-bit adresse skrevet som 4 oktetter: 192.168.1.100 Privat adresserum (RFC 1918):
KlasseIntervalTypisk brug
A10.0.0.0 – 10.255.255.255Store virksomhedsnetværk
B172.16.0.0 – 172.31.255.255Mellemstore netværk
C192.168.0.0 – 192.168.255.255Industrianlæg, kontor
I industrien: brug altid statiske IP-adresser til PLC'er og instrumenter - DHCP er upålideligt for kritisk udstyr.
TCP vs. UDP
#netværk
TCPUDP
ForbindelsestypeForbindelsesorienteret (3-way handshake: SYN → SYN-ACK → ACK)Forbindelsesløs
LeveringsgarantiJa - gensender tabt data automatiskNej - "fire and forget"
RækkefølgeGaranteretIkke garanteret
OverheadHøj (ACK, flow control)Lav (8-byte header)
HastighedLangsommereHurtigere
Industrielt brugModbus TCP, OPC UA, filoverførselPROFINET RT, realtids-broadcast, IGMP
Port-numre: 502 = Modbus TCP  |  4840 = OPC UA  |  102 = Siemens S7  |  80/443 = HTTP/HTTPS (webserver i PLC)
Industriel netværkssegmentering og VLAN
#netværk
I industrien er det kritisk at adskille OT-netværket (styring) fra IT-netværket (kontor/internet). Eksempel på zoneopdeling (Purdue-model):
NiveauZoneUdstyr
0–1FeltSensorer, aktuatorer, drives
2StyringPLC'er, SCADA, HMI
3MES/DMZHistorian, dataserver, OPC UA gateway
4–5IT / EnterpriseERP, kontor-PC, internet
Aldrig direkte forbindelse fra felt-PLC til internet - al OT/IT-integration skal ske via DMZ.

Regulatorformler

P-regulator
#regulering #formler
P-regulatoren er den simpleste lukkede regulator og bruges når hurtig reaktion er vigtigere end perfekt nulpunktsfejl.
P-regulatorformel
$$U = K_p \cdot e + u_0$$
e = SP − PV (reguleringsafvigelse) · Kp = proportionalforstærkning · u0 = normaloutput, bias · U har samme enhed som processignalet (f.eks. mA, V eller %)
$$Pb\% = \frac{100\%}{K_p} \;\text{[\%]}$$
Viser sammenhængen mellem proportionalforstærkning og regulatorens proportionalbånd. Lavt proportionalbånd betyder mere aggressiv regulering.

En ren P-regulator har altid en stationær afvigelse (offset) ved belastningsændringer, fordi der skal være en fejl e ≠ 0 for at regulatoren overhovedet giver et styresignal.

PI-regulator
#regulering #formler
PI-regulatoren er standardvalget i mange procesanlæg, fordi den både reagerer hurtigt og fjerner stationær afvigelse.
PI-1
$$U = K_p \cdot \left(e + \frac{1}{T_i} \cdot \int e \, dt\right)$$
PI-2
$$U = K_p \cdot e + \frac{1}{T_i} \cdot \int e \, dt$$
Ti [s] = efterstillingstid (integraltid) · U har samme enhed som processignalet (f.eks. mA, V eller %). Bruges især til flow, niveau og temperatur, hvor processen ikke er alt for støjfølsom.
PID-regulator
#regulering #formler
PID vælges når processen både skal være hurtig, stabil og præcis, især ved temperatursløjfer og træg procesdynamik.
PID-1
$$U = K_p \cdot \left(e + \frac{1}{T_i} \cdot \int e \, dt + T_d \cdot \frac{de}{dt}\right)$$
PID-2
$$U = K_p \cdot e + \frac{1}{T_i} \cdot \int e \, dt + T_d \cdot \frac{de}{dt}$$
Td [s] = differentialtid (forvirkningsstid) · U har samme enhed som processignalet (f.eks. mA, V eller %). D-leddet dæmper oversving, men gør regulatoren mere følsom over for støj.
Ziegler-Nicholls indstillingsmetode
#regulering #formler
Metoden giver et hurtigt første bud på regulatorindstilling, som derefter finjusteres på den virkelige proces. Lukket sløjfe med P-regulator: Ta = ∞, Tv = 0.
RegulatorKpTi [s]Tv [s]
P0,5 · Ksk--
PI0,45 · Ksk0,83 · Tsk-
PID0,6 · Ksk0,5 · Tsk0,125 · Tsk
For PID-regulatorformel PID-2: Ti = Tsk / Kp,   Td = Kp · Tv

Ziegler-Nicholls er nyttig som startpunkt, men den giver ofte en relativt aggressiv tuning med tydeligt oversving. I procesanlæg med store energilagre, sikkerhedsmæssige begrænsninger eller støjende målinger skal indstillingen næsten altid trækkes tilbage bagefter.

Digital regulering - samplingsfrekvens
#regulering #formler
Samplingsfrekvensen afgør hvor godt en digital PLC eller regulator kan følge en analog proces uden at miste information.
Nyquist-kriteriet
$$f_s > 2 \cdot f_k \;\text{[Hz]}$$
fs = samplingsfrekvensen [Hz] · fk = processens kritiske frekvens [Hz]
$$t_s = \frac{1}{f_s} \;\text{[s]}$$
ts er tiden mellem to målinger og sætter regulatorens praktiske opdateringshastighed.
$$f_s > \frac{10}{\tau_{dom}} \;\text{[Hz]}$$
Tommelfingerregel: sample mindst 10 gange hurtigere end den dominerende tidskonstant, så regulatoren ser processen tydeligt.

For lav samplingsfrekvens giver aliasing, ekstra faselag og dårlig reguleringskvalitet. For høj samplingsfrekvens er heller ikke gratis, fordi CPU-belastning, netværkstrafik og målesstøj bliver mere fremtrædende uden nødvendigvis at give bedre procesinformation.

1. ordens støjfilter (digital)
#regulering #formler
Et førsteordens filter dæmper målesstøj, så regulatoren ikke reagerer på små hurtige variationer i signalet.
Filterformel
$$y_n = (\alpha \cdot y_{n-1}) + (\beta \cdot x_n)$$
Koefficienter
$$\beta = 1 - \alpha \\ \alpha = e^{-1/\tau} \;\text{[-]}$$
α og β er dimensionsløse koefficienter [-]. α bestemmer hvor meget gammel værdi bevares, mens β vægter den nye måling.
xn = input til filter · yn = output fra filter · ts = samplingstiden · τ = tidskonstant for 1. ordens filter · n = samplingnummer. Bruges typisk på støjende temperatur-, tryk- og niveauinput.

Filteret forbedrer signalets ro, men indfører samtidig træghed. For kraftig filtrering kan i praksis ligne ekstra dødtid, og det er ofte nok til at gøre en ellers stabil PID-sløjfe langsom eller svingende.