Ban2020 1

Créer un graphe process avec Windev

JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 18/02/2017 à 09:46 Citer ce message

Bonjour à tous !

Je suis en train ou du moins j'essais de développer une supervision avec le logiciel Windev, lors de mon dernier post un abonné m'a apporté beaucoup de conseils et de solutions et je le lui ai fortement reconnaissant.
Aujourd'hui, j'ai une nouvelle demande qui concerne les courbes, dans la création du synoptique je dois implanter un process analyst view ou plus communément une courbe temps réelle.
Cependant, je n'ai aucune pratique avec cet outil de programmation et par conséquent je ne sais pas si c'est réalisable ou s'il faut que j'opte pour l'installation d'un ActiveX.
Vous serait-il possible de me donner quelques pistes et me dire si c'est tout à fait réalisable avec Windev ?

Je vous en remercie d'avance à tous pour votre aide et vous souhaite une très bonne journée.

Cordialement.

JbOne
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 18/02/2017 à 13:03 Citer ce message

Bonjour,
Le Wlanguage est un langage de programmation comme un autre,il est donc tout à fait possible de créer un graphe temps réel avec.

En gros tu vas procéder comme suit :
- Tu utilises le contrôle graphe
- Tu crées un tableau pour tes abscisses
- Tu crées un tableau pour tes ordonnées
- Tu utilises un Timer.

Après tu vas créer une procédure qui sera événementielle (qui s’exécute à chaque tick du timer).Tes tableaux sont vidés et remplacés par les nouvelles valeurs au fur et à mesure.Les anciennes valeurs vont disparaitre du tableau de sorte à ne pas avoir d'empilage au niveau de la courbe.

PS : J'ai plus WinDev avec moi,si quelqu'un a du code sur cela,il est le bienvenu.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 19/02/2017 à 09:46 Citer ce message

Bonjour et merci une fois de plus automationsense pour ton aide précieux (c'est sincère), désolé de répondre que maintenant, j'avais pas vu que dans le mail il fallait confirmer son email pour recevoir les notifications du coup je n'ai pas vu que tu m'avais répondu.
J'ai bien pris note de ta réponse alors en complément à mon 1er post, je dois enregistrer ces données en temps réel, c'est à dire, de permettre à un utilisateur de rappeler une courbe sur période qu'il aura défini, que me conseillerais-tu ? Je pensais opter soit :
Créer une BDD HyperFiles qui stocke abscisses, ordonnées, date, heure et nom de la variable ou alors faire la même chose en générant des fichiers texte journalier.
Tu en penses quoi ?

Ah ! Aussi ! Petite précision :
Qu'entends-tu par 2 tableaux (abscisse et ordonnée) ? Il faut que j'intègre ma courbe dans un seul et même tableau.

En te remerciant d'avance.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 19/02/2017 à 16:58 Citer ce message

Oui tu peux aussi générer des fichiers texte journalier.Après si c'était moi,j'aurais mis toutes les données dans un même fichier HFSQL,cela facilite plus l'accès vu que tout se trouve dans un même fichier de données.

Je parlais des tableaux qui vont contenir les variables permettant de construire la série de points de ta courbe.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 19/02/2017 à 17:40 Citer ce message

Ok ! Merci automationsense, je vais donc opter pour le HFSQL, je suis actuellement entrain de faire des essais de courbes, j'ai quelques soucis d'adaptation notamment sur la partie défilement je sais pas trop comment faire ... mettre une scrollbar ?? ou autres ??? Tu aurais une petite idée ?
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 19/02/2017 à 18:15 Citer ce message

J'arrive bien à ajouter les données sur l'axe des ordonnées mais je ne sais pas comment ajouter l'heure sur l'axe des abscisses ?
J'ai 2 variables de types tableau mais quand je paramètre le champ graphe mais 2 variables sont sur le même axe.

Est ce que tu sais comment on paramètre ce champ ?

En te remerciant d'avance.

Cordialement.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 20/02/2017 à 12:40 Citer ce message

Oui tu peux utiliser un Scrollbar.

Il y'a longtemps que j'ai pas utilisé WinDev mais de mémoire je pense que tu peux spécifier une variable pour ton axe des abscisses et une autre pour les ordonnées via le composant graphe.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 20/02/2017 à 14:11 Citer ce message

Bonjour automationsense,

Je suis vraiment désolé de poser autant de questions mais en même temps je n'ai pas le choix :-(
J'ai bien pris note pour le scrollbar et je m'en occuperai après ce problème, je viens de me rendre que si j'ai plus de 1 variable à afficher dans mon graphe, je ne peux pas attribuer une échelle différente, je m'explique :
Sur l'axe des abscisses je vais afficher les valeurs de la variable "A" dont son échelle est de 0 à 1000 et la variable "B" dont son échelle est de 0 à 60, dans l'état actuel des choses, le graphe se base sur le plus ce qui par conséquent ne me permet pas de visualiser les 2 variables correctement.
Dans un soucis de confort, je suis obligé d'afficher ces 2 courbes dans le même graphe et quand je dis 2, je suis gentil, en réalité c'est 9.
Saurais-tu si on peut attribuer plusieurs échelles à différentes variables ?

En te remerciant d'avance.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 21/02/2017 à 15:04 Citer ce message

Je sais pas s'il est vraiment possible de mettre des courbes de différentes échelles sur un même graphe.Si tu n'a pas besoin de comparer l'évolution des courbes,tu peux peut être les mettre sur des onglets différents ou calques différents.

Oui il existe une méthode .Write qui prend normalement en paramètre la variable à écrire dans le groupe.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 22/02/2017 à 11:45 Citer ce message

Bonjour automationsense,

Lorsque tu parles de
Oui il existe une méthode .Write qui prend normalement en paramètre la variable à écrire dans le groupe.
, tu veux faire référence à un post que j'ai noté précédemment ? Si c'est bien ça, j'ai essayé avec la syntaxe suivante : itemOPC>>write(1) mais ça ne fonctionne pas.

Je t'en remercie d'avance.

Cordialement.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 22/02/2017 à 17:22 Citer ce message

Oui c'est cela.

Cependant,pour la méthode .Write,elle prends en paramètre la variable à écrire dans le groupe du serveur OPC.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 22/02/2017 à 17:50 Citer ce message

Ok ! Merci automationsense pour ta réponse, donc si je résume ce que tu m'as noté, je dois écrire comme suit :
itemOPC>>write("MaVariableAPI","UneValeur")

C'est ça ?

En te remerciant d'avance.

Cordialement.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 22/02/2017 à 18:07 Citer ce message

Non la fonction prends un seul paramètre qui est la variable à écrire.Tu dois faire l'affectation de la variable ailleurs.

Tu auras donc

itemOPC>>write(UneValeur)
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 22/02/2017 à 20:53 Citer ce message

Ok ! Si c'est ça ? J'ai déjà fait laissé et lors de l'exécution de la méthode j'ai eu un message d'erreur. C'est la même chose que read ?
J'ai pas mon dongle sur moi mais de mémoire :

pautVariableA est un objet automation dynamique

pautVariableA>>GroupOPC>>AddItem("VariableA")

pautVariableA>>write("1")

Je l'ai écrit de mémoire, je pense que j'ai oublié des choses mais dans le principe, je l'ai écrit comme ça et ça ne fonctionne pas ;-(

Si tu as une syntaxe à me communiquer, je t'en serai très reconnaissant ?

En attendant, je te remercie d'avance.

Cordialement.
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 23/02/2017 à 08:52 Citer ce message

Hello automationsense !

Bon ! J'ai trouvé, en fait il faut procéder comme suit :

// Déclaration globale de l'objet
gpautToto est un objet Automation dynamique

// Fin d'initialisation de la fenêtre (ou ailleurs) affectation dans le groupe préalablement créé
gpautToto = oGroupe>>OPCItems>>AddItem(gsNomAlias + "!%MW5710", 1)

// Dans un bouton de test sur le clic
gpautToto>>value
gpautToto>>write(1234)

Et là ! Ça fonctionne ! Mon erreur était dû à l'oublie de la méthode value avant l'écriture.

C'est tout bon ! J'ai plus qu'à me concentrer sur la création de mes synoptiques.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 23/02/2017 à 14:00 Citer ce message

Bonjour,
Parfait t'as fais du bon boulot
Ce que je ne comprends pas c'est ta méthode gpautToto>>value ,normalement tu as en pas besoin.Essaies de le mettre en commentaire,normalement cela devrait marcher sans cette méthode.
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 23/02/2017 à 15:20 Citer ce message

Bonjour,

Effectivement, je viens de faire le test est ça fonctionnement correctement en enlevant "value", je ne sais pas pourquoi avant ça ne fonctionnait pas ? C'est d'ailleurs pour ça que j'avais créé un post.
Une p'tite question au passage :
Est-ce que tu saurais ou je peux télécharger une collection d'image pour créer l'animation de mes synoptiques ?
En te remerciant d'avance.
Cordialement.
automationsense
automationsense
Modérateur
Automaticien vétéran

480 messages
Inscrit le 28/04/2016

le 23/02/2017 à 16:32 Citer ce message

Pour les images soit tu les crées toi même ou bien tu cherches sur Google image.

Tu peux aussi acheter des contrôles ici : http://www.softwaretoolbox.com/symbolfactorynet .(J'ai jamais essayé avec WinDev,mais normalement cela devrait marcher).
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
JbOne73
JbOne73
Modérateur
Automaticien habitué

32 messages
Inscrit le 12/02/2017

le 23/02/2017 à 18:10 Citer ce message

Merci automationsense pour ton aide, en réponse à
tu cherches sur Google image

Je l'ai déjà fait sous plusieurs mots de recherche mais je n'ai jamais eu ce que je voulais donc je sais pas ce que tu as mis comme critère de recherche ou mots clés pour obtenir le lien que tu m'as donné ?
Merci pour tout

Répondre à ce message

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3