Rassembler des éléments d'un tableau dans une chaine

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, .
Répondre
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1682
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Rassembler des éléments d'un tableau dans une chaine

Message par Béryl »

Bon, je m'en sors pas...
Vijéo Designer 6.2.5 Sp5.1.
Un tableau Informations[] de 8 INT venant d'un Premium 57204.
Je veux récupérer les 3 premiers entiers du tableau pour les réunir dans un chaine.

Mon script :

Code : Tout sélectionner

String vers="";
Int X=0;

for (X=0;X<3;X++)
  {
  	vers=vers+String.valueOf(Informations[X].getIntValue());
  }

Version.write(vers);
Marche pas, je récupère toujours "000" dans ma chaine.
Si je mets String.valueOf(X), je récupère bien "012".
J'ai donc un problème de lecture de mon tableau.
Vérification : les 3 premiers éléments du tableau sont différents de 0, bien sûr.

Comprends pas.
Si vous avez une idée...
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rassembler des éléments d'un tableau dans une chaine

Message par itasoft »

slts,
admettons que l'adresse absolue de "Informations" soit %MW100
Déclarer une variable externe de type STRING de longueur 6 octets à l'adresse absolue %MW100 et c'est tout.

on s'autorise à penser que les 3 premiers mots du tableau "informations" sont des valeurs de caractères ascii sinon on ne peut les mettre dans une chaine de caracteres
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1682
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rassembler des éléments d'un tableau dans une chaine

Message par Béryl »

Oui, pas bête ta soluce Itasoft, mais ça m'arrange de garder mon tableau avec des entiers.
De toute façon, le problème n'est pas là.
Je viens de m'apercevoir que je ne peux même pas choper un élément du tableau !

Code : Tout sélectionner

Int info=Informations[2].getIntValue();
me renvoie 0 dans info alors que Informations[2]=97

Je cherche encore...
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rassembler des éléments d'un tableau dans une chaine

Message par itasoft »

slts,
Je croyais que dans les 3 premiers mots du tableau on avait des caractères ascii et que tu voulais les mettre dans un String.
en fait tu veux convertir ces mots INT en ascii et les mettre dans un string.
ex:
informations[0]=1234
informations[1]=5
informations[2]=6
ton Script est bon avec le résultat "123456" dans vars
Modifié en dernier par itasoft le 09 août 2017, 10:51, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1682
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rassembler des éléments d'un tableau dans une chaine

Message par Béryl »

J'ai résolu mon problème d'une curieuse façon :
Mon script était lancé au démarrage de l'IHM.
Je l'ai déplacé et rajouté une action dans l'écran où je veux afficher ma chaine.
Première ouverture de l'écran : ma variable n'a que des zéros.
Deuxième ouverture d'écran : ma variable intègre bien les valeurs du tableau !

Il faut donc parcourir 2 fois le tableaux pour initialiser correctement la variable de chaine :shock:
J'ai rien compris, mais ça fonctionne.
J'ai donc remis mon script dans une action au démarrage de l'IHM (1er chargement du tableau)
Puis à l'ouverture de l'écran où ma chaine doit s'afficher, lancement à nouveau du même script (2ème chargement du tableau) et là, miracle, la variable s'initialise correctement.

Je devrais passer plus de temps sur du matos Siemens, il me resterait sûrement plus de cheveux :)
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rassembler des éléments d'un tableau dans une chaine

Message par itasoft »

slts,
il faut mettre le Script dans une action permanente périodique à 1s
sinon c'est normal , au démarrage de l'IHM le script s’exécute avant que les variables externes (%MW) soient échangés (mise à jour)
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1682
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rassembler des éléments d'un tableau dans une chaine

Message par Béryl »

J'entends bien, mais comment expliques-tu le fait que si je ne mets pas le script une première fois au démarrage de l'IHM, à l'ouverture de l'écran (qui n'apparait qu'après l'appui sur une touche), la variable s'initialise pas avec les valeurs du tableau ?
Et s'initialise bien qu'à partir de la deuxième ouverture de cet écran ?
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rassembler des éléments d'un tableau dans une chaine

Message par itasoft »

slts,
effectivement c'est pas normal, ceci dit pourquoi tu ne met pas ça dans une action globale périodique 1s ???
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1682
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rassembler des éléments d'un tableau dans une chaine

Message par Béryl »

Oui tu as raison, j'ai fait comme ça.
Bon, l'affichage met une seconde à se caller correctement, mais ça fait plus propre :)
En tout cas, encore un mystère Vijeo Designer.
Un de plus...

Merci pour le coup de paluche !
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rassembler des éléments d'un tableau dans une chaine

Message par itasoft »

slts,
c'est pas normal, je ferais un essais un de ces quatre matins pour voir ça;
Automaticien privé (de tout)
itasoft@free.fr
Répondre