TIA Portal - systémový čas PLC a práce s ním

  • neděle, 07 říjen 2018 09:14

PLC systémový čas v TIA Portal a jak s ním pracovat. Také například jakým způsobem v PLC spočítat a zaznamenat dobu chodu zařízení nebo jeho části, za každý týden po celý rok a jak tato data uložit podle čísla aktuálního týdne.


Pro přehlednost jsme všechny důležité údaje dali na obrazovku HMI, aby vše bylo srozumitelné hlavně začínajícím uživatelům a programátorům.

tia systime 01


Trochu vysvětlení:
Za každý týden zaznamenáme dobu chodu něčeho, třeba čerpadla, v minutách (eventuálně v hodinách) a tu uložíme do patřičného wordu v datovém bloku. Další týden do dalšího wordu. Přímo příklad pro nepřímou adresaci, ale my to uděláme jinak. Úloha jde samozřejmě řešit různými způsoby, každý programátor má to svoje, ale to nevadí.
První řádek systémové minuty 0–59 a aktuální počet minut nebo hodin. Jedná se o 16-bitové čísla, proto jsou ve výsledku jen celé hodiny.
Druhý řádek. Den v týdnu. V systémovém čase začíná týden nedělí a ta má označení 1 a tak dále až do soboty což je 7.
Třetí řádek je aktuální zaznamenaný týden podle kalendáře.
Čtvrtý řádek doba chodu stroje za 36. a 37. týden.
Tlačítko OFF/ON není na nic.
Abychom nemuseli čekat vždy celý týden, můžeme dobu chodu upravit z HMI, stejně jako aktuální týden.

tia systime 02


A jdeme na to. Den v týdnu je úterý a my si jej z VAT tabulky za chvilku změníme na pondělí, tedy v pondělí po půlnoci se zapíše počet ujetých hodin do DB, posune se číslo týdne (nyní 35) a vynuluje počet minut (hodin).

tia systime 05


Takto. Týden je již 36. a zapsán počet minut 2353. Čítač minut vynulován.

tia systime 06


Minuty jsme uměle posunuli například na 1234, což když si vypočítáte je 20 hodin a do další hodiny zbývá 26 minut. A počkáme na další pondělí.

tia systime 07


Je to tam. V pondělí ráno po půlnoci se počet minut zapsal da dalšího wordu a čítač týdne posunul na další týden.
Než si ukážeme jak jsme to udělali, tak v PLC programu nejsou řešeny limity čítače týdne mezi 1 .. 52 a není ošetřeno vypnutí stroje přes víkend a zapnutí třeba v pondělí ráno v šest a taky několik dalších detailů. To jsou ale drobnosti, které si ve skutečné aplikaci každý dořeší.
A jak jsme to tedy udělali?

tia systime 08


Nejprve vytvoříme datový blok DB18 s prostorem pro záznam systémového času ve formátu DTL a několik pomocných proměnných.

tia systime 11


Dále datový blok DB22 který má pole padesáti dvou proměnných týden pro uložení dat a týdenhodin pro nějaké pokusy nebo pro přepočet minut na hodiny za každý týden.

tia systime 12


Asi takto, každý index za proměnnou WEEK udává číslo týdne od 1 do 52 týdnů. Tedy v proměnné například WEEK[12] bude počet odjetých minut za celý dvanáctý týden.
A tak dále.

tia systime 13


Celý prográmek má jen 5 segmentů:
V prvním čteme jednou za sekundu systémový čas s pomocí systémové funkce RD_SYS_T a uložíme jej do našeho DB18 ve formátu DTL.
Ve druhém pak počítáme minuty ze systémových minut které jsou neustále v rozmezí 0..59. Čítač těchto minut resetujeme v pondělí při zápisu doby za uplynulý týden.
Klikněte na obrázek pro zvětšení

tia systime 14b


Třetí segment je jen paměť pro porovnávání počtu minut v předešlém segmentu.
Čtvrtý sleduje den v týdnu a pokud nastane dvojka, což je pondělí, tak vygeneruje impuls, kterým posune čítač týdne o jeden dopředu, zapíše počet minut za uplynulý týden a vynuluje potřebné proměnné.
Klikněte na obrázek pro zvětšení

tia systime 15b


Pátý, nejzajímavější segment. Pokud jste četli a zkoušeli minulý díl tohoto našeho seriálu o programování v TIA portal, který se věnoval přesunu proměnných s pomocí systémových funkcí, tak jedna z nich byla tahle, ale opačná, FieldRead. My používáme FieldWrite, která zapíše proměnnou na vstupu VALUE do DB na výstupu MEMBER, ale do pozice (wordu) hodnoty na vstupu INDEX. Tam máme aktuální týden a proměnnou zapíšeme vždy do místa pro patřičný týden. Funkce podobná jako u nepřímého adresování, ale jednodušší zápis. Ideální pro začátečníky. Ostatní nepotřebuje vysvětlení.
Klikněte na obrázek pro zvětšení

tia systime 16b


Vše si nasimulujeme s pomocí VAT tabulky a HMI, abychom nemuseli čekat týden a týden.
Klikněte na obrázek pro zvětšení

tia systime 21b


Snad srozumitelně jsme to pro vás připravili na videoukázce zde:

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


Závěr:

Trochu nás k tomuto dílu inspirovala diskuse od jednoho čtenáře na webu zde, který něco podobného potřeboval vyřešit. Pokud si prostudujete bezva odkaz, který tam přidal čtenář DEATHER, tak z něj šestý příklad by šel taky částečně využít.

Jaroslav Blažek


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

Jak měřit čas v PLC na supportu Siemens je zde
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