DINT_TO_2WORD et inversement
DINT_TO_2WORD et inversement
Question curiosité
via la com on échange souvent des mots WORD
la donnée à traiter peut être un DINT
Quand tout était localisé c'était simple : le DINT chevauchait les 2 WORD, il suffisait d'utiliser la même adresse que le premier %MW avec %MD.
Maintenant que les données sont de plus en plus nommées, il n'y a plus forcément cette notion d'adresse
sous control expert comme unity, je me suis fait mon (tout petit) bloc qui concatène ou extrait, ça fonctionne pas de soucis
mais je n'ai pas fouillé s'il y avait déjà une fonction sur ces soft pour faire ça ?
hein ? quoi ? je dois chercher ? pffffff, j'ai mon rapport de stage à terminer pour demain
via la com on échange souvent des mots WORD
la donnée à traiter peut être un DINT
Quand tout était localisé c'était simple : le DINT chevauchait les 2 WORD, il suffisait d'utiliser la même adresse que le premier %MW avec %MD.
Maintenant que les données sont de plus en plus nommées, il n'y a plus forcément cette notion d'adresse
sous control expert comme unity, je me suis fait mon (tout petit) bloc qui concatène ou extrait, ça fonctionne pas de soucis
mais je n'ai pas fouillé s'il y avait déjà une fonction sur ces soft pour faire ça ?
hein ? quoi ? je dois chercher ? pffffff, j'ai mon rapport de stage à terminer pour demain
- Bruce33
- Dieu du process

- Messages : 932
- Enregistré le : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: DINT_TO_2WORD et inversement
DINT_AS_WORD
WORD_AS_DINT

WORD_AS_DINT
Re: DINT_TO_2WORD et inversement
oui mais...
DINT AS WORD doit prendre que le mot de poids faible du DINT pour le mettre dans WORD
WORD AS DINT ne doit coller WORD que dans le mot de poids faible de DINT
quand tu dois extraire les 2 word d'un DINT
DINT est constitué de WORD2,WORD1
je me suis fait les blocs
2WORD_TO_DINT
et
DINT_TO_2WORD
DINT AS WORD doit prendre que le mot de poids faible du DINT pour le mettre dans WORD
WORD AS DINT ne doit coller WORD que dans le mot de poids faible de DINT
quand tu dois extraire les 2 word d'un DINT
DINT est constitué de WORD2,WORD1
je me suis fait les blocs
2WORD_TO_DINT
et
DINT_TO_2WORD
- Bruce33
- Dieu du process

- Messages : 932
- Enregistré le : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: DINT_TO_2WORD et inversement
Tu n'as peut-être pas le temps de chercher mais prends au moins le temps de vérifier.
Le différence est dans le "AS" au lieu du "TO" : DINT_AS_WORD n'est pas DINT_TO_WORD.
Représentration en ST :
DINT_AS_WORD (DINT_variable, LowWord, HighWord);
DINT_variable := WORD_AS_DINT (WORD_variable1, WORD_variable2) ;
Le différence est dans le "AS" au lieu du "TO" : DINT_AS_WORD n'est pas DINT_TO_WORD.
Représentration en ST :
DINT_AS_WORD (DINT_variable, LowWord, HighWord);
DINT_variable := WORD_AS_DINT (WORD_variable1, WORD_variable2) ;
Re: DINT_TO_2WORD et inversement
oups,
je me sens aussi misérable que le petit scarabée au début de l'apprentissage, alors que je suis le premier à dire qu'il faut chercher
merci pour l'info
j'ai bêtement pensé que le "AS" venait d'une habitude d'un autre soft et correspondait au TO.
Par contre par cette conversion n'est pas proposée par défaut dans somachine,
je me sens aussi misérable que le petit scarabée au début de l'apprentissage, alors que je suis le premier à dire qu'il faut chercher
merci pour l'info
j'ai bêtement pensé que le "AS" venait d'une habitude d'un autre soft et correspondait au TO.
Par contre par cette conversion n'est pas proposée par défaut dans somachine,
Modifié en dernier par dpo le 19 oct. 2020, 13:23, modifié 1 fois.
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: DINT_TO_2WORD et inversement
Salut !
+1 avec Bruce33
DINT_TO_WORD : Prend le Poids faible du Dint vers 1 Word
WORD_TO_DINT : Prend 1 Word vers le poids faible du Dint (Poids fort mis à zéro)
WORD_AS_DINT : Prend 2 Word vers 1 Dint
DINT_AS_WORD : Prend 1 Dint vers 2 Word
As et TO ne font pas pareil !
TO est un transfert simple.. AS est une conversion de type

+1 avec Bruce33
DINT_TO_WORD : Prend le Poids faible du Dint vers 1 Word
WORD_TO_DINT : Prend 1 Word vers le poids faible du Dint (Poids fort mis à zéro)
WORD_AS_DINT : Prend 2 Word vers 1 Dint
DINT_AS_WORD : Prend 1 Dint vers 2 Word
As et TO ne font pas pareil !
TO est un transfert simple.. AS est une conversion de type
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: DINT_TO_2WORD et inversement
Slts, sur Unity
par la COM on ne reçois que des mots %MW, il faut juste déclarer une variable localisé du type que l’on désire et ça converti tout seul.
Ex : Je reçois dans ma table de réception deux mots %MW100 et %MW101
Je déclare une variable du type désiré à l’adresse absolue %MW100
Ex : VITESSE type=UDINT adresse=%MW100
Ex : VITESSE type=DWORD adresse=%MW100
Ex : VITESSE type=DINT adresse=%MW100
Ex : TOTO type=STRING adresse=%MW100
par la COM on ne reçois que des mots %MW, il faut juste déclarer une variable localisé du type que l’on désire et ça converti tout seul.
Ex : Je reçois dans ma table de réception deux mots %MW100 et %MW101
Je déclare une variable du type désiré à l’adresse absolue %MW100
Ex : VITESSE type=UDINT adresse=%MW100
Ex : VITESSE type=DWORD adresse=%MW100
Ex : VITESSE type=DINT adresse=%MW100
Ex : TOTO type=STRING adresse=%MW100
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: DINT_TO_2WORD et inversement
+1 Itasoft,
Mais lui il veut pas localiser ses variables..
Mais lui il veut pas localiser ses variables..
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: DINT_TO_2WORD et inversement
-------
OK, c'est pas sur Unity alors ?
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: DINT_TO_2WORD et inversement
Pour le coup la question était générale mais dans la pratique, c'est sous somachine
quand on fait une com, on déclare un tableau et il le range bien dans des %IW
mais je préfère travailler avec les cases d'un tableau, si l'adresse de départ des IW change, je n'aurai rien à faire dans la mise en forme des mes données
le tableau fait une centaine de mots mais je n'ai qu'une dizaine de données à bricoler, je garde mon bloc maison puisque somachine ne semble pas connaitre les conversions en "AS".
Merci pour vos lumières, j'aurai découvert une fonction que je me codais bêtement à la main sous unity.
Sous unity, j'utilisais aussi l'astuce de localiser à la même adresse des variables de format différent, mais je me suis déjà fait avoir
en insérant de nouvelles com pour des variateurs ce qui peut provoquer des décalages d'adresses si on utilise Modbus TCP et Ethernet/IP sur un même coupleur, maintenant j'utilise les variables qui sont nommées automatiquement et je les convertit si besoin.
quand on fait une com, on déclare un tableau et il le range bien dans des %IW
mais je préfère travailler avec les cases d'un tableau, si l'adresse de départ des IW change, je n'aurai rien à faire dans la mise en forme des mes données
le tableau fait une centaine de mots mais je n'ai qu'une dizaine de données à bricoler, je garde mon bloc maison puisque somachine ne semble pas connaitre les conversions en "AS".
Merci pour vos lumières, j'aurai découvert une fonction que je me codais bêtement à la main sous unity.
Sous unity, j'utilisais aussi l'astuce de localiser à la même adresse des variables de format différent, mais je me suis déjà fait avoir
en insérant de nouvelles com pour des variateurs ce qui peut provoquer des décalages d'adresses si on utilise Modbus TCP et Ethernet/IP sur un même coupleur, maintenant j'utilise les variables qui sont nommées automatiquement et je les convertit si besoin.
Modifié en dernier par dpo le 19 oct. 2020, 15:13, modifié 1 fois.