CLIENT OPC

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 25 mai 2004 à 21:27
 ariana - 3 mai 2017 à 10:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23140-client-opc

Bonjour , j'ai un projet sur OPC basé sur OFS(OPC Factory server) et j'ai besion de votre aide , j'ai besion d'avoir un tutoriel qui va me permettre de voir comment acquirir des données d'un API Schneider ( programmation API et client OFS ) et merci en avance
isecsmaina Messages postés 1 Date d'inscription vendredi 10 juin 2011 Statut Membre Dernière intervention 9 avril 2012
9 avril 2012 à 23:18
Salut
je viens d'utiliser OPC.SimaticNET comme un serveur OPC mais j'ai pas pu lire les items existant avec ce client.
svp pouvez vous m'aider à résoudre ce problème
splitbled Messages postés 1 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 24 mars 2007
24 mars 2007 à 22:05
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?
Benthaous Messages postés 6 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 8 mars 2007
17 mars 2006 à 09:39
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
Benthaous Messages postés 6 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 8 mars 2007
15 mars 2006 à 14:50
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
vbclaude Messages postés 4 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 23 janvier 2010
3 juin 2005 à 15:53
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
foxed66 Messages postés 2 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 31 mai 2005
31 mai 2005 à 09:50
Ouais, c'est dommage mais je sent bien que c'est l'une des rares solution.

Merci ...
sioac Messages postés 5 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 4 juin 2007
31 mai 2005 à 02:08
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.
foxed66 Messages postés 2 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 31 mai 2005
30 mai 2005 à 19:27
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.
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
8 mai 2005 à 09:26
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.
farid_24 Messages postés 6 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 21 mai 2005
7 mai 2005 à 20:57
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
P_GUERIN Messages postés 1 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 28 avril 2005
28 avril 2005 à 19:07
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.
cs_zizou2 Messages postés 2 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 13 mars 2005
13 mars 2005 à 08:52
Y'a t'il des infos pour les clients et serveurs OPC AE, je suis très intéressé.
Merci pour les infos
alhabas Messages postés 11 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 31 août 2005
27 juil. 2004 à 15:21
SALUT SINSEMAN21

COMMENT FAIRE POUR TESTER CE CODE?
Devill_EPSI Messages postés 7 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 16 juin 2004
16 juin 2004 à 23:34
sympa le site de sioac....

Bien vu biloute ;)
sioac Messages postés 5 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 4 juin 2007
3 juin 2004 à 09:41
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...
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
2 juin 2004 à 19:04
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.
sioac Messages postés 5 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 4 juin 2007
2 juin 2004 à 17:07
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++).
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
26 mai 2004 à 23:32
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.
osmose06 Messages postés 28 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 28 janvier 2006
26 mai 2004 à 23:01
Merci sinseman21.
J'ai plus qu'à bosser.
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
26 mai 2004 à 22:58
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.
osmose06 Messages postés 28 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 28 janvier 2006
26 mai 2004 à 22:41
Quelqu'un aurait-il un serveur OPC pour tester l'appli ?
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
26 mai 2004 à 21:48
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.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mai 2004 à 19:16
Bien vu. Enfin une appli industrielle ! chouette !
Vais tester ça un de ces jours ...
(je bosse sur DeltaV de Emerson Process Management)
osmose06 Messages postés 28 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 28 janvier 2006
26 mai 2004 à 01:18
Je creuse ton code et essaie de le faire évoluer.
J'ai développé un superviseur pour des applications industrielles.

@+, Pascal
cs_sinseman21 Messages postés 22 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 1 novembre 2007
25 mai 2004 à 22:04
Je viens de rajouter quelques explications pour ceux qui veulent d'autres explications, n'hésiter pas à me contacter
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
25 mai 2004 à 21:27
Tu pourrai préciser qu'est-ce qu'un serveur OPC ?
Rejoignez-nous