Dim WithEvents OPCDAClient As EasyDAClient Dim writeItems(31) As OpcLabs.EasyOpc.DataAccess.DAItemValueArguments Dim writeResults(31) As OperationResult Dim readItems(31) As OpcLabs.EasyOpc.DataAccess.DAItemDescriptor Dim readResults(31) As ValueResult Dim OPCServer As OpcLabs.EasyOpc.ServerDescriptor Public Const OPCSVR = "127.0.0.1" Public Const OPCSVRNAME = "ArchestrA.DASSIDirect.2" Public Const OPCTagPrefix = "Channel1.Device1." Private Sub SetUpOPCLink() Dim OPCModuleTag As String Try OPCDAClient = New EasyDAClient OPCServer = New OpcLabs.EasyOpc.ServerDescriptor(OPCSVR, OPCSVRNAME) OPCModuleTag = OPCTagPrefix & "DB1," 'Now we need to setup the read items readItems(0) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL8") readItems(1) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL12") readItems(2) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL16") readItems(3) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL20") readItems(4) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL24") readItems(5) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL28") readItems(6) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL32") readItems(7) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL36") readItems(8) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL40") readItems(9) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL44") readItems(10) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL48") readItems(11) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL52") readItems(12) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL56") readItems(13) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL60") readItems(14) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL64") readItems(15) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL68") readItems(16) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL72") readItems(17) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL76") readItems(18) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL80") readItems(19) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL84") readItems(20) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL88") readItems(21) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL92") readItems(22) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL96") readItems(23) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL100") readItems(24) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL104") readItems(25) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL108") readItems(26) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL112") readItems(27) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL116") readItems(28) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL120") readItems(29) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL124") readItems(30) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL128") readItems(31) = New OpcLabs.EasyOpc.DataAccess.DAItemDescriptor(OPCModuleTag & "REAL132") 'Now we need to setup the write items writeItems(0) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL8", TextBox1.Text) writeItems(1) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL12", TextBox2.Text) writeItems(2) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL16", TextBox3.Text) writeItems(3) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL20", TextBox4.Text) writeItems(4) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL24", TextBox5.Text) writeItems(5) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL28", TextBox6.Text) writeItems(6) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL32", TextBox7.Text) writeItems(7) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL36", TextBox8.Text) writeItems(8) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL40", TextBox9.Text) writeItems(9) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL44", TextBox10.Text) writeItems(10) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL48", TextBox11.Text) writeItems(11) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL52", TextBox12.Text) writeItems(12) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL56", TextBox13.Text) writeItems(13) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL60", TextBox14.Text) writeItems(14) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL64", TextBox15.Text) writeItems(15) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL68", TextBox16.Text) writeItems(16) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL72", TextBox17.Text) writeItems(17) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL76", TextBox18.Text) writeItems(18) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL80", TextBox19.Text) writeItems(19) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL84", TextBox20.Text) writeItems(20) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL88", TextBox21.Text) writeItems(21) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL92", TextBox22.Text) writeItems(22) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL96", TextBox23.Text) writeItems(23) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL100", TextBox24.Text) writeItems(24) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL104", TextBox25.Text) writeItems(25) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL108", TextBox26.Text) writeItems(26) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL112", TextBox27.Text) writeItems(27) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL116", TextBox28.Text) writeItems(28) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL120", TextBox29.Text) writeItems(29) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL124", TextBox30.Text) writeItems(30) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL128", TextBox31.Text) writeItems(31) = New OpcLabs.EasyOpc.DataAccess.DAItemValueArguments(OPCSVR, OPCSVRNAME, OPCModuleTag & "REAL132", TextBox32.Text) Catch ex As System.Exception MessageBox.Show(ex.Message, "System Exception 1", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub ReadFromPLC() Try readResults = OPCDAClient.ReadMultipleItemValues(OPCServer, readItems) For i As Integer = 0 To UBound(readResults) Step 1 If Not readResults(i).Succeeded Then MessageBox.Show("An error coccurred attempting to retrieve the Common Parameter from the PLC", "Read Failed", MessageBoxButtons.OK, MessageBoxIcon.Error) End If Next TextBox1.Text = readResults(0).Value.ToString TextBox2.Text = readResults(1).Value.ToString TextBox3.Text = readResults(2).Value.ToString TextBox4.Text = readResults(3).Value.ToString TextBox5.Text = readResults(4).Value.ToString TextBox6.Text = readResults(5).Value.ToString TextBox7.Text = readResults(6).Value.ToString TextBox8.Text = readResults(7).Value.ToString TextBox9.Text = readResults(8).Value.ToString TextBox10.Text = readResults(9).Value.ToString TextBox11.Text = readResults(10).Value.ToString TextBox12.Text = readResults(11).Value.ToString TextBox13.Text = readResults(12).Value.ToString TextBox14.Text = readResults(13).Value.ToString TextBox15.Text = readResults(14).Value.ToString TextBox16.Text = readResults(15).Value.ToString TextBox17.Text = readResults(16).Value.ToString TextBox18.Text = readResults(17).Value.ToString TextBox19.Text = readResults(18).Value.ToString TextBox20.Text = readResults(19).Value.ToString TextBox21.Text = readResults(20).Value.ToString TextBox22.Text = readResults(21).Value.ToString TextBox23.Text = readResults(22).Value.ToString TextBox24.Text = readResults(23).Value.ToString TextBox25.Text = readResults(24).Value.ToString TextBox26.Text = readResults(25).Value.ToString TextBox27.Text = readResults(26).Value.ToString TextBox28.Text = readResults(27).Value.ToString TextBox29.Text = readResults(28).Value.ToString TextBox30.Text = readResults(29).Value.ToString TextBox31.Text = readResults(30).Value.ToString TextBox32.Text = readResults(31).Value.ToString Catch ex As System.Exception MessageBox.Show(ex.Message, "System Exception", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub WriteToPLC() Try writeItems(0).Value = TextBox1.Text writeItems(1).Value = TextBox2.Text writeItems(2).Value = TextBox3.Text writeItems(3).Value = TextBox4.Text writeItems(4).Value = TextBox5.Text writeItems(5).Value = TextBox6.Text writeItems(6).Value = TextBox7.Text writeItems(7).Value = TextBox8.Text writeItems(8).Value = TextBox9.Text writeItems(9).Value = TextBox10.Text writeItems(10).Value = TextBox11.Text writeItems(11).Value = TextBox12.Text writeItems(12).Value = TextBox13.Text writeItems(13).Value = TextBox14.Text writeItems(14).Value = TextBox15.Text writeItems(15).Value = TextBox16.Text writeItems(16).Value = TextBox17.Text writeItems(17).Value = TextBox18.Text writeItems(18).Value = TextBox19.Text writeItems(19).Value = TextBox20.Text writeItems(20).Value = TextBox21.Text writeItems(21).Value = TextBox22.Text writeItems(22).Value = TextBox23.Text writeItems(23).Value = TextBox24.Text writeItems(24).Value = TextBox25.Text writeItems(25).Value = TextBox26.Text writeItems(26).Value = TextBox27.Text writeItems(27).Value = TextBox28.Text writeItems(28).Value = TextBox29.Text writeItems(29).Value = TextBox30.Text writeItems(30).Value = TextBox31.Text writeItems(31).Value = TextBox32.Text writeResults = OPCDAClient.WriteMultipleItemValues(writeItems) For i As Integer = 0 To UBound(writeResults) Step 1 If Not writeResults(i).Succeeded Then MessageBox.Show("An error coccurred attempting to write the Common Parameters to the PLC", "Write Failed", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If Next Catch ex As System.Exception MessageBox.Show(ex.Message, "System Exception", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub