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

2.9 KiB

// Block Type: FB
// Block Number: 1729
// Original Network Languages: LAD
// Block Comment:
//   TASK1 PID

FUNCTION_BLOCK "BlenderPIDCtrl__Loop"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_INPUT
  i_InValue : Real;
  i_SlewMax : Real;
  i_Cycle : Real;
END_VAR

VAR_OUTPUT
  MeanValue : Real;
  Variance : Real;
  Std_Deviation : Real;
END_VAR

VAR_INOUT
  out : Real;
END_VAR

VAR_STAT
  PID_1_300ms : Bool;
  PID_2_300ms : Bool;
  PID_3_300ms : Bool;
  PID_4_300ms : Bool;
  PID_5_300ms : Bool;
  PID_6_300ms : Bool;
  Flow_Meter_Error_RETVAL : Real;
  PID_FF_Calc : "BlenderPID_PIDFFCalc";
  PID_Blending_Fault : "BlenderPID_BlendingFault";
  PID_Save_Integral : "BlenderPIDCtrl_SaveInteg";
  PID_Monitor : "BlenderPIDCtrl_Monitor";
  Read_AnalogInput : "BlenderPIDCtrl_ReadAnIn";
END_VAR

BEGIN

  // Network 1: Read Analoc Inputs (Original Language: LAD)

  "Read_AnalogInput"();

  // Network 2: MIX - OB35 scan counter (Original Language: LAD)
  //   PID Control Time Bit (300ms)

  "PID_1_300ms" := Eq("MW1968", 1);

  "PID_2_300ms" := Eq("MW1968", 2);

  "PID_3_300ms" := Eq("MW1968", 3);

  "PID_4_300ms" := Eq("MW1968", 4);

  "PID_5_300ms" := Eq("MW1968", 5);

  "PID_6_300ms" := Eq("MW1968", 6);

  // Network 3: PID Call (Original Language: LAD)
  //   Water PID
  //   Syrup PID
  //   CO2 PID

  IF "PID_1_300ms" THEN
    "PID_FF_Calc"();
    "PID_Blending_Fault"();
    BlenderPID_FlowMeterErro();
    "PID_Monitor"();
    "PID_Save_Integral"();
    BlenderPIDCtrl_SaveValve();
  END_IF;

  IF "PID_1_300ms" AND "HMI_PID"."RMM301"."Config" THEN
    "PID_RMM301_Data"();
  END_IF;

  IF "PID_1_300ms" AND "HMI_PID"."RMP302"."Config" THEN
    "PID_RMP302_Data"();
  END_IF;

  IF "PID_1_300ms" AND "HMI_PID"."RMM303"."Config" THEN
    "PID_RMM303_Data"();
  END_IF;

  IF "PID_1_300ms" AND "HMI_PID"."RMM304"."Config" THEN
    "PID_RMM304_Data"();
  END_IF;

  // Network 4: PID Product Tank Pressure (Original Language: LAD)

  IF "PID_2_300ms" AND "HMI_PID"."RVM301"."Config" THEN
    "PID_RVM301_Data"();
    BlenderPIDCtrl_PresRelea();
  END_IF;

  // Network 5: Pid Call (Original Language: LAD)

  IF "PID_4_300ms" AND "HMI_PID"."RVM319_PRD"."Config" THEN
    "PID_RVM319_Data"();
  END_IF;

  IF "HMI_PID"."RVP303"."Config" AND "PID_4_300ms" THEN
    "PID_RVP303_Data"();
  END_IF;

  IF "HMI_PID"."RVN302"."ConfigPID" AND "HMI_PID"."RVN302"."Config" AND "PID_4_300ms" THEN
    "PID_RVN302_Data"();
  END_IF;

  // Network 6: Filling Head (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" AND "PID_5_300ms" AND "HMI_PID"."PPM303"."Config" THEN
    "PID_Filling_Head_Data"();
  END_IF;

  // Network 7: CIp Heating PID (Original Language: LAD)

  IF "PID_6_300ms" AND "HMI_PID"."RVS318"."Config" THEN
    "PID_RVS318_Data"();
  END_IF;

  // Network 8: Write Analog Outputs (Original Language: LAD)

  IF "AUX TRUE" THEN
    BlenderPIDCtrl_WriteAnOu();
  END_IF;

END_FUNCTION_BLOCK