Systems and methods for providing open platform communications (OPC) data access in an OPC unified architecture

CN123023302APending Publication Date: 2026-10-30ABB (SCHWEIZ) AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580025167.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-04-25
Filing Date
2025-02-20
Publication Date
2026-10-30

AI Technical Summary

Technical Problem

因此,现有的OPCUA和基于windows的HMI服务不允许HMI的用户或操作员针对海量的OPC数据请求并且执行HMI操作

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123023302A_ABST
    Figure CN123023302A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method of generating recommendations for providing OPC data access in OPC UA. The system comprises a client device and an intermediate server device configured between the client device and an OPC UA server. Via the OPC UA server, the intermediate server device receives subscribed OPC data associated with one or more industrial automation services from one or more field devices of an industrial plant. Further, the intermediate server device stores the subscribed OPC data in a cache unit associated with a predefined subscription type. Thereafter, the client device receives a request from an operator for performing one or more HMI operations. Based on the request, the client device provides access to the subscribed OPC data for performing the one or more HMI operations by retrieving the subscribed OPC data from the cache unit of the intermediate server device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to the management of industrial automation data in the Open Platform Communication Unified Architecture (OPC UA). More specifically, this disclosure relates to methods and systems for providing OPC data access in OPC UA. Background Technology

[0002] The Open Platform Communications (OPC) Foundation is an industry consortium that creates and maintains standards for open interconnection of industrial automation equipment and systems, such as industrial control systems and process controls. Standards maintained by OPC define the communication of industrial process data, alarms and events, historical data, and batch process data between sensors, instruments, controllers, software systems, and notification devices.

[0003] The OPC Foundation encompasses various standards for managing OPC data. OPC standards, such as OPC Data Access, facilitate the communication of real-time data from data acquisition devices (such as programmable logic controllers (PLCs)) and interface devices (such as human-machine interfaces (HMIs)) to displays. This standard primarily focuses on the continuous communication of real-time data, such as alarms and events managed by the OPC Foundation. Another OPC standard (OPC Data Exchange) facilitates server-to-server communication across industrial networks. This standard also covers remote configuration, diagnostics, monitoring, and management communications. The OPC Unified Architecture (OPC UA) is an extension of all OPC standards. OPC UA integrates all the functionality of the aforementioned standards through the use of cross-platform web services and other modern technologies.

[0004] OPC UA supports communication patterns associated with both client-server and publish-subscribe architectures. OPC UA combines these architectures to manage communication of OPC data. However, existing OPC UAs are inefficient in providing access to OPC data. Specifically, existing OPC UAs lack features for performing runtime human-machine interface (HMI) operations on thousands of records associated with OPC data. Currently, HMI operations are performed by hosting the HMI associated with the OPC UA as a Windows service, which limits the user experience. The Windows-based HMI service associated with the OPC client receives OPC data from the OPC server based on the publish-subscribe mechanism provided by the publish-subscribe architecture. Here, subscribed OPC data is stored in a database associated with the OPC client. Subscribed OPC data is not stored in an organized manner that allows users or operators to request runtime HMI operations on subscribed OPC data. Therefore, existing OPC UAs and Windows-based HMI services do not allow HMI users or operators to request and perform HMI operations on massive amounts of OPC data.

[0005] The information disclosed in the background section of this disclosure is intended only to enhance understanding of the general background of the invention and should not be construed as an admission or in any way implying that the information constitutes prior art known to those skilled in the art. Summary of the Invention

[0006] In one embodiment, this disclosure discloses a system for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA). The system includes a client device and an intermediate server device configured between the client device and an OPC UA server. The intermediate server device is configured to receive subscribed OPC data associated with one or more industrial automation services from one or more field devices in an industrial plant via the OPC UA server. Furthermore, the intermediate server device is configured to store the subscribed OPC data in a cache unit associated with a predefined subscription type. The client device is configured to receive a request from an operator to perform one or more Human Machine Interface (HMI) operations. Based on this request, the client device provides access to the subscribed OPC data by retrieving it from the cache unit of the intermediate server device for performing one or more HMI operations.

[0007] In one embodiment, this disclosure discloses an intermediate server device for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA). The intermediate server device is configured between a client device and an OPC UA server. The intermediate server device includes a processor and memory. The processor is configured to receive subscribed OPC data associated with one or more industrial automation services from one or more field devices in an industrial plant via the OPC UA server. Furthermore, the processor is configured to store the subscribed OPC data in a cache unit associated with a predefined subscription type. Subsequently, the processor is configured to, upon receiving a request from a client device, retrieve the subscribed OPC data from the cache unit and provide it to the client device for performing one or more Human Machine Interface (HMI) operations.

[0008] In one embodiment, this disclosure discloses a method for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA). The method includes: receiving subscribed OPC data associated with one or more industrial automation services from one or more field devices in an industrial plant via an OPC UA server. The subscribed OPC data is then stored in a cache unit associated with a predefined subscription type. The method further includes: receiving a request from an operator for performing one or more Human Machine Interface (HMI) operations. Thereafter, the method includes: based on the request, providing access to the subscribed OPC data for performing one or more HMI operations by retrieving the subscribed OPC data from the cache unit of an intermediate server device.

[0009] In one embodiment, this disclosure discloses a method for providing Open Platform Communications (OPC) data access within an Open Platform Communications Unified Architecture (OPC UA). The method includes receiving, via an OPC UA server, subscribed OPC data associated with one or more industrial automation services from one or more field devices in an industrial plant. Furthermore, the method includes storing the subscribed OPC data in a cache unit associated with a predetermined subscription type. Subsequently, the method includes, upon receiving a request from a client device, retrieving the subscribed OPC data from the cache unit and providing it to the client device for performing one or more Human Machine Interface (HMI) operations.

[0010] The foregoing description of the invention is merely illustrative and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent from the accompanying drawings and the following detailed description. Attached Figure Description

[0011] The novel features and characteristics of this disclosure are set forth in the appended claims. However, the disclosure itself, its preferred modes of use, further objects, and advantages will be better understood when read in conjunction with the accompanying drawings and the following detailed description of illustrative embodiments. One or more embodiments are now described by way of example only, with reference to the accompanying drawings, in which like reference numerals denote like elements, and wherein:

[0012] Figure 1 An exemplary architecture for providing OPC data access in an OPC UA is shown according to some embodiments of this disclosure;

[0013] Figure 2 Detailed schematic diagrams of a system for providing OPC data access in an OPC UA, according to some embodiments of the present disclosure, are shown.

[0014] Figures 3a-3c Exemplary illustrations are shown for providing OPC data access in an OPC UA according to some embodiments of the present disclosure;

[0015] Figures 4a-4d Exemplary illustrations of various use cases for performing HMI operations according to some embodiments of the present disclosure are shown;

[0016] Figures 4e-4f Exemplary illustrations are shown of the results of performing HMI operations on OPC data according to some embodiments of the present disclosure;

[0017] Figure 5 An exemplary flowchart illustrating method steps for providing OPC data access in an OPC UA according to some embodiments of the present disclosure is shown;

[0018] Figure 6 An exemplary flowchart illustrating method steps for providing OPC data access in OPCUA for an intermediate server device, according to some embodiments of the present disclosure, is shown; and

[0019] Figure 7 A block diagram of an exemplary computer system for implementing embodiments consistent with this disclosure is shown.

[0020] Those skilled in the art will understand that any block diagram herein represents a conceptual view of an illustrative system embodying the principles of the subject matter. Similarly, it should be understood that any flowchart, schematic diagram, state transition diagram, pseudocode, etc., represents various processes that can be substantially represented in a computer-readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown. Detailed Implementation

[0021] In this document, the word "exemplary" is used herein to mean "used as an example, instance, or illustration." Any embodiment or implementation of the subject matter described herein as "exemplary" is not necessarily to be construed as being more preferred or advantageous than other embodiments.

[0022] Although this disclosure can be modified and take various alternative forms, specific embodiments thereof have been shown by way of example in the accompanying drawings and will be described in detail below. However, it should be understood that this is not intended to limit this disclosure to the specific forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the scope of this disclosure.

[0023] The term "comprise / comprising" or any other variation thereof is intended to cover a non-exclusive inclusion relationship, such that an arrangement, apparatus, or method that includes a list of components or steps may include not only those components or steps but also other components or steps not expressly listed or inherent to such arrangement, apparatus, or method. In other words, one or more elements in a system or apparatus introduced by "comprise...a" do not exclude the presence of other elements or additional elements in the system or apparatus, unless further limiting.

[0024] This disclosure provides systems and methods for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA). This disclosure discloses a system including a client device and an intermediate server device configured between the client device and an OPC UA server. According to this disclosure, the intermediate server device receives subscribed OPC data published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by the intermediate server device and hosted by the OPC UA client. Accordingly, the intermediate server device maintains the cache unit and further manages providing access to users or operators to retrieve the subscribed OPC data based on their requests to perform one or more Human-Machine Interface (HMI) operations. The system of this disclosure is provided to clients in OPC UA as a web-based solution. In this way, the web-based solution facilitates clients moving away from Windows-based HMI services. According to this disclosure, the cache unit maintained by the intermediate server device stores the subscribed OPC data, rather than a generic database associated with the OPC client. Therefore, the intermediate server device facilitates easy access by operators to cache units and retrieval of subscribed OPC data, enabling the execution of specific runtime HMI operations on the subscribed OPC data based on operator requests. Thus, the proposed intermediate server device bridges the gap between the OPC UA server and the corresponding OPC UA client's client layer.

[0025] Figure 1 The illustration depicts an exemplary architecture for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA) according to some embodiments of the present disclosure. This exemplary architecture includes a system 100 comprising a client device 102, an intermediate server device 101, and an OPC UA server 103. The OPC UA server 103 receives OPC data from one or more field devices 104 in an industrial plant. The intermediate server device 101 includes an input / output (I / O) interface 107, a memory 109A, and a processor 111. In some embodiments, the memory 109A may be communicatively coupled to the processor 111. The memory 109A stores instructions executable by the processor 111. The memory 109A includes a cache unit 109B. The cache unit 109B is configured to store OPC data received in real time. The system 100 is hosted within an OPC UA, wherein the intermediate server device 101 is configured between the OPC UA server 103 and the client device 102. Client device 102 can enable a Human Machine Interface (HMI) front-end service during runtime for use by operators who wish to access OPC data to perform one or more HMI operations. In one embodiment, the client can host client device 102, which can be any user device, including but not limited to operator systems, user equipment (UEs), mobile devices, etc. In one embodiment, intermediate server device 101 can be a database hosted on a cloud platform, configured to store subscribed OPC data (such as telemetry data from an industrial plant). In another embodiment, intermediate server device 101 can be implemented on an edge computing platform. In one embodiment, telemetry data can include alarms and events generated by one or more field devices 104 in an industrial plant. Intermediate server device 101 can communicate with OPCUA server 103 and client device 102 via communication networks 105A and 105B (such as LTE, GSM, 3GPP, etc.).

[0026] Client device 102, hosted by an OPC UA client, sends a subscription request to OPC UA server 103 to receive OPC data from one or more field devices 104. OPC UA server 103 publishes the subscribed OPC data to intermediate server device 101 of the OPC UA client. Upon receiving an event notification of OPC data from one or more field devices 104, OPC UA server 103 publishes the OPC data to intermediate server device 101. In one embodiment, the OPC data is associated with one or more industrial automation services. An industrial plant may include an industrial control system that hosts one or more industrial automation services. An industrial control system is an electronic control system for the automatic control and operation of industrial automation services. An industrial plant may include, but is not limited to, steel automation plants, electronics manufacturing plants, etc. Automation services may include, but are not limited to, periodically monitoring one or more field devices 104, generating periodic notifications based on operator-specific predefined conditions, etc. One or more field devices 104 may include, but are not limited to, sensors, controllers, actuators and manufacturing equipment, robots, etc.

[0027] In this disclosure, system 100 is configured to provide OPC data access in an OPC UA. Herein, upon receiving subscribed OPC data, intermediate server device 101 is configured to store the subscribed OPC data in a cache unit 109B associated with a predefined subscription type. The predefined subscription type corresponds to either an existing subscription or a new subscription. In one embodiment, the subscribed OPC data may include either previously subscribed OPC data or newly subscribed OPC data. In one embodiment, previously subscribed OPC data may correspond to OPC data for which a subscription request was previously sent but is currently being received. In one embodiment, when subscribed OPC data corresponds to previously subscribed OPC data, the predefined subscription type is identified as an existing subscription. Therefore, upon identification that subscribed OPC data corresponds to an existing subscription, the subscribed OPC data received from OPCUA server 103 is stored in the cache unit 109B already present in intermediate server device 101.

[0028] In one embodiment, when subscribed OPC data corresponds to newly subscribed OPC data, a predefined subscription type is identified as a new subscription. Therefore, for the new subscription and the newly subscribed OPC data, the intermediate server device 101 generates a new cache unit to store the newly subscribed OPC data. In one embodiment, once the cache unit 109B is generated, it is used to store two types of information. The first information corresponds to connection information that indicates the predefined subscription type as a new subscription. The second information corresponds to the corresponding subscribed OPC data for which the cache unit 109B was generated.

[0029] In one embodiment of this disclosure, once subscribed OPC data is stored in cache unit 109B of intermediate server device 101, client device 102 is configured to receive a request from an operator to perform one or more HMI operations. In one embodiment, the one or more HMI operations include performing at least one of the following on the subscribed OPC data: virtual scrolling, conditional sorting, pausing, and unpausing. In one embodiment, upon receiving a request from an operator to perform one or more HMI operations, client device 102 is configured to determine the page number, row number, and current scroll position of the visible area on client device 102. Client device 102 determines the current scroll position by identifying the location where a scrollbar currently exists in the visible area. Client device 102 determines the row number based on the visible area and by further excluding predefined elements from the visible area. In one embodiment, the predefined elements may correspond to Document Object Model (DOM) elements. DOM elements may include, but are not limited to, anchor sets, link sets, form sets, image sets, etc. Therefore, according to this disclosure, DOM elements present on rows outside the visible area are excluded from display on client device 102.

[0030] Furthermore, the determined page number, line number, and current scroll position, along with a request indicating a specific runtime HMI operation, are sent to intermediate server device 101. Intermediate server device 101 considers the received information associated with the visible area and the requested HMI operation to access and retrieve the subscribed OPC data from cache unit 109B. Furthermore, intermediate server device 101 is configured to send the retrieved subscribed OPC data to client device 102. Therefore, on the HMI screen of client device 102, the subscribed OPC data is displayed based on information provided by the operator and associated with the visible area. In this way, subscribed OPC data is displayed to the operator based on the operator's request and the requirements determined by client device 102 and associated with the visible area.

[0031] Furthermore, according to this disclosure, the intermediate server device 101 is also configured to identify one or more changes to the subscribed OPC data stored in the cache unit 109B after the subscribed OPC data is displayed on the HMI screen. Upon identifying one or more changes, the intermediate server device 101 is configured to dynamically update these changes on the client device 102. In one embodiment, the intermediate server device 101 notifies the operator of the dynamic update when one or more changes are displayed in the visible area of ​​the HMI screen on the client device 102. In another embodiment, the intermediate server device 101 does not notify the operator of the dynamic update when one or more changes are not displayed in the visible area of ​​the HMI screen on the client device 102. In this way, ongoing HMI operations are not interrupted, thereby achieving an enhanced user experience.

[0032] In one embodiment, system 100 may be a computing device such as a laptop computer, desktop computer, personal computer (PC), notebook computer, smartphone, tablet computer, e-book reader, server, web server, cloud-based server, router, etc. In one implementation, system 100 may be part of an industrial control system.

[0033] Figure 2 The illustration shows a detailed schematic of a system 100 for providing Open Platform Communications (OPC) data access in an Open Platform Communications Unified Architecture (OPC UA) according to some embodiments of the present disclosure. System 100 includes an input / output (I / O) interface 201, a memory 205, and a processor 203. In some embodiments, the memory 205 may be communicatively coupled to the processor 203. The memory 205 stores instructions executable by the processor 203. The processor 203 may include at least one data processor for executing program components to perform user-generated requests. The memory 205 may be communicatively coupled to the processor 203. The memory 205 stores instructions executable by the processor 203 that, when executed, enable the processor 203 to provide OPC data access in the OPC UA.

[0034] In one embodiment, memory 205 may include one or more modules 209 and data 207. The one or more modules 209 may be configured to use data 207 to perform the steps of this disclosure to provide OPC data access in an OPC UA. In one embodiment, each of the one or more modules 209 may be a hardware unit external to memory 205 and coupled to system 100. As used herein, the term module 209 refers to application-specific integrated circuits (ASICs), electronic circuits, field-programmable gate arrays (FPGAs), programmable system-on-chip (PSoCs), combinational logic circuits, and / or other suitable components that provide the described functionality. When configured with the functionality defined and described in this disclosure, one or more modules 209 constitute novel hardware. Furthermore, I / O interface 201 is coupled to processor 203, through which input signals and / or output signals are transmitted. For example, system 100 facilitates OPC data access for an operator via I / O interface 201.

[0035] In one implementation, module 209 may include, for example, a data receiving module 222, a cached data management module 224, a request receiving module 226, an access providing module 228, a data retrieval module 230, and other modules 232. It should be understood that the aforementioned module 209 may be represented as a single module or a combination of different modules. The data receiving module 222, the cached data management module 224, and the data retrieval module 230 are integrated in the intermediate server device 101, and the request receiving module 226 and the access providing module 228 are integrated in the client device 102. The client device 102 and the intermediate server device 101 are independent entities of system 100, and those skilled in the art will understand that module 209 may be associated with the corresponding entities. In one implementation, data 207 may include, for example, received data 212, stored data 214, requested data 216, accessed and retrieved data 218, and other data 220.

[0036] In one embodiment, the data receiving module 222 can be configured to receive subscribed OPC data associated with one or more industrial automation services. The data receiving module 222 can receive OPC data from one or more field devices 104 in an industrial plant via an OPC UA server 103. The subscribed OPC data received by the data receiving module 222 corresponds to received data 212. In one embodiment, the OPC UA server 103 publishes the subscribed OPC data to the data receiving module 222 whenever it is received from one or more field devices 104. In one embodiment, the subscribed OPC data received by the data receiving module 222 can be associated with one or more industrial automation services. Specifically, the subscribed OPC data can correspond to alarms and events generated by one or more field devices 104. These alarms and events can be generated while managing industrial automation services, such as periodically monitoring field devices 104 and generating periodic notifications based on operator-specific predefined conditions. For example, Figure 3a The illustration shows a client device 102 sending a subscription request to receive OPC data that includes alarm-specific data provided by one or more field devices 104. Figure 3a As shown, when a subscription request is sent to OPC UA server 103, the requested OPC data is published by OPC UA server 103 to the OPC UA client library. In one embodiment, the OPC client library may be an entity associated with intermediate server device 101. The OPC client library may correspond to data receiving module 222.

[0037] Back Figure 2 Subscribed OPC data may include either previously subscribed OPC data or newly subscribed OPC data. In one embodiment, previously subscribed OPC data may correspond to OPC data for which a subscription request was previously sent but which has only been received recently. Subscribed OPC data is associated with a predefined subscription type. The predefined subscription type corresponds to either an existing subscription or a new subscription. In one embodiment, when the subscribed OPC data received by the data receiving module 222 corresponds to previously subscribed OPC data, the predefined subscription type is identified as an existing subscription. In one embodiment, when the data receiving module 222 identifies that the subscribed OPC data corresponds to newly subscribed OPC data, the predefined subscription type is identified as a new subscription. Furthermore, the data receiving module 222 is configured to send subscribed OPC data received from the OPC UA server 103 to the cached data management module 224 for storage.

[0038] Furthermore, the cache data management module 224 is configured to receive subscribed OPC data from the data receiving module 222. Upon receiving subscribed OPC data, the cache data management module 224 is configured to identify which type of predefined subscription the subscribed OPC data is associated with. When the cache data management module 224 identifies that the subscribed OPC data corresponds to an existing subscription, the subscribed OPC data is stored in a cache unit 109B already existing in the intermediate server device 101. In one embodiment, when the cache data management module 224 identifies that the subscribed OPC data corresponds to a new subscription, the cache data management module 224 is configured to generate a new cache unit for storing the subscribed OPC data. In one embodiment, the new cache unit stores the newly subscribed OPC data. Figure 3a As can be seen, once the OPC UA client library receives the specific data of the subscribed alert, the data is stored in the cache unit 109B. Figure 3b The diagram illustrates a detailed exemplary process for storing subscribed OPC data. For example... Figure 3b As can be seen, when the OPC UA client library receives subscribed OPC data, the subscribed OPC data is published via the "alarm_event_call_back" function. Alarm-specific data arrives at the cached data management module 224 along with the "OnEvent" notification and the predefined subscription type. (See also...) Figure 3b As shown, the cache data management module 224 also determines which cache unit belongs to specific alarm data based on a predefined subscription type. If the predefined subscription type corresponds to a new subscription, the cache data management module 224 creates a new cache unit 109B2. If the predefined subscription type corresponds to an existing subscription, the cache data management module 224 identifies cache unit 109B1 from one or more existing cache units maintained by the cache data management module 224. In one embodiment, once a new cache unit 109B2 is created, it is populated with connection information indicating the predefined subscription type. Then, cache unit 109B waits to receive the corresponding subscribed OPC data for which cache unit 109B was created.

[0039] For example, Figure 3c An exemplary block diagram for creating a new cache unit 109B2 is illustrated. Figure 3cAs can be seen, once a subscription request is sent from the OPC UA client, a new cache unit 109B2 is created. Cache unit 109B2 is populated with connection information that indicates a new subscription as a predefined subscription type. Cache unit 109B2 then waits to receive the corresponding subscribed OPC data for which cache unit 109B2 was created. However, if the cache data management module 224 identifies, based on the subscription type, that the received subscribed OPC data is not for cache unit 109B2, an existing cache unit 109B1 is identified from one or more existing cache units 109B for storing the subscribed OPC data. The subscribed OPC data stored in cache unit 109B corresponds to the stored data 214. Therefore, in this way, OPC data is stored and maintained in cache unit 109B, making it easily accessible to the operator at the front end of client device 102.

[0040] return Figure 2 When storing OPC data in cache unit 109B or when creating cache unit 109B, request receiving module 226 is configured to receive requests from operators for performing one or more human-machine interface (HMI) operations. In one embodiment, the one or more HMI operations include performing at least one of the following on subscribed OPC data: virtual scrolling, conditional sorting, pausing, and canceling pausing. In one embodiment, the received request may correspond to requested data 216. Upon receiving a request from an operator for performing one or more HMI operations, request receiving module 226 is configured to forward the requested data 216 to access providing module 228. For example, from Figure 3a As can be seen, operator 300 sends a request to perform HMI operations on the stored data 214. In one embodiment, request receiving module 226 can be configured to also receive subscription requests from operator 300.

[0041] return Figure 2Access providing module 228 is configured to receive requested data 216 from request receiving module 226. Access providing module 228 is configured to determine the page number, line number, and current scroll position of the visible area on the HMI screen of client device 102. Access providing module 228 is configured to determine the current scroll position by identifying the location where a scroll bar currently exists in the visible area. Access providing module 228 determines the line number based on the visible area and by further excluding predefined elements from the visible area. In one embodiment, the predefined elements may correspond to Document Object Model (DOM) elements. DOM elements may include, but are not limited to, anchor sets, link sets, form sets, image sets, etc. Therefore, according to this disclosure, access providing module 228 excludes DOM elements that exist on lines outside the visible area from being displayed on client device 102. Furthermore, by sending the received request along with the determined page number, line number, and current scroll position of the visible area to data retrieval module 230, access providing module 228 accesses the stored data 214.

[0042] The data retrieval module 230 is configured to receive a request from the access providing module 228 for performing an HMI operation, along with the determined page number, row number, and current scroll position of the visible area. Furthermore, the data retrieval module 230 considers received information associated with the visible area and the requested HMI operation for retrieving subscribed OPC data from the cache data management module 224. Specifically, the data retrieval module 230 can retrieve OPC data from the cache unit 109B. In one embodiment, when retrieving subscribed OPC data from the cache data management module 224, the subscribed OPC data may correspond to the accessed and retrieved data. In one embodiment, the data retrieval module 230 is also configured to identify whether there are any changes to the subscribed OPC data stored in the cache unit 109B. Specifically, after the subscribed OPC data is displayed on the HMI screen of the client device 102, the data retrieval module 230 checks for changes. When one or more changes are identified, the data retrieval module 230 is configured to dynamically update these changes on the client device 102. In one embodiment, the data retrieval module 230 notifies the operator 300 of the dynamic update when one or more changes are displayed in the visible area of ​​the HMI screen of the client device 102. In another embodiment, the data retrieval module 230 does not notify the operator of the dynamic update when one or more changes are not displayed in the visible area of ​​the HMI screen of the client device 102. In one embodiment, one or more changes may be caused by adding newly subscribed OPC data to previously subscribed OPC data.

[0043] For example, Figures 4a-4dThe diagram illustrates a use case for performing HMI operations on subscribed OPC data. Specifically, in Figure 4a In this example, the use case involves adding new data to existing data. Figure 4a As can be seen, operator 300 is viewing "Page 101" in the view area of ​​client device 102. Accordingly, as Figure 4a As shown, when a newly generated alert is associated with the subscribed OPC data (in this example, the alert list) that operator 300 is currently viewing, the operator 300 is notified of the change caused by adding the newly generated alert. These changes are then reflected on the HMI screen, which includes the alert list. Therefore, according to this disclosure, a newly generated alert can be added anywhere within the alert list. In one embodiment of this disclosure, a newly generated alert is added to the alert list based on an HMI action requested by operator 300. In this example, the HMI action could correspond to "Sort by activation time". Therefore, due to the HMI action requested by operator 300, the newly generated alert is added to the top of the alert list. Furthermore, when newly generated alert data is added, the row number, along with the scroll bar height and page number, is updated. Based on one or more pages within the visible area, the last page is displayed on the HMI screen of client device 102.

[0044] In addition, Figure 4b In this example, the use case involves detecting state changes in existing data. Figure 4b As can be seen, the state change occurs on pages 96 and 98. However, since the operator only views page 98, the state change is only notified to operator 300 for page 98. The state change for page 96 is reflected in the alarm list but is not notified to operator 300. Accordingly, the backend / intermediate server device (data retrieval module 230) retains the page numbers of the currently visible area for the client. This ensures that when the state changes, only the pages within the visible area are pushed from the backend to the frontend (the HMI screen of client device 102). Similarly, in Figure 4c In this context, use cases involve removing or deleting data from existing data. Figure 4c As can be seen, the affected pages within the visible area are identified and further pushed to the front end to display the changes to operator 300. Figure 4d In another example shown, the use case involves pausing existing data. From Figure 4d As can be seen, the existing data is retained in the backend until operator 300 sends the HMI operation command corresponding to "cancel pause".

[0045] Figures 4e-4f An exemplary illustration shows the result of performing an HMI operation on OPC data. Specifically, Figure 4e This demonstrates that existing data is updated at runtime, while Figure 4fA paused state is shown, in which existing data is displayed on the front end. Therefore, according to this disclosure, operator 300 can perform various operations on the runtime OPC data, which further facilitates the operator performing infinite scrolling of the OPC data displayed on the HMI screen of client device 102.

[0046] Other data 220 may store data (including temporary data and temporary files) generated by one or more modules 209 for use in performing various functions of system 100. One or more modules 209 may also include other modules 232 to perform various additional functions of system 100. Other data 220 may be stored in memory 205. It should be understood that one or more modules 209 may be represented as a single module or a combination of different modules.

[0047] Figure 5 An exemplary flowchart is shown, illustrating method steps for providing Open Platform Communications (OPC) data access within an Open Platform Communications Unified Architecture (OPC UA) according to some embodiments of this disclosure. Figure 5 As illustrated, method 500 may include one or more steps. Method 500 may be described within the general context of computer-executable instructions. Typically, computer-executable instructions may include routines, programs, objects, components, data structures, modules, and functions that perform specific functions or implement specific abstract data types.

[0048] The order in which method 500 is described should not be construed as limiting, and any number of described method boxes can be combined in any order to implement the method. Additionally, individual boxes may be removed from the method without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented using any suitable hardware, software, firmware, or a combination thereof.

[0049] At step 501, system 100 receives subscribed OPC data associated with one or more industrial automation services from one or more field devices 104 in an industrial plant via OPC UA server 103. In one embodiment, OPC UA server 103 publishes the subscribed OPC data to intermediate server device 101.

[0050] At step 503, system 100 stores the subscribed OPC data in a cache unit 109B associated with a predefined subscription type. The predefined subscription type includes either an existing subscription or a new subscription. In one embodiment, the subscribed OPC data is stored by identifying the predefined subscription type associated with it. Subsequently, when the predefined subscription type is identified as an existing subscription, the subscribed OPC data is stored in the corresponding cache unit 109B1. Otherwise, when the predefined subscription type is identified as a new subscription, a new cache unit 109B2 is generated to store the subscribed OPC data. In one embodiment, cache unit 109B includes connection information indicating the predefined subscription type and the corresponding subscribed OPC data.

[0051] At step 505, system 100 receives a request from operator 300 to perform one or more human-machine interface (HMI) operations. In one embodiment, the one or more HMI operations include performing at least one of the following on subscribed OPC data: virtual scrolling, conditional sorting, pausing, and canceling pausing. The method further includes, upon receiving the request, identifying one or more changes in the subscribed OPC data stored in cache unit 109B, and subsequently dynamically updating the one or more changes on client device 102.

[0052] At step 507, based on the request, system 100 provides access to subscribed OPC data by retrieving the subscribed OPC data from cache unit 109B of intermediate server device 101 for performing one or more HMI operations.

[0053] Figure 6 An exemplary flowchart is shown, illustrating method steps for providing Open Platform Communications (OPC) data access within an Open Platform Communications Unified Architecture (OPC UA) according to some embodiments of this disclosure. Figure 6 As illustrated, method 600 may include one or more steps. Method 600 may be described within the general context of computer-executable instructions. Typically, computer-executable instructions may include routines, programs, objects, components, data structures, modules, and functions that perform specific functions or implement specific abstract data types.

[0054] The order in which method 600 is described should not be construed as limiting, and any number of the described method boxes can be combined in any order to implement the method. Additionally, individual boxes may be removed from the method without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented using any suitable hardware, software, firmware, or a combination thereof.

[0055] At step 601, intermediate server device 101 receives subscribed OPC data associated with one or more industrial automation services from one or more field devices 104 in the industrial plant via OPC UA server 103.

[0056] At step 603, intermediate server device 101 stores the subscribed OPC data in cache unit 109B associated with a predefined subscription type.

[0057] At step 603, upon receiving a request from client device 102, intermediate server device 101 retrieves the subscribed OPC data from cache unit 109B and provides it to client device 102 for performing one or more human-machine interface (HMI) operations. Computer System

[0058] Figure 7 A block diagram of an exemplary computer system 700 for implementing embodiments consistent with this disclosure is illustrated. In one embodiment, computer system 700 may be used to implement system 100. Therefore, computer system 700 may be used to provide Open Platform Communications (OPC) data access within an Open Platform Communications Unified Architecture (OPC UA). Computer system 700 may include a central processing unit 702 (also referred to as a "CPU" or "processor"). Processor 702 may include at least one data processor. Processor 702 may include dedicated processing units such as an integrated system (bus) controller, a memory management control unit, a floating-point unit, a graphics processing unit, a digital signal processing unit, etc.

[0059] The processor 702 can be configured to communicate with one or more input / output (I / O) devices (not shown) via I / O interface 701. I / O interface 701 can employ communication protocols / methods such as, but not limited to: audio, analog, digital, mono, RCA, stereo, IEEE (Institute of Electrical and Electronics Engineers)-1394, serial bus, Universal Serial Bus (USB), infrared, PS / 2, BNC, coaxial, component, composite, digital video interface (DVI), high-definition multimedia interface (HDMI), radio frequency (RF) antenna, S-Video, VGA, IEEE 8.16.n / b / g / n / x, Bluetooth, cellular networks (e.g., Code Division Multiple Access (CDMA), High Speed ​​Packet Access (HSPA+), Global System for Mobile Communications (GSM), Long Term Evolution (LTE), WiMax, etc.).

[0060] Using I / O interface 701, computer system 700 can communicate with one or more I / O devices. For example, input device 710 can be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touchscreen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device / source, etc. Output device 711 can be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma display panel (PDP), organic light-emitting diode display (OLED), etc.), audio speakers, etc.

[0061] Processor 702 can be configured to communicate with communication network 709 via network interface 703. Network interface 703 can communicate with communication network 709. Network interface 703 can employ connectivity protocols, including but not limited to direct connection, Ethernet (e.g., 10 / 100 / 1000 Base T twisted pair), Transmission Control Protocol / Internet Protocol (TCP / IP), Token Ring, IEEE 8.16.11a / b / g / n / x, etc. Communication network 709 can include, but is not limited to, direct interconnect, Local Area Network (LAN), Wide Area Network (WAN), Wireless Network (e.g., using Wireless Application Protocol), Internet, etc. Network interface 703 can employ connectivity protocols, including but not limited to direct connection, Ethernet (e.g., 10 / 100 / 1000 Base T twisted pair), Transmission Control Protocol / Internet Protocol (TCP / IP), Token Ring, IEEE 8.16.11a / b / g / n / x, etc.

[0062] Communication networks 709 include, but are not limited to, direct interconnection, e-commerce networks, peer-to-peer (P2P) networks, local area networks (LANs), wide area networks (WANs), wireless networks (e.g., using Wireless Application Protocol), the Internet, Wi-Fi, etc. The first and second networks can be private or shared networks, representing an association of different types of networks communicating with each other using various protocols (e.g., Hypertext Transfer Protocol (HTTP), Transmission Control Protocol / Internet Protocol (TCP / IP), Wireless Application Protocol (WAP), etc.). Furthermore, the first and second networks can include various network devices, including routers, bridges, servers, computing devices, storage devices, etc.

[0063] In some embodiments, the processor 702 may be configured to communicate with a memory 705 (e.g., RAM, ROM, etc., not shown in FIG8) via a storage interface 704. The storage interface 704 may be connected to the memory 705 (including, but not limited to, memory drives, removable disk drives, etc.) and employs connection protocols such as Serial Advanced Technology Attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), Fibre Channel, Small Computer System Interface (SCSI), etc. The memory drive may also include magnetic drums, disk drives, magneto-optical drives, optical disc drives, redundant arrays of independent disks (RAID), solid-state storage devices, solid-state drives, etc.

[0064] Memory 705 may store a collection of program or database components, including but not limited to user interface 706, operating system 707, web browser 708, etc. In some embodiments, computer system 700 may store user / application data, such as data, variables, records, etc., as described in this disclosure. Such a database may be implemented as a fault-tolerant, relational, scalable, and secure database, such as Oracle® or Sybase®.

[0065] Operating system 707 facilitates resource management and operation of computer system 700. Examples of operating systems include, but are not limited to: Apple Macintosh. R OS X, UNIX, and UNIX-like system distributions (e.g., BERKELEY SOFTWARE EDISTRIBUTION) TM (BSD), FreeBSD TM NETBSD TM OPENBSD TM etc.), Linux distributions TM (For example, RED HAT) TM UBUNTU TM KUBUNTU TM etc.), IBM TM OS / 2, Microsoft TM WINDOWS TM (XP) TM VISTA TM / 7 / 8, 10, etc.), APPLE R iOS TM Google R ANDROID TM BLACKBERRY R OS, etc.

[0066] In some embodiments, the computer system 700 may implement a stored program component, a web browser 708. The web browser 708 may be a hypertext viewing application, such as Microsoft. R INTERNET EXPLORER TM Google R CHROME TM0 MOZILLA R FIREFOX TM APPLE R SAFARI TM Secure web browsing can be provided using protocols such as Hypertext Transfer Protocol Secure (HTTPS), Secure Sockets Layer (SSL), and Transport Layer Security (TLS). Web browser 708 can utilize technologies such as AJAX. TM DHTML TM Adobe R FLASH TM JAVASCRIPT TM JAVA TM Application programming interfaces (APIs), etc. In some embodiments, the computer system 700 may implement a stored program component mail server (not shown in the figures). This mail server may be an Internet mail server such as Microsoft Exchange. This mail server may utilize technologies such as ASP. TM ACTIVEX TM ANSI TM C++ / C#, Microsoft R .NET TM CGI SCRIPTS TM JAVA TM JAVASCRIPT TM PERL TM PHP TM PYTHON TM WEBOBJECTS TM Tools such as Internet Message Access Protocol (IMAP), Message Application Programming Interface (MAPI), and Microsoft can be used. R Communication protocols include Exchange, Point of Post (POP), and Simple Mail Transfer Protocol (SMTP). In some embodiments, the computer system 700 may implement a stored program component, an email client. This email client (not shown in the accompanying drawings) may be an email viewing application, such as Apple... R MAIL TM MICROSOFTR ENTOURAGE TM MICROSOFT R OUTLOOK TM MOZILLA R THUNDERBIRD TM wait.

[0067] Furthermore, one or more computer-readable storage media may be used in implementing embodiments consistent with this disclosure. A computer-readable storage medium refers to any type of physical memory on which processor-readable information or data can be stored. Therefore, a computer-readable storage medium can store instructions executable by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term "computer-readable medium" should be understood to include tangible items and exclude carrier waves and transient signals, i.e., it is non-transient. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, non-volatile memory, hard disk drives, optical disc read-only memory (CD-ROM), digital video discs (DVDs), flash drives, disks, and any other known physical storage media.

[0068] Embodiments of this disclosure provide methods and systems for providing access to Open Platform Communications (OPC) data within an Open Platform Communications Unified Architecture (OPC UA). This disclosure discloses a system comprising a client device and an intermediate server device configured between the client device and an OPC UA server. According to this disclosure, the intermediate server device receives subscribed OPC data published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by the OPC UA client. Accordingly, the intermediate server device maintains the cache unit and further manages providing access to users or operators to retrieve the subscribed OPC data based on their requests to perform one or more Human-Machine Interface (HMI) operations. The system proposed in this disclosure is provided to clients in OPC UA as a web-based solution. In this way, the web-based solution facilitates clients moving away from Windows-based HMI services. According to this disclosure, the cache unit maintained by the intermediate server device stores the subscribed OPC data, rather than a generic database associated with the OPC client. Therefore, the intermediate server device facilitates easy access by operators to cache units and retrieval of subscribed OPC data, enabling the execution of specific runtime HMI operations on the subscribed OPC data based on operator requests. Thus, the proposed intermediate server device bridges the gap between the OPC UA server and the corresponding OPC UA client's client layer.

[0069] Unless otherwise expressly stated, the terms “an embodiment,” “embodiment,” “the embodiment,” “one or more embodiments,” “some embodiments,” and “an embodiment” mean “one or more (but not all) embodiments of the invention.”

[0070] Unless otherwise expressly stated, the terms “including,” “comprising,” “having,” and their variations mean “including but not limited to.”

[0071] Unless otherwise expressly stated, the enumerated list of items does not imply that any or all of them are mutually exclusive. Unless otherwise expressly stated, the terms "an", "an", and "the" mean "one or more".

[0072] The description of an embodiment having several interconnected components does not imply that all such components are necessary. Rather, the various optional components are described to illustrate the many possible embodiments of the invention.

[0073] When this document describes a single device or item, it is apparent that more than one device / item (whether or not they cooperate) may be used in place of the single device / item. Similarly, when this document describes more than one device or item (whether or not they cooperate), it is apparent that a single device / item may be used in place of more than one device or item, or a different number of devices / items may be used instead of the number shown. The functionality and / or features of a device may alternatively be embodied by one or more other devices not explicitly described as having such functionality / features. Therefore, other embodiments of the invention need not include the device itself.

[0074] Figures 5 to 7 The operations illustrated herein show specific events occurring in a particular order. In alternative embodiments, some operations may be performed, modified, or removed in a different order. Furthermore, steps may be added to the logic described above, and the described embodiments may still be followed. Additionally, the operations described herein may occur sequentially, or some operations may be processed in parallel. Furthermore, these operations may be performed by a single processing unit or by distributed processing units.

[0075] Finally, the language used in this specification has been chosen primarily for readability and instructional purposes, and its selection is not intended to define or limit the subject matter of the invention. Therefore, the scope of the invention should not be limited to the specific embodiments, but rather should be defined by any claims made based on this application. Accordingly, the disclosure of embodiments of the invention is intended to illustrate, rather than limit, the scope of the invention, which is set forth in the claims.

[0076] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for illustrative purposes only and are not intended to constitute limitation, wherein the true scope is indicated by the claims. Figure Labels :

Claims

1. A system for providing Open Platform Communication (OPC) data access within an Open Platform Communication Unified Architecture (OPC UA), the system comprising: Client devices; as well as An intermediate server device is configured between the client device and the OPC UA server. The intermediate server device is configured as follows: The OPC UA server receives subscribed OPC data associated with one or more industrial automation services from one or more field devices in an industrial plant; and The subscribed OPC data is stored in a cache unit associated with a predefined subscription type; and The client device is configured as follows: Receive requests from operators to perform one or more human-machine interface (HMI) operations; and Based on the request, access to the subscribed OPC data is provided by retrieving the subscribed OPC data from the cache unit of the intermediate server device for performing the one or more HMI operations.

2. The system according to claim 1, wherein the OPC UA server publishes the subscribed OPC data to the intermediate server device.

3. The system of claim 1, wherein the predefined subscription type corresponds to either an existing subscription or a new subscription.

4. The system of claim 1, wherein the intermediate server device is configured to store the subscribed OPC data by: Identify the predefined subscription type associated with the subscribed OPC data; as well as Perform one of the following: When the predefined subscription type is identified as an existing subscription, the subscribed OPC data is stored in the corresponding cache unit; or When the predefined subscription type is identified as a new subscription, a new cache unit is generated to store the subscribed OPC data.

5. The system according to claim 1, wherein the cache unit stores connection information, the connection information indicating the predefined subscription type and the corresponding subscribed OPC data.

6. The system of claim 1, wherein the one or more HMI operations include performing at least one of the following on the subscribed OPC data: virtual scrolling, conditional sorting, pausing, and unpausing.

7. The system of claim 1, wherein upon receiving the request from the operator, the client device is configured to: Determine the page number, row number, and current scroll position of the visible area associated with the client device for performing the one or more HMI operations on the subscribed OPC data; and The received request, along with the determined page number, row number, and current scroll position, is sent to the intermediate server device.

8. The system of claim 7, wherein the client device is configured to determine the number of rows by excluding predefined elements from the visible area associated with the client device.

9. The system of claim 7, wherein the intermediate server device is configured as follows: Receive the request along with the determined page number, row number, and current scroll position; Based on a predefined subscription type, the subscribed OPC data is accessed from the cache unit; Based on the page number and the row number, the subscribed OPC data is retrieved from the cache unit; as well as The accessed subscribed OPC data is sent to the client device for displaying the accessed subscribed OPC data in the visible area based on the current scroll position.

10. The system of claim 1, wherein the intermediate server device is further configured to: Upon receiving the request, the identifier is one or more changes to the subscribed OPC data stored in the cache unit; and The one or more changes are dynamically updated on the client device.

11. The system of claim 10, wherein the intermediate server device is configured to dynamically update the one or more changes by performing one of the following: When one or more changes are not displayed in the visible area associated with the client device, update the one or more changes without notifying the operator; or When the one or more changes are displayed in the visible area associated with the client device, the one or more changes are updated by notifying the operator.

12. An intermediate server device for providing Open Platform Communication (OPC) data access in an Open Platform Communication Unified Architecture (OPC UA), the intermediate server device being configured between a client device and an OPC UA server, the intermediate server device comprising: processor; as well as Memory, communicatively coupled to the processor, wherein the memory stores processor instructions that, when executed, cause the processor to: The OPC UA server receives subscribed OPC data associated with one or more industrial automation services from one or more field devices in the industrial plant. The subscribed OPC data is stored in a cache unit associated with a predefined subscription type; as well as Upon receiving a request from the client device, the subscribed OPC data is retrieved from the cache unit and provided to the client device for performing one or more human-machine interface (HMI) operations.

13. A method for providing Open Platform Communication (OPC) data access in an Open Platform Communication Unified Architecture (OPC UA), the method comprising: The system's intermediate server equipment, via the OPC UA server, receives subscribed OPC data associated with one or more industrial automation services from one or more field devices in the industrial plant. The intermediate server device stores the subscribed OPC data in a cache unit associated with a predefined subscription type; The system's client device receives a request from an operator to perform one or more human-machine interface (HMI) operations; as well as The client device provides access to the subscribed OPC data based on the request by retrieving the subscribed OPC data from the cache unit of the intermediate server device, in order to perform the one or more HMI operations.

14. The method of claim 13, wherein the OPC UA server publishes the subscribed OPC data to the intermediate server device.

15. The method of claim 13, wherein the predefined subscription type corresponds to one of an existing subscription and a new subscription.

16. The method of claim 13, wherein storing the subscribed OPC data in the cache unit comprises: Identify the predefined subscription type associated with the subscribed OPC data; as well as Perform one of the following: When the predefined subscription type is identified as an existing subscription, the subscribed OPC data is stored in the corresponding cache unit; or When the predefined subscription type is identified as a new subscription, a new cache unit is generated to store the subscribed OPC data.

17. The method of claim 13, wherein the cache unit stores connection information, the connection information indicating the predefined subscription type and the corresponding subscribed OPC data.

18. The method of claim 13, wherein the one or more HMI operations include performing at least one of the following on the subscribed OPC data: virtual scrolling, conditional sorting, pausing, and unpausing.

19. The method of claim 13, wherein upon receiving the request from the operator, the method comprises: The client device determines the page number, row number, and current scroll position of the visible area associated with the client device for performing one or more HMI operations on the subscribed OPC data; The client device sends the received request, along with the determined page number, row number, and current scroll position, to the intermediate server device. The intermediate server device receives the request along with the determined page number, row number, and current scroll position. The intermediate server device accesses the subscribed OPC data from the cache unit based on the predefined subscription type; The intermediate server device retrieves the subscribed OPC data from the cache unit based on the page number and the row number; The intermediate server device sends the accessed subscribed OPC data to the client device for displaying the accessed subscribed OPC data in the visible area based on the current scroll position; as well as The client device receives the accessed subscribed OPC data and displays the accessed subscribed OPC data in the visible area.

20. The method of claim 19, wherein the number of rows is determined by excluding predefined elements from the visible area associated with the client device.

21. The method of claim 13, further comprising: Upon receiving the request, the intermediate server device identifies one or more changes in the subscribed OPC data stored in the cache unit; as well as The intermediate server device dynamically updates the one or more changes on the client device.

22. The method of claim 21, wherein dynamically updating the one or more changes comprises performing one of the following: When one or more changes are not displayed in the visible area associated with the client device, update the one or more changes without notifying the operator; or When the one or more changes are displayed in the visible area associated with the client device, the one or more changes are updated by notifying the operator.

23. A method for providing Open Platform Communication (OPC) data access within an Open Platform Communication Unified Architecture (OPC UA) for an intermediate server device, the method comprising: Subscribed OPC data associated with one or more industrial automation services is received from one or more field devices in an industrial plant via an intermediate server device and an OPC UA server. The intermediate server device stores the subscribed OPC data in a cache unit associated with a predefined subscription type; as well as Upon receiving a request from the client device, the intermediate server device retrieves the subscribed OPC data from the cache unit and provides the subscribed OPC data to the client device for performing one or more human-machine interface (HMI) operations.