Partie du forum pour tout ce qui concerne les interfaces homme machine ou IHM. Forum, conseil, astuce et entraide sur les interface homme machine ou IHM tels que les magelis, KEP, proface, XBT, .
geronimo
Forcené des structures
Messages : 169 Enregistré le : 20 oct. 2015, 08:46
Message
par geronimo » 05 oct. 2016, 12:12
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
Cyril93
Maître du binaire
Messages : 484 Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF
Message
par Cyril93 » 05 oct. 2016, 13:29
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.
Modifié en dernier par
Cyril93 le 05 oct. 2016, 13:40, modifié 1 fois.
geronimo
Forcené des structures
Messages : 169 Enregistré le : 20 oct. 2015, 08:46
Message
par geronimo » 05 oct. 2016, 13:40
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
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.
Modifié en dernier par
geronimo le 05 oct. 2016, 13:54, modifié 1 fois.
Cyril93
Maître du binaire
Messages : 484 Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF
Message
par Cyril93 » 05 oct. 2016, 13:52
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;
}
geronimo
Forcené des structures
Messages : 169 Enregistré le : 20 oct. 2015, 08:46
Message
par geronimo » 05 oct. 2016, 14:05
sa marche aussi si ma variable est de type "donnée utilisateur"???
voir message précédent
Cyril93
Maître du binaire
Messages : 484 Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF
Message
par Cyril93 » 05 oct. 2016, 14:29
J'ai rien pour tester mais essai ça :
geronimo
Forcené des structures
Messages : 169 Enregistré le : 20 oct. 2015, 08:46
Message
par geronimo » 05 oct. 2016, 14:58
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
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.
steph68
Codeur fou
Messages : 275 Enregistré le : 21 oct. 2015, 08:23
Message
par steph68 » 05 oct. 2016, 15:12
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);
@+
Cyril93
Maître du binaire
Messages : 484 Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF
Message
par Cyril93 » 05 oct. 2016, 15:21
pareil que steph68, tu as même l'indice après les deux points donc tout a sauté quand i == 8
Tu peux enlever la variable Execution c'était pour l'exemple.
geronimo
Forcené des structures
Messages : 169 Enregistré le : 20 oct. 2015, 08:46
Message
par geronimo » 05 oct. 2016, 15:26
Effectivement c'est sa qui posait probleme
Merci