A standard mechanism for communicating to numerous data source, either a database in a control room or devices on the factory floor is the motivation for this specification. The standard mechanism would consist of standard automation interface targeted to allow applications of Visual Basic, as well as other automation applications to communicate to above named data sources.
The manufacturers need to access the data from plant floor and integrate into their business systems. The manufacturers must be able to utilize off the tools of shelf (Databases, SCADA Packages, spreadsheets) to assemble a system. The key is effective and open architecture of communication concentrating on data access, and not data types. It has addressed this requirement by specifying and architecting a standard automation interface to the OPC Data Access Custom interface to facilitate the applications need that utilize an automation interface to access floor plant data.
The OPC Data Access Automation is defining a standard by which automation applications can access data of process. This interface provides the same functionality as the interface of custom, but in an “automation friendly” manner. Given the common automation use to access other software environments, this interface has been tailored to ease application development, without scarifying functionality defined by the interface of custom.
The OPCBrwoser object is a collection of item names or branch that exists in the server. CreateBrowser will not create this object if the server does not support browsing, it means browsing is optional.
The Data Type, Access Rights and properties Filter affect the collection at the time a method such as ShowLeafs is called. These properties give the chance to client request a subset of the address space. If the user is browsing names of items that need to write the data to, then the AccessRights property should be set to OPCWritable before calling ShowLeafs.
Servers can have either a hierarchical name or flat space. When the name space is flat, calling the hierarchical browsing is two step processes. First the browse position is set using a Move methods, the names are put into the collection using the Show methods. Calling ShowBranches will fill the collection with the branches below the current position. Calling MoveDown with one these branch names move the position to that branch. CallingMoveUp moves up one level. CallingMoveToRoot moves all the way to top level.
ShowLeafs and ShowBranches should not be called from inside a For Each Loop. The reason is when in a For Each loop or a loop to Count the items, basically you would be changing the contents of the collection, and the next item has no meaning.