- Forum
- Discussions
- QuickOPC-Classic in .NET
- Reading, Writing, Subscriptions, Property Access
- I can write to an OPC server but not read
I can write to an OPC server but not read
10 Nov 2019 12:17 #7951
by support
Replied by support on topic I can write to an OPC server but not read
Thank you.
I am also out of ideas.
Best regards
I am also out of ideas.
Best regards
Please Log in or Create an account to join the conversation.
08 Nov 2019 01:51 #7939
by mikeboiko
Replied by mikeboiko on topic I can write to an OPC server but not read
I compared the DCOM settings of OpcEnum and the Yokogawa.ExaopcDACS1.1
There were a few differences:
- Change Configuration Parameters was set to Everyone for OpcEnum and only certain users for ExaOpc
- OpcEnum used The system Account in the Identity tab, while ExaOPC used a specific Exa user
Seeing as how these OPC servers are being used in production, I'm not able to play around with these settings.
To tell you the truth, I think I will just keep QuickOPC as the primary library in my application and keep h-opc as a backup library that the user can switch to if problems occur. I'm not sure if there's anything else you can try but we've both spent a lot of time on this already and I'm not sure if we're getting anywhere. The core of the problem still seems to be some sort of DCOM permission settings. I've never experienced this problem with any other OPC servers so I'm hoping it's just a one off case that I won't have to worry about in the future.
Thanks for your time!
There were a few differences:
- Change Configuration Parameters was set to Everyone for OpcEnum and only certain users for ExaOpc
- OpcEnum used The system Account in the Identity tab, while ExaOPC used a specific Exa user
Seeing as how these OPC servers are being used in production, I'm not able to play around with these settings.
To tell you the truth, I think I will just keep QuickOPC as the primary library in my application and keep h-opc as a backup library that the user can switch to if problems occur. I'm not sure if there's anything else you can try but we've both spent a lot of time on this already and I'm not sure if we're getting anywhere. The core of the problem still seems to be some sort of DCOM permission settings. I've never experienced this problem with any other OPC servers so I'm hoping it's just a one off case that I won't have to worry about in the future.
Thanks for your time!
Please Log in or Create an account to join the conversation.
07 Nov 2019 09:58 #7933
by support
Replied by support on topic I can write to an OPC server but not read
Thank you.
The fact that the browsing for server work is most likely an indication that DCOM access to the OpcEnum object on the remote computer works fine (unless the QuickOPC resorted to Remote Registry browsing, but assume for now that it did not).
Can you carefully check the DCOMCNFG setting on the OpcEnum object on the remote computer and compare them against the settings for Yokogawa.ExaopcDACS1.1 on the remote computer, to see if they differ somehow?
Best regards
The fact that the browsing for server work is most likely an indication that DCOM access to the OpcEnum object on the remote computer works fine (unless the QuickOPC resorted to Remote Registry browsing, but assume for now that it did not).
Can you carefully check the DCOMCNFG setting on the OpcEnum object on the remote computer and compare them against the settings for Yokogawa.ExaopcDACS1.1 on the remote computer, to see if they differ somehow?
Best regards
Please Log in or Create an account to join the conversation.
06 Nov 2019 14:33 #7923
by mikeboiko
Replied by mikeboiko on topic I can write to an OPC server but not read
I was successfully able to get a list of OPC servers on STN0459 using the line of code you provided.
Please Log in or Create an account to join the conversation.
06 Nov 2019 09:33 #7920
by support
Replied by support on topic I can write to an OPC server but not read
OK. Can you please check whether QuickOPC can browse servers on that remote computer? That is, do something like
(where client is an instance of EasyDAClient)
to see if that throws an exception as well, or returns a list of servers.
Thank you
var elements = client.BrowseServers("STN0459");
to see if that throws an exception as well, or returns a list of servers.
Thank you
Please Log in or Create an account to join the conversation.
05 Nov 2019 15:40 #7916
by mikeboiko
Replied by mikeboiko on topic I can write to an OPC server but not read
Yes, that is correct.
Please Log in or Create an account to join the conversation.
05 Nov 2019 12:28 #7914
by support
Replied by support on topic I can write to an OPC server but not read
Thank you.
Just to verify the current situation:
- With QuickOPC, you always get "Access is denied" - no matter whether you do Read, Write, or Subscribe.
- With Hylasoft, you can successfully read and write, but you receive "Access is denied" when you try to subscribe.
is that correct?
Regards
Just to verify the current situation:
- With QuickOPC, you always get "Access is denied" - no matter whether you do Read, Write, or Subscribe.
- With Hylasoft, you can successfully read and write, but you receive "Access is denied" when you try to subscribe.
is that correct?
Regards
Please Log in or Create an account to join the conversation.
04 Nov 2019 18:48 - 05 Nov 2019 12:24 #7911
by mikeboiko
Replied by mikeboiko on topic I can write to an OPC server but not read
Hi,
I compiled my app 6 times with the following variations but the problem still existed:I only ever tried one of these settings at a time. The whole time I had async calls disabled too.
FYI, you could compare the code of h-opc to see what is different from your code. The following C# console application allows me to read and write successfully:
Thanks,
Mike
I compiled my app 6 times with the following variations but the problem still existed:
EasyDAClient.SharedParameters.Client.UseCustomSecurity = true;
EasyDAClient.SharedParameters.Client.TurnOffActivationSecurity = true;
EasyDAClient.SharedParameters.Client.TurnOffCallSecurity = true;
EasyDAClient.SharedParameters.Client.UseCustomSecurity = false;
EasyDAClient.SharedParameters.Client.TurnOffActivationSecurity = false;
EasyDAClient.SharedParameters.Client.TurnOffCallSecurity = false;
FYI, you could compare the code of h-opc to see what is different from your code. The following C# console application allows me to read and write successfully:
using Hylasoft.Opc.Da;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HopcTest
{
class Program
{
static void Main(string[] args)
{
using (var client = new DaClient(new Uri("opcda://STN0459/Yokogawa.ExaopcDACS1.1")))
{
client.Connect();
var tag = "FCS0317!202PC01093B.MODE";
client.Write(tag, "MAN"); // Write Value
var val = client.Read<o-bject>(tag).Value; // Read Value
Console.WriteLine(val);
}
}
}
}
Thanks,
Mike
Last edit: 05 Nov 2019 12:24 by support.
Please Log in or Create an account to join the conversation.
23 Oct 2019 13:11 #7856
by support
Replied by support on topic I can write to an OPC server but not read
Hello,
I got mislead because in your very original report, you wrote "During some read operations, I would simply get the "Access is denied." error." - but I suppose that after making some of the changes, this has turned to be a permanent thing (which, I think, is actually good, in a way).
I think the issue is most likely in the DCOM configuration (on the computers, and/or inside QuickOPC parameters - more about it later). The subscriptions needs the server to call back into the client (same as with Async reads or writes), and it is actually a common issue that DCOM is configured to allow the one way (from client to server) but not the other way (from server to client). It's weird, though, that disabling the Async methods (I suppose you still have that line in your code) does not help. But the issue with HylaSoft shows that there is "something".
I'd like to ask you to experiment with DCOM settings that are inside QuickOPC (while keeping the async methods disabled). It is described here: www.opclabs.com/forum/connections-reconnections-com-dcom/124...ng-to-remote-machines-via-code . There are, in total, I think 6 combinations. Note that they must be tried individually (in separate runs of the program) - they influence per-process settings that are not reversible. The names of some properties have changed over the history of versions (e.g. ClientParameters vs. Client), but I suppose you'll find out which of the two applies to your version.
Best regards
I got mislead because in your very original report, you wrote "During some read operations, I would simply get the "Access is denied." error." - but I suppose that after making some of the changes, this has turned to be a permanent thing (which, I think, is actually good, in a way).
I think the issue is most likely in the DCOM configuration (on the computers, and/or inside QuickOPC parameters - more about it later). The subscriptions needs the server to call back into the client (same as with Async reads or writes), and it is actually a common issue that DCOM is configured to allow the one way (from client to server) but not the other way (from server to client). It's weird, though, that disabling the Async methods (I suppose you still have that line in your code) does not help. But the issue with HylaSoft shows that there is "something".
I'd like to ask you to experiment with DCOM settings that are inside QuickOPC (while keeping the async methods disabled). It is described here: www.opclabs.com/forum/connections-reconnections-com-dcom/124...ng-to-remote-machines-via-code . There are, in total, I think 6 combinations. Note that they must be tried individually (in separate runs of the program) - they influence per-process settings that are not reversible. The names of some properties have changed over the history of versions (e.g. ClientParameters vs. Client), but I suppose you'll find out which of the two applies to your version.
Best regards
Please Log in or Create an account to join the conversation.
19 Oct 2019 22:04 #7847
by mikeboiko
Replied by mikeboiko on topic I can write to an OPC server but not read
Hi,
I do believe it is a security problem, but it is a very strange one. The problem is consistent. If I were to do 100 reads with QuickOPC, I would get 100 "Access is Denied" errors. It happens consistently every time.
I mentioned to you that I am able to successfully read using some other OPC clients. I recently discovered something interesting while testing this client: github.com/hylasoft-usa/h-opc
I was able to write successfully. I was able to read successfully. However, when I tried to subscribe, I got an Access is Denied error. As far as I can tell, I'm doing a full read operation (value, quality and timestamp). Not sure why the permissions would be different for reading and subscribing. Anyways, I just thought I'd share this clue in case it gave you any other ideas.
Thanks,
Mike
I do believe it is a security problem, but it is a very strange one. The problem is consistent. If I were to do 100 reads with QuickOPC, I would get 100 "Access is Denied" errors. It happens consistently every time.
I mentioned to you that I am able to successfully read using some other OPC clients. I recently discovered something interesting while testing this client: github.com/hylasoft-usa/h-opc
I was able to write successfully. I was able to read successfully. However, when I tried to subscribe, I got an Access is Denied error. As far as I can tell, I'm doing a full read operation (value, quality and timestamp). Not sure why the permissions would be different for reading and subscribing. Anyways, I just thought I'd share this clue in case it gave you any other ideas.
Thanks,
Mike
Please Log in or Create an account to join the conversation.
Moderators: support
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Reading, Writing, Subscriptions, Property Access
- I can write to an OPC server but not read
Time to create page: 0.233 seconds