Indexation de variables dans DB

Forum traitant des automates industriels de marque Siemens.
Répondre
SART01
Code sa première boucle
Code sa première boucle
Messages : 17
Enregistré le : 07 mars 2019, 09:39

Indexation de variables dans DB

Message par SART01 »

Bonjour
J'ai un DB (DB_paramètres) avec 3 structures identiques avec des valeurs de nombres de valeurs différentes (valeur de array)
X1 struct X2 struct X3 struct
Y Array[0..4] of struct Y Array[0..5] of struct Y Array[0..3] of struct
Y[0] Array[0..4] of struct Y[0]Array[0..6] of struct Y[0] Array[0..3] of struct
Z[0] struct Z[0] struct Z[0] struct
T1 BOOL T1 BOOL T1 BOOL
T2 INT T2 INT T2 INT
Je voudrais pointer une variable d'une structure en fonction du rang du X. Dans le programme j'ai plusieurs variables en dessous de Z (ici il y a que T1, T2)
Par exemple je voudrais pointer, la variable de X2-Y0-Z0-T2
Au départ, j'ai pensé faire avec case of de la valeur du rang (X) mais cela nécessite la recopie plusieurs fois presque des mêmes lignes de programme, aucun intéret et en cas de modifs c'est plus difficile, j'ai abandonné cette piste
Ensuite j'ai pensé concaténer le nom du DB, X, i (numero du rang), puis le reste Y[indexY], Z[index Z], T2
En faisant cette méthode j'ai un string complet mais je ne sais pas comment indexer la variable du DB avec ce string
Quelqu'un aurait une idée ou une autre méthode ?
Merci de vos retours
Avatar du membre
sinced
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1283
Enregistré le : 13 oct. 2015, 16:56

Re: Indexation de variables dans DB

Message par sinced »

SART01 a écrit : 19 juin 2026, 21:55 Bonjour
J'ai un DB (DB_paramètres) avec 3 structures identiques avec des valeurs de nombres de valeurs différentes (valeur de array)
X1 struct X2 struct X3 struct
Y Array[0..4] of struct Y Array[0..5] of struct Y Array[0..3] of struct
Y[0] Array[0..4] of struct Y[0]Array[0..6] of struct Y[0] Array[0..3] of struct
Z[0] struct Z[0] struct Z[0] struct
T1 BOOL T1 BOOL T1 BOOL
T2 INT T2 INT T2 INT
Je voudrais pointer une variable d'une structure en fonction du rang du X. Dans le programme j'ai plusieurs variables en dessous de Z (ici il y a que T1, T2)
Par exemple je voudrais pointer, la variable de X2-Y0-Z0-T2
Au départ, j'ai pensé faire avec case of de la valeur du rang (X) mais cela nécessite la recopie plusieurs fois presque des mêmes lignes de programme, aucun intéret et en cas de modifs c'est plus difficile, j'ai abandonné cette piste
Ensuite j'ai pensé concaténer le nom du DB, X, i (numero du rang), puis le reste Y[indexY], Z[index Z], T2
En faisant cette méthode j'ai un string complet mais je ne sais pas comment indexer la variable du DB avec ce string
Quelqu'un aurait une idée ou une autre méthode ?
Merci de vos retours
tu as regardé avec les UDT ?
Avatar du membre
ProfnovA
Créateur de langage
Créateur de langage
Messages : 605
Enregistré le : 21 oct. 2015, 08:21

Re: Indexation de variables dans DB

Message par ProfnovA »

TIA portal est suffisamment puissant pour faire des types de données, des tableaux de types de données, des tableaux de tableaux de types de données, etc. Le plus beau dans tout ça est qu'une simple affectation suffit à copier une structure potentiellement très complexe dans une autre...
Il faut simplement bien réfléchir avant de coder pour savoir comment ça sera organisé.
Guigui744
Code son premier grafcet
Code son premier grafcet
Messages : 33
Enregistré le : 08 avr. 2024, 17:03
Localisation : Annecy

Re: Indexation de variables dans DB

Message par Guigui744 »

Hey,

Si j'ai bien compris, tu as plusieurs struct. Comme cela:
Capture d'écran 2026-06-22 105034.png
Il est possible de remonter les valeurs comme cela par exemple:
Capture d'écran 2026-06-22 110023.png
Il est possible de le faire en passant par des variables temporaires.
Est-ce que j'ai bien compris ton problème ?
Répondre