Bonjour,
1. pour aller dans le sens de votre réflexion :
vous pouvez vous inspirer de ce post où j’explique comment déterminer une tendance.
Vous pouvez facilement l’adapter en mettant un clignotant avec Ta=500ms et Tb=500ms
(si le mouvement du VR est trop lent pour être décelé en 0.5s, il faudra allonger Ta et Tb).
Le reste du principe sera identique, il faudra sauvegarder la position du VR dans 2 variables et comparer la position actuelle à la position relevée 500ms auparavant.
Si vous n’avez qu’un VR à surveiller ça ira, mais si vous en avez beaucoup ça risque d’être fastidieux.
Vous auriez alors la possibilité de dupliquer 2 comparateurs, 3 variables, 1 clignotant et 2 règles pour chaque VR.
Vous pourriez aussi n’utiliser qu’un seul clignotant pour tous les VR, celui-ci permettant la copie de toutes les positions des VR à la fois (même s’ils ne sont pas en mouvement):
- Clignotant.Output
SetvalVR1.positionMemo1_VR1Setval VR2.positionMemo1_VR2… - Clignotant.Output
SetvalMemo2_VR1sens_VR1SetvalMemo2_VR2sens_VR2… - NONClignotant.Output
SetvalVR1.positionMemo2_VR1SetvalVR2.positionMemo2_VR2… - NONClignotant.Output
SetvalMemo1_VR1sens_VR1SetvalMemo1_VR2sens_VR2…
Pour chaque VR il ne reste plus qu’à créer les 2 comparateurs et comparer la position actuelle à la variable « Sens ».
- VRx.Position > sens_VRx
- VRx.Position < sens_VRx
2. Autre réflexion :
le statut des entrées cmd UP, Down, … est accessible en événement dans le moteur de scénario.
Il suffirait de basculer des IO virtuelles à chaque changement d’état.
Non testé.