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

2.6 KiB

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

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

VAR_TEMP
  #_15S : Bool; // Auto-generated temporary
  #_5S : Bool; // Auto-generated temporary
END_VAR

BEGIN

  // Network 1: Cooling Bypass (Original Language: LAD)
  //   Controllo temperatura ingresso Acqua Glicolata attivando Bypass
  //   Gestisce inoltre isteresi per il reset iniziale a -4 °C

  // PBox SymPy processed, logic in consumer
  "gCoolingSystemBypassFP" := ("HMI_Instrument"."TTM307"."PVFiltered" <= -5.0) OR ("HMI_Instrument"."TTM307"."PVFiltered" <= -4.0); // P_TRIG(("HMI_Instrument"."TTM307"."PVFiltered" <= -5.0) OR ("HMI_Instrument"."TTM307"."PVFiltered" <= -4.0)) - Mem: "gCoolingSystemBypassFP"

  IF (NOT "gCoolingSystemBypassFP" AND ("HMI_Instrument"."TTM307"."PVFiltered" <= -5.0)) OR (NOT "gCoolingSystemBypassFP" AND ("HMI_Instrument"."TTM307"."PVFiltered" <= -4.0)) THEN
    "gCoolingSystemBypass" := TRUE;
  END_IF;

  "gCoolingTempMaxLowAlrm" := ("HMI_Instrument"."TTM307"."PVFiltered" <= -5.0) OR ("HMI_Instrument"."TTM307"."PVFiltered" <= -4.0);

  // Network 2: Warning Low Temnperature (Original Language: LAD)
  //   warning di controllo per temperatura minima sotto i -3°C

  "HMI_Alarms"."gH_Message" := "HMI_Instrument"."TTM307"."PVFiltered" <= -3.0;

  // Network 3: Cooling Bypass (Original Language: LAD)

  "gBypassGlicoleSysDelay"(IN := "gCoolingSystemBypass", PT := S5T#5S); // TODO: Declarar "gBypassGlicoleSysDelay" : TON;

  IF "gBypassGlicoleSysDelay".Q THEN
    "gCoolingSysBypassAct" := TRUE;
  END_IF;

  // Network 4: Cooling Bypass Reset (Original Language: LAD)
  //   Il controllo della temperatura può essere eseguito confrontando:
  //   - TTM307  tramite il parametro di riferimento controllo temperatura impostato a 
  //   pannello

  "gRSTBYPSGlicoleSys"(IN := "HMI_Instrument"."TTM307"."PVFiltered" >= "HMI_Blender_Parameters"."ProcessSetup"."_RefTempCoolingCTRL", PT := S5T#15S); // TODO: Declarar "gRSTBYPSGlicoleSys" : TON;

  // Network 5: Cooling System Bypass Reset (Original Language: LAD)

  "gColingSystemBypassReset" := "gRSTBYPSGlicoleSys";

  // Network 6: Mix - Reset Bypass Glycole (Original Language: LAD)

  // PBox SymPy processed, logic in consumer
  "gColingSysBypassResetFP" := "gColingSystemBypassReset"; // P_TRIG("gColingSystemBypassReset") - Mem: "gColingSysBypassResetFP"

  IF "gColingSystemBypassReset" AND NOT "gColingSysBypassResetFP" THEN
    "gCoolingSystemBypass" := FALSE;
  END_IF;

  IF "gColingSystemBypassReset" AND NOT "gColingSysBypassResetFP" THEN
    "gCoolingSysBypassAct" := FALSE;
  END_IF;

END_FUNCTION