IActionController (ITF)¶
INTERFACE IActionController EXTENDS __SYSTEM.IQueryInterface
Das Verhalten eines Action Providers kann weitreichend durch einen Action Controller beeinflusst werden. Ein Action Controller implementiert die Schnittstelle IActionController
und kann über die Eigenschaft ActionController
der IBehaviourModel
Schnittstelle mit einer BehaviourModel
Instanz verbunden werden. Wenn ein Action Controller mit einer BehaviourModel
Instanz verbunden ist, ruft die Zustandsmaschine die Methoden des Action Controllers anstelle der Methoden des Action Providers auf. Die Methoden des Action Controllers werden von der Zustandsmaschine mit den Parametern der verbundenen Action Provider Methode aufgerufen. Der Action Controller kann also die ursprünglichen Methoden des Action Controllers kapseln und dadurch ihr Verhalten gezielt verändern.
Die beispielhafte Implementierung der Methode ControlCleanupAction einer ActionController Funktionsbaustein-Instanz
1METHOD ControlCleanupAction
2VAR_INPUT
3 itfCleanupActionProvider : ICleanupActionProvider;
4 xAbortProposed : BOOL;
5 iErrorIDProposed: INT;
6END_VAR
7VAR_OUTPUT
8 xComplete : BOOL;
9 xAbort: BOOL;
10 iErrorID : INT;
11END_VAR
12
13(* Do some specific action before calling the original CleanupAction *)
14
15itfCleanupActionProvider.CleanupAction(
16 xAbortProposed:=xAbortProposed,
17 iErrorIDProposed:=iErrorIDProposed,
18 xComplete=>xComplete, // signal ready contition
19 xAbort=>xAbort, // signal abort condition
20 iErrorID=>iErrorID // signal error condition
21);
22
23(* Do some specific action after calling the original CleanupAction *)
Methods:
Structure: