Encodeurs GRR !

Impossible de faire marcher deux de mes encodeurs !!
Partons d'un de mes encodeurs qui fonctionne :
Dans le controlador, il est branché sur 235 et 236. La rotation est la suivante a chaque cran :
- *
- 235
- 235-236
- 236
- *
- etc ...
Ce qui correspond bien à 00-10-11-01-00 etc
Le SIOC attaché fonctionne :
Var 3501, name E_FO_FREQ, static, Link IOCARD_ENCODER, Input 235, Aceleration 2, Type 2 // Encodeur pour frequence
{
L0 = &E_FO_FREQ // * -1 turning clockwise should be plus
&P_SQW_100 = ROTATE 0 77 L0
]
Donc jusque là, je suis content car j'ai l'impression de bien faire marcher SIOC. Ma variable P_SQW_100 change bien et je peux le voir sur le display correspondant.
Là ou je ne comprends plus rien ....
Prenons l'un des deux encodeurs qui ne marchent pas.
Dans le controlador, il est branché sur 286 et 287. La rotation est la suivante a chaque cran :
- *
- 286
- 286-287
- 287
- *
- etc ...
Ce qui correspond bien à 00-10-11-01-00 etc
Le Code SIOC attache est le suivant :
Var 2442, name E_SQW_Rot1, static, Link IOCARD_ENCODER, Input 286, Aceleration 2, Type 2 // Encodeur pour frequence
{
L0 = &E_SQW_Rot1 // * -1 turning clockwise should be plus
&P_SQW_100 = ROTATE 0 77 L0
}
Et bien là, ça ne marche pas. La variable P_SQW_100 ne change pas.
Donc, ce n'est pas un problème Hardware car dans le controlador, l'encodeur semble marcher comme il le faut.
Ce n'est pas un problème de câblage car les entrées 286 et 287 correspondent bien à deux entrées consécutives sur la carte Master et la rotation est bien en GRAY 2bit.
Ce ne semble pas être un problème de programmation car avec le premier encodeur sur 235/236 fonctionne bien avec le même script.
L'autre encodeur qui ne marche pas est lui sur les entrées 279 et 280 est fonctionne correctement selon le controlador. Même script SIOC.
Alors quel est le problème ?

Câblage ? Pourtant j'utilise bien deux entrées logiques successives de la carte master (bien que les PINs ne soient pas successifs sur le connecteur).
A votre bon coeur m'sieurs-dames
Partons d'un de mes encodeurs qui fonctionne :
Dans le controlador, il est branché sur 235 et 236. La rotation est la suivante a chaque cran :
- *
- 235
- 235-236
- 236
- *
- etc ...
Ce qui correspond bien à 00-10-11-01-00 etc
Le SIOC attaché fonctionne :
Var 3501, name E_FO_FREQ, static, Link IOCARD_ENCODER, Input 235, Aceleration 2, Type 2 // Encodeur pour frequence
{
L0 = &E_FO_FREQ // * -1 turning clockwise should be plus
&P_SQW_100 = ROTATE 0 77 L0
]
Donc jusque là, je suis content car j'ai l'impression de bien faire marcher SIOC. Ma variable P_SQW_100 change bien et je peux le voir sur le display correspondant.

Là ou je ne comprends plus rien ....
Prenons l'un des deux encodeurs qui ne marchent pas.
Dans le controlador, il est branché sur 286 et 287. La rotation est la suivante a chaque cran :
- *
- 286
- 286-287
- 287
- *
- etc ...
Ce qui correspond bien à 00-10-11-01-00 etc
Le Code SIOC attache est le suivant :
Var 2442, name E_SQW_Rot1, static, Link IOCARD_ENCODER, Input 286, Aceleration 2, Type 2 // Encodeur pour frequence
{
L0 = &E_SQW_Rot1 // * -1 turning clockwise should be plus
&P_SQW_100 = ROTATE 0 77 L0
}
Et bien là, ça ne marche pas. La variable P_SQW_100 ne change pas.
Donc, ce n'est pas un problème Hardware car dans le controlador, l'encodeur semble marcher comme il le faut.
Ce n'est pas un problème de câblage car les entrées 286 et 287 correspondent bien à deux entrées consécutives sur la carte Master et la rotation est bien en GRAY 2bit.
Ce ne semble pas être un problème de programmation car avec le premier encodeur sur 235/236 fonctionne bien avec le même script.
L'autre encodeur qui ne marche pas est lui sur les entrées 279 et 280 est fonctionne correctement selon le controlador. Même script SIOC.
Alors quel est le problème ?


Câblage ? Pourtant j'utilise bien deux entrées logiques successives de la carte master (bien que les PINs ne soient pas successifs sur le connecteur).
A votre bon coeur m'sieurs-dames