Convoyeur Modulaire

Tutoriel : GPAO - Com LINA Automate - 09/2024

5. Évènement Clôture d’OF

5.1 Com LINA API fin OF

5.1.1 EVT fin dans l’API

Deux UDT :

UDT_LINA_Gestion_evt fin

Figure 85 : UDT_LINA_Gestion_evt fin

UDT_LINA_EvtClotOF OF_SEQ_ID

Figure 86 : UDT_LINA_EvtClotOF OF_SEQ_ID

Dans le DB500, clic [GEST_]EVT_CLOT_OF :

DB500_LINA_OF_CONV fin

Figure 87 : DB500_LINA_OF_CONV fin

Une section de code FC :

SFC fin OF

Figure 88 : SFC fin OF

Réseau 5 EVT CLOT OF

Figure 89 : Réseau 5 EVT CLOT OF

FC280_EVT_ClotOF

Figure 90 : FC280_EVT_ClotOF

REGION INIT
//INIT SEQUENCE PAR AFFICHEUR
IF "AlwaysFALSE" THEN "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE := 0; END_IF;

L10:;
//RAZ DES VARIABLES
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE = 0 THEN

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

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

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

END_IF;

L20:;
//SAUT SI AU POUR FIGER SEQUENCE
IF "Tjrs_0" THEN GOTO L999; END_IF;

L30:;
//DEMARRAGE DE LA SEQUENCE
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE = 0 AND "REPRISE_API_OK" THEN
"DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE := 10;
END_IF;

L40:;
//INCREMENTATION TEMPO
IF "BIT_100ms" AND "DB280_SEQ_EVT_ClotOF".SEQ.T_100MS < 32766 THEN "DB280_SEQ_EVT_ClotOF".SEQ.T_100MS := "DB280_SEQ_EVT_ClotOF".SEQ.T_100MS + 1; END_IF;
IF "BIT_1s" AND "DB280_SEQ_EVT_ClotOF".SEQ.T_1S < 32766 THEN "DB280_SEQ_EVT_ClotOF".SEQ.T_1S := "DB280_SEQ_EVT_ClotOF".SEQ.T_1S + 1; END_IF;
END_REGION

REGION Création d'un OF
(* Preparation au demarrage *)
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE=10 THEN

"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_0:=0; (* Cloture d'OF réalisée avec succès *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_1:=0; (* Cloture d'OF en défaut *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_2:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_3:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_4:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_5:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_6:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_7:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_8:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_9:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_10:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_11:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_12:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_13:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_14:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_15:=0; (* *)

"DB280_SEQ_EVT_ClotOF".SEQ.INT_1:=0; (* *)
"DB280_SEQ_EVT_ClotOF".SEQ.INT_2:=0; (* *)

(* Conditions de lancement *)
IF "DB202_SEQ_MAITRE".SEQ.CMD4_4 THEN
"DB280_SEQ_EVT_ClotOF".SEQ.T_100MS:=0;
"DB280_SEQ_EVT_ClotOF".SEQ.T_1S:=0;
"DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE:=110;
END_IF;
END_IF;

(* Ouverture et Actualisation des données lu en début d'évènement *)
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE = 110 THEN

"DB500_LINA_OF_CONV".GEST_EVT_CLOT_OF.Declencheur := 1;
"DB500_LINA_OF_CONV".GEST_EVT_CLOT_OF.Evt_termine := 0;

"DB500_LINA_OF_CONV".EVT_CLOT_OF.OF_SEQ_ID := "DB500_LINA_OF_CONV".NOMENCLATURE.OF_ID;

IF "DB280_SEQ_EVT_ClotOF".SEQ.T_1S > 60 THEN "DB280_SEQ_EVT_ClotOF".SEQ.CMD1_1:=1; END_IF; (* Cloture d'OF en défaut *)

(* Evènement Création d'OF ouvert *)
IF "DB500_LINA_OF_CONV".GEST_EVT_CLOT_OF.Evt_active = 1 THEN
"DB500_LINA_OF_CONV".GEST_EVT_CLOT_OF.Declencheur := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_1:=0; (* cloture d'OF en défaut *)

"DB280_SEQ_EVT_ClotOF".SEQ.T_100MS := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.T_1S := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE := 120;
END_IF;
END_IF;

(* Attente cloture d'OF *)
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE = 120 THEN

IF "DB280_SEQ_EVT_ClotOF".SEQ.T_1S > 60 THEN "DB280_SEQ_EVT_ClotOF".SEQ.CMD1_1:=1; END_IF; (* Création d'OF en défaut *)

(* OF Crée *)
IF "DB500_LINA_OF_CONV".EVT_CLOT_OF.OF_SEQ_ID = 0 THEN
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_1:=0; (* Création d'OF en défaut *)

"DB280_SEQ_EVT_ClotOF".SEQ.T_100MS := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.T_1S := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE := 130;
END_IF;
END_IF;

(* Information OF cloturé avec succès *)
IF "DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE = 130 THEN

"DB500_LINA_OF_CONV".GEST_EVT_CLOT_OF.Evt_active := 0;
"DB280_SEQ_EVT_ClotOF".SEQ.CMD1_0:=1; (* Cloture d'OF réalisée avec succès *)

(* Fin de cloture *)
IF NOT "DB202_SEQ_MAITRE".SEQ.CMD4_4 THEN
"DB280_SEQ_EVT_ClotOF".SEQ.T_100MS:=0;
"DB280_SEQ_EVT_ClotOF".SEQ.T_1S:=0;
"DB280_SEQ_EVT_ClotOF".SEQ.NUM_ETAPE:=10;
END_IF;
END_IF;
END_REGION
L999:;

5.1.2 EVT fin dans Lina

Structure gestion EVT fin

Figure 91 : Structure gestion EVT fin

La structure de gestion de l’évènement Clôture UDT_LINA_Gest_EVT est commune aux évènements.

Structure clôture OF_SEQ_ID

Figure 92 : Structure clôture OF_SEQ_ID

Mnémo CLOT OF

Figure 93 : Mnémo CLOT OF

Dans Editer Evènement, 1er onglet Définition :

Définition EVT CLOT

Figure 94 : Définition EVT CLOT

Dans le 2e onglet Acquisition :

Acquisition EVT CLOT

Figure 95 : Acquisition EVT CLOT

Dans le 3e onglet Données associées :

Données associées Evt_Actif CLOT

Figure 96 : Données associées Evt_Actif CLOT

Gestion DA Type CLOT

Figure 97 : Gestion DA Type CLOT

Gestion DA OF ID CLOT

Figure 98 : Gestion DA OF ID CLOT

DA Evt_Actif CLOT

Figure 99 : DA Evt_Actif CLOT

DA Evt_terminée CLOT

Figure 100 : DA Evt_terminée CLOT