10-06-2008 09:33 AM
Hi to all,
I have a problem with the CVI 6.0 \datasocket\OpcClient example running on XP embedded.
I think it will be difficult to solve, but I hope that some of the CVI gurus will be able to help me
If I create the Distribution Kit of the above mentioned supplied project, and I install it on a WinXP machine, I'm able to connect to the OPCDemo server.
But if I install on a customized XP embedded, when I press the Start button I see the "Member not found" error.
The "Select Source" button works well, and I can acces the browsing feature, also on the XP embedded system.
I've already done a lot of researches into the NI forum and KB, but none of the informations helped me.
I can customize my XP embedded, adding necessary elements, but I must know what I have to add!
So my question is: which basic components (dll files, ... ) does the NI datasocket/OPC use?
Thanks in advance.
10-09-2008 10:09 AM
Hi vix,
for what I can understand from your post, you have to check the OPCDemo Server dependencies, since your CVI program tries to connect to it thorugh Datasocket (and OPC protocol). In order to do this, I've attached the following program that performs a dependency check on an executable you select by pressing "Open" button on the main window.
Another thing: have you discovered which CVI function call causes the error? Are you able to perform a more accurate debug and discover it?
Unfortunately NI does not provide XP embedded support for his application, so we have to troubleshoot step by step.
Hope this helps,
Best regards,
Fabio
10-10-2008 01:23 AM
Hi Fabio,
another forum thread suggests to perform a dependency check with Dependency Walker, and I've already done such a thing on the OPCClient executable using the 2.2 version.
Compared to a complete WinXP (where the OPCClient works) only inetcomm.dll and mobsync.dll are missing; so I included them in my XP Embedded, but the examples didn't work.
And I deleted this libraries from the complete WinXP, rebooted, and the example continued working.
The CVI function that causes the error is DS_Open()
vix
10-10-2008 02:24 AM
Hi Vix,
so it seems OCPclient executable is not the root cause od the issue. If you try to launch it on the XP embedded machine, do you have any error returned? Do you can see it on Windows Process list in task manager?
Another thing you can try is to run Dependency walker on both nids.dll (the datasocket dll located at C:\windows\System32) and the CVI executable, in order to see if there's some missing .dll programs need to use. Since you receive error on the DS_Open() function, it seems that there's something wrong related to nids.dll
Hope this helps,
Best regards,
Fabio
10-20-2008 01:29 AM - edited 10-20-2008 01:29 AM
Great news: the problem is solved!
This behaviour is simply another aspect of an old problem that I forgot when I created my new XP Embedded
In the last post of that thread Mohan gives a valid solution, but also overwriting \windows\system32\dataskt.dll with the older dataskt.dll version 6.0.4.105 that came with LabWindows 6.0 seems OK