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: