...
PlantUML Macro |
---|
@startuml participant CLAMP_Runtime database Database loop forever CLAMP_Runtime -> Database: Read Control Loop Instances loop Over each Control Loop Instance loop Over each Control Loop Element alt Control Loop Element has not reported in last reporting window CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Element as having missed a report CLAMP_Runtime -> Database: Increment missed report counter on Control Loop Element else Control Loop Element has reported in last reporting window CLAMP_Runtime -> Database: Clear missed report counter on Control Loop Element end alt Control Loop Element in incorrect state in last reporting window CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Element as being in incorrect state CLAMP_Runtime -> Database: Record Control Loop Element as being in incorrect state else Control Loop Element not in incorrect state in last reporting window alt Control Loop Element was in incorrect state on previous report CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Element as being in correct state CLAMP_Runtime -> Database: Record Control Loop Element as being in correct state end end alt Control Loop Element reported fault in last reporting window CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Element as being faulty CLAMP_Runtime -> Database: Record Control Loop Element as being faulty else Control Loop Element did not report fault in last reporting window alt Control Loop Element reported fault on previous report CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Element fault as cleared CLAMP_Runtime -> Database: Mark fault Control Loop Element as being cleared end end end alt Control Loop Element in Control Loop Instance has exceeded alarm threshold on missed report counter CLAMP_Runtime -> CLAMP_Runtime: Raise a Control Loop Offline alarm on Control Loop Instance CLAMP_Runtime -> Database: Mark Control Loop Instance as being offline else No Control Loop Element in Control Loop Instance has exceeded alarm threshold on missed report counter alt Control Loop Instance marked as being offline CLAMP_Runtime -> CLAMP_Runtime: Clear Control Loop Instance Offline alarm on Control Loop CLAMP_Runtime -> Database: Mark Control Loop Instance as being online end end alt Control Loop Element in Control Loop Instance in incorrect state in last reporting window CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Instance as being in incorrect state CLAMP_Runtime -> Database: Record Control Loop Instance as being in incorrect state alt Control Loop Element in Control Loop Instance has exceeded alarm threshold on incorrect state reports CLAMP_Runtime -> CLAMP_Runtime: Raise a Control Loop Instance in Incorrect State alarm on Control Loop Instance CLAMP_Runtime -> Database: Mark Control Loop Instance as being in an incorrect state end else No Control Loop Element in incorrect state in last reporting window alt Control Loop Element in Control Loop Instance was in incorrect state on previous report CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Instance as being in correct state CLAMP_Runtime -> Database: Record Control Loop Instance as being in correct state alt Control Loop Instance in Incorrect State alarm raised on Control Loop Instance CLAMP_Runtime -> CLAMP_Runtime: Clear Control Loop Instance in Incorrect State alarm on Control Loop Instance end end end alt Control Loop Element in Control Loop Instance reported a fault in last reporting window CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Instance as being faulty CLAMP_Runtime -> Database: MarkRecord Control Loop Instance as being in correct statefaulty alt Control Loop Element in Control Loop Instance has exceeded alarm threshold on faulty reports CLAMP_Runtime -> CLAMP_Runtime: Raise a Control Loop Instance Faulty alarm on Control Loop Instance end else No Control Loop Element faulty in last reporting window alt Control Loop Element in Control Loop Instance was faulty on previous report CLAMP_Runtime -> CLAMP_Runtime: Log Control Loop Instance as being fault free CLAMP_Runtime -> Database: Record Control Loop Instance as being fault free alt Control Loop Instance Faulty alarm raised on Control Loop Instance CLAMP_Runtime -> CLAMP_Runtime: Clear Control Loop Instance Faulty alarm on Control Loop Instance end end end end end @enduml |
...