4.1 Com LINA API production
4.1.1 EVT Prod dans l’API
Deux UDT permettent la communication production entre le logiciel Lina et l’automate :
Figure 66 : UDT_LINA_Gestion_evt Prod
Figure 67 : IJDT_LINA_EvtProd
Dans le DB500, clic [GEST_]EVT_PROD :
Figure 68 : DB500_LINA_OF_CONV prod
Figure 69 : SFC EVT production
Figure 70 : Réseau 4 EVTProduction tasse 3 bille
Figure 71 : prm FC270_EVT_Prod
REGION INIT
//INIT SEQUENCE PAR AFFICHEUR
IF #RAZ_SEQ THEN #SEQ.NUM_ETAPE := 0; END_IF;L10:;
//RAZ DES VARIABLES
IF #SEQ.NUM_ETAPE = 0 THEN#SEQ.T_100MS := 0;
#SEQ.T_1S := 0;#SEQ.CMD1_0:=0; (* Production réalisée avec succès *)
#SEQ.CMD1_1:=0; (* Production en défaut *)
#SEQ.CMD1_2:=0; (* Production en cours *)
#SEQ.CMD1_3:=0; (* *)
#SEQ.CMD1_4:=0; (* *)
#SEQ.CMD1_5:=0; (* *)
#SEQ.CMD1_6:=0; (* *)
#SEQ.CMD1_7:=0; (* *)
#SEQ.CMD1_8:=0; (* *)
#SEQ.CMD1_9:=0; (* *)
#SEQ.CMD1_10:=0; (* *)
#SEQ.CMD1_11:=0; (* *)
#SEQ.CMD1_12:=0; (* *)
#SEQ.CMD1_13:=0; (* *)
#SEQ.CMD1_14:=0; (* *)
#SEQ.CMD1_15:=0; (* *)#SEQ.INT_1:=0;
#SEQ.INT_2:=0;END_IF;
L20:;
//SAUT SI AU POUR FIGER SEQUENCE
IF "AlwaysFALSE" THEN GOTO L999; END_IF;L30:;
//DEMARRAGE DE LA SEQUENCE
IF #SEQ.NUM_ETAPE = 0 AND "REPRISE_API_OK" THEN
#SEQ.NUM_ETAPE := 10;
END_IF;L40:;
//INCREMENTATION TEMPO
IF "BIT_100ms" AND #SEQ.T_100MS < 32766 THEN #SEQ.T_100MS := #SEQ.T_100MS + 1; END_IF;
IF "BIT_1s" AND #SEQ.T_1S < 32766 THEN #SEQ.T_1S := #SEQ.T_1S + 1; END_IF;
END_REGIONREGION Création d'un OF
(* Preparation au demarrage *)
IF #SEQ.NUM_ETAPE=10 THEN#SEQ.CMD1_0:=0; (* Production réalisée avec succès *)
#SEQ.CMD1_1:=0; (* Production en défaut *)
#SEQ.CMD1_2:=0; (* Production en cours *)
#SEQ.CMD1_3:=0; (* *)
#SEQ.CMD1_4:=0; (* *)
#SEQ.CMD1_5:=0; (* *)
#SEQ.CMD1_6:=0; (* *)
#SEQ.CMD1_7:=0; (* *)
#SEQ.CMD1_8:=0; (* *)
#SEQ.CMD1_9:=0; (* *)
#SEQ.CMD1_10:=0; (* *)
#SEQ.CMD1_11:=0; (* *)
#SEQ.CMD1_12:=0; (* *)
#SEQ.CMD1_13:=0; (* *)
#SEQ.CMD1_14:=0; (* *)
#SEQ.CMD1_15:=0; (* *)#SEQ.INT_1:=0; (* *)
#SEQ.INT_2:=0; (* *)(* Conditions de lancement *)
IF #Dmd_Prod THEN
#SEQ.T_100MS:=0;
#SEQ.T_1S:=0;
#SEQ.NUM_ETAPE:=100;
END_IF;
END_IF;(* Ouverture et Actualisation des données lu en début d'évènement *)
IF #SEQ.NUM_ETAPE = 100 THEN"DB500_LINA_OF_CONV".GEST_EVT_PROD.Declencheur := 1;
"DB500_LINA_OF_CONV".GEST_EVT_PROD.Evt_termine := 0;"DB500_LINA_OF_CONV".EVT_PROD.OF_SEQ_ID := #OF_SEQ_ID;
"DB500_LINA_OF_CONV".EVT_PROD.ART_ID_CODE := #ART_ID_CODE; (* Tasse 3 bille *)
"DB500_LINA_OF_CONV".EVT_PROD.ZONE_STOCK := #ZONE_STOCK; (* Yffiniac *)#SEQ.CMD1_0:=0; (* Production réalisée avec succès *)
IF #SEQ.T_1S > 60 THEN #SEQ.CMD1_1:=1; END_IF; (* Production en défaut *)
(* Evènement Production ouvert *)
IF "DB500_LINA_OF_CONV".GEST_EVT_PROD.Evt_active = 1 THEN
#SEQ.CMD1_1:=0; (* Production en défaut *)
#SEQ.T_100MS := 0;
#SEQ.T_1S := 0;
#SEQ.NUM_ETAPE := 110;
END_IF;
END_IF;(* Attente fin de Production *)
IF #SEQ.NUM_ETAPE = 110 THEN(* Cloture définitive de l'évènement *)
IF NOT #Dmd_Prod THEN
#SEQ.T_100MS := 0;
#SEQ.T_1S := 0;
#SEQ.NUM_ETAPE := 300;
END_IF;
END_IF;(* Actualisation des données lu en fin d'évènement *)
IF #SEQ.NUM_ETAPE = 300 THEN"DB500_LINA_OF_CONV".GEST_EVT_PROD.Evt_active := 0;
"DB500_LINA_OF_CONV".EVT_PROD.QTE_POIDS := 1;
(* Tempo *)
IF #SEQ.T_100MS >= 0 THEN
#SEQ.T_100MS:=0;
#SEQ.T_1S:=0;
#SEQ.NUM_ETAPE:=310;
END_IF;
END_IF;(* Cloture définitive *)
IF #SEQ.NUM_ETAPE = 310 THEN"DB500_LINA_OF_CONV".GEST_EVT_PROD.Declencheur := 0;
IF #SEQ.T_1S > 60 THEN #SEQ.CMD1_1:=1; END_IF; (* Production en défaut *)
(* Evènement Production terminé *)
IF "DB500_LINA_OF_CONV".GEST_EVT_PROD.Evt_termine = 1 THEN
"DB500_LINA_OF_CONV".GEST_EVT_PROD.Evt_termine := 0;
#SEQ.CMD1_1:=0; (* Production en défaut *)
#SEQ.T_100MS:=0;
#SEQ.T_1S:=0;
#SEQ.NUM_ETAPE:=320;
END_IF;
END_IF;(* Attente fin Cloture définitive *)
IF #SEQ.NUM_ETAPE = 320 THEN#SEQ.CMD1_0:=1; (* Production réalisée avec succès *)
(* Fin cloture définitive *)
IF #Dmd_synchro_fin THEN
#SEQ.T_100MS:=0;
#SEQ.T_1S:=0;
#SEQ.NUM_ETAPE:=10;
END_IF;
END_IF;END_REGION
L999:;
4.1.2 EVT Prod dans Lina
Dans Editer Modèle structure :
Figure 72 : Structure de gestion EVT Prod
La structure de gestion de l’évènement Production UDT_LINA_Gest_EVT est commune aux évènements.
Dans l’onglet Général :
Figure 73 : Structure UDT_LINA_Prod OF_SEQ_ID
Nom : UDT_LINA_Prod
Colonne Nom : OF_SEQ_ID
⚠ Attention à l’inversion de l’abréviation « ART » dans l’ID du Code de l’ARTicle.
- ID_CODE_ART dans EVT CreaOF et Conso ;
- ART_ID_CODE dans EVT Prod.
Figure 74 : Mnémo EVT Prod
Dans Editer Evènement, 1er onglet Définition :
Figure 75 : Définition EVT Prod
Nom : EVT_PROD
Dans le 2e onglet Acquisition :
Figure 76 : Acquisition EVT Prod
Dans le 3e onglet Données associées :
Figure 77 : Données associées ART_ID_CODE PROD
Nom : ART_ID_CODE
Figure 78 : DA Type EVT PROD
Nom : Type
Valeur : 3
Type de trace : Type Action
Figure 79 : Gestion DA OF ID PROD
Figure 80 : DA ART_ID_CODE PROD
Figure 81 : DA QTE_POIDS PROD
Figure 82 : DA Zone de stock Code PROD
Figure 83 : Évènement DA Evt_Actif PROD
Figure 84 : DA Evt_terminé PROD