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

13 KiB

// Block Type: FC
// Block Number: 1925
// Original Network Languages: LAD
// Block Comment:
//   TASK1 PID

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

VAR_TEMP
  mVLT_freq_REAL : Real;
  mDummy : Bool;
  mVLT_PumpP2_freq_REAL : Real;
  mVLT_PumpP1_freq_REAL : Real;
END_VAR

BEGIN

  // Network 1: Carbonated Water Valve (Original Language: LAD)
  //   Water Valve

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM301"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RMM301"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 2: Syrup Valve (Original Language: LAD)
  //   Syrup

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMP302"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RMP302"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 3: Co2 Valve (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM303"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RMM303"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 4: Gas2 Valve (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM304"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RMM304"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 5: Product Tank Pressure Valve (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVM301"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RVM301"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 6: Syrup Tank Level Valve (Original Language: LAD)

  IF "HMI_PID"."RVP303"."Out" >= 1.0 THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RVP303"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 5530);
  END_IF;

  // Network 7: Valve Power Enable (Power Supply Analog Signal) (Original Language: LAD)

  IF "HMI_PID"."RVP303"."Out" < 1.0 THEN
    "P_AO_RVP303" := 0;
  END_IF;

  "DO_SyrupValve_Enable" := "HMI_PID"."RVP303"."Out" < 1.0;

  // Network 8: Deaireator Level Valve (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVN302"."ConfigPID" AND "HMI_PID"."RVN302"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RVN302"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 9: CIp Heating Valve (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVS318"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."RVS318"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 10: Chiller Temperature (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVM319_PRD"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SP_ProdTemp", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  IF "HMI_Variables_Status"."Procedures"."WarmRinseRun" THEN
    "HMI_PID"."RVM319_H2O"."Out" := "HMI_PID"."RVM319_PRD"."Out";
  END_IF;

  // Network 11: Cip Return Temperature (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN
    WritePeripheral(Analog_Value := "HMI_Instrument"."TTS305_1"."PVFiltered", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 12: Cip Conductivity (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN
    WritePeripheral(Analog_Value := "HMI_Instrument"."CTS301"."PVFiltered", MAX_Analog_Value := 2000.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 13: Cip Caustic Conductivity (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN
    WritePeripheral(Analog_Value := "HMI_Instrument"."CTS302"."PVFiltered", MAX_Analog_Value := 200.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 14: Product Pump (Original Language: LAD)

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_ProdPump1_Hz";
  END_IF;

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM303"."Out" := 10.0;
  END_IF;

  IF ("gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Alarms"."gH_Status") OR ("gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Alarms"."gH_Status" AND "Disable_Bit") THEN
    "HMI_PID"."PPM303"."Out" := 15.0;
  END_IF;

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPM303Freq";
  END_IF;

  IF "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "gBlenderCIPMode" THEN
    "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPM303Freq";
  END_IF;

  IF "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM303"."Out" := "HMI_PID"."PPM303"."OutMan";
  END_IF;

  IF "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM303"."Out" := 0.0;
  END_IF;

  "mDummy" := "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut";

  // Network 15: Product Pump Reference Value (Original Language: LAD)
  //   N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con 
  //   macchina a 50Hz verrà impostato a 60Hz).

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPM303"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."PPM303"."Out", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 16: Product Pump 2 (Original Language: LAD)

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq" THEN
    "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_ProdPump2_Hz";
  END_IF;

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq" THEN
    "HMI_PID"."PPM305"."Out" := 10.0;
  END_IF;

  IF "gBlenderProdMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."PID_FIX" THEN
    "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_FillingValveHead_SP";
  END_IF;

  IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPM303Freq";
  END_IF;

  IF "gBlenderCIPMode" AND "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPM303Freq";
  END_IF;

  IF "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM305"."Out" := 0.0;
  END_IF;

  IF "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPM305"."Out" := "HMI_PID"."PPM305"."OutMan";
  END_IF;

  "mDummy" := "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq";

  // Network 17: Product Pump 2 Reference Value (Original Language: LAD)
  //   N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con 
  //   macchina a 50Hz verrà impostato a 60Hz).

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPM305"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."PPM305"."Out", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 18: Syrup Pump (Original Language: LAD)

  IF "gBlenderProdMode" AND "HMI_Device"."PPP302"."Out" THEN
    "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SyrupPumpFreq";
  END_IF;

  IF "gBlenderRinseMode" AND "HMI_Device"."PPP302"."Out" THEN
    "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPP302Freq";
  END_IF;

  IF "gBlenderCIPMode" AND "HMI_Device"."PPP302"."Out" THEN
    "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPP302Freq";
  END_IF;

  IF "HMI_Device"."PPP302"."Out" THEN
    "mVLT_PumpP2_freq_REAL" := 0.0;
  END_IF;

  IF "HMI_PID"."PPP302"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPP302"."OutMan" := "mVLT_PumpP2_freq_REAL";
  END_IF;

  IF "HMI_PID"."PPP302"."ManualControl"."ManOut" THEN
    "mVLT_PumpP2_freq_REAL" := "HMI_PID"."PPP302"."OutMan";
  END_IF;

  "HMI_PID"."PPP302"."Out" := "mVLT_PumpP2_freq_REAL";

  "mDummy" := ("gBlenderProdMode" AND "HMI_Device"."PPP302"."Out") OR ("gBlenderRinseMode" AND "HMI_Device"."PPP302"."Out");

  // Network 19: Syrup Pump Reference Value (Original Language: LAD)
  //   N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con 
  //   macchina a 50Hz verrà impostato a 60Hz).

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPP302"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."PPP302"."Out", MAX_Analog_Value := 60.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

  // Network 20: Water Pump (Original Language: LAD)

  IF "gBlenderProdMode" AND "HMI_Device"."PPN301"."Out" THEN
    "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_WaterPumpFreq";
  END_IF;

  IF "gBlenderRinseMode" AND "HMI_Device"."PPN301"."Out" THEN
    "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPN301Freq";
  END_IF;

  IF "gBlenderCIPMode" THEN
    "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPN301Freq";
  END_IF;

  IF "HMI_Device"."PPN301"."Out" THEN
    "mVLT_PumpP1_freq_REAL" := 0.0;
  END_IF;

  IF "HMI_PID"."PPN301"."ManualControl"."ManOut" THEN
    "HMI_PID"."PPN301"."OutMan" := "mVLT_PumpP1_freq_REAL";
  END_IF;

  IF "HMI_PID"."PPN301"."ManualControl"."ManOut" THEN
    "mVLT_PumpP1_freq_REAL" := "HMI_PID"."PPN301"."OutMan";
  END_IF;

  "HMI_PID"."PPN301"."Out" := "mVLT_PumpP1_freq_REAL";

  "mDummy" := ("gBlenderProdMode" AND "HMI_Device"."PPN301"."Out") OR ("gBlenderRinseMode" AND "HMI_Device"."PPN301"."Out");

  // Network 21: Water Pump Reference Value (Original Language: LAD)
  //   N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con 
  //   macchina a 50Hz verrà impostato a 60Hz).

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPN301"."Config" THEN
    WritePeripheral(Analog_Value := "HMI_PID"."PPN301"."Out", MAX_Analog_Value := 60.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0);
  END_IF;

END_FUNCTION