Check Laser status Sequence Diagram
sequenceDiagram
%% API Registered Routine: Check Laser status (Section: NLOS)
participant User as "API Call"
participant CheckLaserstatus as "Check Laser status"
User->>+CheckLaserstatus: Call Check Laser status
participant CheckStatusPLD2 as "Check Status PLD2"
participant CheckStatusPLD1 as "Check Status PLD1"
participant CheckStatusIdler as "Check Status Idler"
participant CheckStatusSeed as "Check Status Seed"
CheckLaserstatus->>+CheckStatusPLD2: Execute Check PLD2
CheckStatusPLD2->>CheckStatusPLD2: Check STATUS - read_digital (name: STATUS, portnum: 3)
CheckStatusPLD2->>CheckStatusPLD2: Check TECG - read_digital (name: TEC G, portnum: 3)
CheckStatusPLD2->>CheckStatusPLD2: Format Output Values - output_values (values: ["prev('Check STATUS')","prev('Check TECG')"])
alt minimum(prev('Format Output Values'))==0
CheckStatusPLD2->>CheckStatusPLD2: Raise Error - raise_exception (e: Error in PLD2)
end
CheckStatusPLD2-->>-CheckLaserstatus: Complete
CheckLaserstatus->>+CheckStatusPLD1: Execute Check PLD1
CheckStatusPLD1->>CheckStatusPLD1: Check STATUS - read_digital (name: STATUS, portnum: 2)
CheckStatusPLD1->>CheckStatusPLD1: Check TECG - read_digital (name: TEC G, portnum: 2)
CheckStatusPLD1->>CheckStatusPLD1: Format Output Values - output_values (values: ["prev('Check STATUS')","prev('Check TECG')"])
alt minimum(prev('Format Output Values'))==0
CheckStatusPLD1->>CheckStatusPLD1: Raise Error - raise_exception (e: Error in PLD1)
end
CheckStatusPLD1-->>-CheckLaserstatus: Complete
CheckLaserstatus->>+CheckStatusIdler: Execute Check Idler
CheckStatusIdler->>CheckStatusIdler: Check 1PGM - read_digital (name: 1PGM, portnum: 1)
CheckStatusIdler->>CheckStatusIdler: Check TECG - read_digital (name: TEC G, portnum: 1)
CheckStatusIdler->>CheckStatusIdler: Check INTERLOCK - read_digital (name: INTRLCK, portnum: 1)
CheckStatusIdler->>CheckStatusIdler: Format Output Values - output_values (values: ["prev('Check 1PGM')","prev('Check TECG')","prev('Check INTERLOCK')"])
alt minimum(prev('Format Output Values'))==0
CheckStatusIdler->>CheckStatusIdler: Raise Error - raise_exception (e: Error in idler)
end
CheckStatusIdler-->>-CheckLaserstatus: Complete
CheckLaserstatus->>+CheckStatusSeed: Execute Check Seed
CheckStatusSeed->>CheckStatusSeed: Check TECG - read_digital (name: TEC G, portnum: 0)
CheckStatusSeed->>CheckStatusSeed: Check INTERLOCK - read_digital (name: INTRLCK, portnum: 0)
CheckStatusSeed->>CheckStatusSeed: Format Output Values - output_values (values: ["prev('Check TECG')","prev('Check INTERLOCK')"])
alt minimum(prev('Format Output Values'))==0
CheckStatusSeed->>CheckStatusSeed: Raise Error - raise_exception (e: Error in seed)
end
CheckStatusSeed-->>-CheckLaserstatus: Complete
CheckLaserstatus-->>-User: Check Laser status Complete
Zoom: 100%