Convertir WORD en tableau de BOOL

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Snakedoc
Apprend le binaire
Apprend le binaire
Messages : 5
Inscription : 17 oct. 2019, 13:21

Convertir WORD en tableau de BOOL

Message par Snakedoc »

Bonjour à tous,

Je rencontre un "souci" sur lequel je sèche bêtement.

Je récupère un WORD d'une connexion Modbus RS485 que j'aimerai convertir en tableau de BOOL, comment je peux faire ?

En effet chaque Bit corresponds à un événement ou défaut dans mon cas. Sauf que par exemple si je reçois 128, c'est que c'est mon bit 7 qui est à 1. Le plus simple est donc peut etre de faire un tableau de BOOL.

Auriez-vous une astuce ? Ca doit être tout bête mais là...

Merci par avance.
Michael
Snakedoc
Apprend le binaire
Apprend le binaire
Messages : 5
Inscription : 17 oct. 2019, 13:21

Re: Convertir WORD en tableau de BOOL

Message par Snakedoc »

Je me réponds à moi même, il y a un WORD_AS_BIT qui existe dans la bibliothèque de codesys qui existe.
agea28
Code son premier grafcet
Code son premier grafcet
Messages : 35
Inscription : 04 mai 2019, 23:07
Localisation : Eure et Loir
Contact :

Re: Convertir WORD en tableau de BOOL

Message par agea28 »

Une autre solution aurait pu être de passer dans une boucle et faire un ET avec un masque dont la valeur = 1 (pour récupérer l'état du bit de poids faible) puis diviser ton WORD par 2 pour décaler d'un bit vers la droite, et ainsi de suite. Comme ça tu récupères l'état de tes bits un à un.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Convertir WORD en tableau de BOOL

Message par itasoft »

slts,
le plus simple encore c'est d'utiliser les bits de la variable WORD dans laquelle on reçois l'info
Automaticien privé (de tout)
itasoft@free.fr
dpo
Créateur de langage
Créateur de langage
Messages : 715
Inscription : 27 nov. 2015, 20:03

Re: Convertir WORD en tableau de BOOL

Message par dpo »

si ton mot qui contient les états d'appelle "mot_etat"
tu dois pouvoir écrire mot_etat.0 pour lire directement le bit 0
si tu veux lui donner un nom tu fais une variable en_marche
et tu l'affectes
en_marche:=mot_etat.0
ça doit aussi être valable si tu récupères ton mot dans une adresse %MW3000
en_marche:=%MW3000.0
Répondre