Convoyeur Modulaire

Tutoriel : GPAO - Com LINA Automate - 09/2024

6. App convoyeur modulaire

6.1 Lancement depuis IHM

6.1.1 IHM : Section DMD OP dans l’API

REGION F3 PRODUCTON DEPUIS IHM
(*--- PARTIE B ---*)
(*message arret fonction F3 RESERVE*)
IF "DB401_DMD_OP".DMD_OP.NUM_DMD_OP = 30 AND "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP := 31;
END_IF;
(*--- PARTIE C ---*)
(* Demande lancement par opérateur *)
IF ("DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP = 30 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[3] := 1;
END_IF;
(* Demande lancement par programme *)
IF ("DB1_IMG_E".BP_MAR) THEN
"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_DMD_OP := 1;
"DB401_DMD_OP".DMD_OP.ACTION_OP[3] := 1;
END_IF;
(* Demande arrêt par opérateur *)
IF ("DB401_DMD_OP".DMD_OP.NUM_RET_DMD_OP = 31 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[3] := 0;
END_IF;
(* Demande arrêt par programme *)
IF ("DB202_SEQ_MAITRE".SEQ.CMD3_0 OR "DB1_IMG_E".BP_ARR) THEN
"DB500_LINA_OF_CONV".COMMANDE.API_LINA_AUTOR_FIN_OP := 2;
"DB401_DMD_OP".DMD_OP.ACTION_OP[3] := 0;
END_IF;
(*--- PARTIE D ---*)
(*autorisation*)
"DB401_DMD_OP".DMD_OP.AUTOR_ACTION[3] := 0;
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[3] 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[3]:=1000;END_IF; (* DEFAUT BLOQUANT NON ACQUITTE *)
IF "DB401_DMD_OP".DMD_OP.ACTION_OP[4] THEN "DB401_DMD_OP".DMD_OP.AUTOR_ACTION[3]:=1500;END_IF; (* DEMANDE PROD PAR LINA 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[3],
Autorisation:="DB401_DMD_OP".DMD_OP.AUTOR_ACTION[3],
Etat_bp=>"DB401_DMD_OP".DMD_OP.ETAT_BP[3]);
END_REGION

6.1.2 IHM : Procédure dans Lina

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

proc CONV_MOD_AUTOMATE

Figure 101 : proc CONV_MOD_AUTOMATE

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

6.1.3 IHM : Séquence maître

La séquence MAITRE qui gère le cycle du convoyeur modulaire va aussi permettre de réaliser la demande de création d’OF, les évènements de consommation, de production ainsi que la clôture de l’OF.
Étape 20 – Création 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 "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 0;END_IF;

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

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

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

"DB202_SEQ_MAITRE".SEQ.ETAT_01 := 0;

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

"DB202_SEQ_MAITRE".SEQ.NOM_ETAPE := '';
"DB202_SEQ_MAITRE".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 "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 0 AND "REPRISE_API_OK" THEN "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 10; END_IF;

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

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

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

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

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

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

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

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

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

"DB500_LINA_OF_CONV".NOMENCLATURE.OF_ID := 0;

(* Demande de production *)
IF "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 20;
END_IF;
END_IF;

REGION X20 - CREATION OF
(* Création OF - *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 20 THEN

"DB202_SEQ_MAITRE".SEQ.CMD4_0 := 1; (* Demande Création OF *)

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

(* Demande de création d'OF prise en compte *)
IF "DB250_SEQ_EVT_CreaOF".SEQ.CMD1_2 THEN
"DB202_SEQ_MAITRE".SEQ.ETAT_01 := 1;
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 30;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Création OF - *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 30 THEN

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

(* Création d'OF réalisé avec succès *)
IF "DB250_SEQ_EVT_CreaOF".SEQ.CMD1_0 THEN
"DB202_SEQ_MAITRE".SEQ.CMD4_0 := 0; (* Demande Création OF *)
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1000;
END_IF;
(* *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;
END_REGION

(* *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1000 THEN

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

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

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

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

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

(* Demarrage Convoyeur *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1010 THEN

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

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

(* Capteur ok *)
IF "DB1_IMG_E".CONV_ZS1 THEN
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1020;
END_IF;
(* ATTENTE 1s *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;

(* Tempo Convoyeur *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1020 THEN

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

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

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

(* Arrêt Convoyeur *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1030 THEN

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

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

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

(*Demande synchro SEQ_TREMIE *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1100 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE = 20 THEN "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1105; END_IF;
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1105 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE <> 20 THEN "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1110; END_IF;

(*Attente retour synchro SEQ_TREMIE *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1110 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE = 1105 THEN "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1115; END_IF;
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 1115 AND "DB206_SEQ_TREMIE".SEQ.NUM_ETAPE <> 1105 THEN "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1200; END_IF;

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

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

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

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

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

"DB202_SEQ_MAITRE".SEQ.NOM_ETAPE := '';
"DB202_SEQ_MAITRE".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
"DB202_SEQ_MAITRE".SEQ.CMD4_15 := 0; (* Cloture Définitive des évènements *)
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 1400;
END_IF;
(* ATTENTE 1s *)
IF NOT "DB401_DMD_OP".DMD_OP.ACTION_OP[3] THEN
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 32000;
END_IF;
END_IF;
END_REGION

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

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

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

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

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

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

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

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

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

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

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

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

END_REGION

REGION X32000 - FIN
(* Cloture OF *)
IF "DB202_SEQ_MAITRE".SEQ.NUM_ETAPE = 32000 THEN

"DB202_SEQ_MAITRE".SEQ.CMD3_0 := 1; (* Demande d'arrêt *)
"DB202_SEQ_MAITRE".SEQ.CMD4_4 := 1; (* Demande Cloture OF *)

"DB202_SEQ_MAITRE".SEQ.NOM_ETAPE := '';
"DB202_SEQ_MAITRE".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;
"DB202_SEQ_MAITRE".SEQ.T_1S := 0;
"DB202_SEQ_MAITRE".SEQ.T_100MS := 0;
"DB202_SEQ_MAITRE".SEQ.NUM_ETAPE := 10;
END_IF;

END_IF;
END_REGION

L999:;