[Résolu] Programme TSX 3722 vers TM 262
Re: Programme TSX 3722 vers TM 262
Bonjour Itasoft,
Oui c'est bien du LADDER, je l'ai écrit en contact pace que je ne voulais pas surcharger mon message avec des photos. Mais justement je viens de voir que la seule photo que je voulais mettre ne s'affiche pas donc, je la remets ici.
Oui c'est bien du LADDER, je l'ai écrit en contact pace que je ne voulais pas surcharger mon message avec des photos. Mais justement je viens de voir que la seule photo que je voulais mettre ne s'affiche pas donc, je la remets ici.
- itasoft
- Mi homme - Mi automate

- Messages : 7806
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Programme TSX 3722 vers TM 262
je veux parler de sous EcoStruxure Machine Expert
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Programme TSX 3722 vers TM 262
Oui je suis aussi en LADDER sur Machine expert, mais j'ai aussi ce genre d'instructions en ST.
Je vous mets des exemples d'instructions de ce style ci-dessous:
Je vous mets des exemples d'instructions de ce style ci-dessous:
Re: Programme TSX 3722 vers TM 262
Bonjour,
Voici la syntaxe pour reconduire le code proposé:
Dans ce que tu viens de poster :
je vois que tu as du déclarer une variable de type structure d'où ta syntaxe variable.Machin : aucun intérêt, cela va surcharger pour rien.
Du coup, après avoir corrigé la déclaration, tu devrais remplacer variables.M21 par M21
Ensuite, à moins que tu ais trouvé une solution autre que ce que je t'ai proposé pour indexer, pourquoi écrire MW124 au lieu de MW[24] ?
Il est normal que Variables.MW880[Variables.MW26] fasse une erreur de syntaxe ==> à réécrire ainsi MW[880 + MW[26] suivant la logique que je t'ai présenté.
Si tu as retenu ma solution, alors, il ne pas faut déclarer à la fois le tableau et des variables INT comme MW24 qui ne ferait pas référence à MW[24] bien sur!
Je me corrige car le AND sur mots ne marche pas dans ce logiciel !Theogar a écrit : ↑30 déc. 2024, 11:52
Cette partie de programme permet la rotation d'une table. Cependant, je ne comprends pas ce qu'est :.Code : Tout sélectionner
%MW840[%MW26]:X2
Voici la syntaxe pour reconduire le code proposé:
Code : Tout sélectionner
MW[840 + MW[26]].2
je vois que tu as du déclarer une variable de type structure d'où ta syntaxe variable.Machin : aucun intérêt, cela va surcharger pour rien.
Du coup, après avoir corrigé la déclaration, tu devrais remplacer variables.M21 par M21
Ensuite, à moins que tu ais trouvé une solution autre que ce que je t'ai proposé pour indexer, pourquoi écrire MW124 au lieu de MW[24] ?
Il est normal que Variables.MW880[Variables.MW26] fasse une erreur de syntaxe ==> à réécrire ainsi MW[880 + MW[26] suivant la logique que je t'ai présenté.
Si tu as retenu ma solution, alors, il ne pas faut déclarer à la fois le tableau et des variables INT comme MW24 qui ne ferait pas référence à MW[24] bien sur!
Modifié en dernier par DurandO le 31 déc. 2024, 11:50, modifié 1 fois.
Re: Programme TSX 3722 vers TM 262
A la place de
Code : Tout sélectionner
%MW840[%MW26]:X2 Code : Tout sélectionner
MW[840 + MW[26]].2par exemple dans le cas présent , tu charge dans MW[840] à MW[846] les valeurs 0,1,2,4,8,16,32
puis tu force MW[26] aux valeurs 0,1,2,3,4,5,6 et tu vérifies que le contact est bien passant pour la valeur attendue (que je ne cite pas pour vérifier que tu as bien compris)
Re: Programme TSX 3722 vers TM 262
Bonjour DurandO,
Merci beaucoup pour ton retour je vais essayer et tester tout ça.
Merci beaucoup pour ton retour je vais essayer et tester tout ça.
Re: Programme TSX 3722 vers TM 262
En faisant les test ma sortie passe à 1 si MW[26] est égal à 3, mais je t'avouerais, je n'ai pas forcément compris la logique derrière çatu force MW[26] aux valeurs 0,1,2,3,4,5,6 et tu vérifies que le contact est bien passant pour la valeur attendue (que je ne cite pas pour vérifier que tu as bien compris)
Re: Programme TSX 3722 vers TM 262
Code : Tout sélectionner
MW[840 + MW[26]].2C'est MW[843].2 qui est alors testé(le bit 2).
Si tu écris les mots 840 à 846 en binaire avec les valeurs entières (les valeurs 0,1,2,4,8,16,32) tu obtiens ceci :
Code : Tout sélectionner
Bit |x15 |x14 |x13 |x12 |x11 |x10 | x9 | x8 | x7 | x6 | x5 | x4 | x3 | x2 | x1 | x0
MW[840] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
MW[841] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1
MW[842] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0
MW[843] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0
MW[844] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0
MW[845] = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0
Modifié en dernier par DurandO le 31 déc. 2024, 14:06, modifié 1 fois.
Re: Programme TSX 3722 vers TM 262
Ah en effet je comprends mieux merci beaucoup DurandO 
Re: Programme TSX 3722 vers TM 262
J'ai converti un projet SoMachineBasic dans lequel j'avais utilisé de l'indexage.
Après conversion, une opération de ce type :
est reconduite ainsi :
Où PTR_MW840 est une variable globale de type POINTER TO INT initialisée à ADR(MW840) en veillant bien à déclarer aussi la variable MW840 à l'adresse %MW840 !
C'est comme cela que l'on aurait du procéder. Ma méthode marche aussi en déclarant MW de type Array [0..2050] of INT à l'adresse %MW0.
A toi t'utiliser ce qui te conviens.
Si tu as SoMachineBasic, il peut être intéressant d'écrire 2 ou trois réseau avec les instructions que tu ne vois pas comment reconduire et ensuite tu converti dans Machine Expert.
Après conversion, une opération de ce type :
Code : Tout sélectionner
%MW840[%MW26]Code : Tout sélectionner
PTR_MW840[MW26]C'est comme cela que l'on aurait du procéder. Ma méthode marche aussi en déclarant MW de type Array [0..2050] of INT à l'adresse %MW0.
A toi t'utiliser ce qui te conviens.
Si tu as SoMachineBasic, il peut être intéressant d'écrire 2 ou trois réseau avec les instructions que tu ne vois pas comment reconduire et ensuite tu converti dans Machine Expert.

