Professional OPC
Development Tools


Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Enquiry about Demo [unable to connect; questions to doc]

14 Dec 2011 10:25 #706 by support

thanks for precise and detailed information - I really appreciate it. FYI, the issue with browsing is not related to DCOM.
You are right in your assumption that EasyOPC connects and disconnects automatically. This is an outcome of the stateless API design philosophy we have chosen.
The OPC Analyzer logs show that the actual browsing problem is caused by the fact that OPC server returns E_FAIL from IOPCBrowseServerAddressSpace:: GetItemID when called with a branch ItemID, which is a non-compliant behavior. Quoting OPC Data Access Custom Interface Specification 2.05, from paragraph
"It is valid to form an ItemID that represents a BRANCH (e.g. AREA1.REACTOR10). This could happen if you pass a BRANCH (AREA1) rather than a LEAF (CURRENT_VALUE). The resulting string might fail if passed to AddItem but could be passed to ChangeBrowsePosition using OPC_BROWSE_TO. "
This causes our browsing to return to the root level (it should better stop going deeper, but that's not the main problem). It works in Prosys OPC client because they are achieving the same thing in a different way, and they are not using this particular OPC feature at all (similarly, Prosys is not interpreting the State of GetServerStatus, which caused an earlier problem, but it should be interpreted by production-level clients).
Pointing the "blame" would not help, however, because the OPC server vendor is unlikely to rectify their problem quickly, if at all. At the same time, our goal is to achieve interoperability with widest range of OPC server, even if they are not compliant.
For this reason, I would like to put some kind of workaround into our software. In this particular case, it is going to be quite tricky, because we are using the "problematic" function for a reason that is fundamental to our design. It has to do with the stateless approach again - we should be able to return to some browsing point later, even e.g. if the server disconnects in the meantime, and for that we need to identify it, and the asumption was that each server would properly return the identification of the branch. The workaround will probably involve using a "browse path" consisting of short node names instead, but we need to find proper way of squeezing it into existing API without incurring painful changes to existing code, or breaking the logic. But I think it might be doable.
Would you allow a couple of days for us to work on this?
Best regards,

Please Log in or Create an account to join the conversation.

14 Dec 2011 03:37 #704 by clgo
Dear Sir,
I captured the communication trace for the EasyOPCClient Demo with screen capture as well as Prosys OPC Client Demo. Please unzip and check the attached file.

The following is the rough description of my pc setup.

The demo client is install in my laptop with the following specs
1. Windows XP Professional 32-bit OS SP 3
Intel Core 2 Duo CPU 1.8Ghz, 2GB Ram

First, my pc is setup to join my company domain, i did not create and join the workgroup as in the OPC Server. I have created a user with same user name as the OPC server and client, and have set the same password used by the OPC Server. I have also configure under components services->Computers->My Computer->Right Click Properties->COM Security

Under Access Permissions (Edit Limits & Edit Default)
I have added the newly created user and have enable the Local Access and Remote Access

As for Launch And Activation Permissions (Edit Limit and Edit Default Settings)
I have added the same user and enable local launch, remote launch, local activation, remote activation

Then i have added the same user as local administrator for the machine.

The following are the steps that i have done in the easyopc demo client after the opc analyzer have been setup and connected to my opc server (Rosemount Tank Master).
ServerStatusCheckPeriod = -1;

Step 1: Under Machine Name: localhost
Step 2: Click Browse Server, select OpcTestLab.OpcAnalyzer and click OK.
Step 3: Click Browse Item, expand the root on the left, after a while it shows Tanks, devices and system. Expand the Tanks, it shows Tanks, devices and system. I have expand the devices node and system node, which shows "tanks, devices and system" as well.

The following are the steps i have done in prosys demo client.
Step 1: Host: localhost
Step 2: Select OpcTestLab.OpcAnalyzer.1
Step 3: Click Connect after connected under Server Status message will be shown, you may refer to the screen capture.
Step 4: Click Add, a group will be automatically added.
Step 5: Under Set the properties of the OPC Group i have kept the default settings.
Step 6: Click the broswer button where the OPC Server Address Space box will pop up. The root shows OpcTestLab.OpcAnalyzer.1 and the branches shows Tanks, Devices and System. When i expand the branch under Tanks, it shows the actual Tanks that we have it in our plant, which is correct.

The main difference in steps in EasyOPC Client is there is no connect and disconnect button in the interface. I assume, EasyOPC Client will automatically connect to OPC Server once the ProgID is selected.

thank you

Please Log in or Create an account to join the conversation.

13 Dec 2011 09:49 #699 by support
thanks for your kind cooperation. Yes, the analyzer can be installed on the client computer. To do so, please download and install the <a href="/LinkClick.aspx?fileticket=G9eA4SkOp0s%3d&tabid=195">OPC Analyzer Tool (<a href="/LinkClick.aspx?fileticket=qrJnruj_6yk%3d&tabid=195">readme file).
After installing, enter any necessary information in the "Category Filter" and "Remote Machine Name" fields, and press the "Refresh" button. Then, select your target OPC server from the "Server" drop-down, and make sure the trace is started (if "TRACE STOPPED" is displayed, press the "start trace" button).
You then need to modify your application (or change the settings in the demo app) to connect to the OPC Analyzer instead of your real target OPC server; the OPC Analyzer acts as an intermediate logger. The ProgID of the OPC Analyzer is "OpcTestLab.OpcAnalyzer.1". You can then run your application, and you should see the trace being collected in the OPC analyzer. It might be helpful to make handnotes of times of any relevant events, such as the time when you have started the application, and when the exception occurred. Afer you are finished, select File -> Save Trace in the Opc Analyzer, save the .TRA file, and send it to us - ideally, attach it to your reply in this forum.
Note: The OPC Analyzer tool is available to OPC corporate members only (such as OPC Labs are), thus the download is only permitted to your user account (you must be logged into our site), and you can only use it for the purpose of troubleshooting this particular problem.

Please Log in or Create an account to join the conversation.

13 Dec 2011 03:04 #698 by clgo
Dear Sir,
As usual i have tried to compare different OPC Client, i am able to broswe the server using prosys opc client and commserver opc viewer. Anyway, i like to solve the issue here, as we are looking for a dotnet client which is easy to use. And i find that opclabs quickopc is one of them.
The website for the opc server that we are using can be found here. (, but i am not able to find any demo. The opc server is one of the option provided by the software there are other communication module such as modbus available. Maybe the only option left is installing an opc analyzer to monitor what data is being exchange between the opc client and server. Please send me the opc analyzer and instruction on how to setup the analyzer, client or maybe configuration on the opc server. And may i know if the opc analyzer must be installed on the same machine as the opc server? Or remotely on the same machine as the opc client? I would prefer the latter. I do not want to mess up with the production system.

thank you.

Please Log in or Create an account to join the conversation.

09 Dec 2011 09:45 #697 by support
Yes, you have done the right setting for ServerStatusCheckPeriod, as demonstrated by the fact that the error message has disappeared.
Unfortunately, the browsing problems looks like yet another compliance problem on the side of the OPC Server (I cannot prove it yet, but it is likely; sorry that I have to put the "blame" on the other side, but it's not to say that our software is perfect, but rather than that we have done all kinds of interoperability and compliance tests, so based on the symptoms, we can estimate where the problem is).
It might be possible to provide some workaround, but only with analysis of the communication between the client and the server. That can be done either a) if we can get the server or its demo (could not find it on the Web, though), OR b) I can send you an OPC Analyzer application which is both an OPC server and OPC client, and it "sits" in between and makes a log of what is happening. It would be a bit of work (but not much) to set it up. Would you be willing to do that?
String tags are supported for reading, writing, and subscriptions.

Please Log in or Create an account to join the conversation.

09 Dec 2011 07:51 #696 by clgo
Dear Sir,
We aer using Rosemount TankMaster OPC Server not sure if there is any demo. Might be switching to MatrikonOPC, i have tried setting the EasyDAClient.ClientParameters.ServerStatusCheckPeriod to -1 in the demo application, in mainform before InitializeComponent(), not sure if its the right place to set the static property.

After setting the static property, recompling and runing the code, there is another issue. When i select the appropriate server and broswe the item, the demo application will not be able to correctly view the item when i expand the branch. The root will show three branches, Tanks, devices and systems. When i expand the Tanks branches it will shows recursively Tanks, deveices and systems branch. The correct display should show TK-xxx Tank information under the Tanks branch. What other properties / codes should i add other than the above mention must be should be set for enabling the opc client to correctly iterated.

And may i know if QuickOPC Client supports reading of String Tags?

Please Log in or Create an account to join the conversation.

06 Dec 2011 10:17 #690 by support
This is, with very high certainty, a problem of the OPC server. The error message is intentionally made long so that it explains in detail what is happening. You can send it to the server manufacturer and ask them to fix the problem.
The reason why Prosys client works is because it does not check the server status (it is OK for the demo client, but a robust client should check it - as we do...).
You can tell our component to skip the server status check as well. To do so, in your app code, set the static property EasyDAClient.ClientParameters.ServerStatusCheckPeriod to -1 (System.Threading.Timeout.Infinite) before making other operations.
Note that the above will not be possible with the demo application from its user interface, i.e. not without making a code change to it and recompiling (the source code is included with the product, under Examples).
BTW, what OPC server are you connecting to? Is there a trial version of it available?

Please Log in or Create an account to join the conversation.

06 Dec 2011 08:01 #689 by clgo
Dear Support,
I am running on Windows XP Professional and had managed to changed the COM / DCOM Settings under Administrative Tools->Component Services->Right Clickk on My Computer->Default Properties->
I have enable both DCOM and COM Internet Services, default Authentication Level set to None and Default Impersonation Level set to Identify. After changing the setting i am able to connect to the OPC Server, but another error occur. After selecting the correct server class, and click on the browse items button and after expanding the root folder on the right and expanding the tank there is another error occurs.

The error message is OPC operation Failed: "Server failed. This error originates in the OPC Data Access Server. A vendor specific fatal error has occurred within the server. The server is no longer functioning. The recovery procedure from this situation is vendor specific. The application will try to reconnect to the server after a configurable period. Techinical information: The call to IOPCServer::GetStatus on the OPCServer object has returned OPC_STATUS_FAILED in the OPCSERVERSTATUS structure."
Do you have any idea what this error is about, when using prosys opc client, i am able to browse all item and group, select the item and monitor the tag.
I have attached the screenshot of the error for your information.
chee leong

Please Log in or Create an account to join the conversation.

05 Dec 2011 16:50 #687 by support
Actually, without having you wait for some update, here is a setting that should resolve it:

Run the DCOMCNFG utility (on Windows 7, just press the Start menu button, and type DCOMCFG into the box; may be different on other systems, let me know if you need help). From the Console Root, select Component Services -> Computers -> My Computer. Right-click on "My Computer" and select Properties. In the dialog, select the Default Properties tab, and change the Default Authentication Level to None (the Default Impersonation Level should be Identify).
Hope this helps.

Please Log in or Create an account to join the conversation.

05 Dec 2011 10:31 #685 by support
Hello, thanks for details. The demo should be able to connect to live servers.
Most common reason for "No such interface supported" error is missing OPC Core Components (such as OPC-DA proxy/stubs) on the server machine (they have to be presented on the client machine as well, but that is taken care of by QuickOPC installation). If you can, however, establish the remote connections from the same computer using other clients, the cause is probably different.
It might be the same problem as described here:
That is, a different security setting might be needed. As you are using the .NET component, the resolution described there (using the EasyOPC Utility) does not directly apply.
Since we were planning to change the default of this setting anyway (and, but only in some future version, make it configurable in .NET component as well), we will just do it now, and make a new build of the product that you can test. Please allow approx. 1 day for it.

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.061 seconds