PLC - Programovatelné logické automaty | ||
PLC-AUTOMATIZACE - PROGRAM - PROGRAMOVÉ BLOKY - PARAMETRIZACE PODPROGRAMŮ - ZÁSOBNÍK | Provoz webu zajišťuje: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PARAMETRY PŘEDÁVANÉ NA ZÁSOBNÍKUCharakteristikaNejuniverzálnější, způsob jak provádět předávání parametrů mezi programem a podprogramem je předávání hodnot na zásobníku. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zásobník jako definovaná paměťová oblastPrincip tohoto způsobu je takový, že podprogram pracuje s pevně danými odkazy na paměťová místa (vstupní parametry), kam programátor před voláním podprogramu uloží potřebné vstupní proměnné. Podprogram zpracuje algoritmus řízení s těmito parametry a na pevně zvolené paměťová místa (výstupní parametry) uloží výsledky zpracování. Příklad:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zásobník jako akumulátory CPUUvedený zápis předání parametrů je evidentně méně přehledný a zdlouhavý, protože vyžaduje poměrně pracný programový zápis pro předávání parametrů. O něco efektivnějším způsobem, pro malý počet parametrů, je předání parametrů pomocí akumulátorů CPU, což jsou interní registry, které CPU používá pro interní operace. Nevýhoda takového způsobu je v tom, že CPU obsahuje malý počet těchto akumulátorů, zpravidla 2 (minimální nutný počet pro činnost CPU), u výkonnějších CPU pak 4 akumulátory. V tomto případě se využívá primitivní vlastnosti CPU, že při každém načtení hodnoty, předchozí hodnoty přesouvá do akumulátorů s vyšším číslem. Obrácený postup posunu akumulátorů (vyprázdnění) se provádí po provedení operace mezi akumulátory ACC 0 a ACC 1, přímá instrukce vyprázdnění nemusí být ale vždy instrukčně dostupná. Možným využitím je výpočet bodu na přímce pomocí rovnice Y = K • X + Q. Při použití tohoto způsobu je potřeba mít na paměti, že první uložená hodnota (parametr) je uložena v akumulátoru s nejvyšším číslem (podle počtu načtení) a poslední načtená hodnota v akumulátoru ACC 0. Obsah libovolných akumulátorů nebývá možno dodatečně mezi sebou zaměňovat (pouze ACC 0 a ACC 1), proto musí být hodnoty zadávány ve správném pořadí. Tomuto způsobu přípravy hodnot a následujícímu způsobu provedení operací se říká "polská logika" a využívala ji například firma Hewlett Packard u řady stolních programovatelných kalkulátorů HP-41C/CV/CX. Příklad pro CPU se 4 akumulátory: Výpočet podle rovnice Y = K • X + Q, vstupní hodnoty zadávány jako real, výstup real a integer. ACC 3 není potřebný.
Vlastní podprogram, podle výše uvedených příkladů, pak nemá žádnou hlavičku, ve které by se parametry deklarovaly a obsahuje pouze prováděcí programový kód.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PLC-AUTOMATIZACE - PROGRAM - PROGRAMOVÉ BLOKY - PARAMETRIZACE PODPROGRAMŮ - ZÁSOBNÍK |
|
|