PLC bogen/Programmering med instruktionsliste
PROGRAMMERING MED INSTRUKTIONSLISTE
redigérEmner:
- Koder til instruktionslister
- Omskrivning fra ladder logik til instruktionsliste
- Stak orienterede forsinkede instruktioner
- Allen Bradley versionen af instruktionslister
Mål:
- At lære det grundlæggende om instruktionslister
- At forstå forholdet imellem ladder logik og instruktionslister
Introduktion
redigérProgrammering med Instruktionsliste (IL) er defineret som en del af IEC 61131 standarden, og den bruger meget simple instruktioner, som ligner det originale mnemonic programmeringssprog der blev udviklet til PLC’er. (Note: nogle læsere vil lægge mærke til ligheden med programmeringssproget assembler). Det er det mest fundamentale programmeringssprog, og alle andre sprog kan konverteres til IL programmer, de fleste programmører bruger dog ikke IL programmering dagligt, med mindre de bruger håndholdte programmerings terminaler.
IEC 61131 Versionen
redigérFor at lette forståelsen vil dette kapitel fokusere på at oversætte et ladder diagram til et IL program. Et simpelt eksempel er vist i figur 18.1 hvor der bruges definitioner fra IEC standarden. Linien med ladder logik indeholder fire indgange og en udgang. Den kan skrives som et Booleansk udtryk med parenteser. Udtrykket kan derefter konverteres direkte til instruktioner. Programmet begynder ved START: labelen, ved det punkt læses den første værdi, resten af udtrykket er delt ud i mindre dele. Den eneste større ændring er at AND NOT bliver til ANDN.
Label | Kode | Parameter | Kommentar |
Start | LD | %I:000/00 | Læs indgang, Bit 0 |
AND( | %I:000/01 | Start en gren og læs indgang, Bit 1 | |
OR( | %I:000/02 | Læs indgang, Bit 2 | |
ANDN | %I:000/03 | Læs indgang, Bit 3 og inverter | |
) | |||
) | |||
ST | %O:001/00 | SET udgangs bit 0 |
Figur 18.1 Eksempel på en instruktionsliste
Et vigtigt koncept ved dette programmerings sprog er stakken, du kan sammenligne den med en huske seddel. Ved ligningen i figur 18.1 er det første punkt i udtrykket LD I:000/00, men den første udregning skal være (I:000/02 AND NOT I:000/03). Instruktions værdierne skubbes ind i stakken indtil den inderste parentes er fundet. Figur 18.2 illustrerer hvordan udtrykket skubbes ind i stakken. LD instruktionen skubber den første værdi ind i stakken. Den næste instruktion er et AND, men den er efterfulgt af et ”(” så stakken må gå et trin ned. Den efterfølgende OR( funktion har samme effekt. ANDN instruktionen skal ikke vente så udregningen bliver udført med det samme og resultat_1 beholdes. De næste to ’)’ instruktioner fjerner de blokerende ’(’ instruktioner fra stakken, og de ventende OR I:000/1 og AND I:000/0 instruktioner kan udføres. Des sidste resultat skal være et enkelt bit resultat_3. Der er vist to eksempler med forskellige indgangs tilstande. Hvis resultatet i stakken er 0, vil udgang ST O:001/0 blive sat, ellers vil den blive resat.
LD I:000/00 | AND( I:000/01 | OR( I:000/02 | ANDN I:000/03 | ) | ) | |
I:000/00 | I:000/01 | I:000/02 | Resultat 1 | Resultat 2 | Resultat 3 | |
( | ( | ( | ( | |||
AND I:000/00 | OR I:000/01 | OR I:000/01 | AND I:000/00 | |||
( | ( | |||||
AND I:000/00 | AND I:000/00 | |||||
Givet: | 1 | 0 | 1 | 1 | 1 | 1 |
I:000/00=1 | ( | ( | ( | ( | ||
I:000/01=0 | AND 1 | OR 0 | OR 0 | AND 1 | ||
I:000/02=1 | ( | ( | ||||
I:000/03=0 | AND 1 | AND 1 | ||||
Givet: | 0 | 1 | 0 | 0 | 0 | 0 |
I:000/00=0 | ( | ( | ( | ( | ||
I:000/01=1 | AND 0 | OR 1 | OR 1 | AND 1 | ||
I:000/02=0 | ( | ( | ||||
I:000/03=1 | AND 0 | AND 0 |
Figur 18.2 Brug af en stak til instruktionsliste
Opgaver
redigér- Skriv de tilsvarende ladder programmer til følgende Boolean programmer.
LD 001 | LD 001 | LD NOT 001 |
OR 003 | AND 002 | AND 002 |
LD 002 | LD 004 | LD 004 |
OR 004 | AND 005 | OR 007 |
AND LD | OR LD | AND 005 |
LD 005 | OR 007 | OR LD |
OR 007 | LD 003 | LD 003 |
AND 006 | OR NOT 006 | OR NOT 006 |
OR LD | AND LD | AND LD |
OUT 204 | OR NOT 008 | |
OUT 204 | ||
AND 009 | ||
OUT 206 | ||
AND NOT 010 | ||
OUT 201 |
"PLC bogen/Programmering med instruktionsliste" er en del af wikibogen: PLC bogen | ||
Forrige side: Åbne styrings systemer | Næste side: Struktureret tekst programmering |