Page 1 sur 2

[RESOLU] Boucle for dans vijeo designer

Posté : 05 oct. 2016, 12:12
par geronimo
Bonjour,
Je souhaiterais faire une boucle For dans un script dans vijeo designer sauf que je n'arrive pas à avoir la bonne syntaxe.

Si quelqu'un en a déjà fait......

Voici la boucle que je voudrais faire en programmation unity

Code : Tout sélectionner

For Index := 0 to 8 do
	If DOUT[index].Manu = True Then 
		bitManu := True;
	End_if;
End_for;
Merci beaucoup

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 13:29
par Cyril93
Salut,
c'est du java les script vijeo designer

Code : Tout sélectionner

boolean Condition=false, Execution=false;

for (int i = 0; i < 9; i++)
{
	if  (Condition == true)
	{
		Execution = true;
	}
} 


Sur ce cas d'utilisation on peux enlever les accolades.

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 13:40
par geronimo
Merci de la réponse.
Mais dans l'exemple la condition tester n'est pas indexer par rapport a l'index de la boucle?

Voila mon exemple
vijeo.JPG
DOUT_O8_15 est un type de donnée utilisateur, ou dedans j'ai un tableau de avec les variables ManualMode

J'ai l'impression que l'on peut pas faire de boucle sur un type de donnée utilisateur.

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 13:52
par Cyril93
là le tableau n'est pas une structure, parce que c'est un exemple ;)

Code : Tout sélectionner


boolean Condition[] = new boolean[10]; 
boolean Execution=false;

for (int i = 0; i < 9; i++)
{
   if  (Condition[i] == true)
   	Execution = true;  
} 


Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 14:05
par geronimo
sa marche aussi si ma variable est de type "donnée utilisateur"???
voir message précédent

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 14:29
par Cyril93
J'ai rien pour tester mais essai ça :
structure.PNG

Code : Tout sélectionner

if (TestArrayStruct[i].bToto.getIntValue() == 1)
	Execution

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 14:58
par geronimo
Merci de ton aide j'ai fais ce script là dans une taché périodique de l'application et il n'a pas d'erreur

Code : Tout sélectionner

boolean Execution=false;

for (int i = 0; i < 9; i++)
{
   if  (DOUT_O5_0_7[i].ManualMode.getIntValue() == 1)
   Execution = true;
      Affiche_ManualMode.write(Execution);
} 

Cependant au démarrage du terminal j'ai ce message
vijeo2.JPG
je laisse tomber la boucle dans le terminal.
je vais le faire à l'ancienne dans l'automate et renvoyé un bit de résultat dans le terminal.

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 15:12
par steph68
ArrayIndexOutOfBoundsException
signifie "indice en dehors des limites du tableau"

ton tableau fait combien d'éléments ? (d'après le nom "DOUT_O5_0_7" je dirai 8)

pourquoi fais-tu alors une boucle de 9 itérations (0 à 8 inclus) ???

Code : Tout sélectionner

boolean flag = false;

for (int i = 0; i <= 7; ++i)
{
  if (DOUT_O5_0_7[i].ManualMode.getIntValue())
  {
    flag = true;
    break;		// pas la peine d'aller plus loin ...
  }
}

Affiche_ManualMode.write(flag);
@+

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 15:21
par Cyril93
pareil que steph68, tu as même l'indice après les deux points donc tout a sauté quand i == 8 :D
Tu peux enlever la variable Execution c'était pour l'exemple.

Re: Boucle for dans vijeo designer

Posté : 05 oct. 2016, 15:26
par geronimo
Effectivement c'est sa qui posait probleme
Merci