Spring til indhold

PLC bogen/Programmering med instruktionsliste

Fra Wikibooks, den frie samling af lærebøger

PROGRAMMERING MED INSTRUKTIONSLISTE

[redigér]

Emner:

  • 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ér]

Programmering 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ér]

For 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.



Læses som: O:001/0 = I:000/00 AND (I:000/01 OR (I:000/02 AND NOT I:000/03))


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]
  1. 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