je travail sur un nouveau projet dans lequel je rencontre quelques problèmes. En effet je dois réussir à communiquer avec un API ELAU C600 avec un PC via OPC Server afin de pouvoir récupérer les infos des variables de l'automate pour les traiter sous visual basic.
Dans ce projet, je dois réussir à communiquer entre un automate programmable ( un C600 ELAU ) et un PC via OPC Server V2.3.5.3 ( système implanter dans l'automate ) afin de pouvoir traiter ( donc lire et écrire sur certaines variables ) les variables de l'automate sous Visual Basic dans lequelle sera développé un programme de traitement d'image.
J’essaie donc de réaliser la connexion entre le PC et l'automate via OPC Server. Afin de vérifier si la connexion est réellement établie j'ai récupéré un programme me permettant normalement de pouvoir lire ou écrire sur une variable de l'automate mais pour cela j'ai besoin d'installer une bibliothèque du nom de " OPCDAAuto.dll " pour pouvoir définir dans mon programme certaines variables comme " OPCServer , OPCGroupe ".
Le problème est que je n'arrive pas installer cette bibliothèque sur Visual Basic 2010 express. J'ai une erreur qui apparait lorsque je fais " projet > ajouter référence " et que je sélectionne ma librairie.dll. On me dit que le fichier n'a pas pu être ajouté et il me demande de vérifier si ce fichier est accessible et s'il s'agit d'un assembly ou d'un composant COM valide.
Avez vous des connaissances sur la communication entre PC et automates via OPC Server ou savez vous comment je pourrais palier au problème d'ajout de ma librairie ?
Ps: Je suis débutant dans ce domaine donc je recherche des informations assez claire
Merci de ta réponse, néanmoins même en lisant le topique et en essayant de faire comme indiqué, j'ai toujours le même problème. j'ai toujours des erreurs dans mon programme et je ne peux compiler et tester mon programme. ci dessous :
'déclarations
Dim myOPCServer as OPCServer
Dim myOPCGroupLecture as OPCGroup
Dim myOPCGroupEcriture as OPCGroup
Dim myReadItems As OPCItems
Dim myWriteItems As OPCItems
Sub Main()
Set myOPCServer = new OpcServer
myOPCServer.connect "Nom du serveur OPC","nom_du _pc" << Je ne sais pas réelement quoi mettre dans ces guillemets.
Set myOPCGroupLecture = myOpcServer.OPCGroups.Add("Lecture_pt")
Set myOPCGroupEcriture = myOpcServer.OPCGroups.Add("Ecriture_pt")
Set myReadItems = myOPCGroupLecture.OPCItems
Set myWriteItems = myOPCGroupEcriture.OPCItems
end Sub
Public Function ECRITURE_PT_CIMP(PtId As String, Value As Variant) As Integer
Dim gOPCWriteItem as OPCItem
Dim ItemServerHandles() As Long
Dim ClientHandles(1) As Long
Dim OPCItemIDs(1) As String
Dim Errors() As Long
D'où provient cette dll ?
Tu peux tenter d'en télécharger une ici.
Pour ton problème à la ligne 'connect', tu trouveras des exemples de code sur le lien ci-dessus, rubrique 'téléchargement'.
Merci, j'ai réussis a compiler sans problèmes maintenant ;-). voici le programme final :
Imports OPCAutomation
Module Module1
Sub Main()
Dim myOPCServer As OPCServer
Dim myOPCGroupLecture As OPCGroup
Dim myOPCGroupEcriture As OPCGroup
Dim myReadItems As OPCItems
Dim myWriteItems As OPCItems
myOPCServer = New OpcServer
myOPCServer.Connect("CoDeSys.OPC.02") ' Connexion au server OPC << on doit mettre le ServeurID
Public Function ECRITURE_PT_CIMP(ByVal PtId As String, ByVal Value As Object) As Integer
Dim gOPCWriteItem As OPCItem
Dim ItemServerHandles() As Long
Dim ClientHandles(1) As Long
Dim OPCItemIDs(1) As String
Dim Errors() As Long
Dim myWriteItems As OPCItems
Cependant dans la fonction écriture je ne sais pas comment rajouter une fonction me permettant de lire ma variable que je viens de modifier par exemple afin de voir ci mon programme fonctionne.
Aussi, dans le main, les deux lignes ou il y as la commande : ("lecture") et ("écriture") je ne sais pas si je dois les laisser comme ça ou écrire quelque chose dedans. En clair je n'ai plus d'erreur de compilation mais j'ai un peu de mal a comprendre le corp du programme et comment l'utiliser ^^
Avez-vous une idée ?
Vous n’avez pas trouvé la réponse que vous recherchez ?