copie 16 bit d une variable rslogix5000

Forum traitant des automates industriels de marque Allen Bradley et Rockwell
insat07
Asservi son premier moteur
Asservi son premier moteur
Messages : 23
Inscription : 29 août 2016, 11:36

copie 16 bit d une variable rslogix5000

Message par insat07 »

Bonjour
cJ ai une variable de type DINT. Je veux lire seulement 16 bit de cette variable (bit 17 a 32) et l enregistrer dans une autre variable de type INT.
comment je peux faire ca avec rslogix5000
merci
SLC504
Code son premier grafcet
Code son premier grafcet
Messages : 40
Inscription : 17 nov. 2016, 14:33

Re: copie 16 bit d une variable rslogix5000

Message par SLC504 »

Bonjour,

Je ne connais pas RsLogix 5000 mais je suppose que c'est semblable à RSlogix 500.

Il y a une instruction MVM (Masked Move) qui peut sans doute faire le boulot. En paramètres tu passes la variable que tu veux copier, le masque (00FFh) et la variable de destination. Si tu ne trouves pas cette instruction, un AND devrait marcher aussi (au fond, c'est la même chose !).

À noter que le masque peut être mis dans une variable plutôt que dans l'instruction en dur, si celui-ci devait pouvoir changer au fil de l'exécution de ton programme.

N'hésite pas à revenir dire si ça marche !
insat07
Asservi son premier moteur
Asservi son premier moteur
Messages : 23
Inscription : 29 août 2016, 11:36

Re: copie 16 bit d une variable rslogix5000

Message par insat07 »

Bonjour oui il y a dans rslogix5000 mais je pense cette instruction copie les bits voulu sur une variable de type dint (même type que source).
SLC504
Code son premier grafcet
Code son premier grafcet
Messages : 40
Inscription : 17 nov. 2016, 14:33

Re: copie 16 bit d une variable rslogix5000

Message par SLC504 »

Si tu mets un INT en destination, il copiera le résultat dans un INT...

En stock nous avons également l'instruction BSL qui décale les bits à gauche, donc tu peux aussi faire 8 fois BSL pour ramener tes bits, et faire un MVM FF00h (mais bon, pourquoi faire compliqué ?)
MiGaNuTs
Dieu du process
Dieu du process
Messages : 981
Inscription : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: copie 16 bit d une variable rslogix5000

Message par MiGaNuTs »

Tu divise par 2 puissance 16 (16#0001 0000) pour décaler a droite de 16 bits, et après tu fait un DINT_TO_INT.
Je suis pas calé en ABB, mais a priori c'est deux instructions standard que tu trouve sur tout automate qui se respecte.
dehell
Codeur fou
Codeur fou
Messages : 236
Inscription : 19 janv. 2016, 09:24
Localisation : Alès

Re: copie 16 bit d une variable rslogix5000

Message par dehell »

Bonjour,
L'instruction BTD (bit field distribute) répond à ton besoin.
Cordialement
Répondre