Page 1 sur 2

[S7-1500] SCL Boucle, et index

Posté : 06 mai 2023, 17:16
par divxera
Bonjour,

Je suis dans le tout début d'apprentissage du SCL (TIA V17) ...Désolé pour ma question qui peut paraître simple pour beaucoup :D .
J'insères dans ce post un petit screen pour la compréhension.
J'ai un tableau de 16UDT.
Je scrutes 19 Tableaux(x) pour voir si un élément de mon tableau 16UDT est présent
Exp: Tableau(x) doit scruter les 16 éléments du tableau(y) 2 si ok, on sort, sinon, on passe au tableau(x+1) puis de nouveau on scrute les 16 éléments.

Dans le screen, la valeur est fixe (c'est pour les 1er essais …). Sinon, ce que j'aimerai faire c'est incrémenter ce chiffre si la boucle des 16 éléments n'ai pas trouver.
C'est a dire, table(1), on scrute les 16 si pas ok, on passe table(2) puis de nouveau scrute etc ....
Je recherche l'écriture ...

Merci.

Re: [S7-1500] SCL Boucle, et index

Posté : 06 mai 2023, 18:16
par itasoft
slts,
il faut imbriquer 2 boucles
-----ex---
For #x:=1 to 19 do========
For #i :=1 to 16 do -----------
END_FOR;----------------------
END_FOR;===============

Re: [S7-1500] SCL Boucle, et index

Posté : 06 mai 2023, 22:24
par divxera
Merci du retour,
Ok .. J'avais essayé sans succès. Je vais continué vers cette voie là.

Je suis reparti de zéro car à force, il y avait un brouillon partout et ma simulation me faisait n'importe quoi.
Je repars étape par étape.

Merci.

Re: [S7-1500] SCL Boucle, et index

Posté : 06 mai 2023, 23:57
par divxera
Ok j'arrive à un résultat avec l'imbrication des 2 boucles mais ce n'est pas encore mon résultat que je souhaites.

C'est a dire que je dois respecter un sens.
Par exemple, Je dois tester 16 fois la table 1 et si non concluant, je passe sur la table 2 et de nouveau on teste 16 fois.

Donc peut-être l'utilisation de la boucle For pour tester Table associé à une incrémentation de l'index....

A la fin de la boucle, si on met EXIT, on quitte. Quel serait la fonction pour relancer la boucle si condition non ok ?

Merci d'éventuelle retour !

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 00:34
par itasoft
il faut juste remplacer ta valeur fixe par #x et c'est tout

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 14:22
par divxera
Oui, l'imbrication des 2 boucles fonctionne mais pas comme je le prévoyais.
C'est a dire, j'ai mis un petit croquis en pièce jointe car je penses peut-être mal m'exprimé.
Je dois comparer 1 table avec la totalité des 16 éléments puis passer à la table 2 si pas trouver ainsi de suite jusqu'à 19 (sens défilement)

For #i:=0 to 19 do========
For #j :=1 to 16 do -----------
J'obtiens ce résultat: D - C - A - Z

Si j'inverse juste les 2 For:
For #j :=1 to 16 do -----------
For #i:=0 to 19 do========
J'obtiens ce résultat: Z - C - D - A

Alors que je cherches à obtenir Z (Table1, position 4) - A (Table 2, position 1) - C (Table 18, position 3) - D (Table 19, position 2)
Exemple croquis:
Début test: On regarde la composition de la Table 1 puis on compare au 16 cas tableau vert. Si Présence Ok, je récupères la position (+ données) pour les transférer vers un bloc de travail.
Si pas ok, je passes à la table 2 ...

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 15:05
par itasoft
-ya combien d’éléments dans Table 1 ??

-Est que Table 1 signifie case 1 de la Table_X de 19 cases ?
-Est que Table 2 signifie case 2 de la Table_X de 19 cases ?

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 15:50
par divxera
Table est un Array[0..19] of "UDT".
D'où la boucle de 0 à 19 (on compare seulement une variable (chaine caractère) avec le tableau 16)

Le tableau est un Array[1..16] of "UDT".

Exemple de mes données sous TIA ci-dessous:
https://ibb.co/NykjzN6

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 16:00
par itasoft
je sais toujours pas que signifie Table 1
-------
Bon, je récapitule
J’ai un tableau nommé Table_A Array[0…19] OF
Et un autre tableau nommé Table_B Array[1…16] OF
Je veux comparer chaque item de la Table_A à tous les items de la Table_B, si trouve alors EXIT de la Table_B
Est que c’est ça que tu veux faire ?

Re: [S7-1500] SCL Boucle, et index

Posté : 07 mai 2023, 21:23
par divxera
C'est vrai que j'aurai déjà tout un vocabulaire à apprendre :roll:
Désolé et merci en tout cas pour votre retour !

Ce que vous indiquez, c'est ça que je souhaiterai faire

Dans mon langage :oops: , ça donne cela

J'ai une Table_A Array[0…19] OF et une autre Table_B[0…16]
Je dois comparer toute la Table_B (de 0 à 16) avec la 1er structure de la Table_A donc le 0.
Si ok je sors,
Sinon,
Je compare toute la Table_B (de 0 à 16) avec la 2nd structure de la Table_A donc le 1
Si ok je sors,
Sinon,
Ainsi de suite jusqu'à 19