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 :

OFS avec VB6


Sujet :

Automation

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut OFS avec VB6
    Bonjour,

    J'utilise un tsx3722 avec un coupleur ETZ 510.
    J'utilise le logiciel vijeo look avec OPC de chez schneider OFS.
    Je communique bien avec l'automate et vijeo look (lecture d'entrées et écriture sortie s automate) avec le driver XIP.
    Je voudrais faire la même chose avec VB6.
    Je ne sais pas quel outil utiliser sur VB ?
    J'ai déjà fait de la com avec MScomm 6 pour la liaison série.
    Avez vous des pistes pour me lancer ?
    L'objectif étant de visualiser sur VB6 les entrées et les sorties API dans un premier temps.

    Merci d'avance

    CC

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonsoir,

    si tu as bien OFS .. celui-ci ce chargeant de la communication avec l'automate tu dois t'interfacer avec lui..

    tu peu communiquer avec ton serveur OFS grâce à l'OLE Automation.

    Je n'ai jamais pratiqué mais le manuel d'OFS donne la marche à suivre :

    Commence par rajouter à ton projet VB6 la référence à
    SA OPC Automation 2.0
    ensuite :
    Citation Envoyé par manuel OFS
    Création d'une connexion avec le serveur OFS (en local ou déporté) :
    OPC-AUTOMATION : Connect()
    OPC-CUSTOM : CoCreateInstance() + QueryInterface() pour IOPCServer + Get
    GroupCollection(), création d'un ou de plusieurs GROUPES :
    OPC-AUTOMATION : GroupCollection \ Add() + Get ItemsCollection()
    OPC-CUSTOM : IOPCServer \ AddGroup()+ QueryInterface() pour
    IOPCItemMgt, création de quelques ITEMS dans un groupe déjà créé :
    OPC-AUTOMATION : ItemsCollection \ AddItem() ou AddItems()
    OPC-CUSTOM : IOPCItemMgt \ AddItems(), LECTURE ou ECRITURE des ITEMS d'un groupe :
    OPC-AUTOMATION : Groupe ptr \ ASyncRead() ou Groupe ptr \ ASyncWrite()
    OPC-CUSTOM : IOPCASyncIO2 \ Read() ou IOPCASyncIO2 \ Write(), destruction des GROUPES créés (qui peut inclure la destruction de tous les
    items contenus dans ces groupes) :
    OPC-AUTOMATION : GroupCollection \ Remove() ou RemoveAll()
    OPC-CUSTOM : IOPCServer \ RemoveGroup(), fermeture de la CONNEXION avec le serveur OFS :
    OPC-AUTOMATION : Disconnect()
    OPC-CUSTOM : IOPCServer \ Release().
    désolé de ne pas pouvoir t'aider plus je n'ai pas accès a OFS...

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Bonjour Merci pour ces conseils,

    Dans VB, j'ai un outil qui s'appelle OLE et je n'ai pas la possibilité d'inserer un objet OLE Automation.
    Est ce normal ?
    En revanche j'ai un objet vijeo look ....
    Est ce que cela peut m'aider.

    Merci d'avance

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Si tu as bien installé le serveur OFS sur ton PC, dans le menu projet/Référence tu dois trouver "SA OPC automation" il faut cocher cette case de référence..

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Merci, la case était bien cochée.
    Donc cela semble possible.
    As tu une idée du type outils qu'il faut utiliser pour récupérer des informations de l'API par OFS ?
    Merci

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    il faut déjà commencer par configure OFS grâce à
    "Outil de configuration OFS"

    y rajouter l'alias vers ton automate et importer le fichier xvm de l'application

    ensuite tu utilise le client OFS installé avec le serveur qui te permet de tester ton installation d'OFS ...

    pour tester j'ai fait cela avec le programme de démo livré avec unity "DemoUnitypro_L_Premium" et le simulateur d'automate l'alias paramétré dans l'outil de configuration est alors :
    Nom : simulateur
    Accès : MBT:192.168.1.47/U

    192.168.1.47 étant l'adresse IP de mon PC ou tourne le simulateur et OFS.



    ensuite dans le projet VB déclaration des variables :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oOFS As New SAOPCAutomation.OPCServer
    Dim WithEvents oGrp1 As OPCGroup
    Dim oItem1 As SAOPCAutomation.OPCItem

    pour tester j'ai décomposé les différentes actions, un premier bouton (cdConnect ) permet d'effectuer la connexion au serveur OPC et créer un groupe de variable :
    Code vb : 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
    '
    ' Connection
    '
    Private Sub cdConnect_Click()
        ' connection
        oOFS.Connect "Schneider-Aut.OFS"
        If oOFS.ServerState = 1 Then
            MsgBox "Connection OK"
         Else
            MsgBox "Défaut connection"
            Exit Sub
        End If
        ' Connection OK création du groupe
        Set oGrp1 = oOFS.OPCGroups.Add("MonGroupe")
        DoEvents
        oGrp1.IsSubscribed = True
        MajBoutons
    End Sub

    Ensuite il faut créer les "Items", avec si nécessaire pour la suite une affection a une variable (oItem1)

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub cdAjtItems_Click()
        Set oItem1 = oGrp1.OPCItems.AddItem("simulateur!Start", 1)
        'Ajout d'un deuxiéme Item
        'Le 3° paramétre est "ClientHandle" , identifiant de type long géré par l'application
        oGrp1.OPCItems.AddItem "simulateur!Weighing_Material_A", 2
    End Sub

    une fois les variables crées on peu lire leur valeur sur demande (action sur bouton cdLectIem1 ) , et par exemple modifier la couleur d'un shape (shItem1) :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    '
    ' Lecture valeur variable
    '
    Private Sub cdLectIem1_Click()
        oItem1.Read OPCDevice
        shItem1.BackColor = IIf(oItem1.Value = True, &HFF00&, &H80000005)
    End Sub

    Un autre bouton (cdToggleItem1 ) permet inverser la valeur booléenne de la variable :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cdToggleItem1_Click()
        oItem1.Write Not oItem1.Value
     End Sub

    Grâce a la déclaration avec événements du groupe oGrp1, l'on peu aussi utiliser les fonctions événementielles associées pour animer par exemple le shape sh2Item1 et le label LbMaterielA associé au deuxième item :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub oGrp1_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
     Dim i As Integer
     For i = 1 To NumItems
        Select Case ClientHandles(i)
            Case 1 ' ClientHandle utilisé lors de l'ajout Item Start
                 sh2Item1.BackColor = IIf(ItemValues(i) = True, &HFF00&, &H80000005)
            Case 2 ' ClientHandle utilisé lors de l'ajout de l'item weighing_Material_A
             LbMaterielA.Caption = CStr(ItemValues(i))
        End Select
    Next
     
    End Sub



    Voila ... pour finir il suffit de ce déconnecter d'OFS :


  7. #7
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Bonjour bbil,

    Dans un premier temps, merci pour tes explications.
    J'ai configuré OPC comme tu me l'a indiqué.
    Je n'ai pas Unity, mais j'ai mis un fichier table symboles ( extension SCY)
    voir pièce jointe.
    J'ai ouvert VB6, j'ai inséré le code avec la déclaration des variables et le premier bouton et fermeture serveur
    J'ai exécuté, et j'ai un défaut de compilation sur la premier ligne.
    Est ce normal ?
    merci d'avance

    CC
    Images attachées Images attachées  

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Une chose après l'autre avant de partir sous VB6 as tu testé ta configuration du serveur OFS avec le client OFS comme je te l'ai dis plus haut...

    Tu as bien un automate sur ton réseau ...? pour ma part sans automate sous la main j'ai utilisé le simulateur d'Unity ... mais si tu n'as pas Unity tu ne dois pas avoir le simulateur...
    Et dans ta configuration OFS est a adapter avec ton matériel, si tu communique par ethernet, avec ton 37 tu dois utiliser un driver XIP ..


    Pour l'erreur de compilation,dans ton projet VB6 as tu penser à cocher la référence " SA OPC Automation"

  9. #9
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Pour la compilation en VB, je n'avais pas coché SA OPC AUTOMATION.
    Tu as raison, commençons par le début.
    Mon automate est relié avec pour PC avec le coupleur Ethernet à l'aide du driver XIP, je communique (RUN/STOP) la communication est opérationnelle.
    Avec l' OFS, j'ai créé un alias
    il s'appelle 14juillet, l'adresse IP coupleur automate :172.20.177.221
    et un fichier SCY correspondant à mes variables API.
    Ou se situe le client installé avec le serveur ? (OFS manager ?)
    Merci d'avance

  10. #10
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Nouvelle information
    Je viens de lancer le logiciel VIJEO LOOK (produit Schneider)
    Dans le OPC Factory Server, je vois un client Connecté.(groups =4)

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Pour le client OFS , celui-ci est installé avec le serveur et rajoute une entrée "Client OFS" dans les menu démarrer, mais c'est une option tu ne l'as peu être pas installé...

    Citation Envoyé par riquet90 Voir le message
    (....)driver XIP, (...)
    Avec l' OFS, j'ai créé un alias
    il s'appelle 14juillet, l'adresse IP coupleur automate :172.20.177.221
    (...)
    de mémoire il y as un wizard qui te permet de définir l'adresse à affecter a ton alias .. et je pense que celle-ci doit commencer par XIP et pas MBT comme dans ta copie d'écran

    ensuite 14juillet, comme alias j'aime pas trop ... l'alias est peu-être valide mais, j'aurai quand même préféré que celui-ci respecte (au cas ou ..) les règles habituelle de nommage de variables ( commencer par une lettre et pas un chiffre ... )

  12. #12
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Maintenant j'ai changé mon 14juillet en aout et j'ai une adresse XIP 5.1
    5 network 1 Station défini dans la configuration du coupleur.
    j'ai l'impression que j'ai accès à l' OPC seulement si le logiciel Vijéo look est ouvert. Dans ce cas, je vois bien un client .
    merci pour ton aide, j'ai du mal de trouver des infos sur le net.

    En passant sur VB6, j'ai exécuté le code déclarations de variables et cdConnect
    J'ai le message Connection OK
    (J'ai juste mis en commentaire MajBoutons car pb de compilation)
    Est ce un début de réponse

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    oui c'est un début de réponse... le nombre de connections actives a t' il bougé dans ton serveur ..?

    Pour MajBoutons.. c'est juste pour activer/désactiver les différents boutons selon si l'on est connecté ou pas... etc....

  14. #14
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    oui le nombre de connections actives incrémente à chaque appui sur cdconnect.
    J'essaie de rajouter ton code

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par riquet90 Voir le message
    oui le nombre de connections actives incrémente à chaque appui sur cdconnect.
    J'essaie de rajouter ton code
    oui c'est ton code qui doit se limiter a une connexion, et effectuer une déconnexion a sa fermeture ...

  16. #16
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Bonsoir bbib,

    Je tenais à te remercier pour tes conseils,ces 2 jours ci je suis en déplacement mon travail sur le VB est en attente.
    Je voulais te prévenir de mon mutisme, j'espère vite d'envoyer des mails que bon fonctionnement !!!
    Merci encore

  17. #17
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    je continue à écrire le code ci dessus.
    Au sujet du bouton CdAjtItems.
    Est ce lui qui fait la relation entre le VB et le fichier .SCY (PL7) ?
    Que représente dans ton code ("simulateur et !Start") ?
    Dans mon fichier .SCY (le nom du fichier pour "simu" et j'ai une var_global défini en Start AT %M5)
    Lorsque j'appuie sur le Bouton lecture j'ai une erreur d'execution
    Variable objet ou variable bloc With non définie.

    Aurais tu une idée ?
    Merci d'avance

    CC

  18. #18
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    CdAJitem , permet de rajouter des variables ... comme tu peu le faire avec l'outil de test Client OFS (test que tu as un peu abandonné il me semble..)
    ..

    simulateur : c'est l'alias de l'automate dans le configurateur OFS , pour toi cela doit-être aout ?

    start : c'est le nom d'une variable du programme unity...


    Je suis pas sur que dans ton cas tu puisse mettre directement le symbole de ta variable ( c'est cela que tu devrai tester avec ton client OFS)

    essai une adresse du genre :
    avant le bouton lecture il faut que la création de l'item par cdAjtItem ce soit bien effectué sans erreur...

  19. #19
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 96
    Points : 44
    Points
    44
    Par défaut
    Bonsoir,
    Désolé mais je n'ai aps tjrs la possibilité de bosser à plein sur ce projet.
    J'ai fait la modif que tu m'as dite.
    Dans le status de OPC factory Server
    Je vois bien apparaître un Items lorsque j'appuie sur le bouton CdAjt mais quand j'appuie sur le bouton lecture
    J'ai une erreur de execution (objet est requis)
    le compilateur est sur la fonction ShItem1.
    Que doit -il se passer pendant la lecture ?

    Merci d'avance

    CC

  20. #20
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bbil
    ...par exemple modifier la couleur d'un shape (shItem1)...
    tu as placé ce shape sur ta form ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. OFS avec VB6
    Par riquet90 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/08/2010, 12h45
  2. Client-serveur avec VB6 inside
    Par kremvax dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/11/2005, 14h08
  3. connection base de données avec VB6
    Par 24 faubourg dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/11/2005, 21h03
  4. [CR9] Installation avec VB6
    Par eagleleader dans le forum SDK
    Réponses: 1
    Dernier message: 11/07/2005, 10h55
  5. [VB6] Gestionnaire des tache de windows 2000 avec VB6
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 09h21

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