Obsidean_VM/04-SIDEL/06 - E5.007363 - Modifica O.../Source/source/_StepMove_Test.md

1.5 KiB

// Block Type: FC
// Block Number: 1852
// Original Network Languages: LAD

FUNCTION "_StepMove_Test" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_INPUT
  Next_Step : Int;
  Preset_Timer : Int;
  Condition_1_OK : Bool;
  Condition_2_OK : Bool;
  Wait : Bool;
  TimeClockBase : Bool;
  Reset : Bool;
END_VAR

VAR_INOUT
  Step_Number : Int;
  Actual_Time : Int;
  Step_Transition : Bool;
END_VAR

VAR_TEMP
  Delay_Request : Bool;
  Local_Time : Int;
  Condition_Ok : Bool;
  End_Timer : Bool;
  DecSec_ONS : Bool;
  Reset_Act_Delay : Bool;
  End_Temp : Bool;
END_VAR

BEGIN

  // Network 1: SET TIMER (Original Language: LAD)

  "Delay_Request" := Ne("Preset_Timer", 0);

  // Network 2:  (Original Language: LAD)

  SEL_I(G := "Delay_Request", IN0 := 1, IN1 := "Preset_Timer");

  // Network 3:  (Original Language: LAD)

  "Condition_Ok" := "Condition_1_OK" AND "Condition_2_OK";

  // Network 4:  (Original Language: LAD)

  SEL_I(G := "Step_Transition", IN0 := "Step_Number", IN1 := "Next_Step");

  // Network 5: SET TIMER (Original Language: LAD)

  T_Timer(Actual := "Actual_Time", Base := "TimeClockBase", Preset := "Local_Time", Reset := FALSE, Start := "Step_Transition" AND "Condition_Ok", Stop := "Wait");

  // Network 6:  (Original Language: LAD)

  IF "Step_Transition" THEN
    "Condition_Ok" := FALSE;
  END_IF;

  IF "Step_Transition" THEN
    "Step_Transition" := FALSE;
  END_IF;

  // Network 7:  (Original Language: LAD)

  "Step_Transition" := "Condition_Ok" AND "End_Timer";

END_FUNCTION