Obsidean_VM/04-SIDEL/00 - MASTER/Source/source/PID_RMM304.md

2.0 KiB

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

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

VAR_STAT
  PID_GAS2_Proportional : Real;
  PID_GAS2_Integral : Real;
  PID_GAS2_Derivative : Real;
  PID : "PIDControl";
END_VAR

VAR_TEMP
  mAux : Real;
END_VAR

BEGIN

  // Network 1: Manual Enable (Original Language: LAD)

  "HMI_PID"."RMM304"."ManualControl"."PidEnable" := ("Procedure_Variables"."Blender_Run"."Latch" AND "HMI_PID"."RMM304"."ManualControl"."ManOut") OR ("gBlenderBlending" AND "Blender_Variables_Pers"."gCarboStillProduct" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_RemoteInjection" AND "gWorkshopTest" AND ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_GAS2InjectionType" > 0));

  // Network 2: Setpoint (Original Language: LAD)

  "HMI_PID"."RMM304"."Sp" := "Blender_Variables"."gSP_GAS2";

  // Network 3: PV forcing (Original Language: LAD)

  IF "Procedure_Variables"."Blender_Rinse"."Running" AND "AUX FALSE" AND "HMI_PID"."RMM304"."ManualControl"."PidEnable" AND "gBlenderStableFlow" THEN
    "HMI_PID"."RMM304"."Pv" := "HMI_PID"."RMM304"."Sp";
  END_IF;

  // Network 4: PID Control (Original Language: LAD)
  //   Attenzione al Bit REG_INV !!

  "PID"(D_Sel := "AUX TRUE", FF_Enable := "AUX TRUE", I_Sel := "AUX TRUE", LMN_FAC := 1.0, LMN_OFF := 0.0, MAN_ON := "HMI_PID"."RMM304"."ManualControl"."ManOut", PID_Data := "HMI_PID"."RMM304", PID_Enable := "HMI_PID"."RMM304"."I_ITL" OR "HMI_PID"."RMM304"."ManualControl"."PidEnable", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE");

  // Network 5: Integral (Original Language: LAD)

  "mPID_RMM304_Int" := "PID_GAS2_Integral";

  // Network 6: Integral PID Inizialize (Original Language: LAD)

  IF "HMI_PID"."RMM304"."I_ITL" THEN
    "HMI_PID"."RMM304"."I_ITL" := FALSE;
  END_IF;

  // Network 7: Valve Output (Original Language: LAD)

  SEL_R(G := "HMI_PID"."RMM304"."ManualControl"."PidEnable", IN0 := 0.0, IN1 := "HMI_PID"."RMM304"."Out");

END_FUNCTION_BLOCK