IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Automation Discussion :

[Pc vue 9.0] variables et programmation


Sujet :

Automation

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Pc vue 9.0] variables et programmation
    bonjour à tous,

    je débute à la fois sur PCVUE et en Basic (et en prog de manière générale) et malgré mes recherches je tombe sur un os...

    dans mon cas PC Vue sert à superviser un automate, j'ai donc du côté pc vue des variables, et du coté de l'automate des mots du type %MW1100

    je cherche à créer un synoptique qui me permet :
    - d'une part d'afficher sur le superviseur la valeur contenue dans une case mémoire
    (ex. %MW1100)

    - d'autre part de la modifier

    mon problème est que le nombre de mots se compte en plusieurs milliers, je cherche donc à éviter de créer une variable sur pc vue pour chaque mot.

    En d'autres termes je cherche à pouvoir afficher et modifier sur le superviseur la valeur contenue dans une case mémoire, en entrant l'adresse de cette case mémoire dans un index.
    (je me répète mais c'est assez compliqué à expliquer)

    C'est pourquoi j'ai pensé à un petit programme en basic qui récupèrerait l'adresse du mot (%MW1100 dans notre exemple)
    et qui insérerait la valeur de ce mot dans une variable PC VUE (TS.ACTUEL.MOT par exemple) afin de l'afficher.

    Mais ma question est : comment faire appel à un mot de ce type dans VBA ?

    Et la susbidiaire, est-il possible de faire appel à un mot %MW-n avec n la valeur que l'utilisateur aura entrée

    Ensuite la deuxième étape serait de pouvoir la modifier, donc de faire passer la valeur indiquée par l'utilisateur dans TS.NOUVEAU.MOT dans %MW1100

    Voilà, j'espère que vous avez compris quelque chose à mon problème...

    En tout cas, je vous remercie par avance des informations que vous pourrez me donner, je bloque un peu là..

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Points : 126
    Points
    126
    Par défaut
    Hello,

    J'ai vu une application qui est faite un peu comme ça: côté PCVue, on utilise les fonctions CIMWAY pour modifier une trame de communication en fonction de la variable qu'on veut afficher (ce que tu veux faire, à priori).
    C'est pourri, il y a des bugs, et je trouve ça pénible à maintenir.

    Perso, je traiterais cela côté API:
    - une variable "pcvue_index" recevant l'adresse de la variable à afficher, localisée à %MW0;
    - une variable "pcvue_nouvelle_valeur" recevant la valeur à écrire dans la variable en cours d'affichage, localisée à %MW1;
    - une variable "pcvue_cmd_modifier" indiquant que PCVue souhaite modifier la valeur, localisée sur un bit interne (%M0 par ex.);
    - une variable "pcvue_valeur" recevant la valeur de la variable à afficher, localisée à %MW2;
    - un bout de programme réalisant l'accès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    (* on borne l'index *)
    if pcvue_index < 1100 (* on n'accedera pas aux variables en dessous de %MW1100 *)
    then
        pcvue_index := 1100;
    end_if;
    
    if pcvue_index >= 12000 (* on n'accedera pas aux variables au dessus de %MW11999 *)
    then
        pcvue_index := 11999;
    end_if;
    
    if pcvue_cmd_modifier
    then
        %MW0[pcvue_index] := pcvue_nouvelle_valeur;
        pcvue_cmd_modifier := false;
    else
        pcvue_valeur := %MW0[pcvue_index];
    end_if;
    Côté superviseur:
    une variable "api_index" mappée sur %MW0 de l'API dans une trame d'écriture;
    une variable "api_nouvelle_valeur" mappée sur %MW1 de l'API dans une trame d'écriture;
    une variable "api_cmd_modifier" mappée sur %M0 de l'API dans une trame d'écriture;

    une variable "api_valeur" mappée sur %MW2 de l'API dans une trame de lecture.

    Reste à définir, sur un synoptique, un champ qui permette l'affichage/la modification de l'index; un champ d'affichage de la valeur, un champ de saisie de la nouvelle valeur et un bouton qui positionne api_cmd_modifier à 1.
    L'avantage de faire comme cela, c'est que, côté PCVue, ça reste simple, et côté API aussi.

    Bon courage,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je te fais la même réponse que sur un autre forum...

    Si je comprends bien, tu veux avec une variable équipement pouvoir en lire 1000. Effectivement pas sûr qu'ils te donnent les infos pour que tu n'aies pas besoin de prendre une clé de protection d'au moins 1000 variables

    Je doute que tu puisses y arriver en VBA. Tu n'as pas accès aux objets de communication de PcVue.
    Par contre en SCADA Basic tu dois avoir ce qu'il faut.

    Pour commencer, utilises le protocole Modbus plutôt qu'OPC. Ca t'évite d'avoir un logiciel en plus à payer.

    Ensuite, dans la configuration tu n'auras qu'à déclarer une trame qui ne lit qu'un seul mot dans ton automate.
    Pour la suite, comme je l'ai dit, c'est possible en SCADA BASIC avec le verbe
    CIMWAY("SETCFG","le_nom_de_ta_trame","MEMORY_ADDRESS","l_adresse_a_lire")
    A reconfirmer et à tester bien sûr, je ne fais que me baser sur leur aide.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Salut Poil Dur,

    Merci pour ta réponse, c'est vraiment ce que je cherche à faire
    Je vais essayer ça, c'était surtout la syntaxe "%MW0[pcvue_index]" qui me posait problème, mais si ça marche comme ça, aussi "simplement" c'est nickel !

    Bonne journée !

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Salut belsion,

    merci pour ta réponse
    oui en effet j'ai aussi posté ma demande sur un autre forum
    je vais tenter la méthode Poil Dur dans un premier temps

    en fait je ne suis pas vraiment libre dans le choix des protocoles, etc...
    je ne vais pas rentrer dans les détails en gros j'arrive sur un projet où le gars a tout bâclé et a tout laissé en plan avant de partir, et moi je boucle ça sachant que je n'ai jamais fait d'auto ou quoi que ce soit dans le genre

    la partie supervision est à revoir, voire refaire, mais la partie automate, protocole, je vais essayer de la laisser au max telle qu'elle est dans un premier temps

    merci en tout cas !
    Bonne journée,

Discussions similaires

  1. creation d'une vue avec des variables
    Par dark_botsay dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2010, 20h31
  2. Réponses: 4
    Dernier message: 31/10/2010, 14h34
  3. Vue SQL avec variable
    Par cobra02 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/12/2009, 18h18
  4. Transferts de variables entre programmes?
    Par funtim78 dans le forum Débuter
    Réponses: 26
    Dernier message: 21/07/2009, 16h23
  5. [SQL2K5] Vue pour hiérarchie variable
    Par Jinroh77 dans le forum Développement
    Réponses: 1
    Dernier message: 09/07/2008, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo