Der Funktionsbaustein FB_StateModelHandlerBase wird verwendet, um die Steuerungslogik für jeden Zustand eines Zustandsmodells zu implementieren.
Der Funktionsbaustein darf nicht direkt instanziiert werden, sondern muss um einen benutzerdefinierten Funktionsbaustein erweitert werden. Verwenden Sie in Ihrem eigenen Zustandsmodell-Handler-Funktionsbaustein das Schlüsselwort EXTENDS in Verbindung mit dem Funktionsbausteinnamen. Auf diese Weise übernimmt Ihr Funktionsbaustein die Methoden, Eigenschaften und lokalen Variablen des Basisfunktionsbausteins.
Der Funktionsbaustein stellt die Methoden entsprechend den Zuständen 1 bis 17 des PackML-Basiszustandsmodell bereit. Die Methoden werden in der Anwendung über die Methode ExecuteCurrentState() des Bausteins FB_UnitModeManager2 aufgerufen. Dazu muss die Instanz des Funktionsbausteins, den FB_StateModelHandlerBase erweitert, einer von FB_UnitModeManager2 verwalteten Betriebsart zugewiesen werden. Die Betriebsartdefinition muss mithilfe der Methode FB_UnitModeManager2.DefineUnitModeWithHandler() erfolgen.
Die Zustandsmethoden von FB_StateModelHandlerBase enthalten keine benutzerdefinierte Logik. Die benutzerdefinierte Logik wird hinzugefügt, indem die Methoden unter dem Erweiterungsbaustein außer Kraft gesetzt werden.
Die Eingänge der Zustandsmethoden bieten Zugriff auf die Zustandsbefehle und die aktuelle Betriebsart.
Mit dem Eingang i_ifCommands kann ein Zustandsbefehl innerhalb der Methoden durch Aufrufen von FB_UnitModeManager2 ausgegeben werden.
Der Eingang i_ifUnitMode bietet Ihnen Zugriff auf Informationen zur aktuellen Betriebsart. Dadurch können bestimmte Aktionen innerhalb der Methode in Abhängigkeit von der Betriebsart durchgeführt werden. So kann derselbe Zustandsmodell-Handler für verschiedene Betriebsarten verwendet werden.
Eine weitere Möglichkeit besteht darin, mehrere Handler für das benutzerdefinierte Zustandsmodell zu erstellen, die über Erweiterung oder Vererbung Zugriff auf eine gemeinsame Implementierung haben. Mit dieser Option können Sie nur die Unterschiede implementieren, indem Sie die entsprechende Methode außer Kraft setzen.