cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDerniè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.
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és1Date d'inscriptionvendredi 10 juin 2011StatutMembreDerniè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és1Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention24 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és6Date d'inscriptionmardi 8 novembre 2005StatutMembreDerniè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és6Date d'inscriptionmardi 8 novembre 2005StatutMembreDerniè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 :
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és4Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention23 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
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és2Date d'inscriptionlundi 7 février 2005StatutMembreDernière intervention31 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és5Date d'inscriptionlundi 14 avril 2003StatutMembreDerniè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és2Date d'inscriptionlundi 7 février 2005StatutMembreDernière intervention31 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és22Date d'inscriptionmardi 25 mai 2004StatutMembreDerniè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és6Date d'inscriptionmardi 14 novembre 2000StatutMembreDernière intervention21 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és1Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention28 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és2Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention13 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és11Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention31 août 2005 27 juil. 2004 à 15:21
SALUT SINSEMAN21
COMMENT FAIRE POUR TESTER CE CODE?
Devill_EPSI
Messages postés7Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention16 juin 2004 16 juin 2004 à 23:34
sympa le site de sioac....
Bien vu biloute ;)
sioac
Messages postés5Date d'inscriptionlundi 14 avril 2003StatutMembreDerniè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és22Date d'inscriptionmardi 25 mai 2004StatutMembreDerniè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és5Date d'inscriptionlundi 14 avril 2003StatutMembreDerniè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és22Date d'inscriptionmardi 25 mai 2004StatutMembreDerniè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és28Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention28 janvier 2006 26 mai 2004 à 23:01
Merci sinseman21.
J'ai plus qu'à bosser.
cs_sinseman21
Messages postés22Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 1 novembre 2007 26 mai 2004 à 22:58
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és28Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention28 janvier 2006 26 mai 2004 à 22:41
Quelqu'un aurait-il un serveur OPC pour tester l'appli ?
cs_sinseman21
Messages postés22Date d'inscriptionmardi 25 mai 2004StatutMembreDerniè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és14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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és28Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention28 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és22Date d'inscriptionmardi 25 mai 2004StatutMembreDerniè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és1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 25 mai 2004 à 21:27
3 mai 2017 à 10:17
9 avril 2012 à 23:18
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
24 mars 2007 à 22:05
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?
17 mars 2006 à 09:39
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
15 mars 2006 à 14:50
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
3 juin 2005 à 15:53
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
31 mai 2005 à 09:50
Merci ...
31 mai 2005 à 02:08
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.
30 mai 2005 à 19:27
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.
8 mai 2005 à 09:26
bonne programmation à tous.
7 mai 2005 à 20:57
j'ai telecharger votre programme mais ca ne s'execute pas, il me donne un message d'erreur
28 avril 2005 à 19:07
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.
13 mars 2005 à 08:52
Merci pour les infos
27 juil. 2004 à 15:21
COMMENT FAIRE POUR TESTER CE CODE?
16 juin 2004 à 23:34
Bien vu biloute ;)
3 juin 2004 à 09:41
Avant de commencer à peindre, il peut être interessant de regarder les techniques des grands maîtres...
2 juin 2004 à 19:04
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.
2 juin 2004 à 17:07
26 mai 2004 à 23:32
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.
26 mai 2004 à 23:01
J'ai plus qu'à bosser.
26 mai 2004 à 22:58
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.
26 mai 2004 à 22:41
26 mai 2004 à 21:48
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.
26 mai 2004 à 19:16
Vais tester ça un de ces jours ...
(je bosse sur DeltaV de Emerson Process Management)
26 mai 2004 à 01:18
J'ai développé un superviseur pour des applications industrielles.
@+, Pascal
25 mai 2004 à 22:04
25 mai 2004 à 21:27