PLC-AUTOMATIZACE - PROGRAM - PROGRAMOVÉ BLOKY - PARAMETRIZACE PODPROGRAMŮ - PŘÍMÉ Provoz webu zajišťuje:

www.hapesoft.cz

PŘÍMÉ PŘEDÁVÁNÍ PARAMETRŮ

Charakteristika

Přímé předávání parametrů volanému podprogramu je metodou, která zjednodušuje práci programátorovi. Tento způsob předávání parametrů využívá metodu předávání dat na zásobníku, pouze jej uživatel "nevidí" a problém alokace ukládání/vydávání parametrů řeší systém interně.

Použití je vhodné pro relativně malý objem předávaných parametrů, pro větší objemy předávaných dat je vhodnější použít nepřímé předávání parametrů.

Programátor při tvorbě podprogramu definuje název parametru a jeho typ. Při volání podprogramu potom přímo k jednotlivým parametrům doplní požadovanou proměnnou shodného typu. U takovýchto zápisů se rozlišuje, je-li parametr vstupní nebo výstupní, případně může být vstupně-výstupní. Názvy parametrů je možno uživatelsky měnit.

Poznámka
Při přímém předávání parametrů si systém vyhrazuje určitou oblast systémové paměti o potřebné velikosti odpovídající celkové velikosti všech parametrů podle jejich deklarace v podprogramu.

Příklad: Příprava a volání podprogramu s přiřazením parametrů pro dvě skupiny zpracování hodnot (A, B).

1) Deklarace proměnných pro skupinu A a B v nadřazeném programu:

         
  (symbol)   (typ)   // deklarace parametrů pro skupinu A
  A_VALUE:   Integer   // celočíselná proměnná typu Integer
  A_DIFF:   Integer   // celočíselná proměnná typu Integer
  A_COEF:   Real   // proměnná čísla s desetinnou čárkou typu Real
  A_ENABLE:   Bool   // proměnná jednoho bitu typu Bool
  A_STATUS:   Bool   // proměnná jednoho bitu typu Bool
         
      // deklarace parametrů pro skupinu B
  B_VALUE:   Integer   // celočíselná proměnná typu Integer
  B_DIFF:   Integer   // celočíselná proměnná typu Integer
  B_COEF:   Real   // proměnná čísla s desetinnou čárkou typu Real
  B_ENABLE:   Bool   // proměnná jednoho bitu typu Bool
  B_STATUS:   Bool   // proměnná jednoho bitu typu Bool
       

2) Volání podprogram pro hodnoty A a B z nadřazeného (pod)programu:

       
  CALL   TEST   // volání podprogramu pro proměnné "A"
  VALU:   A_VALUE   // přiřazení proměnné vstupnímu parametru 1
  COEF:   A_COEF   // přiřazení proměnné vstupnímu parametru 2
  ENBL:   A_ENABLE   // přiřazení proměnné vstupnímu parametru 3
  DIFF:   A_DIFF   // přiřazení proměnné výstupnímu parametru 1
  STAT:   A_STATUS   // přiřazení proměnné výstupnímu parametru 2
  ...    
  CALL   TEST   // volání podprogramu pro proměnné "B"
  VALU:   B_VALUE   // přiřazení proměnné vstupnímu parametru 1
  COEF:   B_COEF   // přiřazení proměnné vstupnímu parametru 2
  ENBL:   B_ENABLE   // přiřazení proměnné vstupnímu parametru 3
  DIFF:   B_DIFF   // přiřazení proměnné výstupnímu parametru 1
  STAT:   B_STATUS   // přiřazení proměnné výstupnímu parametru 2
         

3) Podprogram:

       
NAME: TEST       // název podprogramu a deklarace parametrů
Inp: VALU   Integer   // 1. vstupní parametr, typ Integer
Inp: COEF   Real   // 2. vstupní parametr, typ Real
Inp: ENBL   Bool   // 3. vstupní parametr, typ Bool
Out: DIFF   Integer   // 1. výstupní parametr, typ Integer
Out: STAT   Bool   // 2. výstupní parametr, typ Bool
         
          // vlastní podprogram
  L   #VALU   // načtení hodnoty z parametru VALU (Integer)
  ITD       // pomocná konverze
  DTR       // pomocná konverze
  L   #COEF   // načtení hodnoty z parametru COEF (Real)
  -R       // rozdíl hodnot
  TRUNC       // pomocná konverze (DInt/Int)
  T   #DIFF   // uložení výsledku do výstupního parametru DIFF (Int)
  L   0   // porovnávací hodnota (konstanta)
  >=I       // porovnání
  A   #ENBL   // načtení podmínky výstupu ENBL (Bool)
  =   #STAT   // uložení výsledku podm. porovnání do výstupního param. STAT (Bool)
  RET       // konec podprogramu
         

PLC-AUTOMATIZACE - PROGRAM - PROGRAMOVÉ BLOKY - PARAMETRIZACE PODPROGRAMŮ - PŘÍMÉ
 
Publikovaný obsah je určen pouze pro individuální studium.
Není povolena distribuce, prodej, přetisk a použití textu a/nebo vyobrazení (úplný, dílčí a/nebo částečný), použití ke školení a/nebo výuce (hromadné, skupinové nebo zadávané), veřejné a/nebo skupinové prezentace a ani jiné formy šíření v hmotné a/nebo nehmotné podobě.