Matematické výpočty s datumy na PLC

Projekt PLC do škol společnosti Panasonic Electric Works


V mnoha různých aplikacích řízení mohou být akce PLC závislé na veličinách jako např.: aktuální datum, počet dnů od začátku roku, přestupní rok, den pracovního volna atd. Jedná se o případy při útlumu topení či klimatizace, ovládání inteligentních budov, počítání spotřebované energie či jakékoliv jiné aplikace, kde je třeba matematicky zpracovávat datumy. Použité funkce pro dílčí výpočty budou předávat hodnoty do řídícího programu, který v našem případě slouží pouze pro sběr těchto dat. Vstupní proměnné v našem programu nabývají pouze inicializačních hodnot. Při provozu bude řídící program získávat hodnoty z reálných zdrojů a na základě získaných informací spouštět, vypínat či modifikovat běh specifických systémů.


Řídící program zpracujeme jazykem strukturovaného textu (Structured Text - ST) i jazykem kontaktních schémat (Ladder Diagram - LD) a ukážeme si výhody či nevýhody jednotlivých řešení.
Pro každou zjišťovanou veličinu voláme funkci z řídícího programu. Na obrázku je vidět zpracování jazykem ST.




Vzhledem ke skutečnosti, že řídící program má funkci jen sběru dat, zdá se mi vhodnější použít jazyk LD. Zpravování je velmi přehledné. Na obrázku vidíme náhled včetně aktuálních hodnot proměnných (zelená čísla) v módu on-line se spuštěnou funkcí Monitor Values.
Při deklaraci proměnných jsme použily nastavení počátečních hodnot, které však lze po nahrání do PLC průběžně měnit a tím odzkoušet bezchybnost jednotlivých funkcí. Další alternativou pro testování by bylo použití dotykového panelu pro jednoduché zadávání jednotlivých vstupních proměnných.



Deklarace proměnných

Proměnná typ komentář

Vstupní:
iVarRok INT zadání roku (např.: 2010)
iVarMesic INT zadání měsíce (např.: 03)
iVarDen INT zadání dne (např.: 10)


Výstupní (vrátí hodnotu na základě vstupních proměnných)

iVarVelikonoceDen INT den v měsíci velikonočního pondělí


iVarVelikonoceMesic INT měsíc kdy je velikonočního pondělí


iVarDenVRoce INT počet dnů od začátku roku k datu

bJePrestupniRok Bool true pokud je přestupní rok

bJeSvatek Bool true pokud je den pracovního volna


Funkce JePrestupniRok zpracovává vstupní proměnou iVarRok. Díky pravidelnému opakování s periodicitou čtyř let, lze matematicky velmi jednoduše spočítat, na kdy přestupní rok připadá a podle výsledku nastavit logickou proměnnou bJePrestupniRok.
Příklad

iRok vrátí hodnotu

2010 FALSE

2000 TRUE

2001 FALSE

2004 TRUE

2008 TRUE


Funkce DenVRoce zohledňuje přestupní rok a pro vstupní hodnoty iVarDen, iVarMesic a iVarRok spočítá počet dnů od začátku roku.
Příklad

iDen iMesic iRok vrátí hodnotu

1 1 2010 1

1 2 2010 32

28 2 2010 59

31 12 2000 366




Funkce DatumVelikonoc vrací dvě proměnné a to iVarVelikonoceDen a iVarVelikonoceMesic pro zadaný rok v proměnné iVarRok.
Příklad

iRok vrátí hodnotu iVelikonoceDen a iVelikonoceMesic

2004 11 4 (=Duben)

2005 27 3 (= Březen)

2006 16 4 (=Duben)


Poslední důležitou funkcí, která využívá funkce již představené je JeSvatek. Tato funkce vrací hodnotu true v případě že aktuální datum zadaný ve vstupních proměnných odpovídá státem uznávanému svátku. Algoritmus využívá vyhodnotí správně i datum velikonoc, které jako jediný náš svátek neodpovídá konkrétnímu datu, ale každým rokem se mění. Výhodou tohoto zpracování je možnost program jednoduše modifikovat pro svátky jiných zemí nebo dokonce pro úplně jinou skupinou význačných dnů. Může se jednat např. o předem nadefinované dny odstávky systému či resetování polohy manipulačního zařízení.
Příklad

iDen iMesic iRok vrátí hodnotu důvod

24 12 2010 TRUE Štědrý Den

17 11 2008 TRUE Den boje za svobodu a demokracii

2 1 2006 FALSE 2. ledna



Možností jak problematiku práce s datumy zpracovávat je mnoho. Právě představená cesta je jedna z mnoha a já věřím, že Vám bude vodítkem pro Vaše další řešení obdobných úloh.
Pro zachování jednoduchosti celého zpracování chybí vstupní kontrola správnosti rozsahu jednotlivých vstupních veličin.


Text: Luděk Barták

Späť

Najčítanejšie

Skalár III OS – ultra přesné měření

Prvním krokem k úsporám teplé vody (TV) v domě, je nezbytné, co nejpřesněji změřit její spotřebu. Česká společnost ULITEP, spol. s.r.o., ve spolupráci se společností Hydrometer GmbH, představuje vlastní výrobek, měřicí sestavu Skalár III OS s přesností do 1 %. VIAC

ULITEP

Automatické kotle na pelety ATMOS představují moderní vytápění

Automatické kotle na pelety dnes přestavují moderní způsob vytápění rodinných domů a jiných objektů. Kotle určené pro topení peletami s hořáky na pelety ATMOS A25 nebo A45 mají hodně společného s topením zemním plynem nebo topným olejem. VIAC

ATMOS


Energeticky úsporné, teplé, cenovo dostupné  suché podlahové kúrenie
Zdravá, prírodná alternatíva podlahy v podobe keramickej dlažby CREATON so sebou prináša množstvo výhod: úspora energie, nízka váha - len 38,25 kg/m2, hrúbka dlažby len 2 cm, použiteľnosť už po 48 hodinách, rýchlosť pokládky, jednoduchý perodrážkový systém, ktorý môže realizovať iba jeden človek a dokonca laik. VIAC

FA-BRICK