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

  • úterý, 13 srpen 2019 14:34

Programování v jazyku SCL (Structured Control Language), příkaz FOR TO, WHILE a skok na návěští GOTO. Teď už to bude trochu zajímavější.


Příkaz FOR TO je TO podstatě smyčka s definovaným počtem průběhů a končí příkazem END_FOR. V řádku 21 definujeme počet průběhů od 0 do 10, přičemž aktuální hodnota průběhu je uložena v MW16. Řádek 23 je pak samotná akce co chceme, aby se v programu provedlo. Vše končí END_FOR. Jenže, tahle funkce jak je napsána, by se vykonávala v každém cyklu, takže bychom ani neviděli pořádně jak a jestli vůbec funguje.

tia scl5 01


Proto si dopředu vytvoříme datový blok DB12 s dvaceti proměnnými typu integer v poli - array.

tia scl5 02


A do programu dopíšeme následující. Využijeme náš generátor čísla v MW12 a řekneme že chceme, aby se další část programu vykonala, jen když je číslo z generátoru rovno 10. Využijeme příkaz GOTO na řádku 16, který říká, že když je proměnná v MW12 jiná než 10, tak běž na návěští, nebo značku ende1. Což znamená, že CPU přeskočí řádky 17 až 26. A příkaz na řádku 23 zapíše do pole v DB12 na pozici která je v MW16 výsledek součinu MW16 a MW14.

tia scl5 03


V online zobrazení toho v případě smyček moc neuvidíme, proto přejdeme do VAT tabulky.
Klikněte na obrázek pro zvětšení

tia scl5 04b


Tady je to jasné. Ve smyčce se výsledky násobení uloží postupně do wordu nula, jedna, dvě a tak dále až po deset. Například řádek 16 (DB12.DBW16) obsahuje výsledek 7 * 10 = 70.
Klikněte na obrázek pro zvětšení

tia scl5 05b


Stejné jen s násobkem pěti. Výborně je to vidět i na videoukázce.

tia scl5 06


Další příkaz WHILE by se zdál na první pohled stejný, ale není ani omylem. Zase si vytvoříme stejný datový blok pro proměnné ale DB13, se stejným polem proměnných.

tia scl5 10


WHILE na řádku 28 je podmínka při které se smyčka vykonná. Tedy "DOKUD" platí podmínky, že proměnná v MW18 je menší než 5 nebo rovna 5, smyčka se vykoná. Je jedno kolikrát, což jak uvidíme dále, bude klíčové pro chod programu. Proto jsme si do těla příkazu na řádku 30 vrazili počítání průchodů smyčky. Při každém průchodu se číslo v MW18 zvětší o jedno. Řádek 31 pak dělá to stejné jako v minulém příkazu, jen zapíše proměnné do jiného datového bloku DB13.

tia scl5 11


Takhle vypadá celý prográmek. Ještě drobnost, aby se nám příkaz WHILE vykonal pokaždé jako příkaz FOR TO vynulujeme jeho počitadlo průběhů přesně před cyklem, kdy se má příkaz provést. Řádek 36 .. 39.

tia scl5 12


A je to. Může si to zkusit vynásobit, proměnnou 459 aktuálním průchodem cyklu FOR TO a WHILE.
Klikněte na obrázek pro zvětšení

tia scl5 13b


Tak a pozor. Jestliže z nějakého důvodu neošetříme průběh nebo počet průběhů v příkazu WHILE, což jsme my udělali na řádku 30 - "zaremovali" (dvě šikmá lomítka) počitadlo průchodů, uvidíme, co se stane jakmile program dojde na tento příkaz. On-line je to na videoukázce.

tia scl5 15


CPU spadne do stopu na poruchu překročení doby cyklu 150ms, tedy program zůstane pořád v příkazu WHILE čeká na splnění podmínky a nepokračuje dál, prostě se tam zacyklí a hotovo.
Klikněte na obrázek pro zvětšení

tia scl5 16b

Tak teď to již bylo zajímavější se spoustou nových příkazů, ale jinak to nešlo, takto jsou tyto instrukce lehce pochopitelné.


Videoukázka příkazů FOR TO, WHILE a GOTO:

https://www.youtube.com/watch?v=fsYeRXqV-X8&feature=youtube

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