Decisions

This section decides which part of the Step Sequence, previously configured in the Studio, will be executed. When the sequence is in the defined decision step, a decision is expected to be made. This causes the corresponding decision path to be selected and the subsequent step sequences to be determined, which are then executed.

Copy

// --------------------------- Decisions ---------------------------
     GVL_Sequence1.stSeqIf.xDecision := FALSE;
   // Decision Decision 1 Path 1 End Jump
   IF (GVL_Sequence1.iStepCounterLastCycle = 4 AND GVL_Sequence1.iStepCounter = 5 AND GVL_Sequence1.stSeqIf.xSeqAutomaticReleased) THEN
      GVL_Sequence1.iStepCounter := 6;
      GVL_Sequence1.stSeqIf.xDecision := TRUE; // Block step increment for one cycle
   END_IF

   // Decision Decision 1 Path 2 End Jump
   IF (GVL_Sequence1.iStepCounterLastCycle = 5 AND GVL_Sequence1.iStepCounter = 6 AND GVL_Sequence1.stSeqIf.xSeqAutomaticReleased) THEN
      GVL_Sequence1.iStepCounter := 6;
      GVL_Sequence1.stSeqIf.xDecision := TRUE; // Block step increment for one cycle
   END_IF

   // Decision Jumps Decision 1
   IF (GVL_Sequence1.iStepCounter = 3 AND GVL_Sequence1.stSeqIf.xSeqAutomaticReleased) THEN
      IF (GVL_Sequence1_IOs.i_xDecision_1_Path1) AND NOT (GVL_Sequence1_IOs.i_xDecision_1_Path2) THEN
         GVL_Sequence1.iStepCounter := 4;
         GVL_Sequence1.stSeqIf.xDecision := TRUE; // Block step increment for one cycle
      ELSIF (GVL_Sequence1_IOs.i_xDecision_1_Path2) AND NOT (GVL_Sequence1_IOs.i_xDecision_1_Path1) THEN
         GVL_Sequence1.iStepCounter := 5;
         GVL_Sequence1.stSeqIf.xDecision := TRUE; // Block step increment for one cycle
      END_IF
   END_IF

Last updated

Was this helpful?