InOut zone

The Zone-InOut combines an input and output zone. To drive the output, it is necessary to enter the operand "S". This causes the zone output to be driven until the zone input reports the logical value 1. At that point the condition is met and the sequence can advance to the next step. If the zone input should be monitored, this is possible by entering the operand "I". An example application of the Zone-InOut is controlling a valve of a pneumatic cylinder via the zone output and monitoring the cylinder end position via the associated zone input.

Copy

   // --------------------------- ZONE 9 | Zone 9 ---------------------------

      // Zone Condition Assigns
      aCondZone9[0] := NOT GVL_<Sequence_name>_IOs.i_xZone7;
      aPaircheckZone9[0] := GVL_<Sequence_name>_IOs.i_xZone10;

      fbZone9.P_iIndexOfLamp := 27;
      fbZone9.P_iIndexOfPaircheckLamp := 28;
      fbZone9.P_xInputPolarity := eInputPolarity.Active_High;
      fbZone9.P_xOutputOpposite := GVL_<Sequence_name>_IOs.o_xZone10;
      
      fbZone9( // Zone 9
         xNoPBPressed := GVL_<Sequence_name>.stSeqIf.xSeqNoPBpressed, 
         xAutomaticRelease := GVL_<Sequence_name>.stSeqIf.xSeqAutomaticReleased, 
         iActualStepCounter := GVL_<Sequence_name>.iStepCounter, 
         aZone := aZ9, 
         aLampMatrix := aMatrix, 
         aTempMatrix := aTemp,
         aMonMatrix := GVL_<Sequence_name>_HMI.aHmiMon,
         aMonBuffer := GVL_<Sequence_name>_HMI.aHmiMonBuffer,  
         aStepMatrix := aStep);
      
      GVL_<Sequence_name>_IOs.o_xZone9 := fbZone9.M_InOutput(
         xManualRelease := GVL_<Sequence_name>.stSeqIf.xSeqManualReleased, 
         xFeedbackInput := GVL_<Sequence_name>_IOs.i_xZone9, 
         xManualPB := GVL_<Sequence_name>_HMI.xManBtn_Zone_9, 
         timFeedbackInput := T#0MS, 
         aCross := aCrossZone9, 
         aCond := aCondZone9, 
         aFeedbackPairCheckInput := aPaircheckZone9);

   // --------------------------- ZONE 10 | Zone 10 ---------------------------

      // Zone Condition Assigns
      aCondZone10[0] := NOT GVL_<Sequence_name>_IOs.i_xZone7;
      aPaircheckZone10[0] := GVL_<Sequence_name>_IOs.i_xZone9;

      fbZone10.P_iIndexOfLamp := 29;
      fbZone10.P_iIndexOfPaircheckLamp := 30;
      fbZone10.P_xInputPolarity := eInputPolarity.Active_High;
      fbZone10.P_xOutputOpposite := GVL_<Sequence_name>_IOs.o_xZone9;
      
      fbZone10( // Zone 10
         xNoPBPressed := GVL_<Sequence_name>.stSeqIf.xSeqNoPBpressed, 
         xAutomaticRelease := GVL_<Sequence_name>.stSeqIf.xSeqAutomaticReleased, 
         iActualStepCounter := GVL_<Sequence_name>.iStepCounter, 
         aZone := aZ10, 
         aLampMatrix := aMatrix, 
         aTempMatrix := aTemp,
         aMonMatrix := GVL_<Sequence_name>_HMI.aHmiMon,
         aMonBuffer := GVL_<Sequence_name>_HMI.aHmiMonBuffer,  
         aStepMatrix := aStep);
      
      GVL_<Sequence_name>_IOs.o_xZone10 := fbZone10.M_InOutput(
         xManualRelease := GVL_<Sequence_name>.stSeqIf.xSeqManualReleased, 
         xFeedbackInput := GVL_<Sequence_name>_IOs.i_xZone10, 
         xManualPB := GVL_<Sequence_name>_HMI.xManBtn_Zone_10, 
         timFeedbackInput := T#0MS, 
         aCross := aCrossZone10, 
         aCond := aCondZone10, 
         aFeedbackPairCheckInput := aPaircheckZone10);

Last updated

Was this helpful?