'''backup b4 ****up
Option Explicit
Option Base 1
Const ServerName = "LGIS.LGEOPC" 'Déclare le serveur une constante inchangeable
Dim WithEvents MyOPCServer As OpcServer 'Déclare MyOPCServer comme variable qui répond à un objet
Dim WithEvents MyOPCGroup As OPCGroup 'Déclare MyOPCGroup comme variable qui répond à un objet
Dim MyOPCGroupColl As OPCGroups
Dim MyOPCItemColl As OPCItems
Dim MyOPCItems As OPCItems
Dim MyOPCItem As OPCItem
Dim ClientHandles(52) As Long
Dim ServerHandles() As Long
Dim Values(52) As Variant
Dim Errors() As Long
Dim ItemIDs(52) As String
Dim GroupName As String
Dim NodeName As String
'Dim i As Integer
Dim OpcValues(52) As Variant
Dim OldValue As Variant
Sub Automat1()
If Range("C2").Value = 101 Then
Feuils("sheet1").CommandButton1.Value = False
Feuils("sheet1").CommandButton2.Value = True
Else
End If
End Sub
Private Sub CommandButton1_Click()
Sheet1.StartClient
'Range("B2").Value = 2
End Sub
Sub StartClient()
On Error GoTo errorhandler
ItemIDs(1) = Range("A2").Value
ItemIDs(2) = Range("A3").Value
ItemIDs(3) = Range("A4").Value
ItemIDs(4) = Range("A5").Value
ItemIDs(5) = Range("A6").Value
ItemIDs(6) = Range("A7").Value
ItemIDs(7) = Range("A8").Value
ItemIDs(8) = Range("A9").Value
ItemIDs(9) = Range("A10").Value
ItemIDs(10) = Range("A11").Value
ItemIDs(11) = Range("A12").Value
ItemIDs(12) = Range("A13").Value
ItemIDs(13) = Range("A14").Value
ItemIDs(14) = Range("A15").Value
ItemIDs(15) = Range("A16").Value
ItemIDs(16) = Range("A17").Value
ItemIDs(17) = Range("A18").Value
ItemIDs(18) = Range("A19").Value
ItemIDs(19) = Range("A20").Value
ItemIDs(20) = Range("A21").Value
ItemIDs(21) = Range("A22").Value
ItemIDs(22) = Range("A23").Value
ItemIDs(23) = Range("A24").Value
ItemIDs(24) = Range("A25").Value
ItemIDs(25) = Range("A26").Value
ItemIDs(26) = Range("A27").Value
ItemIDs(27) = Range("A28").Value
ItemIDs(28) = Range("A29").Value
ItemIDs(29) = Range("A30").Value
ItemIDs(30) = Range("A31").Value
ItemIDs(31) = Range("A32").Value
ItemIDs(32) = Range("A33").Value
ItemIDs(33) = Range("A34").Value
ItemIDs(34) = Range("A35").Value
ItemIDs(35) = Range("A36").Value
ItemIDs(36) = Range("A37").Value
ItemIDs(37) = Range("A38").Value
ItemIDs(38) = Range("A39").Value
ItemIDs(39) = Range("A40").Value
ItemIDs(40) = Range("A41").Value
ItemIDs(41) = Range("A42").Value
ItemIDs(42) = Range("A43").Value
ItemIDs(43) = Range("A44").Value
ItemIDs(44) = Range("A45").Value
ItemIDs(45) = Range("A46").Value
ItemIDs(46) = Range("A47").Value
ItemIDs(47) = Range("A48").Value
ItemIDs(48) = Range("A49").Value
ItemIDs(49) = Range("A50").Value
ItemIDs(50) = Range("A51").Value
ItemIDs(51) = Range("A52").Value
ItemIDs(52) = Range("A53").Value
'After declaring the objects and variables
'required for the OPCClientModule module,
'the connection process begins with creation
'of a new OPC Server Object
Set MyOPCServer = New OpcServer
'------------------------------
'Because we want to conncect to a specific
'OPC Server, the server must be defined.
MyOPCServer.Connect ServerName, NodeName
'------------------------------
'Each OPC Server has a specific interface for
'its Collection of Groups. To get the interface use:
Set MyOPCGroupColl = MyOPCServer.OPCGroups
'------------------------------
MyOPCGroupColl.DefaultGroupIsActive = True
'------------------------------
'Now we add a Group to our Group Collection.
'You can use any Group name you want.
GroupName = "MyGroup"
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
Set MyOPCItemColl = MyOPCGroup.OPCItems
MyOPCItemColl.AddItems 52, ItemIDs, ClientHandles, ServerHandles, Errors
MyOPCGroup.IsSubscribed = True
Exit Sub
errorhandler:
MsgBox "Error: " & Err.Description, vbCritical, "ERROR"
End Sub
Private Sub CommandButton2_Click()
On Error Resume Next
Sheet1.StopClient
Range("B2").Value = 0 'xxxxxxxxxxxxxxxx
End Sub
Sub StopClient()
MyOPCGroupColl.RemoveAll
MyOPCServer.Disconnect
Set MyOPCItemColl = Nothing
Set MyOPCGroup = Nothing
Set MyOPCGroupColl = Nothing
Set MyOPCServer = Nothing
End Sub
Private Sub CommandButton3_Click()
'Saving the file on clicking a button with names and dates for archives
Dim filename As String
Dim filepath As String
Dim strdate As String
Dim fileID As String
strdate = Format(Date, "dd-mm-yyyy")
filename = ("")
filepath = "c:\AAA\"
fileID = Range("Sheet1!C2").Value
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveWorkbook.SaveCopyAs filename:=filepath + filename + "Station no." + fileID + " " + strdate + ".xls"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Private Sub cmdSyncRead_Click()
On Error Resume Next
End Sub
'THIS IS WHERE I HAVE PROBLEMS ... I THINK!
Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
On Error GoTo errorhandler2
Range("C2").Value = ItemValues(1)
Range("C3").Value = ItemValues(2)
Range("C4").Value = ItemValues(3)
Range("C5").Value = ItemValues(4)
Range("C6").Value = ItemValues(5)
Range("C7").Value = ItemValues(6)
Range("C8").Value = ItemValues(7)
Range("C9").Value = ItemValues(8)
Range("C10").Value = ItemValues(9)
Range("C11").Value = ItemValues(10)
Range("C12").Value = ItemValues(11)
Range("C13").Value = ItemValues(12)
Range("C14").Value = ItemValues(13)
Range("C15").Value = ItemValues(14)
Range("C16").Value = ItemValues(15)
Range("C17").Value = ItemValues(16)
Range("C18").Value = ItemValues(17)
Range("C19").Value = ItemValues(18)
Range("C20").Value = ItemValues(19)
Range("C21").Value = ItemValues(20)
Range("C22").Value = ItemValues(21)
Range("C23").Value = ItemValues(22)
Range("C24").Value = ItemValues(23)
Range("C25").Value = ItemValues(24)
Range("C26").Value = ItemValues(25)
Range("C27").Value = ItemValues(26)
Range("C28").Value = ItemValues(27)
Range("C29").Value = ItemValues(28)
Range("C30").Value = ItemValues(29)
Range("C31").Value = ItemValues(30)
Range("C32").Value = ItemValues(31)
Range("C33").Value = ItemValues(32)
Range("C34").Value = ItemValues(33)
Range("C35").Value = ItemValues(34)
Range("C36").Value = ItemValues(35)
Range("C37").Value = ItemValues(36)
Range("C38").Value = ItemValues(37)
Range("C39").Value = ItemValues(38)
Range("C40").Value = ItemValues(39)
Range("C41").Value = ItemValues(40)
Range("C42").Value = ItemValues(41)
Range("C43").Value = ItemValues(42)
Range("C44").Value = ItemValues(43)
Range("C45").Value = ItemValues(44)
Range("C46").Value = ItemValues(45)
Range("C47").Value = ItemValues(46)
Range("C48").Value = ItemValues(47)
Range("C49").Value = ItemValues(48)
Range("C50").Value = ItemValues(49)
Range("C51").Value = ItemValues(50)
Range("C52").Value = ItemValues(51)
Range("C53").Value = ItemValues(52)
'--------------------------------------------------------------------------------
'Verify link quality for data # 1
Range("D2").Value = Qualities(1)
Range("E2").Value = TimeStamps(1)
Range("F2").Value = NumItems
errorhandler2:
MsgBox "Error: " & Err.Description, vbCritical, "ERROR2"
End Sub
Private Sub worksheet_change(ByVal Selection As Range)
On Error Resume Next
If Selection <> Range("B2") Then Exit Sub
If OldValue <> Selection.Value Then
OldValue = Selection.Value
Values(1) = Selection.Value
MyOPCGroup.SyncWrite 1, ServerHandles, Values, Errors
End If
End Sub