Recherche de bit dans un mot sur m221
Recherche de bit dans un mot sur m221
Bonjour à tous,
Je suis sur un petit projet de machine qui comporte des défauts stockés dans les bits des mots MW30 à MW40.
Je cherche à obtenir le premier bit à 1 dans cette plage.
Pour cela j'ai essayé d'utiliser la fonction Find_gtr sur les mots MD30 à MW40.
J'ajoute 30 au résultat obtenu pour obtenir la valeur du mot double contenant le premier bit en défaut et là je bloque.
Je ne sais pas comment utiliser cette valeur car je ne sais pas écrire un MWx avec x en variable.
Avez vous une idée ?
Je vous remercie
Je suis sur un petit projet de machine qui comporte des défauts stockés dans les bits des mots MW30 à MW40.
Je cherche à obtenir le premier bit à 1 dans cette plage.
Pour cela j'ai essayé d'utiliser la fonction Find_gtr sur les mots MD30 à MW40.
J'ajoute 30 au résultat obtenu pour obtenir la valeur du mot double contenant le premier bit en défaut et là je bloque.
Je ne sais pas comment utiliser cette valeur car je ne sais pas écrire un MWx avec x en variable.
Avez vous une idée ?
Je vous remercie
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Recherche de bit dans un mot sur m221
Slts,
%MD0 :=0
%MW10 := FIND_GTR(%MD30:5, %MD0)
donne l’adresse du 1èr %MD >0 si le bit 15 de un de ces mots est à ON ça donnera une valeur négative donc il va pas le trouver, il faudra chercher aussi les valeurs <0
%MW11 := FIND_LTR(%MD30:5, %MD0)
(*rangement du résultat dans %MD14 *)
%MD14 :=%MD30[%MW10*2] ou %MD14 :=%MD30[%MW11*2]
après il faut chercher la position du bit dans %MD14
%MD0 :=0
%MW10 := FIND_GTR(%MD30:5, %MD0)
donne l’adresse du 1èr %MD >0 si le bit 15 de un de ces mots est à ON ça donnera une valeur négative donc il va pas le trouver, il faudra chercher aussi les valeurs <0
%MW11 := FIND_LTR(%MD30:5, %MD0)
(*rangement du résultat dans %MD14 *)
%MD14 :=%MD30[%MW10*2] ou %MD14 :=%MD30[%MW11*2]
après il faut chercher la position du bit dans %MD14
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Recherche de bit dans un mot sur m221
Merci pour ce retour.
Je ne connaissais pas cette écriture. Donc si je comprends bien MD30[y] peut être égale à MD40 par exemple en fonction de la valeur du y ?
Je ne connaissais pas cette écriture. Donc si je comprends bien MD30[y] peut être égale à MD40 par exemple en fonction de la valeur du y ?
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Recherche de bit dans un mot sur m221
oui
%MD30[0] tape sur %MD30
%MD30[2] tape sur %MD32
%MD30[4] tape sur %MD34
%MD30[6] tape sur %MD36
%MD30[8] tape sur %MD38
-----
ceci dit tu veux trouver l'adresse du premier bit à 1 dans quel but ??
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Recherche de bit dans un mot sur m221
Le but est de remonter à une supervision le premier défaut bloquant.
Re: Recherche de bit dans un mot sur m221
J'ai essayé le code ce matin mais l'écriture %MD14:=%MW30[%MW11*2] ne passe pas.
Le logiciel refuse en me mettant "Elément inattendu".
J'écris pour info dans un bloc opération.
Le logiciel refuse en me mettant "Elément inattendu".
J'écris pour info dans un bloc opération.
- JC87
- Mi homme - Mi automate

- Messages : 2243
- Enregistré le : 20 oct. 2015, 13:00
- Localisation : Nouvelle Aquitaine
Re: Recherche de bit dans un mot sur m221
Hello,
Tu ne peut pas faire un indexage avec un calcul, il faut mettre %MW11*2 dans un autre mot puis utiliser ce mot comme index de %MW30.
JC
Tu ne peut pas faire un indexage avec un calcul, il faut mettre %MW11*2 dans un autre mot puis utiliser ce mot comme index de %MW30.
JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Re: Recherche de bit dans un mot sur m221
En effet cela fonctionne mieux.
Je réfléchissais également à une autre solution peut-être plus simple, avec l'emploi de la boucle for.

Qu'en pensez vous ? le mot %MW20 aura la valeur du premier mot différent de 0
- JC87
- Mi homme - Mi automate

- Messages : 2243
- Enregistré le : 20 oct. 2015, 13:00
- Localisation : Nouvelle Aquitaine
Re: Recherche de bit dans un mot sur m221
Je ne sais pas si ça marchera, je n'ai jamais fait de boucle avec un M221. A voir déjà si on peut sortir de la boucle en mettant l'index à 10 comme tu l'a écrit. Faut tester
JC
JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Recherche de bit dans un mot sur m221
slts,
es que tu cherche le n° du premier bit à 1 dans le tableau de %MW30:10 (valeur 0 à 159) ??
es que tu cherche le n° du premier bit à 1 dans le tableau de %MW30:10 (valeur 0 à 159) ??
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
