- Setpunkt (SP) - ønsket værdi
- Procesværdi (PV) - målt aktuel værdi
- Fejl (e) = SP − PV
- Aktuator - ventil, motor eller pumpe der ændrer processen
Regulering, PLC, instrumentering og industrinetværk samlet i korte opslag med praktiske principper, signaler og centrale beregninger.
| On/off | PID | |
|---|---|---|
| Præcision | Lav (hysterese) | Høj |
| Kompleksitet | Simpel | Kræver tuning |
| Typisk brug | Alarmer, pumpestart | Temperaturstyring, tryk |
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.
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.
| Signal | Type | Eksempel | Typisk niveau |
|---|---|---|---|
| DI | Digital ind | Trykknap, endestop | 24 VDC / 0 VDC |
| DO | Digital ud | Kontaktor, ventil | 24 VDC / relæ |
| AI | Analog ind | Tryktransmitter | 4–20 mA / 0–10 V |
| AO | Analog ud | Frekvensomformer | 4–20 mA / 0–10 V |
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.
| Sprog | Type | Egnet til |
|---|---|---|
| LD - Ladder Diagram | Grafisk | Relælogik, on/off-styring - mest udbredt |
| FBD - Function Block Diagram | Grafisk | Regulering, dataflow, PID-blokke |
| ST - Structured Text | Tekst | Kompleks logik, beregninger, algoritmer |
| IL - Instruction List | Tekst | Assembler-lignende - forældet i IEC 61131-3 ed. 3 |
| SFC - Sequential Function Chart | Grafisk | Sekventielle processer, tilstandsmaskiner |
| Symbol | Navn | Funktion |
|---|---|---|
-| |- | NO-kontakt | Lukket (sand) når bit er 1 |
-|/|- | NC-kontakt | Lukket (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 |
|--[ Start ]--[/Stop ]--+--[ Motor ]--+--( Motor )--|
| | | |
| +--[ Motor ]--+ |
| Blok | Funktion | Vigtige pins |
|---|---|---|
| TON | Timer On-Delay - Q går høj efter PT sekunder | IN, PT, Q, ET |
| TOF | Timer Off-Delay - Q forbliver høj i PT sekunder efter IN falder | IN, PT, Q, ET |
| TP | Puls-timer - Q er høj i præcis PT sekunder ved IN-stigende flanke | IN, PT, Q, ET |
IN = start-signal | PT = preset tid (f.eks. T#5S, T#500MS) | ET = forløbet tid | Q = output
| Blok | Funktion |
|---|---|
| CTU | Count Up - tæller CU-pulser op, Q = 1 når CV ≥ PV |
| CTD | Count Down - tæller ned fra LD-værdien, Q = 1 når CV ≤ 0 |
| CTUD | Count Up/Down - kombination af CTU og CTD |
CU/CD = tælle-puls | R = reset | PV = preset | CV = aktuel tælling
| Datatype | Størrelse | Eksempel |
|---|---|---|
BOOL | 1 bit | TRUE / FALSE |
INT | 16 bit | -32768 til 32767 |
DINT | 32 bit | ± 2 milliarder |
REAL | 32 bit | Kommatal: 3.14 |
TIME | 32 bit | T#5S, T#500MS |
STRING | variabel | 'Hej verden' |
:= (tildeling) · + - * / MOD (aritmetik) · AND OR NOT XOR (logik) · = <> < > <= >= (sammenligning)
(* dette er en kommentar *)
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;
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;
| Protokol | Fysisk lag | Hastighed | Topologi | Typisk brug |
|---|---|---|---|---|
| Modbus RTU | RS-485 | 9,6–115 kbaud | Master/Slave bus | Sensorer, simple enheder |
| Modbus TCP | Ethernet | 100 Mbit/s | Client/Server | PLC↔SCADA, HMI |
| PROFIBUS DP | RS-485 | op til 12 Mbit/s | Master/Slave bus | Siemens I/O-moduler, frekvensomformere |
| PROFINET | Ethernet | 100 Mbit/s+ | Linje/Stjerne/Ring | Siemens PLC, distribueret I/O |
| EtherNet/IP | Ethernet | 100/1000 Mbit/s | Stjerne | Rockwell/Allen-Bradley |
| CANopen | CAN-bus | op til 1 Mbit/s | Bus | Maskiner, automotive, drives |
| OPC UA | Ethernet/TCP | - | Client/Server | PLC↔IT/Cloud, tværfabrikat |
502, ingen CRC (TCP håndterer det)| FC | Funktion | Registerttype |
|---|---|---|
| 01 | Read Coils | Digitale outputs (bit) |
| 02 | Read Discrete Inputs | Digitale inputs (bit) |
| 03 | Read Holding Registers | Analoge outputs / setpoints (16-bit word) |
| 04 | Read Input Registers | Analoge inputs (16-bit word) |
| 05/06 | Write Single Coil/Register | Skriv ét element |
| 15/16 | Write Multiple Coils/Registers | Skriv blok |
| Baudrate | Max kabellængde pr. segment |
|---|---|
| 9,6 – 187,5 kbaud | 1200 m |
| 500 kbaud | 400 m |
| 1,5 Mbit/s | 200 m |
| 12 Mbit/s | 100 m |
| Klasse | Cyklustid | Brug |
|---|---|---|
| NRT (Non-Real-Time) | >100 ms | Parameterisering, diagnostik |
| RT (Real-Time) | 1–100 ms | Standard I/O, standard PLC-kommunikation |
| IRT (Isochronous Real-Time) | 31,25 µs – 1 ms | Motion control, synkroniserede drives |
4840 (TCP) | Understøttes af Siemens, Rockwell, Beckhoff, Schneider m.fl.| OSI-lag | Navn | TCP/IP-lag | Eksempler |
|---|---|---|---|
| 7 | Applikation | Applikation | HTTP, FTP, Modbus TCP, OPC UA, SMTP |
| 6 | Præsentation | SSL/TLS, MIME, kryptering | |
| 5 | Session | RPC, NetBIOS | |
| 4 | Transport | Transport | TCP (port-til-port, pålidelig), UDP (hurtig) |
| 3 | Netværk | Internet | IP (routing), ICMP (ping), ARP |
| 2 | Datalink | Netværksadgang | Ethernet (MAC-adresser), VLAN (802.1Q) |
| 1 | Fysisk | Kabler, switches, RJ45, fibre |
192.168.1.100
255.255.255.0 = /24 → 254 brugbare adresser192.168.1.0192.168.1.255| Klasse | Interval | Typisk brug |
|---|---|---|
| A | 10.0.0.0 – 10.255.255.255 | Store virksomhedsnetværk |
| B | 172.16.0.0 – 172.31.255.255 | Mellemstore netværk |
| C | 192.168.0.0 – 192.168.255.255 | Industrianlæg, kontor |
| TCP | UDP | |
|---|---|---|
| Forbindelsestype | Forbindelsesorienteret (3-way handshake: SYN → SYN-ACK → ACK) | Forbindelsesløs |
| Leveringsgaranti | Ja - gensender tabt data automatisk | Nej - "fire and forget" |
| Rækkefølge | Garanteret | Ikke garanteret |
| Overhead | Høj (ACK, flow control) | Lav (8-byte header) |
| Hastighed | Langsommere | Hurtigere |
| Industrielt brug | Modbus TCP, OPC UA, filoverførsel | PROFINET RT, realtids-broadcast, IGMP |
502 = Modbus TCP | 4840 = OPC UA | 102 = Siemens S7 | 80/443 = HTTP/HTTPS (webserver i PLC)
| Niveau | Zone | Udstyr |
|---|---|---|
| 0–1 | Felt | Sensorer, aktuatorer, drives |
| 2 | Styring | PLC'er, SCADA, HMI |
| 3 | MES/DMZ | Historian, dataserver, OPC UA gateway |
| 4–5 | IT / Enterprise | ERP, kontor-PC, internet |
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.
| Regulator | Kp | Ti [s] | Tv [s] |
|---|---|---|---|
| P | 0,5 · Ksk | - | - |
| PI | 0,45 · Ksk | 0,83 · Tsk | - |
| PID | 0,6 · Ksk | 0,5 · Tsk | 0,125 · Tsk |
Ksk = kritisk proportionalforstærkningTsk [s] = kritisk svingningstidZiegler-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.
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.
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.