Mon prof m'a demandé de traduire un grafcet en ST sous siemens.
Voici le grafcet en pièce jointe.
Pour le programme, comme il fallait partir en ST j'ai fais ce programme :
Code : Tout sélectionner
REGION Variables Raccourcis
#Appui_BP := "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_1 OR "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_2 OR "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_3;
#Appui_BP_Fin := "DB_Entree_TOR".P103_BPL_Vert_FCY_Sechage;
#Cycle_En_Cours := #Cycle_Sechage_1 OR #Cycle_Sechage_2 OR #Cycle_Sechage_3;
END_REGION
CASE #Etape OF
-1:
"DB_Cycle_Sechage".Etape := -1;
IF #Appui_BP_Fin THEN
#Etape := 0;
END_IF;
0:
"DB_Cycle_Sechage".Etape := 0;
IF NOT #Cycle_En_Cours THEN
IF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_1 THEN
#Cycle_Sechage_1 := true;
#Etape := 1;
ELSIF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_2 THEN
#Cycle_Sechage_2 := true;
#Etape := 1;
ELSIF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_3 THEN
#Cycle_Sechage_3 := true;
#Etape := 1;
END_IF;
END_IF;
1:
"DB_Cycle_Sechage".Etape := 1;
IF "DB_TANX".num["ID".TANX.Tempo_Etuvage].Sortie THEN
#Etape := 2;
ELSIF #Appui_BP_Fin THEN
#Cycle_Sechage_1 := #Cycle_Sechage_2 := #Cycle_Sechage_3 := 0;
#Etape := 0;
END_IF;
2:
"DB_Cycle_Sechage".Etape := 2;
IF #Appui_BP_Fin THEN
#Cycle_Sechage_1 := #Cycle_Sechage_2 := #Cycle_Sechage_3 := 0;
#Etape := 0;
END_IF;
END_CASE;
"DB_Cycle_Sechage".Tps_Sechage_1 := #Cycle_Sechage_1;
"DB_Cycle_Sechage".Tps_Sechage_2 := #Cycle_Sechage_2;
"DB_Cycle_Sechage".Tps_Sechage_3 := #Cycle_Sechage_3;
REGION " Copie " De l'étape Active dans des variables booléennes
// "DB_Cycle_Sechage".Etape_Aucune := #Etape := "ID".Cycle_Sechage.Aucune;
"DB_Cycle_Sechage".Etape_0 := (#Etape = "ID".Cycle_Sechage.Etape_0);
"DB_Cycle_Sechage".Etape_1 := (#Etape = "ID".Cycle_Sechage.Etape_1);
"DB_Cycle_Sechage".Etape_2 := (#Etape = "ID".Cycle_Sechage.Etape_2);
END_REGION
Le problème est le suivant : Il y a forcément quelque chose de faux là dedans. Lorsque dans mes DB ou dans mon entrée directement j'essaye d'actionner le BP, celui ci reste à 0. Ce qui est logique, on appuie et il remonte. Le problème c'est que je ne rentre pas dans l'étape 1. Pour rentrer dans l'étape 1, je dois forcer en continu l'appui sur le BP. Si je le relache, tout s'arrête. J'ai du mal à comprendre comment je peux sauvegarder l'appui du BP pour lancer mon cycle de séchage en faisant autrement. Je vous remercie si vous arrivez à m'éclairer !
Coco



