Client OPC sous VBA

piero23 Messages postés 1 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 30 mai 2006 - 30 mai 2006 à 21:03
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 31 mai 2006 à 09:10
bonjour,

Je voudrais developper une client OPC sous excel.

J'ai 2 problemes :

(1) - Je n'arrive pas a lire une variable lorsque je le desire, pour l'instant ma fonction me renvoit la valeur que quand celle ci change de valeur.
Il me faudrait une fonction de lecture direct type AsyncRead() mais je n'arrive pas a passer correctement les paramètres...

(2) - Je n'arrive pas a creer et relire plusieurs Item


<hr />

Voici mon code, excuser mon niveau je debute :

<hr />
Option Explicit
Option Base 1
Const ServerName = "OPC.SimaticHMI.HmiRTm"
Public x As Integer
Dim WithEvents MyOPCServer As OpcServer
Dim WithEvents myopcgroup As OPCGroup
Dim MyOPCGroupColl As OPCGroups
Dim MyOPCItemColl As OPCItems
Dim MyOPCItems As OPCItems
Dim MyOPCItem As OPCItem
Dim ClientHandles(2) As Long
Dim ServerHandles() As Long
Dim Values(2) As Variant
Dim Errors() As Long
Dim ItemIDs(2) As String
Dim GroupName As String
Dim NodeName As String

<hr />
Sub StartClient()

'déclaration et connection au serveur
  GroupName = "test"
  NodeName = Range("A1").Value
  Set MyOPCServer = New OpcServer
  MyOPCServer.Connect ServerName, NodeName
  Set MyOPCGroupColl = MyOPCServer.OPCGroups
  MyOPCGroupColl.DefaultGroupIsActive = True
  MyOPCGroupColl.DefaultGroupUpdateRate = 500
  Set myopcgroup = MyOPCGroupColl.Add(GroupName)
 
  Set MyOPCItemColl = myopcgroup.OPCItems
  ItemIDs(1) = Range("A2").Value
  ClientHandles(1) = 1
  'ItemIDs(2) = Range("A3").Value
  'ClientHandles(2) = 1
  MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
  myopcgroup.IsSubscribed = True
 
  Exit Sub
ErrorHandler:

  MsgBox "Error: " & Err.Description, vbCritical, "ERROR"
End Sub

 
<hr />
Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)

Range("B2").Value = CStr(ItemValues(1))

'Range("B3").Value = CStr(ItemValues(2))

End Sub

<hr />
Si quelqu'un connais cette bibliothèque OPC et ces fonctions pour vba et pouvais prendre le temps de me donner un "petit" cours de VBA afin que je corrige le bon nombre d'erreurs qu'il y a dans mon code.

Merci par avance,
Piero

1 réponse

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 mai 2006 à 09:10
Salut,

Ca fait tellement longtemps que je n'ai pas eu à utiliser OPC....
Bref: En tout cas OPC sous Excel j'ai fait.

Tiens regarde ma source: peu etre qu elle t'aidera un peu. elle n'est pas fait pour Excel (j'ai pas tester mais ca se trouve elle marche.)
Regarde bien comment je fais et si tu as des problème de compréhension fait moi signe.

http://www.vbfrance.com/codes/EBAUCHE-EXEMPLE-CLIENT-OPC_27764.aspx

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
Rejoignez-nous