Common Behaviour Model¶
Übersicht der Funktionsbausteine, Schnittstellen und Dekoratoren, die durch die CODESYS Common Behaviour Model Library zur Verfügung gestellt werden.
Die Bibliothek stellt für jedes Behaviour Model, das von der PLCopen spezifiziert ist, einen Basis-Funktionsbaustein zur Verfügung.
Wiederverwendung durch Komposition
Der Basis-Funktionsbaustein für alle zeitgesteuerten Funktionsbausteine ((TimingControlledBehaviourModelBase) kann unter Anwendung der Komposition erstellt werden. Hierfür werden die Funktionsbausteine BehaviourModel
und TimingController
eingebunden. Die Eingangsvariablen itfActionProvider
und itfTimigController
werden korrekt initialisiert. Zusätzlich wird ein Satz von Schnittstellen implementiert. Jeder Aufruf einer Methode und jeder Zugriff auf ein Property muss der lokalen BehaviourModel
Instanz delegiert werden.
Verwendung der Komposition, um einen neuen Funktionsbaustein TimingControlledBehaviourModelBase
zu erstellen.

Die Methoden der Schnittstelle IActionProvider
bieten die Möglichkeit, sie innerhalb des Funktionsbausteins durch Erweitern des Basis-Funktionsbaustein anzupassen. Die Implementierung der Methoden, die Teil der Schnittstelle IBehaviourModel
(zum Beispiel StartModel
) sind, erlaubt es, die Eingangs- und Ausgangsvariablen der lokalen BehaviourModel
Instanz und die Eingangs- und Ausgangsvariablen des erweiternden Funktionsbausteins zu verbinden. Für diese Task wurde die Methode GetModelState
ausgewählt.
Die Implementierung des Bodys des Basis-Funktionsbaustein wird zur geschützten Methode _Execute
ausgelagert. Somit kann das Verhalten eines Aufrufs außerhalb des SPS-Zyklus durch die Funktionsbausteine modifiziert werden, die diesen Basis-Funktionsbaustein später erweitern.
Verwendung von Komposition, um neue Funktionsbausteine zu erstellen
Verwendung von Komposition, um einen neuen Funktionsbaustein MC_MoveAbsolute mit ETrigA-Verhalten zu erstellen

Indem zwei Funktionsbausteine erstellt werden, ein interner Kern-Funktionsbaustein und ein öffentlicher finaler Funktionsbaustein, können die kompletten Implementierungsdetails gekapselt werden. Wenn diese Technik verwendet wird, wird das Layout des öffentlichen Funktionsbausteins vollständig vom Layout des internen Funktionsbausteins entkoppelt (Beachten Sie die unterschiedlichen Namenskonventionen für Variablennamen). Wegen des Schlüsselworts FINAL
kann dieser Funktionsbaustein in einem anderen Kontext nicht erweitert werden. Deshalb können keine Probleme auftreten, nachdem einige Implementierungsdetails geändert wurden (zum Beispiel, wenn lokale Variablen hinzugefügt wurden). Wenn ein Funktionsbaustein mit dem Schlüsselwort INTERNAL
markiert ist, kann ihn niemand außerhalb seines definierten Kontexts, seiner Originalbibliothek, verwenden.
Wiederverwendung durch Vererbung
Der Basis-Funktionsbaustein für ETrigTl
-Verhalten wird durch Erweitern des Basis-Funktionsbausteins TimingControlledBehaviourModelBase
, der oben beschrieben wurde, erstellt. Die allgemeinen Eingangs- und Ausgangsvariablen werden deklariert. Nahezu die komplette Implementierung kann vom Funktionsbaustein TimingControlledBehaviourModelBase
geerbt werden. Nur wenig Code ist notwendig, um den neuen Funktionsbaustein entsprechen der ETrigTl
Spezifikation anzupassen. Der neue Funktionsbaustein ist nun ein vollwertiges Mitglied der BehaviourModel
Familie. Er kann ebenso über seine Ein- und Ausgänge wie auch über die implementierte Schnittstelle IBehaviourModel
verwendet werden.
Die anderen Funktionsbausteine wie LCon, LConTl, LConTo, LConTlTo, LConC, LConTlC oder ETrig, ETrigTo, ETrigTlTo, ETrigA, ETrigATl, ETrigATo, ETrigATo und ETrigATlTo werden auf die gleiche Weise erzeugt.
Verwendung von Vererbung, um neue Funktionsbausteine zu erstellen
Um einen Basis-Funktionsbaustein außerhalb der Common Behaviour Model Library wiederzuverwenden, muss ein neuer Funktionsbaustein erstellt werden, der den gewünschten Basis-Funktionsbaustein der Bibliothek erweitert. Zusätzliche Variablen können hinzugefügt werden und die spezifische Implementierung seines Verhaltens kann in die Methoden StartAction
, CyclicAction
, CleanupAction
und ResetAction
platziert werden. Die geerbte BehaviourModel
Instanz garantiert, dass die richtige Methode zum richtigen Zeitpunkt aufgerufen wird.
Verwendung von Vererbung, um einen neuen Funktionsbaustein MC_MoveAbsolute, der CBML.ETrig erweitert, zu erstellen.

- Behaviour Model
- ActionController (FunctionBlock)
- BehaviourModel (FunctionBlock)
- Decorators
- Enums
- ImplementationBase
- Interfaces
- IActionController (Interface)
- IActionController2 (Interface)
- IActionProvider
- IBehaviourModel (Folder)
- IConfigurationProvider (Interface)
- IConfigurationProvider2 (Interface)
- ITimingController (Interface)
- TimingController (FunctionBlock)
- Edge Triggered Function Blocks
- Level Controlled Function Blocks