Skip to main content

Bibliothek: AC_ModuleBase

Die Modul-Basis-Bibliothek ist Teil des Modulkonzepts des CODESYS Application Composer. Alle Module, die dem Anwender im Modulbaum-Konfigurator zur Verfügung stehen sollen, müssen von dieser Basisbibliothek ableiten.

Instanzname

Die Modul-Basisklasse verfügt über die Property (get) InstanceName, die den Instanz-Namen als String zurückgibt

Property in IInstanceBase:PROPERTY InstanceName : STRING(255)

Rückgabewert: Instanzname der Modulinstanz

Tipp

Proxy-Instanzen liefern den Instanznamen der Modulinstanz der anderen Applikation.

Modulinfo

PROPERTY ModuleInfo : POINTER TO ModuleInfo: Dieses Property gibt einen Zeiger auf einen ModuleInfo Funktionsbaustein mit Methode PROPERTY ModuleType : STRING(255) zurück.

PROPERTY ModuleType : STRING(255): Dieses Property gibt den qualifizierten Modulnamen des Moduls zurück, der mit dem Namensraum der enthaltenen Bibliothek qualifiziert ist. (Der Namensraum ist relativ zum primären Projekt.)

Instanzpfad

Die Funktion GetInstancePath(IModule) gibt den Instanzpfad einer Modulinstanz zurück. Der Instanzpfad wird gebildet durch Aneinanderhängen der Instanznamen aller Vorfahren, beginnend vom Toplevelmodul bis zur vorgegebenen Instanz. Der Instanzname ist durch Punkte getrennt. Wenn der resultierende Instanzname länger als 255 Zeichen ist, wird ein leeren String zurückgegeben.

PROPERTY InstancePath : STRING(255)

Flache Navigation

Mit den Funktionen GetPrevModule(IModule) und GetNextModule(IModule) kann man, würde man den Baum als flache Modulinstanzliste interpretieren, zum vorigen oder nächsten Element springen. Die Module werden in Depth-First, Preorder Reihenfolge zurückgegeben. Modulreferenzen werden übersprungen wenn es kein voriges oder nächstes Element gibt.

Alternativ kann auch der Funktionsbaustein DepthFirstRange verwendet werden, der alle Instanzen ab einer gegebenen Instanz aufzählt.Die Funktion GetDepthFirstRange gibt einen Range-Baustein (vom Typ DepthFirstRange) zurück, der den ganzen Baum ab einer gegebenen Instanz aufzählt.

Hierarchische Navigation

Über das Interface IModuleTree kann der Modulbaum navigiert werden. Ein Objekt von dieser Schnittstelle wird jedem Modul über einen Zeiger auf eine Instanz vom Typ MEnv zur Verfügung gestellt. Dieser Zeiger wird bei der Funktion SetIdentification übergeben.Man beachte, dass Refrenzverweise bei der Navigation übersprungen werden.Die Reihenfolge von Kindknoten entspricht der Reihenfolge der Modulinstanzen im Modulbaum.

GetParent(itfM : IModule) : IModule: Liefert die Vaterinstanz einer vorgegebenen Modulinstanz zurück. Im Falle des ersten Toplevel-Modulknotens ist der Rückgabewert 0.

GetFirstChild(itfM : IModule) : IModule: Liefert die Kindinstanz einer vorgegebenen Modulinstanz zurück. Bei Modulinstanzknoten ohne Kinder wird der Wert 0 zurückgeliefert.

NextSibling(itfM : IModule) : IModule: Liefert die nächste Geschwisterinstanz einer vorgegebenen Modulinstanz zurück. Bei Modulinstanzen ohne weitere Geschwister wird 0 zurückgegeben. Kann auch bei Toplevelinstanzen aufgerufen werden.

PrevSibling(itfM : IModule) : IModule: Liefert die vorherige Geschwisterinstanz einer vorgegebenen Modulinstanz zurück. Bei Modulinstanzen ohne vorherige Geschwister wird 0 zurückgegeben. Kann auch bei Toplevelinstanzen aufgerufen werden.

GetFirstToplevelInstance() : IModule: Liefert die erste Toplevelinstanz im Baum. Bei leerem Baum wird 0 zurückgegeben.

Navigation zu Vorfahren/Geschwistern/Kindern

Mit dem Funktionsbaustein AncestorRange kann auf alle Vorfahren einer Instanz zugegriffen werden, beginnend bei der Instanz selbst. Mit dem Funktionsbaustein SiblingRange kann auf alle im Baum nachfolgenden Geschwister einer Instanz zugegriffen werden, beginnend bei der Instanz selbst. Die Funktion GetChildRange liefert einen Range-Baustein (Typ SiblingRange) über alle Kinder einer Instanz.

Navigation zur obersten Ebene

Mit der Funktion GetToplevelRange wird ein Range-Baustein zurückgegeben (Typ SiblingRange) über den auf alle Toplevel Instanzen zugegriffen werden kann.Zudem gibt es die Funktion GetToplevelInstance, welches das Toplevel-Modul zurückgibt, dem die angegebene Instanz zugeordnet ist.