Hi,
I'm currently using a trial version of KEPServer EX 6 for some testing and research. In my current set-up, I have a Matrikon OPC DA simulator server simulating some data for some tags. Then I have the KEPServer connecting to the Matrikon OPC simulator server via the OPC DA Client Driver,
The KEPServer is used like a middleware to convert the Matrikon DA Simulator data into OPC UA protocol, for OPC UA clients to retrieve Matrikon DA simulator data. I have an OPC UA adapter that connects to KEPSever OPC UA Endpoint to retrieve the data and sends it to another timeseries historian.
Configuration for kepware da client: Scan Mode: "Respect Client-Specified Scan Rate", Update Mode: "Exception:.
Configuration for OPC UA Adapter: Polling (every 2 mins)
Here is where I made some observations which I can't comprehend:
1. At first glance, the connection from my OPC UA Adapter to Kepware Server is fine and I continue to receive data. However, when I refer to my Timeseries historian, I noticed that my data is arriving every 2 mins. The catch is that in my Matrikon OPC DA simulator, I had some tags configured to be updated (using the update rate) only every 5 mins. Hence, why is my timeseries historian receiving new updates for all tags at every 2 mins?.
I also noticed that Kepware reports the client to be connected, but there are 0 of 0 active tags, which makes me wonder, where are the updates coming from? No quick client applications are open here.
The OPC DA Quick Client for my Simulator server also proves that the data on my matrikon simulator does not matched with my timeseries historian.
2. When I launch KepServer quick client, or other 3rd party UA clients, i noticed that my timeseries historian suddenly gets data as designed. i.e. tags are updated according to my Matrikon simulator, e.g. tags are updated as designed. (E.g. Events are polled and received every 2mins, and new value is seen only after every 5 mins, as per polling rate.) Any particular reasons why a Kepware quick client/external opc ua client can impact the data sent to my timeseries historian? Does it mean that i must have a quick client open at all times, or to have a quick client run as a service? how does this work.
Do note that the Matrikon simulator server, KepServer, and OPC UA Adapter are all located in the same machine, hence, I doubt its related to security configuration.
Look forward to the community feedback.
Thank you.
Solved! Go to Solution.
Hi @YH_12690813 ,
The issue you're seeing is related to how the OPC DA Client driver in KEPServerEX handles tag updates when no active OPC client is connected.
Why are tags updating every 2 mins in the historian even if Matrikon updates them every 5 mins?
KEPServerEX is forwarding data every 2 minutes because your OPC UA Adapter is polling it that way. Even though the Matrikon simulator updates every 5 mins, KEPServerEX will repeat the last known value on every client request if no exception-based update occurred. Since your scan mode is set to “Respect client-specified scan rate” and update mode is “Exception,” and if no active subscriptions are running on the DA side, no fresh data gets pulled—so the last value is reused.
Why does launching the Quick Client suddenly make the data flow behave correctly?
This happens because KEPServerEX starts actively polling the OPC DA server only when a client (like Quick Client or a UA client) is browsing or subscribing to the tags. Until then, the DA Client driver stays passive—even if the server is running. Quick Client triggers real-time tag evaluation, causing KEPServerEX to actually query Matrikon, and this updates the internal tag cache correctly.
Do you need a client open all the time?
Not necessarily, but you need to keep at least one subscription active within KEPServerEX for each tag you want updated. That could be from:
The UA Adapter itself (if it's configured to subscribe instead of polling), or
A dummy client like Quick Client running in the background as a service
Change Scan Mode to “Polled” or “Cyclic” instead of “Respect Client-Specified Scan Rate” for your DA Client driver.
Enable Log All Items or configure a dummy UA/DA client to keep the tags actively subscribed.
Use KEPServerEX’s internal tag referencing (e.g., Advanced Tags or Link Tags) to ensure active evaluation, even without a client.
This will make sure that KEPServerEX pulls updates from Matrikon based on the actual source rate and delivers meaningful data to your historian.
Thanks,
Hi @YH_12690813 ,
The issue you're seeing is related to how the OPC DA Client driver in KEPServerEX handles tag updates when no active OPC client is connected.
Why are tags updating every 2 mins in the historian even if Matrikon updates them every 5 mins?
KEPServerEX is forwarding data every 2 minutes because your OPC UA Adapter is polling it that way. Even though the Matrikon simulator updates every 5 mins, KEPServerEX will repeat the last known value on every client request if no exception-based update occurred. Since your scan mode is set to “Respect client-specified scan rate” and update mode is “Exception,” and if no active subscriptions are running on the DA side, no fresh data gets pulled—so the last value is reused.
Why does launching the Quick Client suddenly make the data flow behave correctly?
This happens because KEPServerEX starts actively polling the OPC DA server only when a client (like Quick Client or a UA client) is browsing or subscribing to the tags. Until then, the DA Client driver stays passive—even if the server is running. Quick Client triggers real-time tag evaluation, causing KEPServerEX to actually query Matrikon, and this updates the internal tag cache correctly.
Do you need a client open all the time?
Not necessarily, but you need to keep at least one subscription active within KEPServerEX for each tag you want updated. That could be from:
The UA Adapter itself (if it's configured to subscribe instead of polling), or
A dummy client like Quick Client running in the background as a service
Change Scan Mode to “Polled” or “Cyclic” instead of “Respect Client-Specified Scan Rate” for your DA Client driver.
Enable Log All Items or configure a dummy UA/DA client to keep the tags actively subscribed.
Use KEPServerEX’s internal tag referencing (e.g., Advanced Tags or Link Tags) to ensure active evaluation, even without a client.
This will make sure that KEPServerEX pulls updates from Matrikon based on the actual source rate and delivers meaningful data to your historian.
Thanks,