• Blaja
  • Software
  • TIA Portal - různý přesun proměnných cyklickými instrukcemi

TIA Portal - různý přesun proměnných cyklickými instrukcemi

  • neděle, 26 srpen 2018 09:05

Jak v TIA Portal a PLC Simatic přesouváme různě proměnné z míst A do míst B pomocí jednoduchých instrukcí?


K přesunu proměnných v PLC Simatic slouží základní instrukce, a sice tyhle na obrázku. Zatímco MOVE patří mezi notoricky známé a používané, u ostatních to již tak neplatí. My si ukážeme jak na všechny, kromě jejich negací, které jsou stejné jen s opačnou funkcí, respektive směrem.

tia move 01


Pro srozumitelnost ukázky si vytvoříme dva datové bloky. Jeden DB15 jako pole integer proměnných s předdefinovanou startovací hodnotou 1 .. 21 podle pořadí. To abychom nemuseli řešit "CO" budeme přesouvat a zbyla nám síla na řešení "KAM a JAK".

tia move 02


Druhý pak DB16, což bude cílový blok pro přesun proměnných z DB15 do DB16. Ten již bude mít startovací hodnoty nulové.

tia move 03


Do každého programovacího segmentu vložíme jednu instrukci, ale přes bitovou podmínku Move1 .. Move4, kterou si instrukci vlastně "zapneme". Bude se vykonávat cyklicky, tedy neustále v každém cyklu programu.
První instrukce MOVE je jasná, máme ji jen jako rozcvičku. Ta nám po "zapnutí" přenese obsah nultého [0] (prvního) wordu v DB15 do nultého [0] (prvního) wordu v DB16.
Druhá FILL_BLK je již něco jiného. Po zapnutí přenese hodnotu z DB15 prvního wordu [1] do čtyřech wordů počínaje DB16.DBW[1]. Že do čtyřech udává hodnota COUNT. Zkuste si to několikrát s různými parametry. Například pokud do IN napíšeme přímo nulu a do COUNTER počet wordů datového bloku v OUT, vynuluje nám instrukce celý datový blok.

tia move 04


Třetí FieldRead je taky zajímavá. Vezme hodnotu z datového bloku na vstupu MEMBER, jehož číslo wordu 2 je na vstupu INDEX a přenese ji do DB16 wordu [5]. Tady si vyzkoušejte i opačnou operaci FieldWrite.
Čtvrtá instrukce MOVE_BLK zase vezme od datového bloku DB15 wordu [7] čtyři wordy a přenese je do DB16 wordu [7] a dalších tří.

tia move 05


Pro detailní objasnění mrkněte do helpu, každá instrukce je tam popsána, ale není nad to ji vidět a vyzkoušet prakticky.

tia move 06


Ve VAT tabulce proměnných TIA Portal máme vše připraveno na čtyři pokusy, tedy spuštění našich čtyř instrukcí.
Klikněte na obrázek pro zvětšení

tia move 10


K nastavení proměnné, tedy ovládacího bitu stačí pravé tlačítko myši. :)

tia move 11


Hezky jedna po druhé se nám hodnoty z DB15 dostaly do DB 16 přesně podle různých popsaných instrukcí.
Klikněte na obrázek pro zvětšení

tia move 12


Podívejte se na videoukázku jak to funguje:

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


Závěr:

Tohle byly instrukce cyklické, na rozdíl od složitějších acyklických, jejichž průběh trvá i několik cyklů PLC programu. Zase jsou jednoduché, a jakmile se je naučíte používat, jistě najdou použití v každém PLC programu.

Jaroslav Blažek


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

TIA Portal pro Simatic S7-1200/1500, více tady.

1 komentář

  • Odkaz Komentáře Petr Dostál pondělí, 22 listopad 2021 16:03 napsal(a) Petr Dostál

    Dobrý den.

    Chtěl bych se zeptat zda je možné v TIA využít globálního data blok k ukládání stavu stroje. Řeším problém, kde potřebuji při poruše načíst stavy do globálního data bloku a ty uchovat. V případě, že dojde opět k poruše tak data opět zaznamenat do toho samého DB tak, že první sada dat se posune níže o tolik řádků kolik dat se má zaznamenat. V DB jsou data různých typů Date_and_Time, Bool, Int a Word. jedná se celkem o 12 řádků v DB, které potřebuji při každém dalším požadavku na uložení posunout a před ně zapsat dalších 12 dat reprezentující stav. Prý by měla být nějaká funkce Shift, ale nikde jsem nic nenašel.

    Děkuji za odpověď a případnou pomoc.

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