...
PlantUML Macro |
---|
@startuml (*) --> "ReceiveProcess Update Message for each Control Loop Element" if "MessageAll Control doesLoop notElements mentionwith my Participant ID processed" then --> [no]yes] --> "Send Update Ack Message" --> (*) else [no] --> "Process next Control Loop Element with my ID" [yesno] if "New Control Loop Element" then --> [yes] "Create Control Loop Element" --> "Set Control Loop Element to state UNINITIALISED" --> "Order Initiation of Control Loop Element" --> "Pass Parameters to Control Loop Element" --> "Wait for Initiation to complete" if "Control Loop Element Initiation" then --> [success] "ReportRecord Success infor Update Ack message" --> (*)"Process Update Message" else --> [fail] "Delete Control Loop Element" --> "ReportRecord Error infor Update Ack message" --> (*) "Process Update Message" endif else --> [no] "Check Control Loop Element State" endif if "RUNNING and Control Loop Version change != patch" then --> [true] "ReportRecord Error infor Update Ack message" --> (*) "Process Update Message" else [false] if "PASSIVE and Control Loop Version change == major" then --> [true] "ReportRecord Error infor Update Ack message" --> (*) "Process Update Message" else --> [false] "Pass Changed Parameters to Control Loop Element" --> "Wait for reconfiguration to complete" if "Control Loop Element Reconfiguration" then --> [success] "ReportRecord Success infor Update Ack message" --> (*)"Process Update Message" else --> "Roll back reconfiguration" --> "ReportRecord Error infor Update Ack message" --> (*)"Process Update Message" endif endif endif @enduml |
...
PlantUML Macro |
---|
@startuml Participant <- CLAMP_Runtime: Control Loop State Change\n[to all Participants in Control Loop] Participant -> CLAMP_Runtime: Control Loop State Change Ack [from each Participant in Control Loop] |
The handling of a ControlLoopStateChange message in each participant is as shown below.
Control Loop Monitoring and Reporting
...