Page 1 sur 2

[Unified] Utilisation d'un clavier numerique

Posté : 17 juil. 2024, 15:35
par valerypetit
Bonjour

J'aurai voulu savoir si il était possible de sélectionner d'office un clavier numérique et non pas alphanumérique lors de la modification d'un "champ d'E/S" contenant une valeur strictement numérique avec des IHM "Unified"

je ne parviens pas à trouver comment procéder.

Merci d'avance.

Re: [Unified] Utilisation d'un clavier numerique

Posté : 17 juil. 2024, 16:29
par djé
valerypetit a écrit : 17 juil. 2024, 15:35 Bonjour

J'aurai voulu savoir si il était possible de sélectionner d'office un clavier numérique et non pas alphanumérique lors de la modification d'un "champ d'E/S" contenant une valeur strictement numérique avec des IHM "Unified"

je ne parviens pas à trouver comment procéder.

Merci d'avance.
Salut,
A part créer son propre clavier et l'appeler lors de la saisie, non ça ne semble pas possible.

Re: [Unified] Utilisation d'un clavier numerique

Posté : 19 juil. 2024, 17:20
par Paum
Bonjour,

Le sujet m'intéresse également.

est ce qu'il faut utiliser un script dans ce cas pour écrire dans une valeur tampon qui sera ensuite envoyée dans la bonne case?

l'intérêt est là, mais ça semble malgré tout vraiment compliqué à mettre en place.....

Re: [Unified] Utilisation d'un clavier numerique

Posté : 20 juil. 2024, 13:32
par djé
Salut,
Jette un œil sur cette page Boite à Outil WinCC Unified
télécharge la doc + projet exemple.
Il y a beaucoup de choses dont des claviers personnalisés ;)

Re: [Unified] Utilisation d'un clavier numerique

Posté : 23 juil. 2024, 09:45
par Paum
Bonjour,

Merci pour ta réponse.
Je suis en train de regarder ça.
Etonnamment, le clavier Int fonctionne très bien alors que le clavier Real non....

Les scripts ont pourtant l'air bon.....

Re: [Unified] Utilisation d'un clavier numerique

Posté : 23 juil. 2024, 14:47
par valerypetit
Bonjour,

Je rencontre le même problème,

Dans le clavier proposé, il y a un petit écran qui affiche la valeur tapé jusqu'à la validation et l'envoi de cette valeur vers le champ en cours d'édition.

chez moi, lorsque j’appuie sur les touche aucun valeur ne s'affiche à l'écran et rien non plus dans le champ final.

Je n'explique pas le problème, mais il est déjà présent dans le projet d'origine

Re: [Unified] Utilisation d'un clavier numerique

Posté : 23 juil. 2024, 17:34
par djé
Bonjour,
J'ai regardé vite fait et j'ai le même problème sur le clavier "Real"

Re: [Unified] Utilisation d'un clavier numerique

Posté : 23 juil. 2024, 18:10
par djé
Re,

Dans l'interface de variables de la faceplate "NumericRealKeyboard" la variable Keyboard devrait être de type "WString"
realKb.png

Re: [Unified] Utilisation d'un clavier numerique

Posté : 25 juil. 2024, 16:00
par Paum
Top!

Merci djé, ça fonctionne.

Vu que tu à l'air de connaitre la bête, j'en profite pour te poser une dernière question.

Je voudrais faire fonctionner le script dans un Faceplate.

dans ce cas, 3 erreur sont indidées qur les lignes suivante :

Code : Tout sélectionner

  keyboardFP = UI.OpenFaceplateInPopup("AlphaNumericKeyboard_V_0_0_44", "Keyboard", data);
  keyboardFP = UI.OpenFaceplateInPopup("NumericIntKeyboard_V_0_0_37", "Keyboard", data);
  keyboardFP = UI.OpenFaceplateInPopup("NumericRealKeyboard_V_0_0_35", "Keyboard", data);
J'ai apporté la correction suivante :

Code : Tout sélectionner

//Insérer ici les définitions pour les événements
let keyboardFPName = '';
function Keyboard(DataTyp, Tag, itemTop, itemHeight, itemLeft) {
    let keyboardFP;
    let ui = UI;
    let count = ui.PopupScreenWindows.Count;
    for (let i = 0; i < count; i++) {
        let name = ui.PopupScreenWindows(i).Name;
        if (name == keyboardFPName) {
            ui.PopupScreenWindows(i).Close();
            keyboardFPName = '';
            i -= 1;
        }
    }
    if (DataTyp == "string") {
        let data = { KeyboardWString: { Tag: Tag }, ColorProperty: 0xff00ff00 };
        keyboardFP = Faceplate.OpenFaceplateInPopup("AlphaNumericKeyboard_V_0_0_44", "Keyboard", data);
 }
    else if (DataTyp == "int") {
       let data = { KeyboardInt: { Tag: Tag }, ColorProperty: 0xff00ff00 };
        keyboardFP = Faceplate.OpenFaceplateInPopup("NumericIntKeyboard_V_0_0_37", "Keyboard", data);
    }
    else if (DataTyp == "real") {
        let data = { KeyboardReal: { Tag: Tag }, ColorProperty: 0xff00ff00 };
        keyboardFP = Faceplate.OpenFaceplateInPopup("NumericRealKeyboard_V_0_0_35", "Keyboard", data);
    }
    keyboardFP.Visible = true;
    keyboardFPName = keyboardFP.Name;
    }

Suite à cette modification, le clavier fonctionne correctement, mais la valeur ne s'écrie pas dans le champ lors de l'appui sur "Entrer"....

Je pense qu'il faut modifier cette ligne, mais je ne sais pas comment...

Code : Tout sélectionner

let data = { KeyboardReal: { Tag: Tag }, ColorProperty: 0xff00ff00 };

Re: [Unified] Utilisation d'un clavier numerique

Posté : 25 juil. 2024, 23:27
par djé
Salut,
C'est un peu chaud comme truc car on transmet une variable à une première Faceplate pour l'afficher après qu'elle est été transférée à la Faceplate Clavier pour y être écrite.
D'après les essais que j'ai fait la variable ne se transmet pas à l'appel de la deuxième FacePlate.
J'ignore pourquoi.