Page 1 sur 2

Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:00
par kalouche
Bonjour la communauté, je suis "tout neuf" sur ce forum donc n'hésitez pas à me dire si mon post n'est pas adapté (section, sujet, etc.).

Voilà, j'ai quelques bases en autom mais je bosse actuellement sur l'analyse d'un vieux programme développé sous X-TEL (pour TSX 107 455) et j'ai un peu de mal à le lire.

J'ai cherché sur votre forum et ailleurs mais je n'arrive pas à comprendre ce type d'instruction :
! IF [W980(W1753)AND W1730(W1754)=0]
THEN W1754*32─>W1752;W692(W1752)[2]─>W948[2];
W1030[2] OR W948[2]─>W1030[2];
SET B314(W1754)
ELSE RESET B314(W1754)


Pour la boucle IF-THEN-ELSE ok mais c'est plutôt sur la syntaxe : [W980(W1753)AND W1730(W1754)=0].
A quoi correspond la mise en parenthèse d'un mot juste après un premier mot (W980(W1753) par ex) ?
Dois-je comprendre "W980 multiplié par W1753" (ça me paraît bizarre) ?

De la même manière que signifie W692(W1752)[2] ?

Merci d'avance et pardon pour mes lacunes ! ;)

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:04
par itasoft
slts,
Dois-je comprendre "W980 multiplié par W1753" (ça me paraît bizarre)
-------
c'est W980 +le contenu de W175, si W175 vaut 2 ça va taper dans W982, c'est le principe de l'indexation

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:08
par djé
Salut,

La notation W980(W1753) correspond à un adressage indirect: On part de l'adresse W980 + celle contenue dans W1753
C'est à dire que si la valeur contenue dans W1753 est égale à 50 par exemple, l'adresse lue sera W980+50, c'est à dire W1030.

La notation W1030[x] correspond à un tableau de x mot à partir de l'adresse W1030.

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:32
par MiGaNuTs
Les trucs entre parenthèses c'est de l'adressage indexé.

par exemple si tu a un %MW100(%MW0) et que %MW0 vaux 10, l'automate ira lire %M110 (100+10 donc) et pas %MW100.

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:37
par kalouche
Merci pour vos réponses.

Donc si j'ai bien compris, si W1753=1 et W1754=3, je peux traduire :
IF [W980(W1753)AND W1730(W1754)=0] par : SI (W981 ET W1733) = 0

Et si le 2e mot du tableau W1752=5; je peux traduire :
W692(W1752)[2]─>W948[2] par : Affectation de la valeur de l'adresse W697 au 2e mot du tableau W948

J'ai bon?

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 11:42
par itasoft
non,

Affectation de la valeur de l'adresse W697 au 1e mot du tableau W948 et W698 au 2ème mot de W948

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 12:13
par kalouche
Ah ok, merci !

Mais du coup, une instruction de ce type serait possible ? ==> W692(W1752)[2]─>W948[3]
Et si oui, cela voudrait dire quoi, que l'on affecte W697 ou W698 au 3e mot de W948 (en plus du reste) ?

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 13:50
par MiGaNuTs
le [2] signifie que tu copie 2 %MW a la suite.
Tu ne peut pas copier une table 2 mots dans une table de 3. La destination doit faire la même taille que la source.
kalouche a écrit : 26 mars 2021, 11:37
Et si le 2e mot du tableau W1752=5; je peux traduire :
W692(W1752)[2]─>W948[2] par : Affectation de la valeur de l'adresse W697 au 2e mot du tableau W948
Tu copie %MW697 et %MW698 dans %MW948 et %MW949

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 14:07
par kalouche
Ok merci cela me "rassure".
Je vais donc creuser l'utilisation de l'indexation merci à tous.

Re: Langage structuré atelier X-TEL

Posté : 26 mars 2021, 14:49
par DurandO
djé a écrit : 26 mars 2021, 11:08 La notation W980(W1753) correspond à un adressage indirect:
Bonjour,
ici, ce n'est pas de l'adressage indirect mais simplement indexé. Le reste de l'explication est cohérent.
Différents adressage
immédiat : %MW100 <-- -365
direct : %MW100 <-- %MW2
indexé : %MW100(%MW2) <-- 300 si %MW2 = 5 on charge la valeur 300 dans %MW105, en SCM600 M100,M2<--300
Indirect : n'existe pas en TSX Série 7, en April SMC600 [M2]<--300 si M2 = 5 on charge la valeur 300 dans le mot M5
Indirect post indexe : n'existe pas en TSX Série 7, en April SMC600 [M2],M3<--300 si M2 = 5 et M3 =8 on charge la valeur 300 dans le mot M13 (adresse 5 +8)