[RESOLU] Boucle For

Forum traitant des automates industriels de marque Siemens.
Répondre
nicoom
Apprend le binaire
Apprend le binaire
Messages : 8
Enregistré le : 02 nov. 2015, 09:24

[RESOLU] Boucle For

Message par nicoom »

Bonjour,

J'essai de mettre au point une boucle For pour un automate S7-1200 sur TIA V13, mais celle-ci ne fonctionne pas :? :?

Code : Tout sélectionner

FOR "Index_Month" := 1 TO 12 BY 1 DO
IF "DB_TEMPO".CPU_TIME.MONTH < "Index_Month" THEN
EXIT;
END_IF;
CASE "Index_Month" OF
1, 3, 5, 7, 8, 10, 12: // Month with 31 days
"NbDay" := "NbDay" + 31;
4, 6, 9, 11: // Month with 30 days
"NbDay" := "NbDay" + 30;
2: // february
IF #Annee_Bissextile THEN
"NbDay" := "NbDay" + 29;
ELSE
"NbDay" := "NbDay" + 28;
END_IF;
ELSE // Statement section ELSE
;
END_CASE;
END_FOR;

Index_Month (%MW4)
NbDay(%MW2)
Auriez vous une piste car je ne vois pas ce qu'il manque???

Merci

[EDIT de Brebiou] Ajout balise [codebox]
Avatar du membre
Brebiou
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1013
Enregistré le : 21 oct. 2015, 08:38

Re: Boucle For

Message par Brebiou »

nicoom a écrit : J'essai de mettre au point une boucle For pour un automate S7-1200 sur TIA V13, mais celle-ci ne fonctionne pas :? :?
Qu'entends tu par la?

Est ce que tu initialise ta variable NbDay avant dans le programme? Parce que la si ta boucle se fait a chaque cycle, elle prend 30 a chaque fois vu qu'on est en Novembre.

Vérifie aussi que DB_TEMPO.CPU_TIME.MONTH a bien une valeur qui puisse être comparé a Index_Month, parce que sinon tu sors a chaque fois.

Je me suis permis de mettre ton code en valeur avec la balise Codebox ;)
nicoom
Apprend le binaire
Apprend le binaire
Messages : 8
Enregistré le : 02 nov. 2015, 09:24

Re: Boucle For

Message par nicoom »

Bonjour Brebiou,
merci pour ta reponse et desole du derangement...en fait cela fonctionne mais c'est l'animation du bloc qui m'a induit en erreur :evil:

Bonne journée
Répondre