OPC UA Connected but No Data Updating – Historian Communication Issue on OCMC

Hi everyone,
I’m working on an OCMC setup where the OPC UA connection is successfully established—I can see the device structure and diagnostics, and System Platform is configured correctly. However, real-time data is not updating.

The logs show repeated gRPC errors when trying to connect to the historian at SRPD8929321:32565, with StatusCode="Unavailable" and error = 164 (Communication Error). Despite the OPC UA server showing as connected, the historian fails to communicate.

Any insights on resolving this historian communication issue or validating historian readiness would be greatly appreciated!

Thanks in advance.



Heres the error code:

SRPAOS923404.SRPDB923291: Failed to connect to Historian at SRPDB923291:32565 - error = 164 (Communication Error) - Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="Error starting gRPC call. HttpRequestException: An error occurred while sending the request. WebException: Unable to connect to the remote server SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.233.34.194:32565", DebugException="System.Net.Http.HttpRequestException: An error occurred while sending the request.") ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.233.34.194:32565
at System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Grpc.Net.Client.Web.GrpcWebHandler.<SendAsyncCore>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Grpc.Net.Client.Internal.GrpcCall`2.<RunCall>d__82.MoveNext()
--- End of inner exception stack trace ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Grpc.Net.Client.Internal.HttpClientCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
at Grpc.Core.Interceptors.InterceptingCallInvoker.<BlockingUnaryCall>b__3_0[TRequest,TResponse](TRequest req, ClientInterceptorContext`2 ctx)
at Archestra.Historian.GrpcClient.ClientInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, ClientInterceptorContext`2 context, BlockingUnaryCallContinuation`2 continuation)
at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
at Grpc.Core.Interceptors.InterceptingCallInvoker.<BlockingUnaryCall>b__3_0[TRequest,TResponse](TRequest req, ClientInterceptorContext`2 ctx)
at Grpc.Core.ClientBase.ClientBaseConfiguration.ClientBaseConfigurationInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, ClientInterceptorContext`2 context, BlockingUnaryCallContinuation`2 continuation)
at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)
at ArchestrA.Grpc.Contract.History.HistoryService.HistoryServiceClient.GetInterfaceVersion(GetInterfaceVersionRequest request, CallOptions options)
at ArchestrA.Grpc.Contract.History.HistoryService.HistoryServiceClient.GetInterfaceVersion(GetInterfaceVersionRequest request, Metadata headers, Nullable`1 deadline, CancellationToken cancellationToken)
at Archestra.Historian.GrpcClient.GrpcHistoryClient.GetServerInterfaceVersion(UInt32& interfaceVersion)
at CHistoryConnectionGrpc.GetInterfaceVersion(CHistoryConnectionGrpc* , UInt32* pVersion, SError* error) [CommonBase.cpp, 965]




For SetUp Reference:




  • Follow Up Question:
    Is the cause of this "No Data Updating" the historian?

  • Hi Topper!

    There seems to be multiple issues and perhaps several problems that needs to be fixed, but initially you should check the date time settings on your datasource (PLC).

    It seems top be quite off and this is something that Historian does not like.

    When working with data that originates from a PLC or a OPC server, then the data is timestamped at the source, Application Server and Historian tries to align to this timestamp and depending on settings it will try to put those in to history based on this.

    So start by setting the date and time in your PLC and see if that causes your system to stabilize.

    I guess that Historian is not set up to log data directly from Gateway (using manual tags) but the Application Engine and the objects configured there are pushing data to Historian.

    The incorrect timestamp could of course be due to other configuration errors, but it is a common issue to start checking.

  • Also, the error 

    "Failed to connect to Historian at SRPDB923291:32565 - error = 164 (Communication Error)"

    Is your Historian running on this node, do you have a platform deployed on this node or have you set up security manually?

    Do you have any screenshots of the status of historian on node SRPDB923291, and does the logs state any errors?

  • Follow Up question while my Team check the PLC, realtime values is not showing as of now, is this also cause by date time?

  • In this regard, historian is running on another node, while the node SRPDB923291 is not use , there is another historian which is already configured, how can I set that my data will be pointed to that running historian?

  • Just to follow-up on this comment, the error is indicating that your set up has some configuration error, still pointing at this incorrect Historian server. It does not mean that the whole system has issues and you can for sure expect other parts of logging to function correctly.

    But as we can see on the log messages it is reported by two main objects (as far as we can see on your screenshots)

    To back up somewhat, in Application Server, there are two Objects that can push Historian Data to a Historian, Your Application Engine Object, and your Platform Object (your platform actually includes a engine to service the management of your platform, but to simplify this is the scenario lets talk about them separately).

    The reason for a Platform Object to contain configuration and availability to configure Historian connection is that your platform object contains several native values that can provide value in Historizing, but your Platform can be deployed without deploying an application engine, then if used, it can be configured separately.

    But the platform object only ensures that Selected values and Attributes configured for logging are stored, it does not manage any additional objects historization.

    Similar options applies for your Application Engine

    The difference here is that your Application Engine ensures storage of History data to any other object deployed to it. And it is here that you need to ensure correct settings to have your object attributes configured for History to be logged to Historian. (Also Events and Alarm data can be historized in Historian based on your settings in the Historian part of Configurator tool).

    Going to your errors in log

     

    Any incorrect setting on your Platform or Application engine will generate this error, since it can not reach historian to store data.

    In above example i have made an incorrect reference, where Historian is not responding.

    This will generate the errors as you posted.

    In your case, It seems to come from object SRPDB923391 in your galaxy, and looking at your examples, it is not this engine that is hosting your objects that you are trying to log, so it should not be the cause of your specific issue, but it would be something to update, since you mention that this historian has been removed.

  • Hi  ,

    I just wanted to personally thank you for your invaluable guidance during our recent troubleshooting efforts. Your support on configuring OCMC, System Platform, and the historization setup played a crucial role in helping our team resolve the issues, also thank you for extending your help in guiding where to troubleshoot in the problem of non updating values and datetime. 

    Thanks to your clear instructions and expertise, we were able to identify and fix the problem efficiently. Your willingness to assist and share your knowledge made a big difference, and we truly appreciate it.