Når du skal programmere en PLC, er ladder diagram det mest udbredte programmeringssprog. Det er standardiseret i IEC 61131-3 og bruges i langt de fleste industrianlæg verden over. Årsagen er enkel — ladder diagram minder grafisk om de relækredsløb som elektrikere og maskinmestre allerede kender fra styreteknikken. Kan du læse et relæskema, kan du lære ladder diagram.
I dette indlæg gennemgår vi hvad et ladder diagram er, hvilke grundlæggende elementer det indeholder og hvordan du opbygger dine første programmer.
Hvad er et ladder diagram?
Et ladder diagram er et grafisk programmeringssprog til PLC’er. Navnet kommer fra diagrammets udseende: to lodrette linjer (strømskinnen) forbundet af vandrette “trin” (rungs), som tilsammen danner en stige.
Hvert trin i stigen repræsenterer én logisk betingelse eller sekvens. Programmet læses fra venstre mod højre og fra top til bund — præcis som du ville læse et relækredsløb.
💡 Huskeregel: Tænk på ladder diagram som et relæskema vendt på siden. Venstre lodret linje er plus, højre linje er minus — og imellem dem sidder indgange og betingelser (som kontakt eller sensorer) samt udgange.
Opbygning af ladder diagrammet
Et ladder diagram består af tre grundlæggende elementer:
Strømskinnen (Bus bar)
De to lodrette linjer til venstre og højre. De repræsenterer strømskinnen — venstre er positiv og højre er negativ/nul. Al logik befinder sig imellem dem.
Trin (Rung)
Hver vandret linje mellem strømskinnen er ét trin. Et trin indeholder de betingelser der skal opfyldes (kontakter) og den handling der udføres (spole). Et ladder diagram kan have et ubegrænset antal trin.
Betingelse og spole
Kontakterne sidder til venstre i trinnet og repræsenterer betingelser — typisk indgange fra sensorer, knapper eller interne bits. Spolen sidder til højre og repræsenterer udgangen — typisk en aktuator, motor eller intern bit der aktiveres når betingelserne til venstre er opfyldt.
Grundlæggende symboler
Der er fire symboler du skal kende for at komme i gang:
| Symbol | Navn | Funktion |
|---|---|---|
—[ ]— | Normally Open (NO) kontakt | Lukket (aktiv) når bit er SANDT |
—[/]— | Normally Closed (NC) kontakt | Lukket (aktiv) når bit er FALSK |
—( )— | Output Spole | Aktiverer en bit eller udgang |
—(/)— | Negeret Output Spole | Deaktiverer en bit eller udgang |
💡 Huskeregel: En Normally Open (NO) kontakt svarer til en sluttefunktion i et relæskema. En Normally Closed (NC) kontakt svarer til en bryderfunktion.
Eksempel 1 — Start/Stop kredsløb
Det klassiske første program i ladder diagram er et start/stop kredsløb — svarende til den motorstart du kender fra relæteknikken.
Forudsætninger:
- I0.0 = Start-knap (NO, sluttefunktion)
- I0.1 = Stop-knap (NC, bryderfunktion)
- Q0.0 = Motor-udgang
|--[ I0.0 ]--[/ I0.1 ]--( Q0.0 )--|
| |
|--[ Q0.0 ]------------------------|
Forklaring trin for trin:
- Første trin: Trykkes start (I0.0 = TRUE) og stop ikke er trykket (I0.1 = TRUE som NC) — aktiveres motoren (Q0.0)
- Andet trin: Q0.0 er koblet parallelt med start-knappen — dette er selvholdsfunktionen. Motoren holder sig aktiv også efter start-knappen slippes
- Trykkes stop (I0.1 = FALSE som NC) — afbrydes begge vejer og motoren stopper
Eksempel 2 — AND-logik
AND-logik opnås ved at placere to kontakter i serie på samme trin. Begge betingelser skal være opfyldt for at udgangen aktiveres.
Forudsætninger:
- I0.0 = Sensor 1
- I0.1 = Sensor 2
- Q0.0 = Udgang aktiv når begge sensorer er aktive
|--[ I0.0 ]--[ I0.1 ]--( Q0.0 )--|Udgangen Q0.0 aktiveres kun når både I0.0 og I0.1 er TRUE — præcis som to sluttefunktioner i serie i et relæskema.
Eksempel 3 — OR-logik
OR-logik opnås ved at placere betingelserne i parallelle grene på samme trin. Én af betingelserne er nok til at aktivere udgangen.
Forudsætninger:
- I0.0 = Knap 1
- I0.1 = Knap 2
- Q0.0 = Lampe — tændes ved tryk på enten knap 1 eller knap 2
|--[ I0.0 ]--+--( Q0.0 )--|
| | |
|--[ I0.1 ]--+ |Udgangen Q0.0 aktiveres når enten I0.0 eller I0.1 er TRUE.
Eksempel 4 — Timer (TON)
En timer er en af de mest brugte funktioner i ladder diagram. TON (Timer On-Delay) aktiverer udgangen efter et defineret tidsrum.
Forudsætninger:
- I0.0 = Startsignal
- T1 = Timer (TON), PT = 5 sekunder
- Q0.0 = Udgang aktiveres 5 sekunder efter start
|--[ I0.0 ]--[TON T1, PT=5s]--|
| |
|--[ T1.Q ]--( Q0.0 )---------|Forklaring:
- Første trin: Når I0.0 aktiveres, starter timer T1
- Andet trin: Når timeren har talt 5 sekunder (T1.Q = TRUE), aktiveres Q0.0
⚠️ Faldgrube: Timeren nulstilles automatisk når startsignalet (I0.0) afbrydes. Skal timeren holde sin tilstand, skal du bruge en selvholdsfunktion på startsignalet.
Eksempel 5 — Tæller (CTU)
En tæller optæller pulser fra en indgang og aktiverer en udgang når et bestemt antal er nået.
Forudsætninger:
- I0.0 = Puls-indgang (tæller for hvert aktivt signal)
- I0.1 = Reset af tæller
- C1 = Tæller (CTU), PV = 10 pulser
- Q0.0 = Udgang aktiveres når 10 pulser er talt
|--[ I0.0 ]--[CTU C1, PV=10]--|
| |
|--[ I0.1 ]--[RESET C1]-------|
| |
|--[ C1.Q ]--( Q0.0 )---------|Forklaring:
- Første trin: For hvert aktivt signal på I0.0 tæller C1 én op
- Andet trin: I0.1 nulstiller tælleren
- Tredje trin: Når tælleren når 10 (C1.Q = TRUE) aktiveres Q0.0
Scancyklus og ladder diagram
Det er vigtigt at forstå at PLC’en ikke udfører ladder diagrammet linje for linje i realtid. I stedet kører PLC’en sin scancyklus kontinuerligt:
- Læs indgange — alle fysiske indgange kopieres til hukommelsen
- Udfør program — alle trin i ladder diagrammet evalueres fra top til bund
- Opdater udgange — alle fysiske udgange opdateres baseret på programresultatet
Det betyder at en ændring på en indgang ikke har øjeblikkelig effekt — den registreres først i næste scan. Scantiden er typisk under 10 ms, så det mærkes sjældent i praksis.
⚠️ Faldgrube: Rækkefølgen af trin i ladder diagrammet har betydning. Ændres en bit i trin 5, er den nye værdi tilgængelig allerede i trin 6 — i samme scan. Det kan give uventet adfærd hvis du ikke er opmærksom på det.
Ladder diagram vs. relækredsløb
| Ladder diagram | Relækredsløb | |
|---|---|---|
| Kontakter | Ubegrænsede — én bit kan bruges i alle trin | Fysisk begrænset til komponentets antal sæt |
| Ændringer | Ændres i software | Kræver fysisk omkobling |
| Fejlfinding | Online monitorering — live visning i editoren | Kræver multimeter og strømspendetest |
| Tidsstyring | Timere og tællere i software | Kræver separate timerrelæer |
| Standardisering | IEC 61131-3 | Varierer med fabrikant og tegnekonvention |
FAQ – Ofte stillede spørgsmål
Hvad er et ladder diagram?
Et ladder diagram er det mest udbredte grafiske programmeringssprog til PLC’er, standardiseret i IEC 61131-3. Det minder om et relækredsløb og består af to lodrette strømskinnelinjer forbundet af vandrette trin med kontakter og spoler.
Hvad er forskellen på en NO og NC kontakt i ladder diagram?
En Normally Open (NO) kontakt lukker når den tilknyttede bit er TRUE — svarende til en sluttefunktion. En Normally Closed (NC) kontakt lukker når den tilknyttede bit er FALSE — svarende til en bryderfunktion.
Hvordan laver jeg selvhold i ladder diagram?
Selvhold programmeres ved at koble udgangsspolen parallelt med startbetingelsen i et ekstra trin. Udgangen holder sig derved aktiv selv efter start-signalet forsvinder — præcis som en selvholdskontakt i et relækredsløb.
Hvad er en TON timer?
TON (Timer On-Delay) er en forsinkelsestimer der aktiverer sin udgang (T.Q) efter et programmeret tidsrum (PT) når startsignalet er aktivt. Timeren nulstilles når startsignalet forsvinder.
Hvorfor er ladder diagram standardiseret?
IEC 61131-3 standardiserer fem programmeringssprog til PLC’er — herunder ladder diagram. Standardiseringen sikrer at principper og symboler er ens på tværs af fabrikanter som Siemens, Schneider, Allen-Bradley og Omron, selv om de specifikke softwarenavne varierer.
Kan jeg bruge ladder diagram på alle PLC-typer?
Ja — ladder diagram er understøttet af næsten alle PLC-fabrikanter. Grundprincipperne er ens, men software og betegnelser varierer. Siemens bruger eksempelvis TIA Portal, Schneider bruger EcoStruxure, og Allen-Bradley bruger Studio 5000.