0% found this document useful (0 votes)
17 views

How Do You Create An OPC Client With Microsoft Excel

How do you create an OPC client with Microsoft Excel

Uploaded by

Rodrigo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

How Do You Create An OPC Client With Microsoft Excel

How do you create an OPC client with Microsoft Excel

Uploaded by

Rodrigo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

How do you create an OPC client with Microsoft Excel?

Instructions:
This instructions are for creating an OPC client with VBA in Microsoft Excel and how to read
data from the PLC and write data to the PLC via the OPC interface.
Microsoft Excel as OPC client initiates the communication via the OPC interface and sends
read/write requests to the OPC server. The OPC server executes these read/write requests.

Proceed as follows to configure Microsoft Excel as OPC client.

 Create an interface in Excel and store the separate control elements with statements.

Fig. 01

 Incorporate the "Siemens OPC DA Automation 2.0" components in the VisualBasic


editor under "Tools->References..." so that VisualBasic knows the OPC objects.
 Now all the necessary objects are created, e.g.: the "MyOPCGroup" object
Dim: Create a variable
WithEvents: The object should be able to provide events (e.g. DataChange)
MyOPCGroup: Object name
As OPCGroup: Type of variable

Fig. 02

1
 Provide the "MyOPCServer" object with memory:
Set MyOPCServer = New ...
 Microsoft Excel sets up the connection to the OPC server:
Call MyOPCServer.Connect(ServerName)
 Use the following function to access the information of a cell in Microsoft Excel. In this
example, the name of the OPC server is taken from the cell (line 4, column B).

Fig. 03

 Once Microsoft Excel has set up the connection to the OPC server, the OPC groups
are created. This is done with the collection object:
MyOPCServer.OPCGroups.Add(group name)
 In this example the newly created group is addressed via the "MyOPCGroup"
variable. Set MyOPCGroup.IsSubscribed = True, so that the OPC group supplies
events like DataChange.

Fig. 04

 Create the OPC items. This is done with the collection object:
MyOPCItems(i) = MyOPCGroup.OPCItems.AddItem(ItemID)
 In this example, the ItemIDs are stored in the following cells (line 9-12, column B).
Using the following function, you determine the ItemIDs and transfer them to the
collection object "MyOPCGroup.OPCItems.AddItem":
Cells(line, column)

2
Fig. 05

 Read the values from the PLC using the following function:
MyOPCGroup.SyncRead()
 Transfer the server handles of the OPC items as parameters to this function.

Fig. 06

 The values read out of the PLC are displayed in the cells (line 9-10, column E).
 The quality and time stamp of the values read are shown in the cells (line 9-10,
columns H and I). The function "MyOPCGroup.SyncRead()" provides this data as
return value.

Fig. 07

 Call the following event handling routine for the OPC group for the DataChange
events of the OPC server to be processed in Microsoft Excel:
DataChange()
This event handling routine supplies a number of parameters like ItemValue (value of
the OPC Item), client handle etc.
 Via the DataChange event, you receive the data when the value of the OPC item
changes. The current value of the OPC item is shown in the cells (line 9-12, column
D).

3
Fig. 08

 If you enter a value in the cell (line 9-13, column F) in Microsoft Excel, the OPC item
is written to the PLC with the following function:
MyOPCGroup.SyncWrite()
 The values to be written and the server handle are transferred to this function as
parameters.

Fig. 09

The function GetQualityText supplies an error message as string for a predefined error code.

Private Function GetQualityText(Quality) As String

Select Case Quality


Case 0: GetQualityText = "BAD"
Case 64: GetQualityText = "UNCERTAIN"
Case 192: GetQualityText = "GOOD"
Case 8: GetQualityText = "NOT_CONNECTED"
Case 13: GetQualityText = "DEVICE_FAILURE"
Case 16: GetQualityText = "SENSOR_FAILURE"

4
Case 20: GetQualityText = "LAST_KNOWN"
Case 24: GetQualityText = "COMM_FAILURE"
Case 28: GetQualityText = "OUT_OF_SERVICE"
Case 132: GetQualityText = "LAST_USABLE"
Case 144: GetQualityText = "SENSOR_CAL"
Case 148: GetQualityText = "EGU_EXCEEDED"
Case 152: GetQualityText = "SUB_NORMAL"
Case 216: GetQualityText = "LOCAL_OVERRIDE"
Case Else: GetQualityText = "UNKNOWN ERROR"
End Select

End Function

Finally, the connection to the OPC server is cleared down.

Fig. 10

Here you can download the relevant Visual Basic program for OPC client programming in
Microsoft Excel.

OPCClient.zip ( 17 KB )

Furthermore, Entry ID 23829402 includes an application that shows a very simple procedure
for creating individual visualization interfaces using Microsoft Excel and VBA.

Note:
Access to the OPC server via DCOM is not tested with this sample program for using
Microsoft Excel as OPC client.

You might also like