Datový typ pointer

Datový typ pointer je rozšířením normy EN 61131 (není v ní definován). Důvodem je bezpečnost programování. Chybné použití pointeru může mít za následek zhroucení programu, což je při řízení technologie nepřípustný stav. Tento typ chyby nelze odhalit ani ve fázi překladu programu, ani za jeho běhu. Na druhou stranu, výhodou pointerů je vyšší efektivnost programovaní. Existuje také skupina úloh, které lze vyřešit jen a pouze použitím pointerů.

Pointer je ukazatel na proměnnou, která může být elementárního nebo odvozeného typu. Jinými slovy: pointer obsahuje adresu proměnné, nikoli její hodnotu. S pointerem se běžně provádí dva druhy operací: Buď lze měnit jeho hodnotu (zvyšovat, snižovat) a tím měnit, na kterou proměnnou pointer ukazuje, nebo lze pracovat s hodnotou proměnné, na kterou pointer ukazuje. První zmíněné operaci se říká pointerová aritmetika, druhá operace se pak označuje jako dereference pointeru.

Příklad

VAR
  MyPtr: PTR_TO INT;
  MyVar: INT;
END_VAR
 
MyVar:= 100;
MyPtr:= ADR( MyVar); //nastavení ukazatele na proměnnou
MyPtr^:= 200;        //v proměnné je nyní nová hodnota 200