Je nach Meinung des Programmierers von am Besten gar nicht bis richtig intensiv
Pointer kannst Du z.B. verwenden, wenn Du aus verschiedenen Objekten heraus auf die selben Speicherbereiche bzw. auf andere Objekte zugreifen willst. Wenn möglich versuche ich dies aber lieber über Referencen zu tun. Sowohl die als auch Interface-Pointer sind Bestandteil von Codesys3/TwinCAT3.
Nettes Anwendungsbesipsiel für die Verwendung von Interface-Pointern wäre z.B. eine Betriebsartenumschaltung.
Nehmen wir an du hast eine Maschine, zusammengesetzt aus verschiedenen Komponenten. Die Funktionalität jeder Komponente wird repräsentiert durch einen FB. Dieser FB könnte dann ein Interface implementieren, mithilfe dessen diese Betriebsarten-Umschaltung realisiert werden soll. Solange Du sicherstellst, dass der Komponenten-FB jeder neuen Anlagenkomponente ebenfalls dieses Interface implementiert kannst Du folgendes tun.
* du erzeugst ein Array über diesen Interfacetyp
* weißt alle Instancen der Komponenten-FB's den einzelnen Felder des Array's zu
* erzeugst eine simple Schleife über alle Elemente des Arrays, welche die Betriebsarten-Umschaltung herbeiführt.
Dieser Code ist sehr schnell erweiterbar, denn solange jeder neue Komponenten-FB, wieder dieses Interface implementiert, kannst du die Instanzen sofort dem Array zuweisen. An dem Code der die Betriebsartenumschaltung herbeiführt brauchst du nix mehr ändern.