Programmerbare logiske controllere er kernen i industriel automatisering og muliggør præcis styring og regulering af maskiner og processer. De giver fleksibilitet, pålidelighed og effektivitet i mange applikationer. Detaljerede oplysninger og svar på ofte stillede spørgsmål kan findes i vores FAQ-tekst.
Automatisering af elektriske og mekaniske systemer er implementeret i næsten alle procesanlæg. Det betyder f.eks., at komponenter styres automatisk ud fra kontaktpositioner eller efter en bestemt tid. Nogle gange er der kun brug for enkle binære forbindelser, men ofte er der brug for komplekse sekvensstyringer. Programmerbare logiske controllere (PLC'er) bruges normalt til automatisering.
En programmerbar logisk controller (PLC) kan betragtes som en lille computer, der genererer output baseret på input og operationer. En PLC består som minimum af en central behandlingsenhed (CPU) og input/output-moduler (I/O-moduler). I/O-modulerne er som regel forbundet med den centrale processorenhed via en systembus og forsynes med strøm via den centrale processorenhed.
JUMO variTRON 500 centralbehandlingsenhed med PLC-funktionalitet, input/output-moduler og webpanel (bagved)
PLC'er fås i forskellige versioner, der er forskellige med hensyn til funktionalitet og anvendelse:
Disse controllere er integreret i et enkelt hus og indeholder alle de nødvendige komponenter som CPU, ind- og udgange og kommunikationsgrænseflader. De er ideelle til mindre applikationer med minimale pladskrav.
Disse systemer består af en central CPU og separate input/output-moduler, som kan tilføjes eller fjernes efter behov. De giver fleksibilitet og udvidelsesmuligheder til mere komplekse applikationer. Det gælder også automatiseringssystemerne i JUMO variTRON-familien, selv om de har et meget bredere udvalg af funktioner end standard-PLC'er.
Disse styreenheder er specielt udviklet til sikkerhedskritiske applikationer og opfylder strenge sikkerhedsstandarder. De bruges i områder, hvor beskyttelse af mennesker og systemer har højeste prioritet.
Signalerne fra kontakter og sensorer osv. når den centrale enhed via inputmoduler og er dermed tilgængelige i PLC'en. Eksempler på signaler fra systemet er den respektive status for grænseafbrydere, termostater, flowmonitorer og niveauafbrydere eller de tilsvarende målte værdier fra temperatur-, tryk- eller fugtighedssensorer. PLC'en forbinder signalerne og skaber et resultat, som stilles til rådighed for outputmodulerne. Relæer bruges f.eks. til at aktivere magnetventiler og motorer. Funktionaliteten i en PLC er derfor implementeret i den centrale enhed, den er så at sige kontrolcenteret.
Før indførelsen af PLC'er blev styresystemer realiseret ved at forbinde relæer og tidsrelæer. Et sådant styresystem krævede et stort materialeinput, og funktionen kunne kun ændres ved at ændre ledningerne. Systemerne var også udsatte for fejl, og fejlfinding var tidskrævende. Opgaven for de første programmerbare logiske controllere var at erstatte disse relænetværk.
Alle indgangssignaler behandles cyklisk af et PLC-program og sammenkædes i programmet. Udviklingsmiljøer som CODESYS er tilgængelige for PLC-programmering, dvs. programmerne udvikles i CODESYS og overføres derefter til PLC'en.
Programmering af en PLC er mulig i forskellige programmeringssprog, der er defineret i IEC 61131-3-standarden. Programmøren kan derfor vælge det programmeringssprog, der passer bedst til det pågældende krav. Her følger en oversigt over de vigtigste PLC-programmeringssprog:
Programmeringssproget KOP (stigediagram), som har eksisteret siden 1960'erne, er velegnet til at erstatte relænetværk. Det er det ældste af de kendte programmeringssprog, og dets programrepræsentation ligner den for elektriske kredsløb.
Forestil dig en meget enkel applikation, hvor status for en grænseværdiafbryder i en tank og for to trykknapper registreres af et inputmodul. De respektive tilstande er tilgængelige i PLC-programmet ved hjælp af variabler med navnene "Grænseniveau underskredet", "Knap venstre" og "Knap højre". En pumpe styres via relæet i et udgangsmodul; den adresseres i programmet via navnet "PumpOn". Pumpen skal kun aktiveres, hvis der trykkes på begge knapper (begge af sikkerhedsmæssige årsager), og niveauet er faldet under grænsen. Det enkle program i COP-programmeringssproget vises i CODESYS på følgende måde:
Eksempel på program i stigediagram
Du kan genkende en struktur, der ligner et kredsløbsdiagram, og som består af kontakter/knapper og relæer. Når programmet er oprettet, overføres det til PLC'en og kontrolleres. Herefter er CODESYS-udviklingsmiljøet ikke længere nødvendigt.
Timere var tilgængelige i KOP på et meget tidligt tidspunkt, hvilket muliggør forsinket tænd/sluk eller aktivering af deres output i et bestemt tidsrum efter aktivering. For eksempel er der en funktionsblok kaldet TON, som kun aktiverer sit udgangssignal, når dens indgang er aktiveret i et minimum af tid. Hvis pumpen f.eks. skal aktiveres, når knapperne er aktiveret i mindst 5 sekunder, skal det lille program ændres på følgende måde:
Modificeret eksempelprogram i stigediagram
Standardfunktionsblokkene omfatter også RS-flip-flops, tællere, timing-elementer (såsom til- og frakoblingsforsinkelser) og kantdetektering. Matematiske operatorer er også en del af det programmatiske standardudstyr.
Et meget lignende sprog er det netværksorienterede FBD (funktionsblokdiagram). I dette sprog er det lille program struktureret på følgende måde:
Eksempel på program i funktionsblokdiagram
CFC (continuous function chart) er en videreudvikling af FBD og giver mulighed for fri placering af elementer. Ellers er CFC meget ens med hensyn til visualisering. Programmeringssproget er meget almindeligt, og programmet ser ud som følger i dette sprog:
Eksempel på program i kontinuerligt funktionsdiagram
Et sprog, der bruges relativt sjældent i dag, er instruction list language (IL), som minder meget om programmeringssproget assembler. Hver instruktion i IL er primært baseret på at indlæse værdier i en akkumulator, hvilket gøres ved hjælp af LD-instruktionen. Derefter udføres den tilsvarende operation med den første parameter fra akkumulatoren. Resultatet af denne operation skrives tilbage i akkumulatoren. Det lille program er struktureret i IL på følgende måde:
Eksempel på program i instruktionsliste
Et andet programmeringssprog er ST-kode (struktureret tekst). ST-kode er et tekstbaseret programmeringssprog, som gør det muligt at løse komplekse kontrolopgaver. Syntaksen ligner programmeringssproget Pascal og gør det muligt at bruge variabler, funktioner, løkker og betingede udsagn. ST-kode er særligt velegnet til programmering af komplekse sekvenser og matematiske beregninger og muliggør struktureret og klar programmering, hvilket gør det lettere at vedligeholde og videreudvikle styringsprogrammer. Der kræves kun to linjer til eksempelprogrammet i ST-kode.
Eksempler på programmer i struktureret tekst
Sproget Sequential Function Chart er ideelt til at realisere sekvensstyring på fremragende vis. Forestil dig et varmebehandlingsanlæg, hvor det materiale, der skal behandles, føres ind via et transportbånd. De første tre trin er som følger:
I programmer i sekventielt funktionsdiagramsprog er der trin (f.eks. opvarmning og indkøring), som er forbundet med hinanden ved hjælp af skiftebetingelser eller overgange. De første 3 trin (+ grundposition) i det program, der kræves til eksemplet, ser ud som følger i sekventielt funktionsdiagramsprog:
Kædning af sekvenser i sekventielt funktionsdiagram
Der kan defineres programmer for hvert trin, men de behandles kun, hvis det tilsvarende trin er aktivt. Behandlingen begynder med trinnet "Grundposition", hvor der ikke er defineret noget program, og hvor der derfor ikke sker nogen aktivitet.
For alle andre trin er der defineret separate programmer (f.eks. i stigediagrammet). Hvis der trykkes på startknappen fra startpositionen, aktiveres trinnet "Varmeapparat", og varmegeneratoren aktiveres af det gemte program. Trinnet forbliver aktivt, indtil varmetemperaturen når 200 °C, og trinnet "Indkøring" bliver aktivt. Programmet i trinnet "Tilbagetrækning" implementerer den tilsvarende styring af dørmotoren og båndmotoren.
Yderligere trin med overgange tilføjes i overensstemmelse hermed. Trinnet "Startposition" aktiveres igen med den sidste overgang.
En af kernefunktionerne i en programmerbar logisk controller er automatisering af processer, hvilket kræver programmering i et af de førnævnte programmeringssprog. Men nutidens PLC'er er automationens allroundere og tilbyder meget mere: