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

20 KiB

// Block Type: FB
// Block Name (Original): RecipeManagement - Prod
// Block Number: 1798
// Original Network Languages: STL
// Block Comment:
//   Machine Main Recipe Management
//   DB1001.DBB70    -> Active Recipe
//   DB1008          -> Working Recipe (Edit, Copy, Erase)
//   DB1009          -> Recipe Name Data Base
//   DB400           -> Working Recipe (Data Save)
//   DB401 -:- DB500 -> Recipe 1-:-100 data

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

VAR_INPUT
  HMI_Recipe_Main_Page : Bool;
  HMI_Recipe_Page_Running : Bool;
  Active_Recipe_Start : Bool;
  Edit : Bool;
  Write : Bool;
  Read : Bool;
  Delete : Bool;
  Copy : Bool;
  Upload : Bool;
  UploadPC : Bool;
  Download : Bool;
  Max_Recipe_Number : Int;
END_VAR

VAR_OUTPUT
  Save_Requested : Bool;
  Work_Rec_is_Active_Recip : Bool;
  Copy_Rec_is_Active_Recip : Bool;
  RecipeManagement_Busy : Bool;
END_VAR

VAR_INOUT
  Active_Recipe_Running : Int;
  Active_Recipe_Req : Int;
  Work_Recipe : Int;
  Copy_to : Int;
  Work_Rec_is_Active_Recip_IO : Bool;
  Save_Requested_IO : Bool;
  Copy_Rec_is_Active_Recip_IO : Bool;
END_VAR

VAR_STAT
  Active_Recipe_First : Bool;
  Active_Recipe_Start_FP : Bool;
  Active_Recipe_Run : Bool;
  Active_Recipe_Source_DB : Int;
  Read_FP : Bool;
  Read_Start : Bool;
  Read_First_FP : Bool;
  Read_First_Start : Bool;
  Read_Change : Bool;
  Work_Recipe_Save : Int;
  Work_Recipe_Source_DB : Int;
  Loop_Count : Int;
  Delete_FP : Bool;
  Delete_Start : Bool;
  Delete_Write : Bool;
  Copy_FP : Bool;
  Copy_Request : Bool;
  Copy_Start : Bool;
  Copy_Recipe_Source_DB : Int;
  Copy_Write : Bool;
  Write_FP : Bool;
  Write_Start : Bool;
  Write_REQ : Bool;
  Save_Active_Recipe : Bool;
  Recipe_Destination_DB : Int;
  Save_requested_FP : Bool;
  Save_requested_veri : Bool;
  Save_requested_read_FP : Bool;
  Save_requested_read_veri : Bool;
  Read_act_BUSY : Bool;
  Read_wrk_BUSY : Bool;
  Read_wrk_Running : Bool;
  Write_BUSY : Bool;
  Upload_FP : Bool;
  Upload_Start : Bool;
  Download_FP : Bool;
  Download_Start : Bool;
  Save_requested_upldPC_FP : Bool;
  Save_requested_upldPC_ve : Bool;
  mUploadPC : Bool;
END_VAR

VAR_TEMP
  Active_Recipe_Source : Int;
  Work_Recipe_Source : Int;
  Recipe_Destination : Int;
  Read_act_DB : "Any";
  Read_act_RET_VAL : Int;
  Read_wrk_REQ : Bool;
  Read_wrk_DB : "Any";
  Read_wrk_RET_VAL : Int;
  Write_DB : "Any";
  Write_RET_VAL : Int;
  Buffer_Pointer : DInt;
  Upload_RET_VAL : Int;
  Download_RET_VAL : Int;
  TUDT904 : STRUCT
    _Name : String[32];
    _EnProdTemp : Bool;
    _EnDeaireation : Bool;
    _GAS2_Injection : Bool;
    _AirSteril : Bool;
    _EnBlowOffProdPipeCo2Fil : Bool;
    _Deareation_Vacum : Bool;
    _Deareation_Co2 : Bool;
    _Pasteur : Bool;
    _WaterSelection : Byte;
    _FillerNextRecipeNum : Byte;
    _BottleShape : Byte;
    _Type : Int;
    _ProdMeterRecipeNum : Int;
    _SyrupBrix : Real;
    _SyrupDensity : Real;
    _SyrupFactor : Real;
    _ProductBrix : Real;
    _ProductionRate : Real;
    _Ratio : Real;
    _ProdBrixOffset : Real;
    _CO2Vols : Real;
    _CO2Fact : Real;
    _ProdTankPress : Real;
    _SP_ProdTemp : Real;
    _PrdTankMinLevel : Real;
    _WaterValveSave : Real;
    _SyrupValveSave : Real;
    _CarboCO2ValveSave : Real;
    _ProdMeterHighBrix : Real;
    _ProdMeterLowBrix : Real;
    _ProdMeterHighCO2 : Real;
    _ProdMeterLowCO2 : Real;
    _ProdMeter_ZeroCO2 : Real;
    _ProdMeter_ZeroBrix : Real;
    _ProdHighCond : Real;
    _ProdLowCond : Real;
    _BottleSize : Real;
    _FillingValveHead_SP : Real;
    _SyrMeter_ZeroBrix : Real;
    _FirstProdExtraCO2Fact : Real;
    _Gas2Vols : Real;
    _Gas2Fact : Real;
    _SyrupPumpFreq : Real;
    _WaterPumpFreq : Real;
    _CO2_Air_N2_PressSelect : Int;
    _KFactRVM304BlowOff : Real;
    _ProdRecircPumpFreq : Real;
    _DeareationFactor : Real;
    _CarboCO2Pressure : Real;
    _InjCO2Press_Offset : Real;
    _ProdPump1_Hz : Real;
    _ProdPump2_Hz : Real;
    _Prod_Temp_Heating_Cooling : Int;
  END_STRUCT;

  End_UDT904 : Byte;
  Lenght_UDT904 : Int;
  PNullRecipe : DInt;
  Name_String_App : String;
END_VAR

BEGIN

  // Network 1:  (Original Language: STL)
  //   Active Recipe Request Number Control

  // --- BEGIN STL Network 1 ---
   
     	CALL	"LIMIT_I"
     
     	L	_ERR_CONST_
     	L	_ERR_CONST_
     	SUB_D
     	SRD	3
     	T	"Lenght_UDT904"
   
  // --- END STL Network 1 ---

  // Network 2:  (Original Language: STL)
  //   Active Recipe Number Control

  // --- BEGIN STL Network 2 ---
   
     	L	"Active_Recipe_Running"
     	L	1
     	LT_I
     	JC	aact
     	L	"Active_Recipe_Running"
     	L	"Max_Recipe_Number"
     	GT_I
     	JC	aact
     	JU	bact
     aact:   		S	"Active_Recipe_First"
     bact:   		CALL	"LIMIT_I"
   
  // --- END STL Network 2 ---

  // Network 3:  (Original Language: STL)
  //   Active Recipe Number Start

  // --- BEGIN STL Network 3 ---
   
     	A	"Active_Recipe_Start"
     	Rise	"Active_Recipe_Start_FP"
     	=	"Active_Recipe_Run"
     
     	A	"Active_Recipe_Run"
     	O	"Active_Recipe_First"
     	O	"Read_act_BUSY"
     	JC	Rrun
     	JU	Erun
     Rrun:   		R	"Active_Recipe_First"
     	L	"Active_Recipe_Req"
     	T	"Active_Recipe_Running"
     	ADD	400
     	T	"Active_Recipe_Source_DB"
     
     	LAR1	_ERR_CONST_
     	L	BYTE#16#10
     	T	LocalB[AR1,P#0.0]
     	L	BYTE#16#02
     	T	LocalB[AR1,P#1.0]
     	L	"Lenght_UDT904"
     	T	LocalW[AR1,P#2.0]
     	L	"Active_Recipe_Source_DB"
     	T	LocalW[AR1,P#4.0]
     	L	P#DBX0.0
     	T	LocalD[AR1,P#6.0]
     	CALL	_Call_?
     Erun:   		NOP_0
     	A	"Read_act_BUSY"
     	=	"RecipeManagement_Busy"
   
  // --- END STL Network 3 ---

  // Network 4: Recipe on Editing is the same number of Active Recipe (Original Language: STL)
  //   Work Recipe Number Control

  // --- BEGIN STL Network 4 ---
   
     	CALL	"LIMIT_I"
     
     	L	"Work_Recipe"
     	L	"Active_Recipe_Running"
     	EQ_I
     	=	"Work_Rec_is_Active_Recip"
     	=	"Work_Rec_is_Active_Recip_IO"
   
  // --- END STL Network 4 ---

  // Network 5:  (Original Language: STL)
  //   Work Recipe READ (Data Uploading from archive)

  // --- BEGIN STL Network 5 ---
   
     	A	"Read"
     	O	"HMI_Recipe_Page_Running"
     	Rise	"Read_FP"
     	S	"Read_Start"
     	L	"Work_Recipe_Save"
     	L	"Work_Recipe"
     	NE_I
     	=	"Read_Change"
     
     	A	"Read_Change"
     	O	"Read_Start"
     	=	"Read_wrk_REQ"
     
     	A	"Read_wrk_REQ"
     	JC	Rupl
     	A	"Read_wrk_BUSY"
     	O	"Read_wrk_Running"
     	JC	Cupl
     	JU	Eupl
     Rupl:   		NOP_0
     	A	"mUploadPC"
     	JC	Eupl
     	L	"Work_Recipe"
     	ADD	400
     	T	"Work_Recipe_Source_DB"
     
     Cupl:   		LAR1	_ERR_CONST_
     	L	BYTE#16#10
     	T	LocalB[AR1,P#0.0]
     	L	BYTE#16#02
     	T	LocalB[AR1,P#1.0]
     	L	"Lenght_UDT904"
     	T	LocalW[AR1,P#2.0]
     	L	"Work_Recipe_Source_DB"
     	T	LocalW[AR1,P#4.0]
     	L	P#DBX0.0
     	T	LocalD[AR1,P#6.0]
     	CALL	_Call_?
     	A	"Read_wrk_BUSY"
     	S	"Read_wrk_Running"
     
     	A	"Read_wrk_Running"
     	AN	"Read_wrk_BUSY"
     	JC	Dupl
     	JU	Eupl
     Dupl:   		R	"Read_Start"
     	R	"Read_wrk_Running"
     	L	"Work_Recipe"
     	T	"Work_Recipe_Save"
     
     	L	"Work_Recipe_Save"
     	L	34
     	MUL_I
     	SLW	3
     	T	"Buffer_Pointer"
     	LAR1_ACCU1
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBW2.0
     	AUF	"HMI_Recipe_Name"
     	T	DBW[AR1,P#2.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD4.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD8.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD12.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD16.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD20.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD24.0
     	AUF	"HMI_Recipe_Name"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#4.0
     
     	AUF	"HMI_Recipe_Edit"
     	L	DBD28.0
     	AUF	"HMI_Recipe_Name"
     
     	T	DBD[AR1,P#0.0]
     	LAR1	P#0.0
     	L	"Lenght_UDT904"
     	L	2
     	DIV_I
     
     Bupl:   		T	"Loop_Count"
     	AUF	"HMI_Recipe_Edit"
     	L	DBD[AR1,P#0.0]
     	AUF	"RecipeEditDataSave"
     	T	DBD[AR1,P#0.0]
     	ADDAR1	P#2.0
     	L	"Loop_Count"
     	LOOP	Bupl
     Eupl:   		NOP_0
   
  // --- END STL Network 5 ---

  // Network 6:  (Original Language: STL)
  //   Work Recipe Data DELETE (Erase DB1008 Data + Write in Work_Recipe_Source)

  // --- BEGIN STL Network 6 ---
   
     
     	A	"Delete"
     	Rise	"Delete_FP"
     	=	"Delete_Start"
     
     	A	"Delete_Start"
     	AN	"Work_Rec_is_Active_Recip_IO"
     	AN	"Save_Requested_IO"
     	AN	"Write"
     	AN	"Write_BUSY"
     	JC	Rdel
     	JU	Edel
     Rdel:   		LAR1	P#0.0
     	L	"Lenght_UDT904"
     	ITD
     	L	DINT#8
     	MUL_D
     	T	"PNullRecipe"
     	L	"Lenght_UDT904"
     	L	2
     	DIV_I
     Bdel:   		T	"Loop_Count"
     	L	"Work_Recipe_Source_DB"
     	T	"Work_Recipe_Source"
     	AUF	"RecipeEditDataSave"
     	L	DBW[AR?,P#0.0]
     	AUF	"HMI_Recipe_Edit"
     	T	DBW[AR1,P#2.0]
     	ADDAR1	P#2.0
     	L	16
     	L	"PNullRecipe"
     	ADD_D
     	T	"PNullRecipe"
     	L	"Loop_Count"
     	LOOP	Bdel
     	SET
     	S	"Delete_Write"
     Edel:   		NOP_0
   
  // --- END STL Network 6 ---

  // Network 7:  (Original Language: STL)
  //   Work Recipe Data COPY (DB1008 Data Write to different Recipe DB 
  //   Copy_Recipe_Source_DB)

  // --- BEGIN STL Network 7 ---
   
     	CALL	"LIMIT_I"
     
     	A	"Copy"
     	Rise	"Copy_FP"
     	=	"Copy_Request"
     
     	L	"Copy_to"
     	L	"Active_Recipe_Running"
     	EQ_I
     	=	"Copy_Rec_is_Active_Recip"
     
     	AN	"Copy_Rec_is_Active_Recip_IO"
     	AN	"Save_Requested_IO"
     	AN	"Write"
     	AN	"Write_BUSY"
     	A	"Copy_Request"
     	=	"Copy_Start"
     
     	A	"Copy_Start"
     	JC	Ccop
     	JU	Ecop
     Ccop:   		L	"Copy_to"
     	ADD	400
     	T	"Copy_Recipe_Source_DB"
     	S	"Copy_Write"
     Ecop:   		NOP_0
   
  // --- END STL Network 7 ---

  // Network 8:  (Original Language: STL)
  //   Work Recipe WRITE (Data Downloading to archive)

  // --- BEGIN STL Network 8 ---
   
     	A	"Write"
     	Rise	"Write_FP"
     	=	"Write_Start"
     
     	A	"Write_Start"
     	O	"Delete_Write"
     	O	"Copy_Write"
     	AN	"Write_BUSY"
     	=	"Write_REQ"
     
     	A	"Write_Start"
     	O	"Delete_Write"
     	AN	"Write_BUSY"
     	JC	Rdow
     	A	"Write_BUSY"
     	JC	Cdow
     	A	"Copy_Write"
     	JC	CoDB
     	JU	Edow
     CoDB:   		R	"Copy_Write"
     	L	"Copy_Recipe_Source_DB"
     	T	"Recipe_Destination_DB"
     	L	"Copy_to"
     	JU	Copy
     Rdow:   		R	"Save_Requested"
     	R	"Save_Requested_IO"
     	R	"Delete_Write"
     	R	"mUploadPC"
     	L	"Work_Recipe_Source_DB"
     	T	"Recipe_Destination_DB"
     
     	L	"Work_Recipe_Save"
     	L	"Active_Recipe_Running"
     	EQ_I
     	=	"Save_Active_Recipe"
     
     	LAR1	P#0.0
     	L	"Lenght_UDT904"
     	L	2
     	DIV_I
     Bdow:   		T	"Loop_Count"
     	AUF	"HMI_Recipe_Edit"
     	L	DBD[AR1,P#0.0]
     	AUF	"RecipeEditDataSave"
     	T	DBD[AR1,P#0.0]
     	AN	"Save_Active_Recipe"
     	JC	Ndow
     	AUF	"HMI_Blender_Parameters"
     	T	DBD[AR1,P#70.0]
     Ndow:   		ADDAR1	P#2.0
     	L	"Loop_Count"
     	LOOP	Bdow
     
     	L	"Work_Recipe_Save"
     Copy:   		L	34
     	MUL_I
     	SLW	3
     	T	"Buffer_Pointer"
     	LAR1_ACCU1
     
     	L	"Work_Recipe_Save"
     	L	1
     	EQ_I
     	JCN	R02
     
     R01:    		CALL	_Call_?
     
     R02:    		L	"Work_Recipe"
     	L	2
     	EQ_I
     	JCN	R03
     
     	CALL	_Call_?
     
     R03:    		L	"Work_Recipe"
     	L	3
     	EQ_I
     	JCN	R04
     
     	CALL	_Call_?
     
     R04:    		L	"Work_Recipe"
     	L	4
     	EQ_I
     	JCN	R05
     
     	CALL	_Call_?
     
     R05:    		L	"Work_Recipe"
     	L	5
     
     	EQ_I
     	JCN	R06
     
     	CALL	_Call_?
     
     R06:    		L	"Work_Recipe"
     	L	6
     	EQ_I
     	JCN	R07
     
     	CALL	_Call_?
     
     R07:    		L	"Work_Recipe"
     	L	7
     	EQ_I
     	JCN	R08
     
     	CALL	_Call_?
     
     R08:    		L	"Work_Recipe"
     	L	8
     	EQ_I
     	JCN	R09
     
     	CALL	_Call_?
     
     R09:    		L	"Work_Recipe"
     	L	9
     	EQ_I
     	JCN	R10
     
     	CALL	_Call_?
     
     R10:    		L	"Work_Recipe"
     	L	10
     	EQ_I
     	JCN	R11
     
     	CALL	_Call_?
     
     R11:    		L	"Work_Recipe"
     	L	11
     	EQ_I
     	JCN	R12
     
     	CALL	_Call_?
     
     R12:    		L	"Work_Recipe"
     	L	12
     	EQ_I
     	JCN	R13
     
     	CALL	_Call_?
     
     R13:    		L	"Work_Recipe"
     	L	13
     	EQ_I
     	JCN	R14
     
     	CALL	_Call_?
     
     R14:    		L	"Work_Recipe"
     	L	14
     	EQ_I
     	JCN	R15
     
     	CALL	_Call_?
     
     R15:    		L	"Work_Recipe"
     	L	15
     	EQ_I
     	JCN	R16
     
     	CALL	_Call_?
     
     R16:    		L	"Work_Recipe"
     	L	16
     	EQ_I
     	JCN	R17
     
     	CALL	_Call_?
     
     R17:    		L	"Work_Recipe"
     	L	17
     	EQ_I
     	JCN	R18
     
     	CALL	_Call_?
     
     R18:    		L	"Work_Recipe"
     	L	18
     	EQ_I
     	JCN	R19
     
     	CALL	_Call_?
     
     R19:    		L	"Work_Recipe"
     	L	19
     	EQ_I
     	JCN	R20
     
     	CALL	_Call_?
     
     R20:    		L	"Work_Recipe"
     	L	20
     	EQ_I
     	JCN	R21
     
     	CALL	_Call_?
     
     R21:    		L	"Work_Recipe"
     	L	21
     	EQ_I
     	JCN	R22
     
     	CALL	_Call_?
     
     R22:    		L	"Work_Recipe"
     	L	22
     	EQ_I
     	JCN	R23
     
     	CALL	_Call_?
     
     R23:    		L	"Work_Recipe"
     	L	23
     	EQ_I
     	JCN	R24
     
     	CALL	_Call_?
     
     R24:    		L	"Work_Recipe"
     	L	24
     	EQ_I
     	JCN	R25
     
     	CALL	_Call_?
     
     R25:    		L	"Work_Recipe"
     	L	25
     	EQ_I
     	JCN	R26
     
     	CALL	_Call_?
     
     R26:    		L	"Work_Recipe"
     	L	26
     	EQ_I
     	JCN	R27
     
     	CALL	_Call_?
     
     R27:    		L	"Work_Recipe"
     	L	27
     	EQ_I
     	JCN	R28
     
     	CALL	_Call_?
     
     R28:    		L	"Work_Recipe"
     	L	28
     	EQ_I
     	JCN	R29
     
     	CALL	_Call_?
     
     R29:    		L	"Work_Recipe"
     	L	+29
     	EQ_I
     	JCN	R30
     
     	CALL	_Call_?
     
     R30:    		L	"Work_Recipe"
     	L	30
     	EQ_I
     	JCN	R31
     
     	CALL	_Call_?
     
     R31:    		L	"Work_Recipe"
     	L	31
     	EQ_I
     	JCN	R32
     
     	CALL	_Call_?
     
     R32:    		L	"Work_Recipe"
     	L	+32
     	EQ_I
     	JCN	R33
     
     	CALL	_Call_?
     
     R33:    		L	"Work_Recipe"
     	L	33
     	EQ_I
     	JCN	R34
     
     	CALL	_Call_?
     
     R34:    		L	"Work_Recipe"
     	L	34
     	EQ_I
     	JCN	R35
     
     	CALL	_Call_?
     
     R35:    		L	"Work_Recipe"
     	L	35
     	EQ_I
     	JCN	R36
     
     	CALL	_Call_?
     
     R36:    		L	"Work_Recipe"
     	L	36
     	EQ_I
     	JCN	R37
     
     	CALL	_Call_?
     
     R37:    		L	"Work_Recipe"
     	L	37
     	EQ_I
     	JCN	R38
     
     	CALL	_Call_?
     
     R38:    		L	"Work_Recipe"
     	L	38
     	EQ_I
     	JCN	R39
     
     	CALL	_Call_?
     
     R39:    		L	"Work_Recipe"
     	L	39
     	EQ_I
     	JCN	R40
     
     	CALL	_Call_?
     
     R40:    		L	"Work_Recipe"
     	L	40
     	EQ_I
     	JCN	R41
     
     	CALL	_Call_?
     
     R41:    		L	"Work_Recipe"
     	L	41
     	EQ_I
     	JCN	R42
     
     	CALL	_Call_?
     
     R42:    		L	"Work_Recipe"
     	L	42
     	EQ_I
     	JCN	R43
     
     	CALL	_Call_?
     
     R43:    		L	"Work_Recipe"
     	L	43
     	EQ_I
     	JCN	R44
     
     	CALL	_Call_?
     
     R44:    		L	"Work_Recipe"
     	L	44
     	EQ_I
     	JCN	R45
     
     	CALL	_Call_?
     
     R45:    		L	"Work_Recipe"
     	L	45
     	EQ_I
     	JCN	R46
     
     	CALL	_Call_?
     
     R46:    		L	"Work_Recipe"
     	L	46
     	EQ_I
     	JCN	R47
     
     	CALL	_Call_?
     
     R47:    		L	"Work_Recipe"
     	L	47
     	EQ_I
     	JCN	R48
     
     	CALL	_Call_?
     
     R48:    		L	"Work_Recipe"
     	L	48
     	EQ_I
     	JCN	R49
     
     	CALL	_Call_?
     
     R49:    		L	"Work_Recipe"
     	L	49
     	EQ_I
     	JCN	R50
     
     	CALL	_Call_?
     
     R50:    		L	"Work_Recipe"
     	L	50
     	EQ_I
     	JCN	Cdow
     
     	CALL	_Call_?
     
     Cdow:   		LAR1	_ERR_CONST_
     	L	BYTE#16#10
     	T	LocalB[AR1,P#0.0]
     	L	BYTE#16#02
     
     	T	LocalB[AR1,P#1.0]
     	L	"Lenght_UDT904"
     	T	LocalW[AR1,P#2.0]
     	L	"Recipe_Destination_DB"
     
     	T	LocalW[AR1,P#4.0]
     	L	P#DBX0.0
     	T	LocalD[AR1,P#6.0]
     	A	"Write_REQ"
     	S	M106.0
     
     	CALL	_Call_?
     Edow:   		NOP_0
   
  // --- END STL Network 8 ---

  // Network 9:  (Original Language: STL)
  //   Work Recipe SAVE REQUESTED

  // --- BEGIN STL Network 9 ---
   
     	A	"HMI_Recipe_Main_Page"
     	Rise	"Save_requested_FP"
     	=	"Save_requested_veri"
     
     	AN	"Read_wrk_Running"
     	Rise	"Save_requested_read_FP"
     	=	"Save_requested_read_veri"
     
     	A	"mUploadPC"
     	AN	"UploadPC"
     	Rise	"Save_requested_upldPC_FP"
     	=	"Save_requested_upldPC_ve"
     
     	A	"Save_requested_veri"
     	O	"Save_requested_read_veri"
     	O	"Save_requested_upldPC_ve"
     	JC	Vsav
     	JU	Esav
     Vsav:   		CLR
     	=	"Save_Requested"
     	=	"Save_Requested_IO"
     	LAR1	P#0.0
     	L	"Lenght_UDT904"
     	L	2
     	DIV_I
     Bsav:   		T	"Loop_Count"
     	AUF	"RecipeEditDataSave"
     	L	DBD[AR1,P#0.0]
     	AUF	"HMI_Recipe_Edit"
     	L	DBD[AR1,P#0.0]
     	NE_D
     	JC	Sreq
     	ADDAR1	P#2.0
     	L	"Loop_Count"
     	LOOP	Bsav
     	JU	Esav
     Sreq:   		SET
     	=	"Save_Requested"
     	=	"Save_Requested_IO"
     Esav:   		NOP_0
   
  // --- END STL Network 9 ---

  // Network 10: to HMI (Original Language: STL)
  //   Active Recipe UPLOAD (Data Uploading from PLC)

  // --- BEGIN STL Network 10 ---
   
     	A	"Upload"
     	Rise	"Upload_FP"
     	S	"Upload_Start"
     	S	"HMI_Variables_Cmd".Recipe.Get_current_Active_Recip
     
     	AN	"Upload_Start"
     	JC	skip
     
     	CALL	_Call_?
     	SET
     	R	"Upload_Start"
     
     skip:   		NOP_0
   
  // --- END STL Network 10 ---

  // Network 11:  (Original Language: STL)
  //   Active Recipe DOWNLOAD (Data Downloading to PLC)

  // --- BEGIN STL Network 11 ---
   
     	A	"Download"
     	Rise	"Download_FP"
     	S	"Download_Start"
     
     	AN	"Download_Start"
     	JC	end
     	CALL	_Call_?
     	SET
     	R	"Download_Start"
     
     end:    		NOP_0
   
  // --- END STL Network 11 ---

  // Network 12:  (Original Language: STL)

  // --- BEGIN STL Network 12 ---
   
     	A	"UploadPC"
     	JCN	Noup
     	S	"mUploadPC"
     Noup:   		A	"Edit"
     	JCN	Roup
     	R	"mUploadPC"
     Roup:   		NOP_0
   
  // --- END STL Network 12 ---

  // Network 13: Control to avoid Air Sterile and N2 double selection (Original Language: STL)

  // --- BEGIN STL Network 13 ---
   
     	A	"M19157"
     	JC	VAI
     	A	"HMI_Recipe_Edit".Actual_Recipe_Parameters._GAS2_Injection
     	S	"M19156"
     	AN	"HMI_Recipe_Edit".Actual_Recipe_Parameters._GAS2_Injection
     	R	"M19156"
     	A	"M19156"
     	JC	RES1
     
     VAI:    		A	"M19156"
     	JC	RES1
     	A	"HMI_Recipe_Edit".Actual_Recipe_Parameters._AirSteril
     	S	"M19157"
     	AN	"HMI_Recipe_Edit".Actual_Recipe_Parameters._AirSteril
     	R	"M19157"
     	A	"M19157"
     	JC	RES2
     	JU	FINE
     
     RES1:   		R	"HMI_Recipe_Edit".Actual_Recipe_Parameters._AirSteril
     	R	"M19157"
     	JU	FINE
     RES2:   		R	"HMI_Recipe_Edit".Actual_Recipe_Parameters._GAS2_Injection
     	R	"M19156"
     FINE:   		NOP_0
   
  // --- END STL Network 13 ---

  // Network 14: 0 = N2 not present; 1 = N2 present (Original Language: STL)

  // --- BEGIN STL Network 14 ---
   
     	AN	"HMI_Blender_Parameters".Processor_Options.Blender_OPT._CO2_GAS2_Injection
     	R	"HMI_Recipe_Edit".Actual_Recipe_Parameters._GAS2_Injection
   
  // --- END STL Network 14 ---

END_FUNCTION_BLOCK