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

7.2 KiB

// Block Type: FC
// Block Name (Original): QCO Monitor
// Block Number: 100
// Original Network Languages: STL

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

VAR_TEMP
  FAULT : Int;
  DATABASE_PNTR : "Any";
END_VAR

BEGIN

  // Network 1: ---------- PHASE DETECTION ----------------- (Original Language: STL)

  // --- BEGIN STL Network 1 ---
   
     	AN	"System_RunOut_Variables".SystemRunOutInit
     	AN	M100.7
     	O	M100.0
     	JC	M009
     	SET
     	R	M100.7
     	LAR1	_ERR_CONST_
     	L	BYTE#16#10
     	T	LocalB[AR1,P#0.0]
     	L	BYTE#16#02
     	T	LocalB[AR1,P#1.0]
     	L	128
     	T	LocalW[AR1,P#2.0]
     	L	100
     	T	LocalW[AR1,P#4.0]
     	L	"MB101"
     	L	P#128.0
     	MUL_D
     	L	P#DBX200.0
     	ADD_D
     	T	LocalD[AR1,P#6.0]
     
     	CALL	_Call_?
     
     	L	0
     	T	DB100.DBD0.0
     
     	CALL	_Call_?
     
     	L	DINT#2_000_000_000
     	L	"QCO Timing DB".ActualTimer.ChangeOverN
     	GE_D
     	JC	M001
     	L	0
     M001:   		L	1
     	ADD_D
     	T	"QCO Timing DB".ActualTimer.ChangeOverN
     
     	L	9
     	L	"MB101"
     	GT_D
     	JC	M002
     	L	-1
     M002:   		L	1
     	ADD_I
     	T	"MB101"
     
     	SET
     	S	M100.0
     	R	M100.6
     
     M009:   		AN	M100.0
     	BEC
   
  // --- END STL Network 1 ---

  // Network 2: 00 - QUICK CHANGE OVER TOTAL DURATION (Original Language: STL)

  // --- BEGIN STL Network 2 ---
   
     	A	"System_RunOut_Variables".ProdPipe_RunOut.Latch
     	A	"System_RunOut_Variables".FillerRanOut
     	O	"System_RunOut_Variables".ProdPipe_RunOut.Done
     	S	"QCO Timing DB".PhaseInProgress.Total
   
  // --- END STL Network 2 ---

  // Network 3: 05 - SYRUP RUNOUT (Original Language: STL)

  // --- BEGIN STL Network 3 ---
   
     	A	"Procedure_Variables".Syr_RunOut.Latch
     	=	"QCO Timing DB".PhaseInProgress.SyrupRunout
   
  // --- END STL Network 3 ---

  // Network 4: 06 - SYRUP LINE RINSE (Original Language: STL)

  // --- BEGIN STL Network 4 ---
   
     	L	"System_Run_Out_Data".mStep
     	L	0
     	EQ_I
     	A	"gSyrupQcoRinse"
     	=	"QCO Timing DB".PhaseInProgress.SyrupLineRinse
   
  // --- END STL Network 4 ---

  // Network 5: 07 - SYRUP TANK RINSE (Original Language: STL)

  // --- BEGIN STL Network 5 ---
   
     	L	"System_Run_Out_Data".mStep
     	L	1
     	EQ_I
     	A	"gSyrupQcoRinse"
     	=	"QCO Timing DB".PhaseInProgress.SyrupTankRinse
   
  // --- END STL Network 5 ---

  // Network 6: 08 - SYRUP TANK PREPARATION (Original Language: STL)

  // --- BEGIN STL Network 6 ---
   
     	A	"Procedure_Variables".FTP302Line_Preparation.Latch
     	O	"Procedure_Variables".FTP302_StartUp.Latch
     	=	"QCO Timing DB".PhaseInProgress.SyrupTankPreparation
   
  // --- END STL Network 6 ---

  // Network 7: 10 - PRODUCT TANK RUNOUT (Original Language: STL)

  // --- BEGIN STL Network 7 ---
   
     	A	"Procedure_Variables".TM301_RunOut.Latch
     	=	"QCO Timing DB".PhaseInProgress.ProdTankRunout
   
  // --- END STL Network 7 ---

  // Network 8: 11 - PRODUCT PIPE RUNOUT (Original Language: STL)

  // --- BEGIN STL Network 8 ---
   
     	A	"System_RunOut_Variables".ProdPipe_RunOut.Latch
     	=	"QCO Timing DB".PhaseInProgress.ProdPipeRunout
   
  // --- END STL Network 8 ---

  // Network 9: 12 - PRODUCT TANK BLOW OFF (Original Language: STL)

  // --- BEGIN STL Network 9 ---
   
     	A	"System_RunOut_Variables".ProdPipe_Drain.Latch
     	=	"QCO Timing DB".PhaseInProgress.ProdTankBlowOff
   
  // --- END STL Network 9 ---

  // Network 10: 14 - RINSE (Original Language: STL)

  // --- BEGIN STL Network 10 ---
   
     	A	"Procedure_Variables".Blender_Rinse.Latch
     	AN	"Procedure_Variables".TM301_Drain.Latch
     	=	"QCO Timing DB".PhaseInProgress.Rinse
   
  // --- END STL Network 10 ---

  // Network 11: 15 - PRODUCT TANK DRAIN (Original Language: STL)

  // --- BEGIN STL Network 11 ---
   
     	A	"Procedure_Variables".Blender_Rinse.Latch
     	A	"Procedure_Variables".TM301_Drain.Latch
     	=	"QCO Timing DB".PhaseInProgress.ProdTankDrain
   
  // --- END STL Network 11 ---

  // Network 12: 17 - FILLER FLUSHING (Original Language: STL)

  // --- BEGIN STL Network 12 ---
   
     	A	"Procedure_Variables".Blender_Rinse.Latch
     	A	"Procedure_Variables".TM301_Drain.Latch
     	Rise	M100.3
     	S	"QCO Timing DB".PhaseInProgress.FillerFlushing
     
     	A	"gIN_FillerEndFlushing"
     	R	"QCO Timing DB".PhaseInProgress.FillerFlushing
   
  // --- END STL Network 12 ---

  // Network 13: 19 - PRODUCT TANK PRESSURIZZATION (Original Language: STL)

  // --- BEGIN STL Network 13 ---
   
     	A	"System_RunOut_Variables".System_RunOut.Done
     	S	"QCO Timing DB".PhaseInProgress.ProdTankPressurization
     
     	A	"gEqPressOk"
     	O	"gBlenderBlending"
     	A	"QCO Timing DB".PhaseInProgress.ProdTankPressurization
     	R	"QCO Timing DB".PhaseInProgress.ProdTankPressurization
     	S	"QCO Timing DB".PhaseInProgress.ProdTankChargeUp
   
  // --- END STL Network 13 ---

  // Network 14: 20 - PRODUCT TANK CHARGE UP (Original Language: STL)

  // --- BEGIN STL Network 14 ---
   
     
     	A	"QCO Timing DB".PhaseInProgress.ProdTankChargeUp
     	A	"gWaitLevToHold_TankPress"
     	R	"QCO Timing DB".PhaseInProgress.ProdTankChargeUp
     	S	"QCO Timing DB".PhaseInProgress.WaitForFillerReady
   
  // --- END STL Network 14 ---

  // Network 15: 22 - WAIT FOR FILLER READY (Original Language: STL)

  // --- BEGIN STL Network 15 ---
   
     
     	A	"QCO Timing DB".PhaseInProgress.WaitForFillerReady
     	A	"gIN_Filler_AVM362_En"
     	R	"QCO Timing DB".PhaseInProgress.WaitForFillerReady
     	S	"QCO Timing DB".PhaseInProgress.FillerSlowCharging
   
  // --- END STL Network 15 ---

  // Network 16: 23 - FILLER SLOW CHARGING (Original Language: STL)

  // --- BEGIN STL Network 16 ---
   
     
     	A	"QCO Timing DB".PhaseInProgress.FillerSlowCharging
     	A	"Interlocking_Variables".MIXER_FILLER_SEND.PROD_Prod_Load_2
     	R	"QCO Timing DB".PhaseInProgress.FillerSlowCharging
     	S	"QCO Timing DB".PhaseInProgress.FillerFastCharging
   
  // --- END STL Network 16 ---

  // Network 17: 24 - FILLER FAST CHARGING (Original Language: STL)

  // --- BEGIN STL Network 17 ---
   
     
     	A	"QCO Timing DB".PhaseInProgress.FillerFastCharging
     	A	"Procedure_Variables".BlendFill_StartUp.Done
     	R	"QCO Timing DB".PhaseInProgress.FillerFastCharging
     	S	"QCO Timing DB".PhaseInProgress.WaitFirstBottleOut
   
  // --- END STL Network 17 ---

  // Network 18: 25 - WAIT FOR FIRST BOTTLES FILLED (Original Language: STL)

  // --- BEGIN STL Network 18 ---
   
     
     	A	"Interlocking_Variables".FILLER_MIXER_RECEIVE.PROD_Bott_Filling
     	A	"Procedure_Variables".BlendFill_StartUp.Done
     	R	"QCO Timing DB".PhaseInProgress.WaitFirstBottleOut
     	R	M100.0
     	S	M100.6
   
  // --- END STL Network 18 ---

  // Network 19: --------- PHASE COUNTING ---------------- (Original Language: STL)

  // --- BEGIN STL Network 19 ---
   
     	AN	CLK_1.0S
     	JC	M999
     
     	LAR1	P#0.0
     	LAR2	P#0.0
     	JU	M901
     
     M900:   		ADDAR1	P#0.1
     	ADDAR2	P#4.0
     
     M901:   		AUF	"QCO Timing DB"
     	AN	DBX[AR1,P#0.0]
     	JC	M902
     	L	DBD[AR2,P#4.0]
     	L	1
     	ADD_D
     	T	DBD[AR2,P#4.0]
     M902:   		TAR1_ACCU1
     	L	P#3.6
     	LT_D
     	JC	M900
     M999:   		NOP_0
   
  // --- END STL Network 19 ---

END_FUNCTION