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)