«

»

jan 10

L’integration du Slider [WagoLink-CodeSys]

Le slider que l’on retrouve sur l’iphone pour le réglage du volume par exemple, vas vous servir a ajuster la valeur d’un numérique a l’intérieur d’une plage donné.

Affichage dans WagoLink

On peut l’utiliser pour ajuster une durée comme ici pour la durée d’allumage d’une lampe

ou bien pour ajuster un volume

L’exemple traité dans la suite concerne le slider de réglage de volume.

Code dans WagoLink

Vous trouverez beaucoup plus de détail sur le site de JF.Pautex, l’auteur de WagoLink

Cliquer sur l’image pour agrandir

L’écriture vers l’automate s’exécute au moment ou vous lâcher le slider

Il est a noté que la <description> peut être utilisé pour afficher une valeur, cela est très utile si vous avez appliqué un coef ou un offset a votre valeur dans ce cas vous ecrirez de cette maniere

<description><!–#READPI ADR=MW6&FORMAT=%d–></description>

on lit la valeur de %MW6 et elle est affiché, vous pouvez bien sur faire afficher tout autre type de valeur

Code dans Codesys

J’utilise aussi, en  plus de WagoLink, les pages de visualisation de CodeSys (elle sont accessible depuis tout navigateur exécutant le java ou afficheur Wago Perspecto), donc j’ai besoin que les valeurs soit synchronisé entre ce qui ce passe sur mon iPhone et ce qui ce passe sur le Navigateur, de plus je voulais que quand l’amplis était a l’arrêt le volume retombe a 0 (c’est juste esthétique) et que quand on le rallume, il reprenne sa précédente valeur

J’ai donc fait ce petit affichage composé de boutons et d’un afficheur a barre

L’afficheur lit la valeur %MW6 comme CodeSys

Les boutons + et – viennent frapper les variables

PRG_ST_VOLUME_AMPLI.b_bout_sdb_up

PRG_ST_VOLUME_AMPLI.b_bout_sdb_down

La programmation est faite en ST (Structured Texte)

(* Augmentation volume SDB *)
IF b_bout_sdb_up=TRUE THEN
IF b_SDB_up_Pressed=FALSE THEN
IF %MW6<10 THEN
%MW6:=%MW6+1;
END_IF
END_IF
b_SDB_up_Pressed:=TRUE;
ELSE
b_SDB_up_Pressed:=FALSE;
END_IF
(*Diminution volume SDB *)
IF b_bout_sdb_down=TRUE THEN
IF b_SDB_down_Pressed=FALSE THEN
IF %MW6>0 THEN
%MW6:=%MW6-1;
END_IF
END_IF
b_SDB_down_Pressed:=TRUE;
ELSE
b_SDB_down_Pressed:=FALSE;
END_IF

Le programme est fait de maniere a prendre seulement en compte les pression sur la touche, vous pouvez rester appuyer sa ne montera que d’une unité.

Défauts


Il ne faut pas l’utiliser sur une plage trop grande car vous n’aurer pas de précision lors du réglage de votre valeur.