Procédé

Tutoriel - Lina Procédé - 05/2024

8. Annexes

8.1 Code SEQ_SAUV_PROG

L10:(* -------------------------------- init ------------------------------------------- *)
(* Init Séquence *)
IF RAZ_SEQ THEN SEQ_DECHARG_BALANCE.NUM_ETAPE:=0;END_IF;

(*RAZ DES VARIABLES*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 0 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;

SEQ_SAUV_PROG.CMD01 := 0; (* CMD *)
SEQ_SAUV_PROG.CMD02 := 0; (* CMD *)
SEQ_SAUV_PROG.CMD03 := 0; (* CMD *)

SEQ_SAUV_PROG.INT01 := 0; (* *)
SEQ_SAUV_PROG.INT02 := 0; (* *)

SEQ_SAUV_PROG.ETAT01 := 0; (* *)
END_IF;

(* DEMARRAGE DE LA SEQUENCE *)
IF SEQ_SAUV_PROG.NUM_ETAPE = 0 THEN
SEQ_SAUV_PROG.NUM_ETAPE := 10;
END_IF;

(* INCREMENTATION TEMPO *)
IF BIT_100ms AND SEQ_SAUV_PROG.T_100MS < 32766 THEN
SEQ_SAUV_PROG.T_100MS := SEQ_SAUV_PROG.T_100MS + 1;
END_IF;
IF BIT_1s AND SEQ_SAUV_PROG.T_1S < 32766 THEN
SEQ_SAUV_PROG.T_1S := SEQ_SAUV_PROG.T_1S + 1;
END_IF;

L100:(* -------------------------- début de séquence ---------------------------------- *)

(* ETAPE DE PREPARATION AU DEMARRAGE *)
IF SEQ_SAUV_PROG.NUM_ETAPE = 10 THEN

SEQ_SAUV_PROG.CMD01.00 := 0; (* *)
SEQ_SAUV_PROG.CMD01.01 := 0; (* *)
SEQ_SAUV_PROG.CMD01.02 := 0; (* *)
SEQ_SAUV_PROG.CMD01.03 := 0; (* *)
SEQ_SAUV_PROG.CMD01.04 := 0; (* *)
SEQ_SAUV_PROG.CMD01.05 := 0; (* *)
SEQ_SAUV_PROG.CMD01.06 := 0; (* *)
SEQ_SAUV_PROG.CMD01.07 := 0; (* *)
SEQ_SAUV_PROG.CMD01.08 := 0; (* *)
SEQ_SAUV_PROG.CMD01.09 := 0; (* *)
SEQ_SAUV_PROG.CMD01.10 := 0; (* *)
SEQ_SAUV_PROG.CMD01.11 := 0; (* *)
SEQ_SAUV_PROG.CMD01.12 := 0; (* *)
SEQ_SAUV_PROG.CMD01.13 := 0; (* *)
SEQ_SAUV_PROG.CMD01.14 := 0; (* *)
SEQ_SAUV_PROG.CMD01.15 := 0; (* *)

SEQ_SAUV_PROG.CMD02.00 := 0; (* *)
SEQ_SAUV_PROG.CMD02.01 := 0; (* *)
SEQ_SAUV_PROG.CMD02.02 := 0; (* *)
SEQ_SAUV_PROG.CMD02.03 := 0; (* *)
SEQ_SAUV_PROG.CMD02.04 := 0; (* *)
SEQ_SAUV_PROG.CMD02.05 := 0; (* *)
SEQ_SAUV_PROG.CMD02.06 := 0; (* *)
SEQ_SAUV_PROG.CMD02.07 := 0; (* *)
SEQ_SAUV_PROG.CMD02.08 := 0; (* *)
SEQ_SAUV_PROG.CMD02.09 := 0; (* *)
SEQ_SAUV_PROG.CMD02.10 := 0; (* *)
SEQ_SAUV_PROG.CMD02.11 := 0; (* *)
SEQ_SAUV_PROG.CMD02.12 := 0; (* *)
SEQ_SAUV_PROG.CMD02.13 := 0; (* *)
SEQ_SAUV_PROG.CMD02.14 := 0; (* *)
SEQ_SAUV_PROG.CMD02.15 := 0; (* *)

SEQ_SAUV_PROG.CMD03.00 := 0; (* *)
SEQ_SAUV_PROG.CMD03.01 := 0; (* *)
SEQ_SAUV_PROG.CMD03.02 := 0; (* *)
SEQ_SAUV_PROG.CMD03.03 := 0; (* *)
SEQ_SAUV_PROG.CMD03.04 := 0; (* *)
SEQ_SAUV_PROG.CMD03.05 := 0; (* *)
SEQ_SAUV_PROG.CMD03.06 := 0; (* *)
SEQ_SAUV_PROG.CMD03.07 := 0; (* *)
SEQ_SAUV_PROG.CMD03.08 := 0; (* *)
SEQ_SAUV_PROG.CMD03.09 := 0; (* *)
SEQ_SAUV_PROG.CMD03.10 := 0; (* *)
SEQ_SAUV_PROG.CMD03.11 := 0; (* *)
SEQ_SAUV_PROG.CMD03.12 := 0; (* *)
SEQ_SAUV_PROG.CMD03.13 := 0; (* *)
SEQ_SAUV_PROG.CMD03.14 := 0; (* *)
SEQ_SAUV_PROG.CMD03.15 := 0; (* *)

SEQ_SAUV_PROG.INT01 := 0; (* *)
(*SEQ_SAUV_PROG.INT02 := 0; (* *)*)

SEQ_SAUV_PROG.ETAT01 := 0; (* *)

DES_SAUV_PROG.NOM_ETAPE := 'Attente lancement d un transfert';
DES_SAUV_PROG.DESCRIP_TRANSITION := 'Attente marche et Conditions initiales';

IF GES_PROCEDE.SP_Dmd_sauvegarde_prog = 1 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 100;
END_IF;
END_IF;

(*Etape 100 : Sauvegarde de la recette dans le DB associé au code recette*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 100 THEN

(*Sauvegarde de la recette dans le DB associé au code recette*)
IF GES_PROCEDE.SP_code_prog_a_sauvegarder < 10 THEN
STOCKAGE_PROG_001_010[GES_PROCEDE.SP_code_prog_a_sauvegarder].NOM := GES_PROCEDE.SP_Nom_prog;
STOCKAGE_PROG_001_010[GES_PROCEDE.SP_code_prog_a_sauvegarder].ETAPES := PROG_TAMPON_ETAPES;
STOCKAGE_PROG_001_010[GES_PROCEDE.SP_code_prog_a_sauvegarder].COMPLEMENT := PROG_TAMPON_COMP;
END_IF;

IF GES_PROCEDE.SP_code_prog_a_sauvegarder >= 11 AND GES_PROCEDE.SP_code_prog_a_sauvegarder < 21 THEN
STOCKAGE_PROG_011_020[GES_PROCEDE.SP_code_prog_a_sauvegarder].NOM := GES_PROCEDE.SP_Nom_prog;
STOCKAGE_PROG_011_020[GES_PROCEDE.SP_code_prog_a_sauvegarder].ETAPES := PROG_TAMPON_ETAPES;
STOCKAGE_PROG_011_020[GES_PROCEDE.SP_code_prog_a_sauvegarder].COMPLEMENT := PROG_TAMPON_COMP;
END_IF;

IF GES_PROCEDE.SP_code_prog_a_sauvegarder >= 21 THEN
STOCKAGE_PROG_AUTRE_CODE := GES_PROCEDE.SP_code_prog_a_sauvegarder;
STOCKAGE_PROG_AUTRE.NOM := GES_PROCEDE.SP_Nom_prog;
STOCKAGE_PROG_AUTRE.ETAPES := PROG_TAMPON_ETAPES;
STOCKAGE_PROG_AUTRE.COMPLEMENT := PROG_TAMPON_COMP;
END_IF;

(*"DB821_GES_AFF_RECETTE_DE_BASE".Index_rec_choix_memo := 0; (*a mettre a o pour reactualiser l'afficheur*)*)

IF Tjrs_1 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 110;
END_IF;
END_IF;

(*Etape 110 : Validation sauvegarde effectuée*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 110 THEN

(*Validation sauvegarde effectué*)
GES_PROCEDE.SP_Rep_sauvegarde_prog_api := 1;

IF Tjrs_1 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 120;
END_IF;
END_IF;

(*Etape 120 : Attente échange Lina raz*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 120 THEN

IF GES_PROCEDE.SP_Rep_sauvegarde_prog_api = 0 AND GES_PROCEDE.SP_Dmd_sauvegarde_prog = 0 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 200;
END_IF;
END_IF;

(*Etape 200 : Attente demande vidage tampon*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 200 THEN

IF GES_PROCEDE.SP_Dmd_vidage_tampon = 1 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 210;
END_IF;
END_IF;

(*Etape 210 : Vidage tampon*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 210 THEN

PROG_TAMPON_ETAPES := PROG_VIDE_ETAPES;
PROG_TAMPON_COMP := PROG_VIDE_COMP;

IF PROG_TAMPON_ETAPES[1].CODE_ETAPE = 0 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 220;
END_IF;
END_IF;

(*Etape 220 : Réponse vidage tampon OK*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 220 THEN

GES_PROCEDE.SP_Rep_vidage_tampon_api := 1;

IF Tjrs_1 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 230;
END_IF;
END_IF;

(*Etape 230 : Attente échange Lina raz*)
IF SEQ_SAUV_PROG.NUM_ETAPE = 230 THEN

IF GES_PROCEDE.SP_Rep_vidage_tampon_api = 0 AND GES_PROCEDE.SP_Dmd_vidage_tampon = 0 THEN
SEQ_SAUV_PROG.T_100MS := 0;
SEQ_SAUV_PROG.T_1S := 0;
SEQ_SAUV_PROG.NUM_ETAPE := 10;
END_IF;
END_IF;