RsLogix5000 – Bitové inštrukcie

04. August, 2014, Autor článku: Körösi Ladislav, Elektrotechnika, Informačné technológie
Ročník 7, číslo 8 This page as PDF Pridať príspevok

p17234_iconCieľom článku je oboznámiť čitateľa so základnými bitovými inštrukciami softvéru RsLogix 5000 v jazyku rebríkových schém (LD – Ladder diagram). Softvér RsLogix 5000 je konfiguračný a programovací nástroj programovateľných logických automatov (PLC – Programmable logic controller) spoločnosti Rockwell Automation pre rady ControlLogix, CompactLogix, FlexLogix, SoftLogix5800 a DriveLogix.

Inštrukcia „Examine If Closed“ (XIC)

Inštrukcia XIC zisťuje či je hodnota bitu, ktorý je zadaný ako parameter inštrukcie rovná logickej jednotke (TRUE). Slúži na povolenie výstupu („vykonanie inštrukcie“), ak má bit stav TRUE. Táto inštrukcia je dostupná iba v programovacom jazyku LD a nie je dostupná v ďalších jazykoch (FBD, ST). Výstup inštrukcie je závislý od hodnoty bitu, stavu rebríka ako aj krokov vykonania:

  • V stave PRESCAN je výstupom inštrukcie logická nula (FALSE).
  • Ak je stav rebríka FALSE, potom výstupom inštrukcie je FALSE.
  • Ak je stav rebríka TRUE, potom výstupom inštrukcie je TRUE alebo FALSE podľa vývojového diagramu (obr. 1).
  • V stave POSTSCAN je hodnota inštrukcie FALSE.

p17234_01_obr01
Obr. 1 Vývojový diagram inštrukcie XIC

Zjednodušene povedané, výstupom inštrukcie XIC je hodnota jej parametra (bitu). Ukážka vyhodnotenia premennej (tagu) test je na obr. 2. Na obr. 2 vpravo je zelenou farbou animovaná logická jednotka, ktorá je výstupom inštrukcie. Ekvivalentom v textových jazykoch je:

IF test THEN
ELSE
END_IF;

p17234_02_obr02
Obr. 2 Ukážka inštrukcie XIC

Inštrukcia „Examine If Open“ (XIO)

Inštrukcia XIO zisťuje či sa hodnota parametra inštrukcie (hodnota bitu) rovná logickej nule (FALSE). Slúži na povolenie výstupu ak má bit hodnotu FALSE. Táto inštrukcia podobne inštrukcia XIC nie je dostupná v ďalších programovacích jazykoch. Výstup inštrukcie je závislý od hodnoty bitu ako aj krokov vykonania:

  • V stave PRESCAN je výstupom inštrukcie logická nula (FALSE).
  • Ak je stav rebríka FALSE, potom výstupom inštrukcie je FALSE.
  • Ak je stav rebríka TRUE, potom výstupom inštrukcie je TRUE alebo FALSE podľa vývojového diagramu (Obr. 3).
  • V stave POSTSCAN je hodnota inštrukcie FALSE.

p17234_03_obr03
Obr. 3 Vývojový diagram inštrukcie XIO

Výstupom inštrukcie XIO je negovaná hodnota jej parametra (bitu). Na obr. 4 vľavo vidno, že stav bitu je 0 (FALSE) a výstupom inštrukcie je 1 (TRUE), čo je animované zelenou farbou. Ekvivalentom v textových jazykoch je:

IF not(test) THEN
ELSE
END_IF;

p17234_04_obr04
Obr. 4 Ukážka inštrukcie XIO

Inštrukcia „Output Energize“ (OTE)

Inštrukcia OTE nastavuje hodnotu bitu (parametra) v závislosti od vstupného signálu (podmienky) inštrukcie. Ak je vstupná podmienka TRUE, t.j. inštrukcia je povolená, potom sa hodnota bitu nastaví na TRUE. Ak je vstupná podmienka FALSE, t.j. inštrukcia nie je povolená, potom sa hodnota bitu nastaví na FALSE. Inštrukcia je dostupná iba v jazyku LD. Hodnota bitu závisí od nasledujúcich stavov:

  • V stave PRESCAN je hodnota bitu FALSE.
  • Ak je stav rebríka FALSE, potom hodnota bitu je FALSE.
  • Ak je stav rebríka TRUE, potom hodnota bitu je TRUE.
  • V stave POSTSCAN je hodnota bitu FALSE.

Na obr. 5 je ukážka nastavenia hodnoty bitu test v závislosti od bitu podmienka_1. V prvom príklade je na vstupe inštrukcie OTE hodnota FALSE lebo inštrukcia XIC s parametrom podmienka_1 dáva na výstup inštrukcie hodnotu FALSE. V druhom príklade je na vstupe inštrukcie OTE hodnota TRUE lebo inštrukcia XIC s parametrom podmienka_1 dáva na výstup inštrukcie hodnotu TRUE. V textových programovacích jazykoch je ekvivalentnou inštrukciou:

test := podmienka_1;

p17234_05_obr05
Obr. 5 Ukážka inštrukcie OTE

Inštrukcia „Output Latch” (OTL)

Inštrukcia pri platnej vstupnej podmienke nastavuje hodnotu bitu (parametra) na hodnotu TRUE. Inštrukcia nie je dostupná v ďalších programovacích jazykoch. Stavy, ktoré môže nadobúdať:

  • V stave PRESCAN sa hodnota bitu nemení.
  • Ak je stav rebríka FALSE, potom sa hodnota bitu nemení.
  • Ak je stav rebríka TRUE, potom sa hodnota bitu nastaví na TRUE.
  • V stave POSTSCAN sa hodnota bitu nemení.

Na obr. 6 je príklad inštrukcie OTL pre zmenu vstupnej podmienky podmienky_1 z FALSE na TRUE a následne opäť na FALSE. Z posledného príkladu vidno, že po zániku podmienky sa hodnota tagu test nemodifikuje. Ekvivalentom inštrukcie v textovom programovacom jazyku je:

IF podmienka_1 THEN
   test := TRUE;
END_IF;

Nulovanie (resetovanie) hodnoty bitu je realizované typicky inštrukciou OTU (Output unlatch). Samozrejme aj iné inštrukcie môžu daný stav resetovať. Medzi ne patrí už opísaná inštrukcia OTE, ktorá prepíše stav bitu na základe vstupnej podmienky.

p17234_06_obr06
Obr. 6 Ukážka inštrukcie OTL

Inštrukcia „Output Unlatch” (OTU)

Inštrukcia pri platnej vstupnej podmienke nastavuje (resetuje, nuluje) hodnotu bitu na hodnotu FALSE. Inštrukcia ako aj OTL nie je dostupná v ďalších programovacích jazykoch. Stavy, ktoré môže nadobúdať:

  • V stave PRESCAN sa hodnota bitu nemení.
  • Ak je stav rebríka FALSE, potom sa hodnota bitu nemení.
  • Ak je stav rebríka TRUE, potom sa hodnota bitu nastaví na FALSE.
  • V stave POSTSCAN sa hodnota bitu nemení.

Na obr. 7 je príklad inštrukcie OTU pre zmenu vstupnej podmienky podmienky_1 z FALSE na TRUE. V prvom príklade tag test nie je modifikovaný lebo nie je platná vstupná podmienka inštrukcie OTU. V druhom príklade pri platnej podmienke sa hodnota bitu vynulovala. Ekvivalentom inštrukcie OTU v textovom programovacom jazyku je:

IF podmienka_1 THEN
   test := FALSE
END_IF;

p17234_07_obr07
Obr. 7 Ukážka inštrukcie OTU

Inštrukcia „One Shot“ (ONS)

Inštrukcia ONS slúži na detekciu nábežnej hrany vstupného signálu, t.j. pri zmene vstupnej podmienky z FALSE na TRUE dáva na výstup hodnotu TRUE. V opačnom prípade je výstupom inštrukcie FALSE. Pomocný bit (tzv. storage bit), ktorý je parametrom inštrukcie, slúži na zapamätanie aktuálneho stavu vstupu pre ďalší cyklus PLC, preto zmena nastane ak aktuálny vstup do inštrukcie je TRUE a pomocný bit má hodnotu FALSE. Je potrebné upozorniť, že do pamäťovej premennej použitej na uloženie pomocného bitu nie je vhodné zapisovať z iného miesta programu, inak inštrukcia ONS nebude poskytovať adekvátny výsledok. Výstup inštrukcie ovplyvňuje tok signálu v aktuálnom rebríku, preto sa používa na podmienené vykonávanie ďalších inštrukcií. Postupnosť stavov:

  • V stave PRESCAN sa hodnota pomocného bitu nastaví na TRUE a výstup inštrukcie na FALSE. Tento stav zabezpečí, aby došlo k chybnej detekcii.
  • Ak je stav rebríka FALSE, potom sa hodnota pomocného bitu a výstup inštrukcie nastavia na FALSE.
  • Ak je stav rebríka TRUE, potom sa vykoná inštrukcia podľa vývojového diagramu (obr. 8).
  • V stave POSTSCAN sa hodnota pomocného bitu a výstup inštrukcie nastavia na FALSE.

Ekvivalentným príkazom v textovom jazyku je

OUT := TLACIDLO_1 AND (NOT(SB_1));
SB := TLACIDLO_1;

kde TLACIDLO_1 je vstupom do inštrukcie, SB_1 je pomocný bit a OUT je výstupom inštrukcie.

p17234_08_obr08
Obr. 8 Vývojový diagram inštrukcie ONS

Príklad použitia inštrukcie ONS v jazyku LD je na obr. 9. Príklad je z pohľadu funkcionality totožný vyššie uvedenému v textovom programovacom jazyku. Bit OUT bude mať stav TRUE na jeden cyklus len a len vtedy, ak TLACIDLO_1 = TRUE a SB_1 = FALSE (t.j. TLACIDLO_1 z predchádzajúceho cyklu mal stav FALSE). Pomocou inštrukcie ONS je možné detekovať aj dobežnú hranu, t.j. zmenu vstupného signálu z TRUE na FALSE a to tak, že sa na vstupe ONS použije negovaný signál (obr. 10).

p17234_09_obr09
Obr. 9 Ukážka inštrukcie ONS

p17234_10_obr10
Obr. 10 Ukážka inštrukcie ONS pre detekciu dobežnej hrany

Inštrukcia „One Shot Rising“ (OSR)

Inštrukcia OSR podobne ako inštrukcia ONS slúži na detekciu nábežnej hrany. Na rozdiel od ONS výstup inštrukcie zapisuje do parametra (tzv. Output bit). Premennú požitú na uložnie pomocného bitu opäť nie je vhodné používať na inom mieste programu. Na obr. 9 a 11 sú ekvivalentné ukážkové programy. Postupnosť stavov:

  • V stave PRESCAN sa hodnota pomocného bitu (storage bit) nastaví na TRUE a výstupný bit (output bit) na FALSE. Zároveň sa výstup inštrukcie, ktorý ovplyvňuje tok signálu nastaví na FALSE.
  • Ak je stav rebríka FALSE, potom sa hodnota pomocného bitu a výstup inštrukcie nastavia na FALSE. Výstupný bit sa nemení.
  • Ak je stav rebríka TRUE, potom sa vykoná inštrukcia podľa vývojového diagramu ako pri inštrukcii ONS (obr. 8).
  • V stave POSTSCAN sa hodnota pomocného bitu a výstup inštrukcie nastavia na FALSE. Výstupný bit sa nemení.

p17234_11_obr11
Obr. 11 Ukážka inštrukcie OSR

Inštrukcia „One Shot Falling“ (OSF)

Inštrukcia OSF detekuje dobežnú hranu vstupného signálu. Má rovnaké parametre (storage bit a output bit) ako inštrukcia OSR. Nie je vhodné zapisovať do premennej použitej na uloženie pomocného bitu z iného miesta programu. Postupnosť stavov inštrukcie je nasledovný:

  • V stave PRESCAN sa hodnota pomocného bitu (storage bit) nastaví na TRUE a výstupný bit (output bit) na FALSE. Zároveň sa výstup inštrukcie, ktorý ovplyvňuje tok signálu nastaví na FALSE.
  • Ak je stav rebríka FALSE, potom sa vykoná inštrukcia podľa vývojového diagramu (obr. 12).
  • Ak je stav rebríka TRUE, potom sa hodnota pomocného bitu a výstup inštrukcie nastavia na TRUE. Výstupný bit sa nastaví na FALSE.
  • V stave POSTSCAN sa výstup inštrukcie nastavia na FALSE.

p17234_12_obr12
Obr. 12 Vývojový diagram inštrukcie OSF

Ukážka inštrukcie OSF sa nachádza na obr. 13. Po zatlačení a následnom uvoľnení tlačidla (TLACIDLO_1) sa bit OUT nastaví na jeden cyklus na hodnotu TRUE.

p17234_13_obr13
Obr. 13 Ukážka inštrukcie OSF

Príklady použitia inštrukcií

Príklad 1 – Operácia AND

Na obr. 14 sú zobrazené dva príklady operácie OR v kombinácii s operáciou AND. V rebríku č. 0 bude mať tag C hodnotu TRUE ak A = TRUE a B = TRUE. V druhom príklade v rebríku č. 1 bude mať tag F hodnotu TRUE ak D = TRUE a E = FALSE.

p17234_14_obr14
Obr. 14 Ukážky operácie AND

Príklad 2 – Operácia OR

Na obr. 15 sú zobrazené dva príklady operácie AND. V rebríku č. 0 bude mať tag D hodnotu TRUE ak A = TRUE a B = TRUE alebo C = FALSE a B = TRUE. Zápis v textovom jazyku je napr. nasledovný:

D := (A OR NOT(C)) AND B;

V druhom príklade v rebríku č. 1 bude mať tag H hodnotu TRUE ak E = TRUE a F = FALSE alebo G = TRUE. Zápis v textovom jazyku:

H := (E AND NOT(F)) OR G;

p17234_15_obr15
Obr. 15 Ukážky operácie OR v kombinácii s AND

Záver

Vo väčšine prípadov každý výrobca PLC má (alebo môže mať) rôznu sadu inštrukcií, či sú to základné bitové inštrukcie alebo pokročilejšie inštrukcie na komunikáciu alebo samotná inštrukcia PID. Cieľom článku bolo oboznámiť čitateľov s bitovými inštrukciami softvéru RsLogix 5000.

Poďakovanie

Tento príspevok vznikol vďaka podpore Nadácie Tatra banky – E-Talent z Nadácie Tatra banky č. 2013et030.

Literatúra

  1. http://literature.rockwellautomation.com/idc/groups/public/documents/webassets/browse_category.hcst
  2. Interné prednášky z predmetu Softvér riadiacich systémov na FEI STU Bratislava

Spoluautorom článku je Leo Mrafko, Ústav robotiky a kybernetiky, Fakulta elektrotechniky a informatiky, Slovenská technická univerzita, Ilkovičova 3, 812 19 Bratislava, Slovenská republika

Napísať príspevok