Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLIENT OPC


Information sur la source

Catégorie :OLE, DDE, Automation Niveau : Débutant Date de création : 25/05/2004 Date de mise à jour : 25/05/2004 21:59:46 Vu / téléchargé: 32 663 / 3 812

Note :
4,33 / 10 - par 3 personnes
4,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici le code source d'un client OPC, se client se connecte à n'importe quels serveurs OPC pour ensuite récuperer les différentes valeurs circulant sur le serveur.

Programme non-terminé, j'ai une erreur lors de ma lecture des variables, si quelqu'un pouvait m'aider!!!!!!!!!!!!!!!!!  please !!!!!!!!!!!!!!!!

Alors pour avoir quelques explications sur l'architecture OPC:
---------------------------------------------------------------------

OPC (OLE for Process Control) est un standard de communication basé sur la technologie OLE / COM qui constitue le nouveau moyen d'échange d'informations entre applications Ms-Windows en environnement 32-bits.

OPC offre une plus grande interopérabilité entre les applications de contrôle / commande / supervision, les équipements industriels  (API, capteurs, actionneurs) et les applications bureautiques de gestion.

OPC définit des objets standards, des méthodes et des propriétés bâtis sur le concept COM ( Component Object Model ) pour permettre à des serveurs de données « temps réel »  comme les DCS, les API et les équipements de terrain de communiquer leurs données vers des applications clientes OPC.

Ø « Plug & Play » logiciel.
Les applications peuvent facilement communiquer entre elles.

Ø Architecture Client/Serveur.
Le concept OPC s'appuie sur une architecture client/serveur. Une même application client peut solliciter plusieurs serveurs simultanément. Les serveurs peuvent être localisés soit sur une machine locale, soit sur des machines distantes à travers DCOM.

Un client OPC communique avec le serveur OPC et peut exploiter différentes fonctionnalités de celui-ci. Le client fait appel aux services fournis par le serveur.

Une liaison OPC permet de fédérer clients et serveur au sein d'un processus (In-Process), de plusieurs processus d'un ordinateur (serveur local) ou de plusieurs ordinateurs (serveur distant) .

Client OPC :
--------------

OPC repose sur une structure Client/Serveur. Le client OPC communique avec le serveur OPC et peut faire appel à ses différentes fonctionnalités.

Il s'agit notamment des fonctionnalités suivantes :
· Informations d'état.
· Gestion des erreurs.
· Recherche des éléments disponibles sur le serveur.
· Accès aux données en mode Synchrone /Asynchrone.
· Activation/Désactivation de groupes et d'éléments individuels.
· Administration et réorganisation de groupes et d'éléments.

Le client fait appel aux services du serveur. Sur le client, il peut s'agir des logiciels suivants :

· Visualisation.
· Systèmes de communication.
· Bases de données.
· Composants ActiveX.
· Programmes personnalisés écrits en Delphi, Visual Basic/Visual C++.


Communication entre client et serveur OPC :
----------------------------------------------------
Les possibilités de communication entre client et serveur OPC sont les suivantes :

Ø Un client OPC peut communiquer simultanément avec plusieurs serveurs OPC de constructeurs différents.
Ø Plusieurs clients OPC d'éditeurs différents peuvent communiquer simultanément avec le même serveur OPC. Chaque client dispose alors de son propre espace d'adressage dans l'interface serveur.

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de azerty25 le 25/05/2004 21:27:52

Tu pourrai préciser qu'est-ce qu'un serveur OPC ?

signaler à un administrateur
Commentaire de sinseman21 le 25/05/2004 22:04:20

Je viens de rajouter quelques explications pour ceux qui veulent d'autres explications, n'hésiter pas à me contacter

signaler à un administrateur
Commentaire de osmose06 le 26/05/2004 01:18:11

Je creuse ton code et essaie de le faire évoluer.
J'ai développé un superviseur pour des applications industrielles.

@+, Pascal

signaler à un administrateur
Commentaire de jack le 26/05/2004 19:16:04 administrateur CS

Bien vu. Enfin une appli industrielle ! chouette !
Vais tester ça un de ces jours ...
(je bosse sur DeltaV de Emerson Process Management)

signaler à un administrateur
Commentaire de sinseman21 le 26/05/2004 21:48:20

cette appli se connecte avec n'importe quels serveur OPC en local (client/serveur sur la meme machine), se connecte égalerment en réseau ( mais avec tous les droits administrateur sur les deux machines ) je ne me suis pas interressé aux proriétés DCOM pour cette appli.

donc aucun probleme de connexion, reconnait parfaitement tous les groupes et items.
mais je n'ai jamais réussi à faire une lecture synchrone ou asynchrone ( de meme pour l'écriture ) VB m'indiquait une erreur windows lorsqu'il arrivait sur la commande.

alors programme à améliorer, si vous faites des modifications, merci de me prévenir.

signaler à un administrateur
Commentaire de osmose06 le 26/05/2004 22:41:11

Quelqu'un aurait-il un serveur OPC pour tester l'appli ?

signaler à un administrateur
Commentaire de sinseman21 le 26/05/2004 22:58:46

tu peux trouver des serveurs test OPC sur le site d'applicom et sur le site de cybertec, voici le lien. http://www.cybectec.com/fr/Energie/Support/Telechargement/logiciel.htm

voici le lien sur le site de matrikon:
http://www.matrikon.com/drivers/opc/

le serveur OPC de matrikon sont pas mal et facile à configurer, pas de limite de temps, possibilité de telecharger des serveurs qui configurent des variables pour effectuer des tests.

Pas mal de constructeurs proposent des serveurs OPC de demonstration

j'ai travaillé sur un seur OPC hilsheur, applicom, matrikon et FIP.

signaler à un administrateur
Commentaire de osmose06 le 26/05/2004 23:01:37

Merci sinseman21.
J'ai plus qu'à bosser.

signaler à un administrateur
Commentaire de sinseman21 le 26/05/2004 23:32:56

Petite précision supplémentaire : il faut ajouter l'objet active X OPC Automation 2.0 qui est la dll:
OPCDAAuto.dll dans les références de VB. pour avoir toutes les fonctionnalités OPCSerers, OPCGroups, OPCGroup, OPCItems, OPCItem et OPCbrowser.
pour ceux qui ne l'ont pas ( je ne sais plus si je l'ai mis dans le zip )
faite moi signe et je vous l'enverai.

signaler à un administrateur
Commentaire de sioac le 02/06/2004 17:07:49

je ne sais pas si cela pourra t'aider, mais si tu vas sur le site kepware.com et que tu installes leur simulateur de serveur OPC (équivalent à celui de matrikon) tu à alors accès à 3 exemples de client OPC (2 en VB et 1 en C++).

signaler à un administrateur
Commentaire de sinseman21 le 02/06/2004 19:04:36

Je suis désolé de te decevoir mon sioac, le but n'etait pas de pomper quelque chose de déjà fait mais de developper et surtout de comprendre la technologie OPC.
Biensur que j'en ai trouvé des clients OPC déjà tout fait, mais je n'aurai eu aucune fierté de les faire fonctionner.
la je suis content de moi meme si il ne fonctionne que partiellement.
Si tu te crois si malin que ça, reprend cette source et trouve moi ce      put...... de bug à la con sur le bouton de lecture des variables.

signaler à un administrateur
Commentaire de sioac le 03/06/2004 09:41:59

Mais tu ne me decois pas, c'est tout à ton honneur. Je disais cela uniquement dans l'éventualité ou tu voudrais comparer ta façon de faire avec une autre qui elle fonctionne.
Avant de commencer à peindre, il peut être interessant de regarder les techniques des grands maîtres...

signaler à un administrateur
Commentaire de Devill_EPSI le 16/06/2004 23:34:19

sympa le site de sioac....

Bien vu biloute ;)

signaler à un administrateur
Commentaire de alhabas le 27/07/2004 15:21:55

SALUT SINSEMAN21

COMMENT FAIRE POUR TESTER CE CODE?

signaler à un administrateur
Commentaire de zizou2 le 13/03/2005 08:52:28

Y'a t'il des infos pour les clients et serveurs OPC AE, je suis très intéressé.
Merci pour les infos

signaler à un administrateur
Commentaire de P_GUERIN le 28/04/2005 19:07:29

Bravo sinsman21 dégrossissage parfait pour une appli industrielle en Spé avec un standard de rigueur de nos jours. Bon j'en ai bavé mais j'ai quelques explications :

j'ai testé avec le simulateur serveur OPC matrikon téléchargeable sur www.matrikon.com.
Il y a dans ce simulateur plusieurs variables variant de façon aléatoire. J'ai donc posé comme principe de lire deux variables dans l'arborescence proposée à savoir Random.Int1 et Random.Int2.

La modification de ton code devient donc ceci :

1) Cmd Ajouter est modifé partiellement comme indiqué  
Dim ClientHandles(2) As Long
Dim OPCItemIDs(2) As String

For I = 1 To 2
        ClientHandles(I) = I
        OPCItemIDs(I) = "Random.int" + Format(I)
Next I

    Set MyItems = MyGroup.OPCItems
    MyItems.AddItems 2, OPCItemIDs, ClientHandles, ItemServerHandles, ItemServerErrors



2) cmdsynchlec_Click Devient intégralement :
Dim NumItems As Long
Dim I As Integer

NumItems = 2
Msg.Text = ""
       For I = 1 To NumItems
            Msg.Text = Msg.Text + MyItems(I).ItemID + ":  Valeur=" + Str(MyItems(I).Value) + "   TimeStamp=" + Str(MyItems(I).TimeStamp) + "   Quality=" + Str(MyItems(I).Quality) + vbCrLf
        Next I
        'For I = 1 To 2
            'Values(I) = I
        'Next I
    
        'Call msg_disp("Lecture synchrone finie")
End Sub


Et voilà : Dcom se charge du rafraîchissement en arrière plan à partir de la déclaration MyGroup.UpdateRate.

Voilà pour la lecture, reste l'écriture!

A+ et encore bravo.















signaler à un administrateur
Commentaire de farid_24 le 07/05/2005 20:57:01

moi aussi je travaille avec du materiel allen  bradeley , je travaille avec les liaisons DDE de microsoft pour relier le logiciel RSLINX avec VB . j'ai entendu parler des OPC mais je sais pas comment les utiliser.et quelle est la difference entre DDE et OPC.
j'ai telecharger votre programme mais ca ne s'execute pas, il me donne un message d'erreur

signaler à un administrateur
Commentaire de sinseman21 le 08/05/2005 09:26:21

Bravo a P_GUERIN d'avoir trouvé l'explication a une erreur qui m'a longtemps emmerdée. apres un peu plus de 6 mois de silence à cause de mes etudes, je vais reprendre le projet sur le client OPC, beaucoup d'autres options peuvent venir s'implanter sur ce client comme une Lecture asynchrone,  et une ecriture synchrone/asynchrone.......
bonne programmation à tous.

signaler à un administrateur
Commentaire de foxed66 le 30/05/2005 19:27:03

Bonjour,

Est-ce que quelqu’un pourrai m’indiquer des sites( en français de préférence) ou je pourrai trouver des informations sur la techno. OPC.

Dans le cadre d’un projet je dois développer une appli. Client/serveur avec le framework dotnet, ne connaissant absolument rien sur l’environnement OPC j’ai un peu de mal.

Quel type d’infos son envoyées par le serveur OPC ? J’ai vu qu’il y avait des notions de groupes, que contiennent ils ?  la notion d’items que représentent ils ? j’ai entendu parler d’XML DA est-ce une sorte de webservice qui rendrait plus facile l’accès au info du serveur OPC ?

Enfin bref je rame un max .

Alors a votre bon cœur messieurs dames.

signaler à un administrateur
Commentaire de sioac le 31/05/2005 02:08:54

Mon bon coeur me pousserai à te pousser à apprendre l'anglais parce que la majorité des choses sur OPC son dans cette langue. Tu peux toujours tenter une recherche sur google mais ça ne vaudra pas les descriptions de l'OPC Fundation.
Si mes souvenirs sont bons, les items représentent les éléments que tu lis (réels, tableaux, entier, string,...). Les groupes sont juste un moyen de gérer les items. Et pour le XML DA j'en sais rien j'ai juste travailler sur de l'OPC DA.

Je réitère mon conseil : met toi à l'anglais et file sur le site de la fondation.

signaler à un administrateur
Commentaire de foxed66 le 31/05/2005 09:50:50

Ouais, c'est dommage mais je sent bien que c'est l'une des rares solution.

Merci ...

signaler à un administrateur
Commentaire de vbclaude le 03/06/2005 15:53:04

Suite aux explications P_GUERIN on peut utiliser  MyGroup.SyncRead
pour lire en synchrone :Modifs a faire
Utiliser les Variables globales sinon on risque d'utiliser des tableaux long non paramétés dans cmdsynchlec_Click !!
Dim ClientHandles() As Long
Dim OPCItemIDs(2) As String
Dim lItemServerHandles() As Long
Dim lItemServerErrors() As Long

1) cmdajouter_Click() est modifié partiellement comme indiqué  
Dim ClientHandles(2) As Long
'    Dim OPCItemIDs(2) As String
'    Dim ItemServerHandles() As Long
'    Dim ItemServerErrors() As Long
-
-
MyItems.AddItems 2, OPCItemIDs, ClientHandles, lItemServerHandles, lItemServerErrors

2) cmdsynchlec_Click devient :

    Dim ItemValues() As Variant
    Dim ItemQualities As Variant
    Dim ItemTimeStamps As Variant
    Dim i As Integer

    MyGroup.SyncRead OPCDevice, DefCtlMax, lItemServerHandles, ItemValues, lItemServerErrors, ItemQualities, ItemTimeStamps

    For i = LBound(ItemValues) To UBound(ItemValues)
       Msg.Text = "LectSync " + MyItems(i).ItemID + ":  Valeur= " + Str(ItemValues(i)) + "   TimeStamp=" + Str(MyItems(i).TimeStamp) + "   Qualité=" + Str(MyItems(i).Quality) + vbCrLf + Msg.Text
    Next i

signaler à un administrateur
Commentaire de Benthaous le 15/03/2006 14:50:19

Bonjour.
Nous sommes un groupe d'étudiants en DUT Informatique et déveleppons un client OPC basé sur OFS (OPC Factory Server). Nous nous servons de la DLL automation sur du VB6.
J'ai un problème avec l'écriture asynchrone, je n'arrive pas à mettre les bons paramètres j'ai toujours en réponse argument ou appel de procédure invalide

je vous donne un petit bout de cette fonction d'écriture :

OPCMygroup.AsyncWrite 29, ItemServerHandles, ItemValues, Errors, TransactionID + 1, CancelId

29 étant le nombre d'items que nous avons dans notre liste d'items(une listview) et donc dans notre Groupe d'items, et Itemvalues est un tableau de 29 cases de type Variant rempli avec des 1, pour essayer d'écrire des "1" sur toutes nos variables...
quelqu'un peut m'aider ? :)

par contre la lecture asynchrone et l'écriture synchrone marche très bien, mais d'un point de vue de rapidité nous avons besoin d'une écriture asynchrone sinon nous ne pouvons lire de suite les actions réalisées par l'écriture...

ça ça marche impeccablement bien pour lire :
OPCMygroup.AsyncRead lvOPCitems.ListItems.Count, ItemServerHandles, Errors, TransactionID, CancelId
        
    

signaler à un administrateur
Commentaire de Benthaous le 17/03/2006 09:39:56

De plus, dès que nous utilisons ces méthodes d'écriture et de lecture dans un autre formulaire du même projet c'est tout le programme qui est ralenti alors qu'il fonctionnait très bien !
Par exemple un mot de l'automate est associé à une petit diode qui passe du vert au rouge, rien que ça et le programme est beaucoup plus lent pour afficher cette diode sur un autre formulaire...

quelqu'un a une idée pour accélérer la communication entre les formulaires ?

Merci d'avance

signaler à un administrateur
Commentaire de splitbled le 24/03/2007 22:05:30

bonjour,

j'explique le prob.

1- je dois faire une identification d'un systeme (dynamique non lineaire et miltivatiable c crackant..) a regulé en utilisant les methodes ARX/NARX ... sous simulink, pour cela je dois faire communiquer simulink et step7 (SIEMENS).

j'ai entendu des liaiasons ouvert comme DDE OPC. et j'aimerais bien savoir comme choisir l'architecture. est comment faire?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.