Software solutions for automation connectivity










Frequently Asked Questions

The questions are sub-divided into purchasing and technical.


Q. Can I use the software without a license?

A. You can take advantage of the 30 day free evaluation, you will need to register the software using a temporary keycode that is included in your download link. If you do not have a temporary keycode, or if you need an extension to the standard 30 days, you can request one by sending an email to

Q. I already registered the product but a message keeps appearing saying I can Continue, Register Now or Order Now. Why is this?

A. This is just a reminder that you are using the 30 day free evaluation, and that you will need to purchase a license to continue using the software after the 30 day evaluation period has elapsed.

Q. How do I purchase a license?

A. You can find purchasing details on our Order page.

Q. I have recently purchased a Developer license, how do I register the product to prevent the popup reminder dialogs from appearing?

A. Please install the activation code which you should have received from your distributor or by email if you purchased online.

Q. I registered the product and even though a message appeared saying my registration had been successful I am still getting errors. Why is this?

A. When you register with your keycode, it is sometimes necessary to re-initialise the ActiveX control, which may mean closing and then re-opening the project, or stopping and then restarting an application for example.


Q. Which Integrated Development Environments do the OPCWare Client Developer Controls work with?

A. You can use OPCWare Client Developer in any Integrated Development Environment that supports ActiveX Controls. These include different versions of Visual Basic, Visual Basic for Applications, Visual C++, Visual Studio.NET, Delphi, PowerBuilder, Borland C++ Builder, HTML with VBScript or JavaScript, ASP, Windows Script Host. OPC data binding is currently implemented for Visual Basic 5 and 6 only, and not for the other environments. You should note that some ActiveX containers may not comply with the Microsoft specification, and behaviour of ActiveX controls in these containers can vary accordingly.

Q. I want to use OPCWare Client Developer to connect to a remote OPC server, but I cannot get this to work. How can I make this work?

A. You need to configure DCOM settings both on the local and remote computers. Your OPC server should have some documentation on how to set up the remote PC - because each DCOM configuration is potentially slightly different, we strongly recommend consulting the OPC server vendor documentation. It is important to note that OPCWare Client Developer acts both as a DCOM client and server because it receives data callbacks. Therefore DCOM must also be set on the client PC, as well as the server PC. With many OPC test clients, no DCOM settings are required on the local PC, this is because the test client only has limited functionality and does not use data callbacks.

Q. I want to create my own GUI, rather than use OPCWareX built-in GUI. How can I do this?

A. You can set the Visible property of the OPCWareX control to FALSE, so that it is not visible on your runtime forms. You can still use all the properties, methods and events of OPCWareX. Alternatively, you could use OPCWareGroup control which is invisible at runtime.

Q. I am using ASP pages on a web server with an automatic refresh cycle (1 second) to keep the data up to date, but the OPC server initialization routine takes over 5 seconds so my web clients are not getting data updates fast enough with all the initialization and re-initialization that's going on. What's the solution?

A. There are several ways to solve this. Here's one easy way that works well in the case of an out-of-process (EXE) OPC server. You can write a simple VB application to run on your web server - look at the VB6 sample provided to see how straight forwarard this would be. All you need to do is make a connection to the OPC server and keep it open as long as needed. In that way, the OPC server initalization is out of the way when the VB application is started up - you could launch this on startup for example. In this way, the OPC server is always "live" and ready to serve data requests from the ASP pages. Since an OPCWare Client Developer ActiveX control is an in-process server this is the fastest possible way to get the data into your ASP pages on a periodic basis. You don't need to do anything special in your ASP VBScript. If you like, we can write the simple VB application for you to run on your web server, at no cost to you - contact us, letting us know the ProgID and Node where the OPC server is located. We will email the compiled application back to you - all you have to do is add it to the operating system startup folder.

Q .Why does to the debugger generate an error: "Access Violation at address xxxxxxxx. Process Stopped. Use Step or Run to continue."?

A. In Delphi, Borland C++ Builder, and C#, when closing a form that contains an instance of OPCWareX, OPCWareItemExplorer or OPCWareServerExplorer, the debugger generates an error similar to: "Access Violation at address xxxxxxxx. Process Stopped. Use Step or Run to continue." Some messages also mention MSVBVM60.DLL. You must select the Program Reset option on the IDE Run menu. This error does not happen in compiled applications.

Q. Why do I get the error "OPCWareServerExplorer could not obtain the list of OPC Servers. Error number 380, Invalid property value" when browsing for OPC Servers on a remote PC from a Windows NT Workstation, and how do I connect to a remote OPC server from a Windows NT Workstation when I get an Error -2147220990 "Method '~' of object '~' failed":

A. There are two alternative solutions to these two related issues. The first is to install the CLSID registry entries on the local (Windows NT) PC where the OPC Client is located, in order to access a remote OPC Server. The OPC Server itself does not need to be installed, just the CLSID registry entries, the same as the registry entries on the remote PC. The CLSID key itself and a value for ProgID will suffice, the whole branch isn't necessary. Note that unfortunately you cannot import a Windows 2000 .reg file into the Win NT registry. Many OPC Server installations offer the facility to install only the registry entries, to save you the bother of doing this. The second alternative is to install Internet Explorer 4.0 or later on the Windows NT PC.

Q. What happens if the OPC Server crashes?

A. The OPCWareX ServerShutdown and OPCWareGroup ServerShutdown> events are included to notify your application should the OPC Server shutdown gracefully, while the OPCWareX OPCError and OPCWareGroup OPCError events are used to notify your application of an OPC Server crash.

Q. Why do I get the error "Could not locate SHLWAPI.DLL" when attempting to start OpcEnum.exe as a service?

A. OPCEnum.exe was originally installed with OPCWare Client Developer, and this is an up to date version requiring Internet Explorer 4.0 or later. Most likely the set up of OPCEnum.exe as an NT service has been attempted either manually by you or a colleague, or else by the installation of an OPC Server on the local machine. You can confirm this is the problem if you go the the DOS command prompt and type "C:\WinNT\System32\opcenum.exe /service", and then you get the error relating to SHLWAPI.DLL. You need to install Internet Explorer 4.0 or later to fix this and enable OpcEnum.exe to function.

Q. Can I connect to OPC Data Access 1.0 Servers with OPCWare Client Developer?

A. Yes, OPCWare Client Developer can connect to both OPC Data Access 1.0 and OPC Data Access 2.0 Servers.

Q. Are other OPC Specifications such as OPC Historical Data Access or OPC Alarms and Events supported?

A. Not at this time.

Q. Why does OPCWareX or OPCWareGroup raise an OPCError event with the Description "Array lower bound must be 1."?

A. By convention, OPCWare controls assume that arrays passed as arguments are 1 based. If an array is passed to a function that is larger than the Count or NumItems parameter, only Count or NumItems elements will be used, starting at index 1. In VB, set Option Base to 1, or explicitly declare your arrays from 1 to upper bound as in Dim ValueArray(1 to 4) as Variant. In other languages, ensure that your arrays are properly dimensioned in an equivalent way. An exception to this rule is where a set of values is returned from a OPC server in an array. In such cases, the array will have a base of 0.

Q. How can I get the events to work in MS Access? I tried to integrate the OPCWare Client Developer controls into MS Access 2002 SP-1. The result is: OPCWareX control user interface works fine, but the other controls have a problem: there are no events available.

A. In fact it also appears as if there are no events for OPCWareX in Access. In fact the events are actually there for all controls, but are hidden by Access. You will find this is standard behaviour and is the same for all ActiveX controls added to an Access form, not just OPCWare Client. The way to see and add code to the events is to add an instance of the control to an access form in design view. Then select and right-click on the control and at the top of the popup menu you will see “Build Event”. Choose this and then you are offered three choices Expression Builder, Macro Builder or Code Builder. Choose code editor. Now you are in the Access VBA editor with the full library of methods, properties and events available for all OPCWare controls.

Q. Why use the BatchAllUpdates, BatchAllUpdatesVar, BatchItemUpdate or BatchItemUpdateVar events - wouldn't it be the same thing to use the GroupUpdate or ItemUpdate events with UpdateRate set to a higher value?

A. The batch update events have a specific purpose. The best way to explain this by means of an example. If you are creating a data logging application writing OPC data to a remote database by dial-up access, where a continuous connection is not practical or possible, and there is an overhead associated with making and dropping a connection, the overhead can be minimised by allowing OPCWareX to accumulate all the data values that have changed on each successive UpdateRate since the last batch update, and easily writing all of those in one batch when the connection is available (the connection can be made just prior to when the event is expected to happen, or it may be practical to make the connection when the event itself is fired). If you were to simply set the UpdateRate of the corrseponding Group to a long interval comparable to CollectInterval, you would miss out on all the data changes in between.

Back to Top

Note: Some or all of the terms Microsoft, Windows, Visual Basic, ActiveX, OPC may be trademarks of their respective owners.

Copyright © Data Layers Limited 2005. All rights reserved.
Comments or problems relating to this site? Please notify our webmaster

See what OPCWare Client Developer, the leading OPC Client development tool, can do for you...

OPCWare Client Developer v2.0.11 [info]

Testimonials [more]

June 2004 – "I do think that your software is the quickest, easiest, and most flexible of the ones that I have looked at. Also the support that I have received thus far on just evaluating your product has been great." - Scott, Systems Engineer, Machine Builder/OEM, USA.

Read what others are saying, view more testimonials here.[more]

Get in touch with a sales representative today.[email]

See what you think yourself, and download your free fully functional evaluation copy right now. [download]

Click Here to visit the OPCWare Online Shop Now

Pricing | Buy Now

What is OPC?

Data Layers is a member of the OPC Foundation

Order | Download | Products

Home | About | Contact