CLIENT OPC

Signaler
Messages postés
1115
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
-
 ariana -
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

isecsmaina
Messages postés
1
Date d'inscription
vendredi 10 juin 2011
Statut
Membre
Dernière intervention
9 avril 2012

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

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

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

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
> Benthaous
Messages postés
6
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
8 mars 2007

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
vbclaude
Messages postés
4
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
23 janvier 2010

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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

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

Je viens de rajouter quelques explications pour ceux qui veulent d'autres explications, n'hésiter pas à me contacter
cs_azerty25
Messages postés
1115
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

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