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

3.9 KiB

// Block Type: FC
// Block Number: 1881
// Original Network Languages: STL, LAD
// Block Comment:
//   BYTES From PDS
//   28 - CO2 Carbo Package Co2 Inlet Prod
//   52-Temperature Carbo 
//   92-Prod CO2
//   104 -Prod Temperature
//   108- Prod Brix

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

VAR_TEMP
  mAux : Int;
  mdummy : Bool;
  ErrorBit : Array[0..7] of Bool;
END_VAR

  #_25S : Bool; // Auto-generated temporary
BEGIN

  // Network 1: Communication Active (Original Language: LAD)

  // Network 1 did not produce printable SCL code.

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

  IF "E5_007161" THEN
    LIMIT_R(IN := "P_PDS_CO2", MN := 0.0, MX := 150.0);
  END_IF;

  // Network 3: Brix (Original Language: LAD)

  IF "P_PDS_Product_Brix" > 0.0 THEN
    LIMIT_R(IN := "P_PDS_Product_Brix", MN := 0.0, MX := 8.0);
  END_IF;

  IF ("P_PDS_Product_Brix" > 11.0) OR ("E5_007161" AND "P_PDS_Running") THEN
    "Blender_Variables"."gProductBrix" := "P_PDS_Product_Brix";
  END_IF;

  // Network 4: Temperature (Original Language: LAD)

  IF "E5_007161" THEN
    LIMIT_R(IN := "P_PDS_Temperature", MN := 0.0, MX := 150.0);
  END_IF;

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

  IF "E5_007161" THEN
    LIMIT_R(IN := "P_PDS_Density", MN := 0.0, MX := 150.0);
  END_IF;

  // Network 6: Line pressure (Original Language: LAD)

  LIMIT_R(IN := "PAmPDS_Aux_Real_IN", MN := 0.0, MX := 10.0);

  // Network 7: Temperature (Original Language: LAD)

  LIMIT_R(IN := "P_PDS_Temperature", MN := 0.0, MX := 150.0);

  // Network 8: Density (Original Language: LAD)

  LIMIT_R(IN := "P_PDS_Density", MN := 0.0, MX := 5.0);

  // Network 9: Data (Original Language: STL)

  // --- BEGIN STL Network 9 ---
   
     	AN	"HMI_Blender_Parameters".Processor_Options.Blender_OPT._PAmPDSType
     	A_BRACK
     	O	"mPDS_PA_Data".Input_From_mPDS.gPAmPDS_ProfibusStatus._CommError
     	O	"M18747"
     	BRACKET
     	AN	"mPDS_PA_Data".Input_From_mPDS.gPAmPDS_Error
     	=	"ErrorBit"[0]
     	A	"ErrorBit"[0]
     	JNB	_01e
     	L	"mPDS_PA_Data".mPACountError
     	L	1
     	ADD_I
     	T	"mPDS_PA_Data".mPACountError
     _01e:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_01f
     	L	0
     	T	"Blender_Variables".gProductRecipeNum
     _01f:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_020
     	L	0
     	T	"Blender_Variables".gProductCO2
     _020:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_021
     	L	0
     	T	"Blender_Variables".gProductBrix
     _021:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_022
     	L	0
     	T	"Blender_Variables".gProductDens
     _022:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_023
     	L	0
     	T	"Blender_Variables".gProductTemp
     _023:   		NOP_0
     	A	"ErrorBit"[0]
     	JNB	_024
     	L	0
     	T	"Blender_Variables".gProductLinePress
     _024:   		NOP_0
   
  // --- END STL Network 9 ---

  // Network 10: Count Error (Original Language: LAD)

  IF "gBlenderCIPMode" OR ("mPDS_PA_Data"."Input_From_mPDS"."gPAmPDS_ProfibusStatus"."_CommError" AND "M18747") THEN
    "mPDS_PA_Data"."mPACountError" := 0;
  END_IF;

  // Network 11: Error (Original Language: LAD)

  "mPDS_PA_Data"."Input_From_mPDS"."gPAmPDS_Error" := "mPDS_PA_Data"."mPACountError" > 6;

  // Network 12: Fault (Original Language: LAD)

  "mPAmPDSTmrComErr"(IN := "gProdMeterTransferRecipe", PT := S5T#25S); // TODO: Declarar "mPAmPDSTmrComErr" : TON;

  "gmPDS_PA_Error_Fault" := ("mPAmPDSTmrComErr".Q AND "mPDS_PA_Data"."Input_From_mPDS"."gPAmPDS_Error" AND "Procedure_Variables"."ProdBrix_Track"."Latch") OR ("mPAmPDSTmrComErr".Q AND "mPDS_PA_Data"."Input_From_mPDS"."gPAmPDS_Error" AND "Procedure_Variables"."ProdCO2_Track"."Latch");

  // Network 13: Fault (Original Language: LAD)

  // Network 13 did not produce printable SCL code.

  // Network 14:  (Original Language: LAD)

  // ERROR: MOVE 23 sin destino claro.

  // Network 15:  (Original Language: LAD)

  // Network 15 has no logic elements.

END_FUNCTION