Convoyeur Modulaire

Tutoriel : GPAO - Com LINA Automate - 09/2024

6.2 Lancement depuis Lina

6.2.1 Lina : Section DMD OP dans l’API

REGION F4 PRODUCTION DEPUIS LINA
(*--- PARTIE B ---*)
(*message arrêt fonction F4*)
IF "DB401_DMD_OP".DMD_OP.NUM_DMD_OP = 40 AND "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP := 41;
END_IF;
(*--- PARTIE C ---*)
(* Demande lancement par opérateur *)
IF ("DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP = 40 AND "DB401_DMD_OP".DMD_OP.BP_VAL_DMD_OP = 1) THEN
"DB401_DMD_OP".DMD_OP.BP_VAL_DMD_OP := 0;
"DB401_DMD_OP".DMD_OP.NUM_DMD_OP := 0;
"DB401_DMD_OP".DMD_OP.ACTION_OP[4] := 1;
END_IF;
(* Demande lancement par programme *)
IF ("DB500_LINA_OF_CONV".COMMANDE.LINA_API_DMD_OP = 1) THEN
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_DMD_OP := 0;
"DB401_DMD_OP".DMD_OP.ACTION_OP[4] := 1;
END_IF;
(* Demande arrêt par opérateur *)
IF ("DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP = 41 AND "DB401_DMD_OP".DMD_OP.BP_VAL_DMD_OP = 1) THEN
"DB401_DMD_OP".DMD_OP.BP_VAL_DMD_OP := 0;
"DB401_DMD_OP".DMD_OP.NUM_DMD_OP := 0;
"DB401_DMD_OP".DMD_OP.ACTION_OP[4] := 0;
END_IF;
(* Demande arrêt par programme *)
IF ("DB204_SEQ_MAITRE_LINA".SEQ.CMD3_0 OR "DB500_LINA_OF_CONV".COMMANDE.LINA_API_ABANDON_OP = 1) THEN
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_ABANDON_OP := 0;
"DB401_DMD_OP".DMD_OP.ACTION_OP[4] := 0;
END_IF;
(*--- PARTIE D ---*)
(*autorisation*)
"DB401_DMD_OP".DMD_OP.AUTOR_ACTION[4] := 0;
IF "DB401_DMD_OP".DMD_OP.AUTOR_ACTION[4] <= 0 THEN
"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_DMD_OP := 1;
ELSE
"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_DMD_OP := 0;
END_IF;
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN (* lancement *)
(* Message inf ou égal 0 : non bloquant - information operateur *)
(* Message sup 0 : bloquant - INTERDICTION LANCEMENT *)
IF "Blocage_GEN" THEN "DB401_DMD_OP".DMD_OP.AUTOR_ACTION[4]:=1000;END_IF; (* DEFAUT BLOQUANT NON ACQUITTE *)
IF "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN "DB401_DMD_OP".DMD_OP.AUTOR_ACTION[4]:=1500;END_IF; (* DEMANDE PROD PAR IHM LANCEE *)
ELSE (* arrêt fonction *)
(* Message inf ou égal 0 : non bloquant - information operateur *)

(* Message sup 0 : bloquant - INTERDICTION ARRET *)
;

END_IF;
"FC2002_Etat_bp_dem_op"(Action_op:="DB401_DMD_OP".DMD_OP.ACTION_OP[4],
Autorisation:="DB401_DMD_OP".DMD_OP.AUTOR_ACTION[4],
Etat_bp=>"DB401_DMD_OP".DMD_OP.ETAT_BP[4]);

END_REGION

6.2.2 Lina : Procédure dans Lina

Dans Liste des procédures, clic CONV_MOD_LINA, Editer Procédure :

proc CONV_MOD LINA

Figure 102 : proc CONV_MOD LINA

  1. Editer Version de procédure. Version : 6.

6.2.3 Lina : Séquence maître

La séquence MAITRE qui gère le cycle du convoyeur modulaire va aussi permettre de réaliser les évènements de consommation, de production ainsi que la clôture de l’OF.
Étape 1000 – Lancement évènement consommation bille, tasse et évènement production
Étape 1010 à 1200 – Cycle convoyeur modulaire
Étape 1300 – Clôture évènements consommation et évènement production avec les quantités consommées
Étape 32000 – Clôture de l’OF

REGION INIT
(* INIT SEQUENCE PAR AFFICHEUR *)
IF "Tjrs_0" OR "DB810_GESTION_IHM".INIT_SEQ THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 0;END_IF;

L10:;
(* RAZ DES VARIABLES *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 0 THEN

%DB204.DBW6 := 0;
%DB204.DBW8 := 0;
%DB204.DBW10 := 0;
%DB204.DBW12 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.INT_1 := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.INT_2 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.ETAT_01 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

END_IF;

L20:;
(* SAUT SI AU POUR FIGER SEQUENCE *)
IF "DB200_GEMMA".SEQ.NUM_ETAPE <> 20 THEN GOTO L999; END_IF;

L30:;
(* DEMARRAGE DE LA SEQUENCE *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 0 AND "REPRISE_API_OK" THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 10; END_IF;

L40:;
(* INCREMENTATION TEMPO *)
IF "BIT_100ms" AND "DB204_SEQ_MAITRE_LINA".SEQ.T_100MS < 32766 THEN "DB204_SEQ_MAITRE_LINA".SEQ.T_100MS :="DB204_SEQ_MAITRE_LINA".SEQ.T_100MS + 1; END_IF;
IF "BIT_1s" AND "DB204_SEQ_MAITRE_LINA".SEQ.T_1S < 32766 THEN "DB204_SEQ_MAITRE_LINA".SEQ.T_1S := "DB204_SEQ_MAITRE_LINA".SEQ.T_1S + 1; END_IF;
END_REGION

REGION X10 - PRODUCTION
(* Démarrage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 10 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 0; (* Marche Convoyeur *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 0; (* Marche Voyant vert *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0; (* Marche Voyant rouge *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_3 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_4 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_5 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_6 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_7 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_8 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_9 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_10 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_11 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_12 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_13 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_14 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_15 := 0; (* *)

"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_0 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_1 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_2 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_3 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_4 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_5 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_6 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_7 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_8 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_9 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_10 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_11 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_12 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_13 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_14 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD2_15 := 0; (* *)

"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_0 := 0; (* Demande d'arrêt *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_1 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_2 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_3 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_4 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_5 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_6 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_7 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_8 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_9 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_10 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_11 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_12 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_13 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_14 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_15 := 0; (* *)

"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_0 := 0; (* Demande Création OF *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_1 := 0; (* Demande Consommation tasse *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_2 := 0; (* Demande Consommation bille *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_3 := 0; (* Demande Production *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_4 := 0; (* Demande Cloture OF *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_5 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_6 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_7 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_8 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_9 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_10 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_11 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_12 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_13 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_14 := 0; (* *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_15 := 0; (* Cloture Définitive des évènements *)

"DB204_SEQ_MAITRE_LINA".SEQ.INT_1 := 0; (* COMPTEUR NB TASSE *)
"DB204_SEQ_MAITRE_LINA".SEQ.INT_2 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.ETAT_01 := 0; (* Etat création OK *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

"DB500_LINA_OF_CONV".NOMENCLATURE.OF_ID := 0;

(* Demande de production depuis LINA*)
IF "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1000;
END_IF;
END_IF;

(* Demande Démarrage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1000 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "DB500_LINA_OF_CONV".GEST_NOMENCLATURE.LINA_FIN_ECRITURE <> 0 THEN
"DB500_LINA_OF_CONV".GEST_NOMENCLATURE.LINA_FIN_ECRITURE := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1100;
END_IF;
END_IF;

(* *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1100 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 0; (* Marche Convoyeur *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 0; (* Marche Voyant vert *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 1; (* Marche Voyant rouge *)

"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_1 := 1; (* Demande Consommation tasse *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_2 := 1; (* Demande Consommation bille *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_3 := 1; (* Demande Production *)

"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_15 := 1; (* Cloture Définitive des évènements *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Attente demarrage convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Temporisation';

(* Tempo *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.T_100MS > 20 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1110;
END_IF;
END_IF;

(* Demarrage Convoyeur *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1110 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 1; (* Marche Convoyeur *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 1; (* Marche Voyant vert *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0; (* Marche Voyant rouge *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Demarrage convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Capteur ok';

(* Capteur ok *)
IF "DB1_IMG_E".CONV_ZS1 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1120;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Tempo Convoyeur *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1120 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 1; (* Marche Convoyeur *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 1; (* Marche Voyant vert *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0; (* Marche Voyant rouge *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Arret convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Temporisation';

(* Tempo *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.T_1S >= 3 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1130;
END_IF;
END_IF;

(* Arrêt Convoyeur *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1130 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 0; (* Marche Convoyeur *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 0; (* Marche Voyant vert *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 1; (* Marche Voyant rouge *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Arret convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Temporisation';

(* Tempo *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.T_1S >= 0 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1150;
END_IF;
END_IF;

(* Fin de démarrage dosage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1150 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 2;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP = 2 THEN
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1160;
END_IF;
END_IF;

(* Fin de démarrage dosage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1160 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 0;
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "Tjrs_1" THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1200;
END_IF;
END_IF;

(*Demande synchro SEQ_TREMIE *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1200 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE = 20 THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1205; END_IF;
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1205 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE <> 20 THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1210; END_IF;

(*Attente retour synchro SEQ_TREMIE *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1210 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE = 1105 THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1215; END_IF;
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1215 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE <> 1105 THEN "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1220; END_IF;

(* Incrémentation nombre de tasse produite *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1220 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Demarrage convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Attente 1e capteur 2';

(* Tempo *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.T_100MS > 0 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.INT_1 := "DB204_SEQ_MAITRE_LINA".SEQ.INT_1 + 1;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1300;
END_IF;
END_IF;

REGION X1300 - CLOTURE EVTs
(* Cloture Evènement consommation / Production *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1300 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_1 := 0; (* Demande Consommation tasse *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_2 := 0; (* Demande Consommation bille *)
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_3 := 0; (* Demande Production *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "DB260_SEQ_EVT_Conso_tasse".SEQ.CMD1_0 AND "DB261_SEQ_EVT_Conso_bille".SEQ.CMD1_0 AND "DB270_SEQ_EVT_Prod".SEQ.CMD1_0 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_15 := 0; (* Cloture Définitive des évènements *)
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1400;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;
END_REGION

(* Etape Activation moteur *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1400 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 1;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 1;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Demarrage convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Attente 1e capteur 2';

(* Détection seconde tasse *)
IF "DB1_IMG_E".CONV_ZS2 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1410;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Etape Activation moteur *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1410 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 1;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 1;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Demarrage convoyeur';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := 'Attente 1e capteur 2';

(* Détection seconde tasse *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.T_1S >= 3 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1420;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Test du nombre de tasse *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1420 THEN

"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_0 := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_1 := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.CMD1_2 := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Controle nombre de tasse';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* Nombre de tasse insuffisant *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.INT_1 < "DB500_LINA_OF_CONV".NOMENCLATURE.OF_QTE_POIDS THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1000;
END_IF;
(* Nombre de tasse suffisant *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.INT_1 >= "DB500_LINA_OF_CONV".NOMENCLATURE.OF_QTE_POIDS THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1500;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Fin de dosage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1500 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 3;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP = 3 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 1510;
END_IF;
END_IF;

(* Retour dosage *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 1510 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 0;
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* *)
IF "Tjrs_1" THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;
END_REGION

REGION X32000 - FIN
(* Fin Dmd OP *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 32000 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 4;

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := 'Attente retour LINA';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* Attente retour LINA *)
IF "DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP = 4 THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32010;
END_IF;
END_IF;

(* Arrêt Dmd OP *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 32010 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 0;
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.CMD3_0 := 1; (* Demande d'arrêt *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* Evenement cloturé avec succès *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 32020;
END_IF;
END_IF;

(* Cloture OF *)
IF "DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE = 32020 THEN

"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 0;
"DB500_LINA_OF_CONV".COMMANDE.LINA_API_FIN_OP := 0;

"DB204_SEQ_MAITRE_LINA".SEQ.CMD4_4 := 1; (* Demande Cloture OF *)

"DB204_SEQ_MAITRE_LINA".SEQ.NOM_ETAPE := '';
"DB204_SEQ_MAITRE_LINA".SEQ.DESCRIP_TRANSITION := '';

(* Evenement cloturé avec succès *)
IF "DB280_SEQ_EVT_ClotOF".SEQ.CMD1_0 THEN
"DB500_LINA_OF_CONV".NOMENCLATURE.OF_ID := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_1S := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.T_100MS := 0;
"DB204_SEQ_MAITRE_LINA".SEQ.NUM_ETAPE := 10;
END_IF;
END_IF;
END_REGION

L999:;