Skip to content

How Software Toolbox Uses OPC UA Buffering for Data Logging

    What is the most important feature for any data logging client to have? At the end of the day, you are trusting a data logger to take your data and store it.  Now whether that is for reporting, optimization, legal reasons, or simply to retain process data over some period of time in case it might be needed later, we expect the data to be logged without any losses.

    This is particularly true in the industrial automation space, where the amount of data that is being logged is growing almost as exponentially as the speed at which the data is needed in order to have a business impact. As such, the prospect of losing data can very quickly result in lost jobs, thousands of dollars in lost production, and legal or financial penalties in case of an audit.

    So how much do you trust your data logger to really be logging 100% of the data that it should be in the event of a connectivity issue? OPC UA provides capabilities that software applications can leverage to provide peace of mind in such vital logging operations.

    Since its introduction in the mid-2000s, the OPC Unified Architecture standard (OPC UA) has quickly shown why it is such a robust and complete successor to the original OPC Data Access (OPC DA) standard. With the growing Industry 4.0 “smart factory” trend (and the adoption thereof), the numerous benefits of switching to OPC UA capable solutions are becoming clearer and clearer.

    One such specific benefit that OPC UA brings to the table and the impact this has on traditional data logging is the ability to buffer data. The OPC UA buffering mechanism was primarily designed for two scenarios:

    1. Connection loss – Just like most buffers, the designers of the OPC UA standard wanted to facilitate server side data buffering should the connection between the client and server be lost.
      • Obviously, if the OPC UA server-side computer were to go down, you would need some level of redundancy in place to account for that failure to have a truly lossless situation.
      • With OPC UA, methods exist for the connection between the OPC UA client and OPC UA Server to be re-established using the original OPC UA Session (i.e. connection). Once resumed, all data that was buffered during the connection loss will be provided to the UA client and polling will continue normally.
    2. Bandwidth optimization – With OPC DA, the rate at which data could be read from the field device (be it a PLC, RTU, network switch, etc.) was impacted by any limits the OPC DA client software set on how fast it could receive data and, similarly, limits the OPC DA server set on how fast it could send data to the client.
      • For instance, reading data from your ControlLogix every 50 milliseconds would not serve much of a purpose if the client consuming the data can only process and update every 500 milliseconds.
      • With the OPC UA buffering mechanism, the sample rate at which the OPC UA Server scans the field device is now uncoupled from the rate at which that data is served to the client software.
      • Using the same example from above, scanning a device every 50 milliseconds simply means that every 500 milliseconds the OPC UA Server is serving 10 buffered data values to the OPC UA client, your data logging application, to process.

    Regardless of why your OPC UA server is buffering data, what happens to that data when the server sends it to your OPC UA client data logger software?

    There is a real possibility that your OPC UA client data logger is discarding the majority of the data, depending on the implementation in the data logger client by the vendor. In our testing of various OPC UA clients out there, most did simply dispose of all but the last value in any data packet in which buffered data was sent. This means that, of the last 50 temperature measurements for your furnace, only a single record was reported – at a 15 minute sample rate, you just lost over 3 hours of temperature data and might have a very expensive problem on your hands.

    As of version, the Software Toolbox OPC Data Logger is able to process queued OPC UA data in cases where the sample rate of the OPC UA server is faster than the rate at which it is being provided to the OPC UA client data logger.

    Once the OPC Data Logger receives the data, it can be logged to any number of text-based storages (txt or csv) and/or databases (including SQL, MySQL, Oracle, and Access).  We also are continuing to work on innovative ways for OPC Data Logger to benefit from the OPC UA Session management options now that more UA servers are being implemented that support buffering.

    If you’re not familiar with OPC Data Logger but the use case above applies to you and you would like to try it with your own OPC UA server data sources, you can try OPC Data Logger for free: Click to Download Trial.