cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X

Kepserver OPC UA buffering

EricM
3-Visitor

Kepserver OPC UA buffering

We are working on a scenario where we need to provide one set of two redundant OPC UA Servers that act as a proxy between our customer's system and multiple individual sets of redundant OPC UA servers.

Because I do not have experience with connections to redundant OPC servers and OPC UA itself, I am not sure if this is at all possible and which packages I need for this. I tried contacting local system integrators as well as PTC itself, but I'm not getting any response. My hopes are therefore on this community! Any advise is much appreciated.

Secondly there is a note from the customer that mentions functionality that is easy to understand and makes sense in a way, but it not mentioned anywhere in documentation:

 

Buffering shall be turned on for the proxy OPC Servers to ensure that data collection continues when connection with the customer is lost. All buffered data will be transferred when the connection is restored. Check and confirm buffering duration.

 

Is this at all possible with Kepware (latest version)?

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

@SlidingDownhill @EricM 

Media Level Redundancy Plug-in manual. It is not part of RedundancyMaster. You could configure what should be the trigger for the switch. The manual talks about redundancy using 2 devices(Device pair redundancy); instead you will have to configure 2 OPC UA servers.  

 

rjanardan_0-1686919410933.png

 

View solution in original post

9 REPLIES 9

For redundancy, you could look into RedundancyMaster.

I am not sure if I understood your question on buffering correctly. Kepware is a middleware. As such, on its own, Kepware will not collect any data; only when  a client requests it to. So, if customer's client stops communicating with Kepware then Kepware stops requesting data from the source as well. However, if you are pushing data to an ODBC compliant DB(using DataLogger Plugin) or to ThingWorx, then there is a Store & Forward feature which will store the data in flat files until connection is restored, after which the data is sent to DB/ThingWorx. 

EricM
3-Visitor
(To:rjanardan)

RedundancyMaster seems to be severly outdated according to the PTC website. It doesn't support any modern and still supported OS'es and only supports OPC DA according to the screenshot I took from the website:

 

RedundancyMasterOutdated.jpg

 

With regards to middleware explanation, I understand. Though not familiar with OPC UA I expected as much since this same applies when using other drivers.

If I understand correctly we need the DataLogger plugin to push data to either an ODBC compliant DB or to ThingWorx. The plugin has store & forward capability pushing the (flat-file) buffered data to its target when the connection is restored, meaning the target has to be the customer's system (assuming it has an ODBC complient DB or ThingWorx), correct?

@SlidingDownhill @EricM You could achieve redundancy in your scenario by using Media level redundancy. One Kepware(A) will have 2 OPC client channels connected to 2 Kepware UA servers(B & C). We will configure Device redundancy on A to switch based on different conditions from B to C or vice versa.

Regarding buffering, yes, the destination has to be an ODBC compliant DB or ThingWorx.

What exactly is Media Level Redundancy here? Is this part of the RedundancyMaster application?

In other words what exactly is determining the active passive status and then what is the control mechanism that disables one of the 2 instances of KW? 

@SlidingDownhill @EricM 

Media Level Redundancy Plug-in manual. It is not part of RedundancyMaster. You could configure what should be the trigger for the switch. The manual talks about redundancy using 2 devices(Device pair redundancy); instead you will have to configure 2 OPC UA servers.  

 

rjanardan_0-1686919410933.png

 

EricM
3-Visitor
(To:rjanardan)

Thank you for the explanation @rjanardan. I accepted your reply as the answer to the only remaining question. The question regarding buffering soon turned out to be not applicable because in the setup between green and orange nodes (as depicted in the post below) we are the server.

If I understand your issue, I have a similar one where I have 2 identical instances of KepWare that feed a SQB DB. I have to manually turn off the Datalogger channels on the backup else the SQL DB gets double posted. Redundancy master was suggested to me as well but I had the same feeling about it as you do. 

My plan, as yet unrealized, is to turn those channels on and off from the SCADA software that monitors the 2 SCADA servers hosting Kepware using the OPC _system tags. This might be where you need to go as well. 

OPC UA Data flow rev0.png

The green OPC servers depicted in the image above are the ones I am talking about. They act as OPC proxy relaying all information to the client (orange).

Since we act as OPC UA Server, there's nothing to push from our side, hence buffering is not applicable. If we were to act as OPC UA client connecting to the customer's OPC UA server, then it would be different. How this would be handled in case of redundancy is a very good point! These servers are only allowed to run an OPC server and no other software, so it would be hard to disable/enable channels based on the redundancy status if RedundancyMaster has no provision to do this.

 

 

 

 

Extrapolating that to my system which may or may not be equivalent .... the blue nodes are PLC's,  green nodes are my redundant SCADA servers, Orange would be my SQL DB Server. 

SQL can't PULL the data so the Greens have to push it via the DataLogger plugin and ODBC. THATS where my issue lies.  Since Datalogging is triggered in my case by timestamp, all I can do is to turn off the datalogging trigger on the redundant system until its needed and that's what I am pursuing. 

 

If your Orange is pulling from the Greens, you just have to tell the Orange which Green to pull from. You could do that by enabling one channel or the other. 

Top Tags