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.