TIA Portal - SCL programování PLC, part 8

  • pondělí, 21 říjen 2019 05:37

Programování v jazyku SCL (Structured Control Language), FC blok v SCL a jeho volání.


Jako ukázku vytvoření a volání FC bloku jsme si vzali nějakou funkci ramp, tedy integrátoru. Pokud na jeho vstupu dojde ke skokové změně hodnoty, výstup bloku inkrementuje nebo dekrementuje svůj stav tak, aby dosáhl úrovně vstupní hodnoty. Je to velmi používaná funkce jak v řízení, tak ve čtení proměnných. S drobnými úpravami se dá vytvořit například pilovitá proměnná, různé filtry a podobně.

tia scl8 01


Náš blok budeme požívat a vyvolávat dvakrát na různých místech programu, proč to uvidíme dále. Máme možnost nastavit velikost přírůstků a také bezprostředně blok zapnout nebo vypnout.

tia scl8 02


Vytvoříme v SCL nový blok „FC_RAMPA“ a deklarujeme jeho vstupy a výstupy.

tia scl8 10


Dovnitř napíšeme krátký prográmek pro inkrement vstupní proměnné s pomocí funkce IF-THEN. :)

tia scl8 11


A přidáme několik řádků i pro dekrement vstupní hodnoty. Vše pomocí několika funkcí IF-THEN, které jsou vnořeny do sebe.
Doplnění: Jak nás upozornil kolega JS, máme v programu drobnou chybku, a sice signalizační bit #RAMP_ON nastavíme při inkrementu nebo dekrementu na TRUE, ale nikde jej již neshodíme když rampa nejede. Tohle je potřeba ošetřit. Děkujeme moc za upozornění. :)

tia scl8 12


Datový blok, který vytvoříme, přesně odpovídá vstupům a výstupům funkce „FC_RAMPA“. Protože plánujeme zavolat tuto funkci v PLC programu několikrát s jinými parametry, tak místo několika datových bloků si vše poskládáme za sebe s perexem 01_, 02_ a tak dále.

tia scl8 13


Do našeho známého bloku SCL_1, který vyvoláváme cyklicky z OB1 si vložíme funkci „FC_RAMPA“. Na místo podtržených úseků vložíme patřičnou část datového bloku. Klidně si tam ale můžeme napsat přímo hodnoty jako například 1, 458, atp.
Klikněte na obrázek pro zvětšení

tia scl8 14b


TIA Portal při přiřazení dat ke vstupům funkce nabízí možnosti z projektu, takže vybereme vše z našeho datového bloku. Uložíme a šoupneme do PLC.
Klikněte na obrázek pro zvětšení

tia scl8 15b


Mrkneme na to ve VAT tabulce. Ale protože funkci vyvoláváme v každém cyklu programu, budou změny na výstupu velmi rychlé, pokud bude doba cyklu programu 1 ms, tak pro změnu výstupu z 0 na číslo 4000 budou stačit čtyři vteřiny. Navíc je vše nedefinované, jednou 1 ms podruhé 4 ms atp.

tia scl8 16


Proto vytvoříme blok OB201 s časovým přerušením 100 ms, což znamená, že se nám tento blok vyvolá v PLC programu přesně každých 100 ms.

tia scl8 20


A do něj vložíme stejnou funkci „FC_RAMPA“, která se automaticky zobrazí v LADDER, neboť cyklický interrupt OB201 je deklarován v jazyku LADDER. To nám ale nevadí, funce bude fungovat kdekoliv, v SCL nebo LADDER. Jen data použijeme ty s perexem 02_, aby se nám výpočty nehádaly.

tia scl8 21


A vyzkoušíme si to na HMI panelu. Tady si můžeme měnit co chceme, včetně velikosti inkrementu/dekrementu.

tia scl8 03


Nebo ve VAT tabulce, když žádné HMI nemáme k dispozici. Všimněte si hlavně opravdu rozdílných rychlostí změn výstupních proměnných na řádcích šest a dvanáct, která závisí na černosti volání funkce „FC_RAMPA“.
Klikněte na obrázek pro zvětšení

tia scl8 22b


Online vše můžeme také vidět přímo v datovém bloku DB12_RAMPA.

tia scl8 23


Videoukázka volání FC bloku s rampami:

https://www.youtube.com/watch?v=FJ_kZuv4DD4&feature=youtube


Závěr:

Tohle byl snad jeden z nejtypičtějších příkladů pro SCL blok a funkci rampa. Ono by to šlo bez potíží napsat i v LADDER, ale zabralo by to více řádku a prostoru. No a klidně si tento FC blok můžete upravovat, například pro inkrement a dekrement budou dva vstupy, aby šly nastavit různé rampy nahoru a dolů, dále třeba další jeden vstup pro rychlý stop a tak dále. Uvedený PLC program najdete ke stažení na odkazu níže.

Jaroslav Blažek


Doplňující odkazy k článku: 

Uvedený PLC program včetně HMI pro TIA Portal V15.1 si stáhněte tady. (registered users only).

Nový systémový manuál S7-1200 z 08/2018 je tady.
TIA Portal pro Simatic S7-1200/1500, více tady.

Pro psaní komentářů se přihlašte

Kontakt

email : blaja @blaja.cz
email reklama: info @blaja.cz
email adresy bez mezery 
před zavináčem

Jaroslav Blažek
Štěpánská 1888
755 01 Vsetín
+420 608 180 209