03-29-2011 11:39 AM
I forgot to attach the zip file. ![]()
03-30-2011 02:38 PM
diagnostics information from variable engine shows an error:
| 03/29/2011 10:42:37,494 | [Connection] Initializes the COM library: (SUCCEEDED) |
| 03/29/2011 10:42:37,494 | [Connection] SetGroupState (SUCCEEDED) |
| 03/29/2011 10:42:37,494 | [Connection] Reconnect: (SUCCEEDED) |
| 03/29/2011 10:42:37,494 | |-[Connection] Disconnect: (SUCCEEDED) |
| 03/29/2011 10:42:37,494 | |-[Connection] Connect: (SUCCEEDED) |
| 03/29/2011 10:42:37,554 | | |-GetCLSID: ProgID=CemSim.Server.5, Machine="", CLSID=D49C1349-D69B-4155-905F-C31A4856B11 (SUCCEEDED) |
| 03/29/2011 10:46:37,509 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_LOCAL_SERVER, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 10:50:37,524 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_ALL, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 10:50:37,524 | [Connection] SetGroupState (SUCCEEDED) |
| 03/29/2011 10:50:37,524 | [Connection] Reconnect: (SUCCEEDED) |
| 03/29/2011 10:50:37,524 | |-[Connection] Disconnect: (SUCCEEDED) |
| 03/29/2011 10:50:37,524 | |-[Connection] Connect: (SUCCEEDED) |
| 03/29/2011 10:50:37,534 | | |-GetCLSID: ProgID=CemSim.Server.5, Machine="", CLSID=D49C1349-D69B-4155-905F-C31A4856B11 (SUCCEEDED) |
| 03/29/2011 10:52:37,547 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_LOCAL_SERVER, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 10:56:37,562 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_ALL, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 10:56:37,562 | [Connection] SetGroupState (SUCCEEDED) |
| 03/29/2011 10:56:37,562 | [Connection] Reconnect: (SUCCEEDED) |
| 03/29/2011 10:56:37,562 | |-[Connection] Disconnect: (SUCCEEDED) |
| 03/29/2011 10:56:37,562 | |-[Connection] Connect: (SUCCEEDED) |
| 03/29/2011 10:56:37,582 | | |-GetCLSID: ProgID=CemSim.Server.5, Machine="", CLSID=D49C1349-D69B-4155-905F-C31A4856B11 (SUCCEEDED) |
| 03/29/2011 11:00:37,567 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_LOCAL_SERVER, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 11:04:37,602 | | |-CoCreateInstanceEx: CLSID=D49C1349-D69B-4155-905F-C31A4856B11, InstanceType=CLSCTX_ALL, ServerName="", CMQ=1 (FAILED, HRESULT=0x80080005 Server execution failed ) |
| 03/29/2011 11:04:37,602 | [Browse] Browse: (SUCCEEDED) |
| 03/29/2011 11:04:37,632 | [ReleaseAll]: (SUCCEEDED) |
| 03/29/2011 11:04:37,632 | |-[Connection] Disconnect: (SUCCEEDED) |
| 03/29/2011 11:04:37,632 | [Connection] Disconnect: (SUCCEEDED) |
03-31-2011 02:20 PM
Matt:
Apologies on the delay; you've given me a lot to go on so far.
The error that the property node is returning is essentially a "Not found" error. Can you figure out which property node is generating the error? It either means that it can't find the machine, process, or variable name. My guess is that it's not finding the process.
I think I'm still a bit fuzzy on things:
The original VI you posted only works with the Shared Variable Engine on the remote (or local) computer. It will not find OPC tags, nor will DSM. If you're seeing any OPC tags in DSM, it's because a library has been created with an I/O server bound to the OPC Server. Once the I/O server has been created, it will show up in DSM with the OPC tags underneath it.
If the OPC Quick Client can see the simulator tags, then the OPC Server that the simulator publishes is working. If DSM can only see the OPC server name and no tags, then it sounds like a library/process has been created within the Shared Variable Engine with the same name as the OPC server, but no I/O server has been created within that library.
Within DSM, do you see the process name with an I/O server beneath it, or just the process with nothing beneath it? Can you post a screen shot of what DSM sees?
I can try to replicate this with the simulated server, but unless it's supposed to create a library with an I/O server, then it sounds like it's performing correctly.
If we want the originally posted VI to work, we'll need to ensure that an I/O server is being created to act as an OPC client. That is the only way that DSM should be able to see the tags.
03-31-2011 10:14 PM
Matt:
One thing I ran into:
When I tested the simulated server you gave me, I created an I/O server for it in a blank project. When I selected the simulated OPC server from the list, it warned me that the server process was not running under the interactive user, and that it could cause problems like that.
I was actually unable to see the tags under the I/O server in DSM for the simulated OPC server. I tried it with the "NI OPC Servers" entry, and it worked fine. Is it possible for you to force the simulated server to run as the logged in/interactive user?
04-05-2011 08:44 AM
Sorry for the delay. I tried playing with the DCOM settings for the simulator. Actually I played with these settings for a while and tried changing them from "the launching user" to "the interactive user" which caused my other libraries to be inaccessible. I went to DCOM and CemSim Server properties and clicked on the identiy tab. This definatley has an effect on if the tags show up in DSM but I still couldn't get the simulator tags to show up. In the "Get Tag List.vi" it is giving an error at (4.) which is the property node for getting the children objects from the I/O Server.
Any other ideas?
Thanks
Matt
04-05-2011 12:06 PM
I just got the customer to try running my code with the simulator on his computer and it worked for him. So, it seems that it is a DCOM setting or some kind of windows configuration problem. If he got it working then we should be able to on our computers.
04-06-2011 12:20 PM
Matt:
Is it possible for you to get the DCOM settings from your customer?
Alternatively, we might want to consider setting the DCOM settings according to OPC Foundation guidelines. They have a published set of instructions here. (Those instructions apply Windows versions other than XP as well)
04-07-2011 03:31 PM
I have tried setting up my DCOM settings exactly like my customer's. I also tried setting up the DCOM settings as per your suggestion without any success.
04-10-2011 02:09 PM
Matt:
I've gone back over everything and tried to collect all of my thoughts here to move forward. (please correct any mistaken assumptions you find)
-The remote OPC server works fine from DSM and the example VI you were using, but the simulated OPC server (running locally) doesn't.
-The I/O Server "Create bound variables" browser DOES work on the simulated OPC server.
-Your customer is able to use your code and connect to the simulated OPC server with that example code.
-Even with identical DCOM settings to your customer, you cannot work with the simulated server using DSM or the example code you posted.
Since the I/O Server "Create bound variables" browser works, I think we can assume the network and DCOM settings are fine. If DCOM didn't work, we wouldn't see the OPC tags with anything.
When we query the Shared Variable Engine (SVE) using DSM or the properties in your code, we don't get the OPC tag listing like we do from the I/O Server "Create bound variables" dialog. That indicates to me that there might be something amiss with the SVE itself if an I/O server isn't enumerating. It might also explain why your customer's computer works fine with that code.
Do you have a second computer you can test the code on? If it works on another computer, then we should probably start digging into the SVE and its related services on your development machine to see if we can find an issue there.
04-11-2011 07:46 AM
Yes, this information is correct. Just to add one thing. My customer said that he tried running the get tag list code and it worked for him. Then I had a meeting with him in which we had two laptops side by side. He ran the code and showed me that it worked so I could see first hand. Then we started comparing DCOM settings. I matched mine with his and it didn't work for me. Mainly the difference was if you go to CemServer properties (dcom) and on the identity tab I had changed "the launching user" to "the interactive user". This caused the remote IO server connection to be lost, meaning I could not browse any tags fromt the simulator, nor the remote server. I chaned the setting back and could now view the remote tags. Then, my customer tried changing from "interactive user" to "launching user" just for experimentation and he lost the connection to the simulator tags. He changed the setting back and it still didn't work. As of this point, he can no longer view the simulator tags. Maybe this is useful in troubleshooting, I don't know. Personally, I have tried the simulator on 3 comptuers now not include the customers PC. Are you having the same issue with your comptuer? I think you are having the same issue. You don't really need any more info from me. You have the simulator, you are seeing the same issues. You should open up NI code to see why tags appear in "create bound variables" and not in DSM.
Thanks
Matt