Page 1 sur 1

Besoin d'aide grafcet Scolaire

Posté : 12 nov. 2024, 11:03
par Metallicoco
Bonjour,

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

Si y'a besoin d'autres infos hésitez pas à me demander, je suis perdu.

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

Re: Besoin d'aide grafcet Scolaire

Posté : 12 nov. 2024, 15:05
par roudy
Bonjour,
Tu as un bon début d'analyse, maintenant il faut que tu trouves la solution.
Actuellement, j'ai un apprenti en automatisme et je ne lui donne pas les réponses, j’essaie qu'il trouve sa solution.
C'est pas te rendre service que de te donner la solution à ce niveau.
Conseil : Bloque les étapes et observe ce qui se passe en regard de ce qui physiquement doit/devrait se passer.
Bon courage.

Re: Besoin d'aide grafcet Scolaire

Posté : 12 nov. 2024, 15:24
par Metallicoco
Je veux bien mais parfois ça me dépasse..

J'ai essayé d'arranger le code comme ça :

Code : Tout sélectionner

CASE #Etape OF
    -1:
        //"DB_Cycle_Sechage".Etape := -1;
      //  IF #Appui_BP_Fin THEN
        #Etape := 0;
            
      //  END_IF;
    0:
        IF NOT #Cycle_En_Cours THEN
            IF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_1 THEN
                "DB_Cycle_Sechage".Sechage_1 := true;
                #Etape := 1;
            ELSIF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_2 THEN
                "DB_Cycle_Sechage".Sechage_2 := true;
                #Etape := 1;
            ELSIF "DB_Entree_TOR".P101_BPL_Vert_DCY_Sech_3 THEN
                "DB_Cycle_Sechage".Sechage_3 := true;
                #Etape := 1;
(*            ELSE
                RETURN; *)
            END_IF;
        END_IF;
    1:
        IF "DB_TANX".num["ID".TANX.Tempo_Etuvage].Sortie THEN
            #Etape := 2;
        
            
        ELSIF "DB_Entree_TOR".P103_BPL_Vert_FCY_Sechage THEN
            "DB_Cycle_Sechage".Sechage_1  := false;
            "DB_Cycle_Sechage".Sechage_2  := false;
            "DB_Cycle_Sechage".Sechage_3  := FALSE;
            #Etape := 0;
(*        ELSE
            RETURN; *)
        END_IF;


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 := #Etape;
    "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);

Et je me retrouve avec l'image en PJ. J'ai le séchage 1 qui est actif. Donc je ne comprends pas pourquoi Si je rentre bien dans la condition le #Etape reste à zéro. Je ne sais pas si je réfléchis trop comme en informatique mais pour moi ici s'il passe à 1, il rentre dans le Cas ou #Etape vaut 1. Mais pas là et je ne vois pas ce que je rate

Re: Besoin d'aide grafcet Scolaire

Posté : 20 nov. 2024, 07:53
par tuscaonline
tiens t'as la methode ici pour le ladder.
https://www.erm-automatismes.com/d0002D ... source.pdf

en ST faut faire la meme chose avec les bascule RS (mais je trouve ca moche d'utiliser le st pour faire autre chose que du calcul)

Re: Besoin d'aide grafcet Scolaire

Posté : 20 nov. 2024, 08:47
par Béryl
Moi je trouve moche d'utiliser autre chose que du SFC pour faire du grafcet ! :evil:

Re: Besoin d'aide grafcet Scolaire

Posté : 20 nov. 2024, 09:32
par MiGaNuTs
Moi je trouve ça moche de partager du code sans utiliser les balises [code] et [/code]

Re: Besoin d'aide grafcet Scolaire

Posté : 27 nov. 2024, 13:41
par Brebiou
MiGaNuTs a écrit : 20 nov. 2024, 09:32 Moi je trouve ça moche de partager du code sans utiliser les balises [ code] et [/code]
Moi aussi, j'ai corrigé.

Re: Besoin d'aide grafcet Scolaire

Posté : 27 nov. 2024, 16:53
par MiGaNuTs
Brebiou a écrit : 27 nov. 2024, 13:41
MiGaNuTs a écrit : 20 nov. 2024, 09:32 Moi je trouve ça moche de partager du code sans utiliser les balises [ code] et [/code]
Moi aussi, j'ai corrigé.
Merci :)
Au moins c'est lisible maintenant.