Bonjour,
Je tente de créer un client OPC en vb.net qui récupère les changement de valeur de deux variables. Pour cela je me connecte à OFS et utilise la dll fournie par OFS. Arrivé à l'ajout des items parfois le programme plante (alors que j'ai lancé un client avec l'application OFS) et plante systématiquement si je n'ai pas lancé le client via l'application OFS. Je précise que j'ai fais la configuration OFS dans tous les cas. Voici mon code (récupéré sur ce site):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Imports OPC = SAOPCAutomation

Public Class Form1

    Dim oOFS As New OPC.OPCServer
    Dim WithEvents oGrp1 As OPC.OPCGroup
    Dim oItem1 As OPC.OPCItem

    Private Sub Bt_connexion_Click(sender As Object, e As EventArgs) Handles Bt_connexion.Click


        oOFS.Connect("Schneider-Aut.OFS")
        If oOFS.ServerState = 1 Then
            MsgBox("Connection OK")
        Else
            MsgBox("Défaut connection")
            Exit Sub
        End If

    End Sub

    Private Sub Bt_adGroup_Click(sender As Object, e As EventArgs) Handles Bt_adGroup.Click


        oGrp1 = oOFS.OPCGroups.Add("MonGroupe")
        oGrp1.IsSubscribed = True

    End Sub

    Private Sub Bt_addItem_Click(sender As Object, e As EventArgs) Handles Bt_addItem.Click


        oItem1 = oGrp1.OPCItems.AddItem("RFID!var1", 1)
        'Ajout d'un deuxiéme Item
        'Le 3° paramétre est "ClientHandle" , identifiant de type long géré par l'application
        oGrp1.OPCItems.AddItem("RFID!var2", 2)

    End Sub

    Private Sub oGrp1_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Object, Qualities() As Long, TimeStamps() As Date)
        Dim i As Integer
        For i = 1 To NumItems
            Select Case ClientHandles(i)
                Case 1 ' ClientHandle utilisé lors de l'ajout Item var1
                    TXB_var1.Text = ItemValues(i)
                Case 2 ' ClientHandle utilisé lors de l'ajout de l'item var2
                    TXB_var2 = ItemValues(i)
            End Select
        Next

    End Sub

End Class
J'ai aussi essayé de remplacer var1 par %MW150 et var2 par %MW151 dans l'ajout des items mais sans succès.
Si quelqu'un à des pistes je suis preneur!