PLC - Programovatelné logické automaty | ||
PLC-AUTOMATIZACE - PROGRAM - SYMBOLICKÁ ADRESACE | Provoz webu zajišťuje: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SYMBOLICKÁ ADRESACECharakteristikaSymbolická adresace je metoda, která dovoluje přiřazení názvu - jména proměnné konkrétnímu (obecně) objektu, používaného v programu. U některých systémů, převážně starších není nutno symbolickou adresaci používat vůbec, modernější systémy vyžadují přiřazení symboliky alespoň u položek datových bloků, nové systémy mohou vyžadovat i povinnou symbolickou adresaci u všech proměnných a objektů. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Princip symbolické adresacePrincip symbolické adresace spočívá v tom, že konkrétnímu operandu (vstup, výstup, merker, čítač, časovač, programový blok, datový blok) je přiřazeno symbolické jméno, které je následně používáno v programu jako symbolický (zástupný) operand, přičemž program pracuje s konkrétním absolutním objektem. Jednoduché příklady jsou uvedeny v tabulce 1.
Symbolická adresace. Kompilátor (překladač) zápisu programu vždy potřebuje určit, jedná-li se absolutní nebo symbolický zápis operandu. K tomu se používá znak " (uvozovky) nebo ' (apostrof). Tento znak potom zamezuje kolizi v případě, že je jako symbolický operand použit zápis, který odpovídá (částečně nebo úplně) absolutnímu zápisu. Pokud kompilátor nedokáže instrukci přiřadit žádný operand, nahlásí chybu zápisu. Z hlediska identifikace je tato situace lépe odstranitelná než v případě kolizního zápisu, viz dále. Kolizní zápisyKolizní zápisy jsou specifické případy nevhodné volby symbolu, kdy vynecháním znaků " může kompilátor programu vyhodnotit operand jako absolutní. Příklady kolizních zápisů jsou uvedeny v tabulce 2.
Symbolická adresace s možnými kolizními stavy (zápisy). V tabulce je na jednom řádku uveden nevhodný zápis symbolu a na následujícím řádku výsledek, kdy po odstranění znaků " je zápis pokládán za absolutní.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeklaracePokud vývojové programové prostředí umožňovalo použití symbolické adresace, jednalo se z počátku pouze o usnadnění práce programátorovi, kdy konkrétní zástupný symbol lépe specifikoval význam konkrétního objektu než strohé absolutní označení a k symbolickému označení bylo možno přiřadit i doprovodný komentář, vit tabulka 3. Jednoduchou ale povinnou symbolickou adresaci používala společnost ASEA již u prvních PLC.
Základní symbolické adresace. Dalším krokem v používání symbolické adresace bylo doplnění informace o deklaraci typu proměnné. Toto doplnění bylo přidáno za účelem omezení chyb při programování, zejména při používání paměťové oblasti merkerů / flagů nebo i datových slov pro rozlišení proměnných bitově nebo číselně orientovaných a rozlišení číselných hodnot, viz tabulka 4.
Symbolické adresace s deklarací typu. V souvislosti s rozšířením symbolické adresace o deklaraci typu byla rozšířena i kontrola zápisu programu ohledně přiřazení proměnné k dané funkci u graficky orientovaných zobrazení (FUP/FDB/FBS, KOP/LAD, AS/SFC). V takovém případě, při použití zápisu programu se symbolickou adresací, nelze např. přiřadit funkci násobení reálných čísel jako parametr proměnnou typu Integer nebo DWord.
Použití symbolické adresace u DBVýše popsaná symbolická adresace se v projekčním prostředí vytváří samostatně, mimo bloky programu. Případem, kdy je symbolická adresace svázána s blokem programu je datový blok, kdy je jednotlivým položkám přímo v datovém bloku přiřazen symbolický popis položky a deklarace typu, viz tabulka 5.
Symbolické adresace v datovém bloku. Práce se symbolickou adresacíSymbolická adresace bezesporu usnadňuje práci programátora ve smyslu udržení přehlednosti programu a to již od malých aplikací až po rozsáhlé programové aplikace, kde je použití symbolické adresace nutností. Definováním typu operandu se dále zamezuje kolizím u neshody typu operandu pro různé funkce a zpracování. Kolize absolutního a symbolického adresováníPokud je používána symbolická adresace, bude symbol vždy ukazovat na konkrétní správnou absolutní adresu, kterou mu programátor přidělí při deklaraci (např. u paměťového příznaku ... "ZAPNUTO" ... M10.3). Absolutní adresu je dodatečně změnit na M10.4 (automaticky nebo manuálně předrátovat) a kompilátor zajistí potřebné změny v celém programu. Pokud však v některém místě programu po předrátování nepoužijeme přístup pomocí symbolického adresování "ZAPNUTO" ale zadáme původní absolutní adresu M10.3, dojde k situaci, že bude (pravděpodobně) používán nesprávný paměťový příznak, než bylo zamýšleno (ZAPNUTO). Podobná situace nastává u datových bloků v případech kdy: a) je do datového bloku přidána nová položka nebo je naopak položka odebrána a to před položkou u které může dojít ke kolizi v přístupu. Pokud ke konkrétní položce budeme přistupovat pouze s použitím symbolické adresace, změnu absolutní adresy ošetří kompilátor. Pokud ke konkrétní položce budeme chtít přistupovat absolutně, bude nutno přepočítat polohu položky v datovém bloku v závislosti na počtu a typu přidaných / odebraných / změněných položek. Vliv změny položek v datovém bloku na absolutní adresaci je zobrazen v tabulce 6.
Změna absolutní adresy při přidání nebo změně položky v datovém bloku
Moderní programovací prostředí jsou schopny automaticky detekovat změny v blocích programu a upozorní na nutnost nahrání všech změněných bloků programu a zároveň nedovolí nahrání programového bloku, kde vlivem změny typu došlo ke kolizi parametrů a tato vyžaduje úpravu. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TagTag je položka symbolické adresace, která nese informace o jednom operandu. S vývojem projekčního software doznal Tag několik změn. Podle dodavatele projekčního software se obsah a možnosti využití Tagu liší co do užití a funkcí. Obecně je nutno v Tagu uchovávat několik informací sloužící k systémovému začlenění Tagu do programu, viz tabulka 7.
Obecná struktura Tagu. *) skutečnou fyzickou adresu objektu v paměti určuje kompilátor a systém CPU při nahrání do paměti, případně operační systém CPU u dynamicky vytvářených DB. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PLC-AUTOMATIZACE - PROGRAM - SYMBOLICKÁ ADRESACE |
|
|