[go: up one dir, main page]

WO2025224514A1 - System and method for providing open platform communication (opc) data access in opc unified architecture - Google Patents

System and method for providing open platform communication (opc) data access in opc unified architecture

Info

Publication number
WO2025224514A1
WO2025224514A1 PCT/IB2025/051813 IB2025051813W WO2025224514A1 WO 2025224514 A1 WO2025224514 A1 WO 2025224514A1 IB 2025051813 W IB2025051813 W IB 2025051813W WO 2025224514 A1 WO2025224514 A1 WO 2025224514A1
Authority
WO
WIPO (PCT)
Prior art keywords
opc
subscribed
data
client device
subscription
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/IB2025/051813
Other languages
French (fr)
Inventor
Bharath DHANANJAYA
Sandeep Rao
Rabindra HOTA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ABB Schweiz AG
Original Assignee
ABB Schweiz AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ABB Schweiz AG filed Critical ABB Schweiz AG
Publication of WO2025224514A1 publication Critical patent/WO2025224514A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • TITLE SYSTEM AND METHOD FOR PROVIDING OPEN PLATFORM COMMUNICATION (OPC) DATA ACCESS IN OPC UNIFIED ARCHITECTURE
  • the present disclosure generally relates to management of industrial automation data in an Open Platform Communication Unified Architecture (OPC UA). More particularly, the present disclosure relates to methods and systems for providing OPC data access in the OPC UA.
  • OPC UA Open Platform Communication Unified Architecture
  • the OPC (Open Platform Communications) foundation is an industry consortium that creates and maintains standards for open connectivity of industrial automation devices and systems, such as industrial control systems and process controls.
  • the standards maintained by the OPC specify communication of industrial process data, alarms and events, historical data and batch process data between sensors, instruments, controllers, software systems, and notification devices.
  • the OPC foundation comprises various standards for managing OPC data.
  • the OPC standards such as OPC Data Access facilitates communication of real time data from data acquisition devices such as Programmable Logic Controllers (PLCs) and interface devices like Human-Machine Interfaces (HMI) to display.
  • PLCs Programmable Logic Controllers
  • HMI Human-Machine Interfaces
  • This standard majorly focuses on the continuous communication of the real time data such as the alarms and events managed by the OPC foundation.
  • PLCs Programmable Logic Controllers
  • HMI Human-Machine Interfaces
  • OPC Data exchange facilitates a server to server communication across industrial networks. This standard also addresses remote configuration, diagnostics, monitoring, and management communications.
  • An extension to all the OPC standards is the OPC Unified Architecture (OPC UA).
  • OPC UA incorporates all functionalities of the above standards by using cross platform web services and other modem technologies.
  • the OPC UA supports communication patterns associated with client-server architectures and publish-subscribe architectures.
  • the OPC UA in combination with the aforementioned architecture manages the communication of the OPC data.
  • existing OPC UA is not efficient in providing access to OPC data.
  • HMI operations are performed by hosting the HMI which are associated with the OPC UA as a windows service which has limitation on user experience.
  • the windows based HMI service associated with an OPC client receives the OPC data from the OPC server based on a publish-subscribe mechanism provided by publish-subscribe architectures.
  • the subscribed OPC data is stored in a database associated with a OPC client.
  • the subscribed OPC data is not stored in an organised manner such that users or operators can request the runtime HMI operations on the subscribed OPC data. Therefore, the existing OPC UA and the windows based HMI service does not allow the users or the operators of the HMI to request and perform HMI operations on the vast OPC data.
  • the present disclosure discloses a system for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • the system comprises a client device and an intermediary server device configured between the client device and a OPC UA server.
  • the intermediary server device is configured to receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server. Further, the intermediary server device is configured to store the subscribed OPC data in a cache unit associated with a predefined type of subscription.
  • the client device is configured to receive a request from an operator for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the client device provides an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
  • HMI Human Machine Interface
  • the present disclosure discloses an intermediaiy server device for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • the intermediary server device is configured between a client device and an OPC UA server.
  • the intermediary server device comprises a processor and a memory.
  • the processor is configured to receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server. Further, the processor is configured to store the subscribed OPC data in a cache unit associated with a predefined type of subscription. Thereafter, the processor is configured to retrieve the subscribed OPC data from the cache unit and provide to the client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the present disclosure discloses a method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • the method comprises receiving subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server.
  • the method further comprises receiving a request from an operator for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the method comprises providing an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
  • HMI Human Machine Interface
  • the present disclosure discloses a method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • the method comprises receiving subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server. Further, the method comprises storing the subscribed OPC data in a cache unit associated with a predefined type of subscription. Thereafter, the method comprises retrieving the subscribed OPC data from the cache unit and provide to a client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • FIG. 1 shows an exemplary architecture for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure
  • FIG. 2 shows a detailed diagram of a system for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure
  • FIGs. 3a-3c show exemplary illustrations for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure
  • FIGs. 4a-4d show exemplary illustrations of various use cases for performing HMI operations, in accordance with some embodiments of the present disclosure
  • Figs. 4e-4f show exemplary illustrations of results on performing the HMI operations on OPC data, in accordance with some embodiments of the present disclosure
  • FIG. 5 shows an exemplary flow chart illustrating method steps for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure
  • FIG. 6 shows an exemplary flow chart illustrating method steps for providing OPC data access in an OPC UA for an intermediary server device, in accordance with some embodiments of the present disclosure.
  • FIG. 7 shows a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
  • any block diagram herein represents conceptual views of illustrative systems embodying the principles of the present subject matter.
  • any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown.
  • the present disclosure provides systems and methods for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • OPC Open Platform Communication
  • OPC Unified Architecture OPC Unified Architecture
  • a system comprising a client device and an intermediary server device configured between the client device and an OPC UA server is disclosed.
  • the intermediary server device receives subscribed OPC data which is published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by the intermediary server device hosted by an OPC UA client.
  • the intermediary 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 for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the system of the present disclosure is provided as a web based solution to a client in the OPC UA.
  • the web based solution facilitates clients to move away from windows based HMI service.
  • the cache unit maintained by the intermediary server device stores the subscribed OPC data instead of general databases associated with the OPC client. Therefore, the intermediary server device facilitates the operators to easily access and retrieve the subscribed OPC data from the cache unit in order to perform specific runtime HMI operations on the subscribed OPC data based on the requests from the operators. Therefore, the proposed intermediary server device bridges the gap present between the OPC UA server and a client layer of corresponding OPC UA client.
  • Fig. 1 illustrates an exemplary architecture for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure.
  • the exemplary architecture comprises a system 100 which comprises a client device 102, an intermediary server device 101, and a OPC UA server 103.
  • the OPC UA server 103 receives OPC data from one or more field devices 104 of an industrial plant.
  • the intermediary server device 101 comprises an Input/ Output (I/O) interface 107, a memory 109A, and a processor 111.
  • the memory 109A may be communicatively coupled to the processor 111.
  • the memory 109A stores instructions executable by the processor 111.
  • the memory 109A comprises a cache unit 109B.
  • the cache unit 109B is configured to store the OPC data received in real time.
  • the system 100 is hosted in the OPC UA, wherein the intermediary server device 101 is configured between the OPC UA server 103 and the client device 102.
  • the client device 102 may enable Human Machine Interface (HMI) front-end services during a runtime, for operators who wish to access the OPC data for performing one or more HMI operations.
  • HMI Human Machine Interface
  • clients may host the client device 102 which may be any user device including, but not limited to, an operator system, a User Equipment (UE), a mobile device, and the like .
  • UE User Equipment
  • the intermediary server device 101 may be a database hosted on a cloud platform configured to store subscribed OPC data such as telemetry data from the industrial plant. In another embodiment, the intermediary server device 101 may be implemented on an edge computing platform. In an embodiment, the telemetry data may include alarm and events generated by the one or more field devices 104 of the industrial plant.
  • the intermediary server device 101 may communicate with the OPC UA Server 103 and the client device 102 via communication network 105 A and 105B respectively, such as LTE, GSM, 3GPP, and the like.
  • the client device 102 hosted by an OPC UA client sends subscription requests to the OPC UA server 103 to receive OPC data from the one or more field devices 104.
  • the OPC UA server 103 publishes the subscribed OPC data to the intermediary server device 101 of the OPC UA client.
  • the OPC UA server 103 publishes the OPC data to the intermediary server device 101 on receiving an event notification for the OPC data from the one or more field devices 104.
  • the OPC data is associated with one or more industrial automation services.
  • the industrial plant may comprise of industrial control systems hosting the one or more industrial automation services.
  • the industrial control system is an electronic control system for automated control and operation of the industrial automation services.
  • the industrial plant may include, but not limited to, steel automation plants, electronics manufacturing plants, and the like.
  • the automation services may include, but not limited to, monitoring the one or more field devices 104 on regular intervals, generating periodic notifications based on operator-specific predefined conditions, and the like.
  • the one or more field devices 104 may include, but not be limited to, sensors, controllers, actuators and manufacturing devices, robots, the like. .
  • the system 100 is configured to provide OPC data access in the OPC UA.
  • the intermediary server device 101 on receiving the subscribed OPC data, is configured to store the subscribed OPC data in the cache unit 109B which is associated with a predefined type of subscription.
  • the predefined type of subscription corresponds to one of, an existing subscription and a new subscription.
  • the subscribed OPC data may comprise one of, previously subscribed OPC data or newly subscribed OPC data.
  • the previously subscribed OPC data may correspond to the OPC data for which the subscription request was sent previously, however, the OPC data is being received currently.
  • the predefined type of subscription is identified as the existing subscription.
  • the subscribed OPC data received from the OPC UA server 103 is stored in the cache unit 109B which is already existing in the intermediary server device 101.
  • the intermediary server device 101 when the subscribed OPC data corresponds to the newly subscribed OPC data, then the predefined type of subscription is identified as the new subscription. Therefore, for the new subscription and the newly subscribed OPC data, the intermediary server device 101 generates a new cache unit for storing the newly subscribed OPC data.
  • the cache unit 109B once the cache unit 109B is generated, they are used for storing two types of information. The first information corresponds to connection information indicating the predefined type of subscription as the new subscription. The second information corresponds to the corresponding subscribed OPC data for which the cache unit 109B is generated.
  • the client device 102 is configured to receive a request from the operator for performing the one or more HMI operations.
  • the one or more HMI operations comprises performing at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data.
  • the client device 102 on receiving the request for performing the one or more HMI operations from the operator, is configured to determine a page number, a count of rows and a current scroll position for a visible area on the client device 102.
  • the client device 102 determines the current scroll position by identifying a position in the visible area in which a scroll bar is present currently.
  • the client device 102 determines the count of rows based on the visible area and by further excluding predefined elements from the visible area.
  • the predefined elements may correspond to Document Object Model (DOM) elements.
  • the DOM elements may include, but are not limited to, anchor collection, link collection, forms collection, image collection, and the like. Therefore, according to the present disclosure, the DOM elements which are present on rows that are outside the visible area, are excluded from being displayed on the client device 102.
  • the determined page number, the count of rows and the current scroll position are sent to the intermediary server device 101 along with the request indicating a specific runtime HMI operation.
  • the intermediary server device 101 considers received information associated with the visible area and the requested HMI operation for accessing and retrieving the subscribed OPC data from the cache unit 109B. Further, the intermediary server device 101 is configured to send the subscribed OPC data, which is retrieved, to the client device 102. Therefore, on an HMI screen of the client device 102, the subscribed OPC data is displayed according to the information associated with the visible area, which was provided by the operator. In this manner, the subscribed OPC data is displayed to the operator based on their request and requirements associated with the visible area determined by the client device 102.
  • the intermediary server device 101 is further configured to identify one or more changes in the subscribed OPC data stored in the cache unit 109B, post displaying the subscribed OPC data on the HMI screen. On identifying the one or more changes, the intermediary server device 101 is configured to dynamically update the changes on the client device 102. In an embodiment, when the one or more changes are displayed on the visible area of the HMI screen of the client device 102, the intermediary server device 101 notifies the operator about the dynamic update. In another embodiment, when the one or more changes are not displayed on a visible area of the HMI screen of the client device 102, the intermediary server device 101 does not notify the operator about the dynamic update. In this manner, the on-going HMI operation is not interrupted, and an enhanced user experience is achieved.
  • the system 100 may be a computing device such as, a laptop computer, a desktop computer, a Personal Computer (PC), a notebook, a smartphone, a tablet, e-book readers, a server, a network server, a cloud-based server, router, and the like.
  • the system 100 may be a part of the industrial control system.
  • Fig. 2 illustrates a detailed diagram of the system 100 for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure.
  • the system 100 comprises an Input/ Output (I/O) interface 201, a memory 205, and a processor 203.
  • 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 comprise at least one data processor for executing program components for executing user generated requests.
  • the memory 205 may be communicatively coupled to the processor 203.
  • the memory 205 stores instructions, executable by the processor 203, which, on execution, may cause the processor 203 to provide OPC data access in the OPC UA.
  • the memory 205 may include one or more modules 209 and data 207.
  • the one or more modules 209 may be configured to perform the steps of the present disclosure using data 207, to provide the OPC data access in the OPC UA.
  • each of the one or more modules 209 may be a hardware unit which may be outside the memory 205 and coupled with the system 100.
  • the term modules 209 refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a Field-Programmable Gate Arrays (FPGA), Programmable System-on-Chip (PSoC), a combinational logic circuit, and/or other suitable components that provide described functionality.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Arrays
  • PSoC Programmable System-on-Chip
  • the one or more modules 209 when configured with the described functionality defined in the present disclosure will result in a novel hardware.
  • the I/O interface 201 is coupled with the processor 203 through which an input signal or/and an output signal is communicated.
  • the system 100 facilitates the OPC data access for operators via the I/O interface 201.
  • the modules 209 may include, for example, a data receiving module 222, a cache data management module 224, a request receiving module 226, an access providing module 228, a data retrieving module 230 and other modules 232. It will be appreciated that such aforementioned modules 209 may be represented as a single module or a combination of different modules.
  • the data receiving module 222, the cache data management module 224, and the data retrieving module 230 are integrated in the intermediary 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 intermediary server device 101 are independent entities of the system 100 and a person skilled in art will appreciate that the modules 209 may be associated with the respective entities.
  • the data 207 may include, for example, received data 212, stored data 214, requested data 216, accessed and retrieved data 218, and other data 220.
  • the data receiving module 222 may be configured to receive subscribed OPC data associated with one or more industrial automation services.
  • the data receiving module 222 may receive the OPC data from the one or more field devices 104 of an industrial plant via an OPC UA server 103.
  • the subscribed OPC data received by the data receiving module 222 corresponds to the received data 212.
  • the OPC UA server 103 publishes the subscribed OPC data to the data receiving module 222 as soon as it receives the subscribed OPC data from the one or more field devices 104.
  • the subscribed OPC data received by the data receiving module 222 maybe be associated with one or more industrial automation services.
  • the subscribed OPC data may correspond to alarms and events generated by the one or more field devices 104.
  • the alarms and events may be generated while managing industrial automation services such as monitoring the field devices 104 on regular intervals and generating periodic notifications based on operator-specific predefined conditions.
  • Fig. 3a shows a client device 102 sending a subscription request for receiving OPC data comprising alarm specific data provided by the one or more field devices 104.
  • Fig. 3a shows that on sending the subscription request to the OPC UA server 103, the requested OPC data is published by the OPC UA server 103 to an OPC UA client library.
  • the OPC client library may be an entity associated with the intermediary server device 101.
  • the OPC client library may correspond to the data receiving module 222.
  • the subscribed OPC data may comprise one of, previously subscribed OPC data or newly subscribed OPC data.
  • the previously subscribed OPC data may correspond to the OPC data for which the subscription request was sent previously, however, the OPC data is received currently.
  • the subscribed OPC data is associated with a predefined type of subscription.
  • the predefined type of subscription corresponds to one of, an existing subscription and a new subscription.
  • the subscribed OPC data received by the data receiving module 222 corresponds to the previously subscribed OPC data, then the predefined type of subscription is identified as the existing subscription.
  • the data receiving module 222 when the data receiving module 222 identifies that the subscribed OPC data corresponds to the newly subscribed OPC data, then the predefined type of subscription is identified as the new subscription. Further, the data receiving module 222 is configured to send the subscribed OPC data, which is received from the OPC UA server 103 to the cache data management module 224 for storage purpose.
  • the cache data management module 224 is configured to receive the subscribed OPC data from the data receiving module 222. On receiving the subscribed OPC data, the cache data management module 224 is configured to identify with which type of predefined subscription, the subscribed OPC data is associated. When the cache data management module 224 identifies the subscribed OPC data corresponds to the existing subscription, then the subscribed OPC data is stored in the cache unit 109B which is already existing in the intermediary server device 101. In an embodiment, when the cache data management module 224 identifies the subscribed OPC data corresponds to the new subscription, the cache data management module 224 is configured to generate a new cache unit for storing the subscribed OPC data. In an embodiment, the new cache unit stores the newly subscribed OPC data.
  • Fig. 3b illustrates a detailed exemplary flow for storing the subscribed OPC data.
  • the subscribed OPC data gets published through an “alarm event call back” function.
  • the alarm specific data arrives to the cache data management module 224 with an “OnEvent” notification and the predefined type of subscription.
  • the cache data management module 224 further decides to which cache unit the alarm specific data belongs based on the predefined type of subscription.
  • the cache data management module 224 creates a new cache unit 109B2. If the predefined type of subscription corresponds to the existing subscription, then the cache data management module 224 identifies a cache unit 109B1 from one or more existing cache units maintained by the cache data management module 224. In an embodiment, once the new cache unit 109B2 is generated, it is populated with connection information indicating the predefined type of subscription. The cache units 109B then wait to receive the corresponding subscribed OPC data for which the cache unit 109B is generated.
  • Fig. 3c illustrates an exemplary block diagram for creating the new cache unit 109B2.
  • the new cache unit 109B2 is created.
  • the cache unit 109B2 is populated with connection information indicating the predefined type of subscription as the new subscription.
  • the cache unit 109B2 then waits to receive the corresponding subscribed OPC data for which the cache unit 109B2 was generated.
  • the cache data management module 224 identifies based on the type of subscription that the subscribed OPC data received is not for the cache unit 109B2, then the existing cache unit 109B1 is identified from the one or more existing cache units 109B, for storing the subscribed OPC data.
  • the subscribed OPC data which is stored in the cache unit 109B corresponds to the stored data 214. Therefore, in this manner, the OPC data is stored and maintained in the cache units 109B such that it is easily accessible to the operators at front end of the client device 102.
  • the request receiving module 226 is configured to receive a request from the operators for performing one or more Human Machine Interface (HMI) operations.
  • the one or more HMI operations comprises performing at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data.
  • the received request may correspond to the requested data 216.
  • the request receiving module 226 is configured to forward the requested data 216 to the access providing module 228. For example, as seen from Fig. 3a, an operator 300 sends the request for performing HMI operation on the stored data 214.
  • the request receiving module 226 may be configured to also receive the subscription requests from the operator 300.
  • the access providing module 228 is configured to receive the requested data 216 from the request receiving module 226.
  • the access providing module 228 is configured to determine a page number, a count of rows and a current scroll position for a visible area on an HMI screen of the client device 102.
  • the access providing module 228 is configured to determine the current scroll position by identifying a position in the visible area in which a scroll bar is present currently.
  • the access providing module 228 determines the count of rows based on the visible area and by further excluding predefined elements from the visible area.
  • the predefined elements may correspond to Document Object Model (DOM) elements.
  • the DOM elements may include, but are not limited to, anchor collection, link collection, forms collection, image collection, and the like.
  • the access providing module 228 excludes the DOM elements from being displayed on the client device 102, which are present on rows that are outside the visible area, . Further, the access providing module 228 accesses the stored data 214 by sending the received request along with determined page number, the count of rows and the current scroll position for the visible area along with the to the data retrieving module 230.
  • the data retrieving module 230 is configured to receive the request from the access providing module 228, for performing the HMI operations along with the determined page number, the count of rows and the current scroll position for the visible area. Further, the data retrieving module 230 considers the received information associated with the visible area and the requested HMI operation for retrieving the subscribed OPC data from the cache data management module 224. Particularly, the data retrieving module 230 may retrieve the OPC data from the cache unit 109B. In an embodiment, the subscribed OPC data may correspond to the accessed and retrieved data on retrieving the subscribed OPC data from the cache data management module 224.
  • the data retrieving module 230 is further configured to identify whether there are any changes in the subscribed OPC data which is stored in the cache unit 109B. Particularly, the data retrieving module 230 checks for the changes post displaying the subscribed OPC data on the HMI screen of the client device 102. On identifying the one or more changes, the data retrieving module 230 is configured to dynamically update the changes on the client device 102. In an embodiment, when the one or more changes are displayed on the visible area of the HMI screen of the client device 102, the data retrieving module 230 notifies the operator 300 about the dynamic update.
  • the data retrieving module 230 when the one or more changes are not displayed on a visible area of the HMI screen of the client device 102, the data retrieving module 230 does not notify the operator about the dynamic update. In an embodiment, the one or more changes may be caused due to addition of the newly subscribed OPC data to the previously subscribed OPC data.
  • Figs. 4a-4d illustrate use cases for performing HMI operations on the subscribed OPC data.
  • the use case relates to adding new data to existing data.
  • ‘page 101’ is being viewed by the operator 300 on the view area of the client device 102.
  • changes occurred due to the addition of the newly generated alarms are notified to the operator 300. Therefore, the changes are reflected on the HMI screen which comprises the alarm list. Therefore, according to the present disclosure, the newly generated alarms can be added anywhere within the alarm list.
  • the newly generated alarms are added to the alarm list based on the HMI operations requested by the operator 300.
  • the HMI operation may correspond to “sort by active time”. Therefore, the newly generated alarms are added on top of the alarm list due to the HMI operation as requested by the operator 300.
  • the count of rows is updated along with the height of the scroll bar and page numbers. The last page is displayed on the HMI screen of the client device 102 based on the page or pages under the visible area.
  • the use case relates to detecting state changes in existing data.
  • the state changes occur on page 96 and page 98.
  • the state changes are notified to the operator 300 only for page 98.
  • the state changes for page 96 are reflected in the alarm list without notifying the operator 300.
  • the back end/intermediate server device retains the page numbers of the current client’s visible area. This is performed so that, when state changes, only the pages within the visible area are pushed from the back end to the front end (HMI screen of client device 102).
  • the use case relates to removing or deleting data from existing data.
  • the pages within the visible area are identified which are impacted and are further pushed to the front end to display the changes to the operator 300.
  • the case relates to pausing the existing data.
  • the existing data is retained in the back end until the operator 300 sends the HMI operation corresponding to ‘un-pause’.
  • Figs. 4e-4f show exemplary illustrations of results on performing the HMI operations on OPC data. Particularly, Fig. 4e shows the existing data getting updated in runtime and Fig. 4f shows a pause state where the existing data is getting displayed on the front end. Therefore, according to the present disclosure, the operators 300 may perform various operations on the runtime OPC data which further facilitates the operator to perform infinite scroll on the OPC data displayed on the HMI screen of the client device 102.
  • the other data 220 may store data, including temporary data and temporary files, generated by the one or more modules 209 for performing the various functions of the system 100.
  • the one or more modules 209 may also include the other modules 232 to perform various miscellaneous functionalities of the system 100.
  • the other data 220 may be stored in the memory 205. It will be appreciated that the one or more modules 209 may be represented as a single module or a combination of different modules.
  • Fig. 5 shows an exemplary flow chart illustrating method steps for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure.
  • OPC Open Platform Communication
  • OPC UA OPC Unified Architecture
  • the method 500 may comprise one or more steps.
  • the method 500 may be described in the general context of computer executable instructions.
  • computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.
  • the system 100 receives subscribed OPC data associated with one or more industrial automation services, from one or more field devices 104 of an industrial plant via the OPC UA server 103.
  • the OPC UA server 103 publishes the subscribed OPC data to the intermediary server device 101.
  • the system 100 stores the subscribed OPC data in a cache unit 109B associated with a predefined type of subscription.
  • the predefined type of subscription comprises one of an existing subscription and a new subscription.
  • the subscribed OPC data is stored by identifying the predefined type of subscription associated with the subscribed OPC data.
  • a new cache unit 109B2 is generated for storing the subscribed OPC data when the predefined type of subscription is identified as a new subscription.
  • the cache unit 109B comprises connection information indicating the predefined type of subscription and the corresponding subscribed OPC data.
  • the system 100 receives a request from an operator 300 for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the one or more HMI operations comprises at least one of, virtual scrolling, conditional sorting, pausing, and unpausing, on the subscribed OPC data.
  • the method further comprising identifying one or more changes in the subscribed OPC data stored in the cache unit 109B, post receiving the request, followed by dynamically updating the one or more changes on the client device 102.
  • the system 100 provides an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit 109B of the intermediary server device 101 based on the request, for performing the one or more HMI operations.
  • Fig. 6 shows an exemplary flow chart illustrating method steps for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure.
  • OPC Open Platform Communication
  • OPC UA OPC Unified Architecture
  • the method 600 may comprise one or more steps.
  • the method 600 may be described in the general context of computer executable instructions.
  • computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.
  • the intermediary server device 101 receives subscribed OPC data associated with one or more industrial automation services, from one or more field devices 104 of an industrial plant via the OPC UA server 103.
  • the intermediary server device 101 stores the subscribed OPC data in a cache unit 109B associated with a predefined type of subscription.
  • the intermediary server device 101 retrieves the subscribed OPC data from the cache unit 109B and provides to a client device 102, on receiving a request from the client device 102, for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • Fig. 7 illustrates a block diagram of an exemplary computer system 700 for implementing embodiments consistent with the present disclosure.
  • the computer system 700 may be used to implement the system 100.
  • the computer system 700 may be used for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • the computer system 700 may comprise a Central Processing Unit 702 (also referred as “CPU” or “processor”).
  • the processor 702 may comprise at least one data processor.
  • the processor 702 may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.
  • the processor 702 may be disposed in communication with one or more input/output (I/O) devices (not shown) via I/O interface 701.
  • the I/O interface 701 may employ communication protocols/methods such as, without limitation, audio, analog, digital, monoaural, RCA, stereo, IEEE (Institute of Electrical and Electronics Engineers) -1394, serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video, VGA, IEEE 8.16.n /b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc.
  • CDMA code-division multiple access
  • HSPA+ high-speed packet access
  • GSM global system for mobile communications
  • the computer system 700 may communicate with one or more I/O devices.
  • the input device 710 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device/source, etc.
  • the output device 711 may be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, Plasma display panel (PDP), Organic light-emitting diode display (OLED) or the like), audio speaker, etc.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • LED light-emitting diode
  • PDP Plasma display panel
  • OLED Organic light-emitting diode display
  • the processor 702 may be disposed in communication with the communication network 709 via a network interface 703.
  • the network interface 703 may communicate with the communication network 709.
  • the network interface 703 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/intemet protocol (TCP/IP), token ring, IEEE 8.16.11a/b/g/n/x, etc.
  • the communication network 709 may include, without limitation, a direct interconnection, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, etc.
  • the network interface 703 may employ connection protocols include, but not limited to, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/intemet protocol (TCP/IP), token ring, IEEE 8.16.11 a/b/g/n/x, etc .
  • connection protocols include, but not limited to, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/intemet protocol (TCP/IP), token ring, IEEE 8.16.11 a/b/g/n/x, etc .
  • the communication network 709 includes, but is not limited to, a direct interconnection, an e-commerce network, a peer to peer (P2P) network, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, WiFi, and such.
  • the first network and the second network may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/intemet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other.
  • the first network and the second network may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc.
  • the processor 702 may be disposed in communication with a memory 705 (e.g., RAM, ROM, etc. not shown in Figure 8) via a storage interface 704.
  • the storage interface 704 may connect to memory 705 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as serial advanced technology attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fiber channel, Small Computer Systems Interface (SCSI), etc.
  • the memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc.
  • the memory 705 may store a collection of program or database components, including, without limitation, user interface 706, an operating system 707, web browser 708 etc.
  • computer system 700 may store user/application data, such as, the data, variables, records, etc., as described in this disclosure.
  • databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle ® or Sybase®.
  • the operating system 707 may facilitate resource management and operation of the computer system 700.
  • Examples of operating systems include, without limitation, APPLE MACINTOSH R OS X, UNIX R , UNIX-like system distributions (E.G, BERKELEY SOFTWARE DISTRIBUTIONTM (BSD), FREEBSDTM, NETBSDTM, OPENBSDTM, etc ), LINUX DISTRIBUTIONSTM (E.G, RED HATTM, UBUNTUTM, KUBUNTUTM, etc ), IBMTM OS/2, MICROSOFTTM WINDOWSTM (XPTM, VISTATM/7/8, 10 etc ), APPLE R IOSTM, GOOGLE R ANDROIDTM, BLACKBERRY R OS, or the like.
  • the computer system 700 may implement the web browser 708 stored program component.
  • the web browser 708 may be a hypertext viewing application, for example MICROSOFT 1 * INTERNET EXPLORERTM, GOOGLE R CHROMETM 0 , MOZILLA R FIREFOXTM, APPLE R SAFARITM, etc. Secure web browsing may be provided using Secure Hypertext Transport Protocol (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc.
  • Web browsers 708 may utilize facilities such as AJAXTM, DHTMLTM, ADOBE R FLASHTM, JAVASCRIPTTM, JAVATM, Application Programming Interfaces (APIs), etc.
  • the computer system 700 may implement a mail server (not shown in Figure) stored program component.
  • the mail server may be an Internet mail server such as Microsoft Exchange, or the like.
  • the mail server may utilize facilities such as ASPTM, ACTIVEXTM, ANSITM C++/C#, MICROSOFT 1 *. NETTM, CGI SCRIPTSTM, JAVATM, JAVASCRIPTTM, PERLTM, PHPTM, PYTHONTM, WEBOBJECTSTM, etc.
  • the mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), MICROSOFT 1 * exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like.
  • IMAP Internet Message Access Protocol
  • MAPI Messaging Application Programming Interface
  • MICROSOFT 1 * exchange Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like.
  • POP Post Office Protocol
  • SMTP Simple Mail Transfer Protocol
  • the computer system 700 may implement a mail client stored program component.
  • the mail client (not shown in Figure) may be a mail viewing application, such as APPLE R MAILTM, MICROSOFT 1 * ENTOURAGETM, MICROSOFT 1 * OUTLOOKTM, MOZILLA R THUNDERBIRDTM, etc.
  • a computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored.
  • a computer-readable storage medium may store instructions for execution 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., be non-transitory.
  • RAM Random Access Memory
  • ROM Read-Only Memory
  • volatile memory volatile memory
  • non-volatile memory hard drives
  • CD ROMs Compact Disc Read-Only Memory
  • DVDs Digital Video Disc
  • flash drives disks, and any other known physical storage media.
  • Embodiments of the present disclosure provides methods and systems for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA).
  • OPC Open Platform Communication
  • OPC Unified Architecture OPC Unified Architecture
  • a system comprising a client device and an intermediary server device configured between the client device and an OPC UA server is disclosed.
  • the intermediary server device receives subscribed OPC data which is published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by a client of the OPC UA.
  • the intermediary 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 for performing one or more Human Machine Interface (HMI) operations.
  • HMI Human Machine Interface
  • the proposed system of the present disclosure is provided as a web based solution to the client in the OPC UA.
  • the web based solution facilitates the clients to move away from the windows based HMI service.
  • the cache unit maintained by the intermediary server device stores the subscribed OPC data instead of general databases associated with the OPC client. Therefore, the intermediary server device facilitates the operators to easily access and retrieve the subscribed OPC data from the cache unit in order to perform specific runtime HMI operations on the subscribed OPC data based on the requests from the operators. Therefore, the proposed intermediary server device bridges the gap present between the OPC UA server and a client layer of corresponding OPC UA client.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure relates to a method of generating recommendations for providing OPC data access in an OPC UA. The system comprises a client device and an intermediary server device configured between the client device and the OPC UA server. The intermediary server device receives subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server. Further, the intermediary server device stores the subscribed OPC data in a cache unit associated with a predefined type of subscription. Thereafter, the client device receives a request from an operator for performing one or more HMI operations. The client device provides an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.

Description

TITLE: SYSTEM AND METHOD FOR PROVIDING OPEN PLATFORM COMMUNICATION (OPC) DATA ACCESS IN OPC UNIFIED ARCHITECTURE
TECHNICAL FIELD
[001] The present disclosure generally relates to management of industrial automation data in an Open Platform Communication Unified Architecture (OPC UA). More particularly, the present disclosure relates to methods and systems for providing OPC data access in the OPC UA.
BACKGROUND
[002] The OPC (Open Platform Communications) foundation is an industry consortium that creates and maintains standards for open connectivity of industrial automation devices and systems, such as industrial control systems and process controls. The standards maintained by the OPC specify communication of industrial process data, alarms and events, historical data and batch process data between sensors, instruments, controllers, software systems, and notification devices.
[003] The OPC foundation comprises various standards for managing OPC data. The OPC standards such as OPC Data Access facilitates communication of real time data from data acquisition devices such as Programmable Logic Controllers (PLCs) and interface devices like Human-Machine Interfaces (HMI) to display. This standard majorly focuses on the continuous communication of the real time data such as the alarms and events managed by the OPC foundation. Another OPC standard, the OPC Data exchange facilitates a server to server communication across industrial networks. This standard also addresses remote configuration, diagnostics, monitoring, and management communications. An extension to all the OPC standards is the OPC Unified Architecture (OPC UA). The OPC UA incorporates all functionalities of the above standards by using cross platform web services and other modem technologies.
[004] The OPC UA supports communication patterns associated with client-server architectures and publish-subscribe architectures. The OPC UA in combination with the aforementioned architecture manages the communication of the OPC data. However, existing OPC UA is not efficient in providing access to OPC data. Particularly, in the existing OPC UA, there are no features available to perform runtime Human Machine Interface (HMI) operations on thousands of records associated with the OPC data. Currently, the HMI operations are performed by hosting the HMI which are associated with the OPC UA as a windows service which has limitation on user experience. The windows based HMI service associated with an OPC client, receives the OPC data from the OPC server based on a publish-subscribe mechanism provided by publish-subscribe architectures. Here, the subscribed OPC data is stored in a database associated with a OPC client. The subscribed OPC data is not stored in an organised manner such that users or operators can request the runtime HMI operations on the subscribed OPC data. Therefore, the existing OPC UA and the windows based HMI service does not allow the users or the operators of the HMI to request and perform HMI operations on the vast OPC data.
[005] The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.
SUMMARY
[006] In an embodiment, the present disclosure discloses a system for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). The system comprises a client device and an intermediary server device configured between the client device and a OPC UA server. The intermediary server device is configured to receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server. Further, the intermediary server device is configured to store the subscribed OPC data in a cache unit associated with a predefined type of subscription. The client device is configured to receive a request from an operator for performing one or more Human Machine Interface (HMI) operations. The client device provides an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
[007] In an embodiment, the present disclosure discloses an intermediaiy server device for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). The intermediary server device is configured between a client device and an OPC UA server. The intermediary server device comprises a processor and a memory. The processor is configured to receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server. Further, the processor is configured to store the subscribed OPC data in a cache unit associated with a predefined type of subscription. Thereafter, the processor is configured to retrieve the subscribed OPC data from the cache unit and provide to the client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
[008] In an embodiment, the present disclosure discloses a method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). The method comprises receiving subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server. Followed by storing the subscribed OPC data in a cache unit associated with a predefined type of subscription. The method further comprises receiving a request from an operator for performing one or more Human Machine Interface (HMI) operations. Thereafter, the method comprises providing an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
[009] In an embodiment, the present disclosure discloses a method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). The method comprises receiving subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server. Further, the method comprises storing the subscribed OPC data in a cache unit associated with a predefined type of subscription. Thereafter, the method comprises retrieving the subscribed OPC data from the cache unit and provide to a client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
[0010] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description. BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
[0011] The novel features and characteristics of the disclosure are set forth in the appended claims. The disclosure itself, however, as well as a preferred mode of use, further objectives, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying figures. One or more embodiments are now described, by way of example only, with reference to the accompanying figures wherein like reference numerals represent like elements and in which:
[0012] Fig. 1 shows an exemplary architecture for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure;
[0013] Fig. 2 shows a detailed diagram of a system for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure;
[0014] Figs. 3a-3c show exemplary illustrations for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure;
[0015] Figs. 4a-4d show exemplary illustrations of various use cases for performing HMI operations, in accordance with some embodiments of the present disclosure;
[0016] Figs. 4e-4f show exemplary illustrations of results on performing the HMI operations on OPC data, in accordance with some embodiments of the present disclosure;
[0017] Fig. 5 shows an exemplary flow chart illustrating method steps for providing OPC data access in an OPC UA, in accordance with some embodiments of the present disclosure
[0018] Fig. 6 shows an exemplary flow chart illustrating method steps for providing OPC data access in an OPC UA for an intermediary server device, in accordance with some embodiments of the present disclosure; and
[0019] Fig. 7 shows a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
[0020] It should be appreciated by those skilled in the art that any block diagram herein represents conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown.
DETAILED DESCRIPTION
[0021] In the present document, the word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment or implementation of the present subject matter described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
[0022] While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure.
[0023] The terms “comprises”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device, or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup, device, or method. In other words, one or more elements in a system or apparatus proceeded by “comprises. . . a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or apparatus.
[0024] The present disclosure provides systems and methods for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). In the present disclosure, a system comprising a client device and an intermediary server device configured between the client device and an OPC UA server is disclosed. According to the present disclosure, the intermediary server device receives subscribed OPC data which is published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by the intermediary server device hosted by an OPC UA client. Accordingly, the intermediary 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 for performing one or more Human Machine Interface (HMI) operations. The system of the present disclosure is provided as a web based solution to a client in the OPC UA. In this manner, the web based solution facilitates clients to move away from windows based HMI service. According to the present disclosure, the cache unit maintained by the intermediary server device, stores the subscribed OPC data instead of general databases associated with the OPC client. Therefore, the intermediary server device facilitates the operators to easily access and retrieve the subscribed OPC data from the cache unit in order to perform specific runtime HMI operations on the subscribed OPC data based on the requests from the operators. Therefore, the proposed intermediary server device bridges the gap present between the OPC UA server and a client layer of corresponding OPC UA client.
[0025] Fig. 1 illustrates an exemplary architecture for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure. The exemplary architecture comprises a system 100 which comprises a client device 102, an intermediary server device 101, and a OPC UA server 103. The OPC UA server 103 receives OPC data from one or more field devices 104 of an industrial plant. The intermediary server device 101 comprises 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 comprises a cache unit 109B. The cache unit 109B is configured to store the OPC data received in real time. The system 100 is hosted in the OPC UA, wherein the intermediary server device 101 is configured between the OPC UA server 103 and the client device 102. The client device 102 may enable Human Machine Interface (HMI) front-end services during a runtime, for operators who wish to access the OPC data for performing one or more HMI operations. In an embodiment, clients may host the client device 102 which may be any user device including, but not limited to, an operator system, a User Equipment (UE), a mobile device, and the like . In an embodiment, the intermediary server device 101 may be a database hosted on a cloud platform configured to store subscribed OPC data such as telemetry data from the industrial plant. In another embodiment, the intermediary server device 101 may be implemented on an edge computing platform. In an embodiment, the telemetry data may include alarm and events generated by the one or more field devices 104 of the industrial plant. The intermediary server device 101 may communicate with the OPC UA Server 103 and the client device 102 via communication network 105 A and 105B respectively, such as LTE, GSM, 3GPP, and the like. [0026] The client device 102 hosted by an OPC UA client sends subscription requests to the OPC UA server 103 to receive OPC data from the one or more field devices 104. The OPC UA server 103 publishes the subscribed OPC data to the intermediary server device 101 of the OPC UA client. The OPC UA server 103 publishes the OPC data to the intermediary server device 101 on receiving an event notification for the OPC data from the one or more field devices 104. In an embodiment, the OPC data is associated with one or more industrial automation services. The industrial plant may comprise of industrial control systems hosting the one or more industrial automation services. The industrial control system is an electronic control system for automated control and operation of the industrial automation services. The industrial plant may include, but not limited to, steel automation plants, electronics manufacturing plants, and the like. The automation services may include, but not limited to, monitoring the one or more field devices 104 on regular intervals, generating periodic notifications based on operator-specific predefined conditions, and the like. The one or more field devices 104 may include, but not be limited to, sensors, controllers, actuators and manufacturing devices, robots, the like. .
[0027] In the present disclosure, the system 100 is configured to provide OPC data access in the OPC UA. Herein, on receiving the subscribed OPC data, the intermediary server device 101 is configured to store the subscribed OPC data in the cache unit 109B which is associated with a predefined type of subscription. The predefined type of subscription corresponds to one of, an existing subscription and a new subscription. In an embodiment, the subscribed OPC data may comprise one of, previously subscribed OPC data or newly subscribed OPC data. In an embodiment, the previously subscribed OPC data may correspond to the OPC data for which the subscription request was sent previously, however, the OPC data is being received currently. In an embodiment, when the subscribed OPC data corresponds to the previously subscribed OPC data, then the predefined type of subscription is identified as the existing subscription. Thus, on identifying the subscribed OPC data corresponds to the existing subscription, the subscribed OPC data received from the OPC UA server 103 is stored in the cache unit 109B which is already existing in the intermediary server device 101.
[0028] In an embodiment, when the subscribed OPC data corresponds to the newly subscribed OPC data, then the predefined type of subscription is identified as the new subscription. Therefore, for the new subscription and the newly subscribed OPC data, the intermediary server device 101 generates a new cache unit for storing the newly subscribed OPC data. In an embodiment, once the cache unit 109B is generated, they are used for storing two types of information. The first information corresponds to connection information indicating the predefined type of subscription as the new subscription. The second information corresponds to the corresponding subscribed OPC data for which the cache unit 109B is generated.
[0029] In an embodiment of the present disclosure, once the subscribed OPC data is stored in the cache unit 109B of the intermediary server device 101, the client device 102 is configured to receive a request from the operator for performing the one or more HMI operations. In an embodiment, the one or more HMI operations comprises performing at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data. In an embodiment, on receiving the request for performing the one or more HMI operations from the operator, the client device 102 is configured to determine a page number, a count of rows and a current scroll position for a visible area on the client device 102. The client device 102 determines the current scroll position by identifying a position in the visible area in which a scroll bar is present currently. The client device 102 determines the count of rows based on the visible area and by further excluding predefined elements from the visible area. In an embodiment, the predefined elements may correspond to Document Object Model (DOM) elements. The DOM elements may include, but are not limited to, anchor collection, link collection, forms collection, image collection, and the like. Therefore, according to the present disclosure, the DOM elements which are present on rows that are outside the visible area, are excluded from being displayed on the client device 102.
[0030] Further, the determined page number, the count of rows and the current scroll position are sent to the intermediary server device 101 along with the request indicating a specific runtime HMI operation. The intermediary server device 101 considers received information associated with the visible area and the requested HMI operation for accessing and retrieving the subscribed OPC data from the cache unit 109B. Further, the intermediary server device 101 is configured to send the subscribed OPC data, which is retrieved, to the client device 102. Therefore, on an HMI screen of the client device 102, the subscribed OPC data is displayed according to the information associated with the visible area, which was provided by the operator. In this manner, the subscribed OPC data is displayed to the operator based on their request and requirements associated with the visible area determined by the client device 102. [0031] Furthermore, according to the present disclosure, the intermediary server device 101 is further configured to identify one or more changes in the subscribed OPC data stored in the cache unit 109B, post displaying the subscribed OPC data on the HMI screen. On identifying the one or more changes, the intermediary server device 101 is configured to dynamically update the changes on the client device 102. In an embodiment, when the one or more changes are displayed on the visible area of the HMI screen of the client device 102, the intermediary server device 101 notifies the operator about the dynamic update. In another embodiment, when the one or more changes are not displayed on a visible area of the HMI screen of the client device 102, the intermediary server device 101 does not notify the operator about the dynamic update. In this manner, the on-going HMI operation is not interrupted, and an enhanced user experience is achieved.
[0032] In an embodiment, the system 100 may be a computing device such as, a laptop computer, a desktop computer, a Personal Computer (PC), a notebook, a smartphone, a tablet, e-book readers, a server, a network server, a cloud-based server, router, and the like. In one implementation, the system 100 may be a part of the industrial control system.
[0033] Fig. 2 illustrates a detailed diagram of the system 100 for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure. The system 100 comprises 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 comprise at least one data processor for executing program components for executing user generated requests. The memory 205 may be communicatively coupled to the processor 203. The memory 205 stores instructions, executable by the processor 203, which, on execution, may cause the processor 203 to provide OPC data access in the OPC UA.
[0034] In an embodiment, the memory 205 may include one or more modules 209 and data 207. The one or more modules 209 may be configured to perform the steps of the present disclosure using data 207, to provide the OPC data access in the OPC UA. In an embodiment, each of the one or more modules 209 may be a hardware unit which may be outside the memory 205 and coupled with the system 100. As used herein, the term modules 209 refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a Field-Programmable Gate Arrays (FPGA), Programmable System-on-Chip (PSoC), a combinational logic circuit, and/or other suitable components that provide described functionality. The one or more modules 209 when configured with the described functionality defined in the present disclosure will result in a novel hardware. Further, the I/O interface 201 is coupled with the processor 203 through which an input signal or/and an output signal is communicated. For example, the system 100 facilitates the OPC data access for operators via the I/O interface 201.
[0035] In one implementation, the modules 209 may include, for example, a data receiving module 222, a cache data management module 224, a request receiving module 226, an access providing module 228, a data retrieving module 230 and other modules 232. It will be appreciated that such aforementioned modules 209 may be represented as a single module or a combination of different modules. The data receiving module 222, the cache data management module 224, and the data retrieving module 230 are integrated in the intermediary 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 intermediary server device 101 are independent entities of the system 100 and a person skilled in art will appreciate that the modules 209 may be associated with the respective entities. In one implementation, the 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 an embodiment, the data receiving module 222 may be configured to receive subscribed OPC data associated with one or more industrial automation services. The data receiving module 222 may receive the OPC data from the one or more field devices 104 of an industrial plant via an OPC UA server 103. The subscribed OPC data received by the data receiving module 222 corresponds to the received data 212. In an embodiment, the OPC UA server 103 publishes the subscribed OPC data to the data receiving module 222 as soon as it receives the subscribed OPC data from the one or more field devices 104. In an embodiment, the subscribed OPC data received by the data receiving module 222 maybe be associated with one or more industrial automation services. Particularly, the subscribed OPC data may correspond to alarms and events generated by the one or more field devices 104. The alarms and events may be generated while managing industrial automation services such as monitoring the field devices 104 on regular intervals and generating periodic notifications based on operator-specific predefined conditions. For example, Fig. 3a shows a client device 102 sending a subscription request for receiving OPC data comprising alarm specific data provided by the one or more field devices 104. Fig. 3a shows that on sending the subscription request to the OPC UA server 103, the requested OPC data is published by the OPC UA server 103 to an OPC UA client library. In an embodiment, the OPC client library may be an entity associated with the intermediary server device 101. The OPC client library may correspond to the data receiving module 222.
[0037] Returning to Fig. 2, the subscribed OPC data may comprise one of, previously subscribed OPC data or newly subscribed OPC data. In an embodiment, the previously subscribed OPC data may correspond to the OPC data for which the subscription request was sent previously, however, the OPC data is received currently. The subscribed OPC data is associated with a predefined type of subscription. The predefined type of subscription corresponds to one of, an existing subscription and a new subscription. In an embodiment, when the subscribed OPC data received by the data receiving module 222, corresponds to the previously subscribed OPC data, then the predefined type of subscription is identified as the existing subscription. In an embodiment, when the data receiving module 222 identifies that the subscribed OPC data corresponds to the newly subscribed OPC data, then the predefined type of subscription is identified as the new subscription. Further, the data receiving module 222 is configured to send the subscribed OPC data, which is received from the OPC UA server 103 to the cache data management module 224 for storage purpose.
[0038] Further, the cache data management module 224 is configured to receive the subscribed OPC data from the data receiving module 222. On receiving the subscribed OPC data, the cache data management module 224 is configured to identify with which type of predefined subscription, the subscribed OPC data is associated. When the cache data management module 224 identifies the subscribed OPC data corresponds to the existing subscription, then the subscribed OPC data is stored in the cache unit 109B which is already existing in the intermediary server device 101. In an embodiment, when the cache data management module 224 identifies the subscribed OPC data corresponds to the new subscription, the cache data management module 224 is configured to generate a new cache unit for storing the subscribed OPC data. In an embodiment, the new cache unit stores the newly subscribed OPC data. As seen in Fig. 3a, once the OPC UA client library receives the subscribed alarm specific data, it is stored in the cache unit 109B. Fig. 3b illustrates a detailed exemplary flow for storing the subscribed OPC data. As seen in Fig. 3b, on receiving the subscribed OPC data by the OPC UA client library, the subscribed OPC data gets published through an “alarm event call back” function. The alarm specific data arrives to the cache data management module 224 with an “OnEvent” notification and the predefined type of subscription. As shown in Fig. 3b, the cache data management module 224 further decides to which cache unit the alarm specific data belongs based on the predefined type of subscription. If the predefined type of subscription corresponds to the new subscription, then the cache data management module 224 creates a new cache unit 109B2. If the predefined type of subscription corresponds to the existing subscription, then the cache data management module 224 identifies a cache unit 109B1 from one or more existing cache units maintained by the cache data management module 224. In an embodiment, once the new cache unit 109B2 is generated, it is populated with connection information indicating the predefined type of subscription. The cache units 109B then wait to receive the corresponding subscribed OPC data for which the cache unit 109B is generated.
[0039] For example, Fig. 3c illustrates an exemplary block diagram for creating the new cache unit 109B2. As seen from Fig. 3c, once the subscription request is sent from the OPC UA client end, then the new cache unit 109B2 is created. The cache unit 109B2 is populated with connection information indicating the predefined type of subscription as the new subscription. The cache unit 109B2 then waits to receive the corresponding subscribed OPC data for which the cache unit 109B2 was generated. However, if the cache data management module 224 identifies based on the type of subscription that the subscribed OPC data received is not for the cache unit 109B2, then the existing cache unit 109B1 is identified from the one or more existing cache units 109B, for storing the subscribed OPC data. The subscribed OPC data which is stored in the cache unit 109B corresponds to the stored data 214. Therefore, in this manner, the OPC data is stored and maintained in the cache units 109B such that it is easily accessible to the operators at front end of the client device 102.
[0040] Returning to Fig. 2, on storing the OPC data in the cache unit 109B or on creating the cache unit 109B, the request receiving module 226 is configured to receive a request from the operators for performing one or more Human Machine Interface (HMI) operations. In an embodiment, the one or more HMI operations comprises performing at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data. In an embodiment, the received request may correspond to the requested data 216. On receiving the request for performing the one or more HMI operations from the operator, the request receiving module 226 is configured to forward the requested data 216 to the access providing module 228. For example, as seen from Fig. 3a, an operator 300 sends the request for performing HMI operation on the stored data 214. In an embodiment, the request receiving module 226 may be configured to also receive the subscription requests from the operator 300.
[0041] Returning to Fig. 2, the access providing module 228 is configured to receive the requested data 216 from the request receiving module 226. The access providing module 228 is configured to determine a page number, a count of rows and a current scroll position for a visible area on an HMI screen of the client device 102. The access providing module 228 is configured to determine the current scroll position by identifying a position in the visible area in which a scroll bar is present currently. The access providing module 228 determines the count of rows based on the visible area and by further excluding predefined elements from the visible area. In an embodiment, the predefined elements may correspond to Document Object Model (DOM) elements. The DOM elements may include, but are not limited to, anchor collection, link collection, forms collection, image collection, and the like. Therefore, according to the present disclosure, the access providing module 228 excludes the DOM elements from being displayed on the client device 102, which are present on rows that are outside the visible area, . Further, the access providing module 228 accesses the stored data 214 by sending the received request along with determined page number, the count of rows and the current scroll position for the visible area along with the to the data retrieving module 230.
[0042] The data retrieving module 230 is configured to receive the request from the access providing module 228, for performing the HMI operations along with the determined page number, the count of rows and the current scroll position for the visible area. Further, the data retrieving module 230 considers the received information associated with the visible area and the requested HMI operation for retrieving the subscribed OPC data from the cache data management module 224. Particularly, the data retrieving module 230 may retrieve the OPC data from the cache unit 109B. In an embodiment, the subscribed OPC data may correspond to the accessed and retrieved data on retrieving the subscribed OPC data from the cache data management module 224. In an embodiment, the data retrieving module 230 is further configured to identify whether there are any changes in the subscribed OPC data which is stored in the cache unit 109B. Particularly, the data retrieving module 230 checks for the changes post displaying the subscribed OPC data on the HMI screen of the client device 102. On identifying the one or more changes, the data retrieving module 230 is configured to dynamically update the changes on the client device 102. In an embodiment, when the one or more changes are displayed on the visible area of the HMI screen of the client device 102, the data retrieving module 230 notifies the operator 300 about the dynamic update. In another embodiment, when the one or more changes are not displayed on a visible area of the HMI screen of the client device 102, the data retrieving module 230 does not notify the operator about the dynamic update. In an embodiment, the one or more changes may be caused due to addition of the newly subscribed OPC data to the previously subscribed OPC data.
[0043] For example, Figs. 4a-4d illustrate use cases for performing HMI operations on the subscribed OPC data. Particularly, in Fig. 4a, the use case relates to adding new data to existing data. As seen from Fig. 4a, ‘page 101’ is being viewed by the operator 300 on the view area of the client device 102. Accordingly, as shown in Fig. 4a, when newly generated alarms are associated with the subscribed OPC data (alarm list in this example) being currently viewed by the operator 300, then changes occurred due to the addition of the newly generated alarms are notified to the operator 300. Therefore, the changes are reflected on the HMI screen which comprises the alarm list. Therefore, according to the present disclosure, the newly generated alarms can be added anywhere within the alarm list. In an embodiment of the present disclosure, the newly generated alarms are added to the alarm list based on the HMI operations requested by the operator 300. In this example, the HMI operation may correspond to “sort by active time”. Therefore, the newly generated alarms are added on top of the alarm list due to the HMI operation as requested by the operator 300. Further, on adding the newly generated alarm data, the count of rows is updated along with the height of the scroll bar and page numbers. The last page is displayed on the HMI screen of the client device 102 based on the page or pages under the visible area.
[0044] Further, in Fig. 4b, the use case relates to detecting state changes in existing data. As seen from Fig. 4b, the state changes occur on page 96 and page 98. However, as the operator is viewing only the page 98, the state changes are notified to the operator 300 only for page 98. The state changes for page 96 are reflected in the alarm list without notifying the operator 300. Accordingly, the back end/intermediate server device (data retrieving module 230) retains the page numbers of the current client’s visible area. This is performed so that, when state changes, only the pages within the visible area are pushed from the back end to the front end (HMI screen of client device 102). Similarly, in Fig. 4c, the use case relates to removing or deleting data from existing data. As seen from Fig. 4c, the pages within the visible area are identified which are impacted and are further pushed to the front end to display the changes to the operator 300. In another example as shown in Fig. 4d, the case relates to pausing the existing data. As seen from Fig. 4d, the existing data is retained in the back end until the operator 300 sends the HMI operation corresponding to ‘un-pause’.
[0045] Figs. 4e-4f show exemplary illustrations of results on performing the HMI operations on OPC data. Particularly, Fig. 4e shows the existing data getting updated in runtime and Fig. 4f shows a pause state where the existing data is getting displayed on the front end. Therefore, according to the present disclosure, the operators 300 may perform various operations on the runtime OPC data which further facilitates the operator to perform infinite scroll on the OPC data displayed on the HMI screen of the client device 102.
[0046] The other data 220 may store data, including temporary data and temporary files, generated by the one or more modules 209 for performing the various functions of the system 100. The one or more modules 209 may also include the other modules 232 to perform various miscellaneous functionalities of the system 100. The other data 220 may be stored in the memory 205. It will be appreciated that the one or more modules 209 may be represented as a single module or a combination of different modules.
[0047] Fig. 5 shows an exemplary flow chart illustrating method steps for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure. As illustrated in Fig. 5, the method 500 may comprise one or more steps. The method 500 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.
[0048] The order in which the method 500 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
[0049] At step 501, the system 100 receives subscribed OPC data associated with one or more industrial automation services, from one or more field devices 104 of an industrial plant via the OPC UA server 103. In an embodiment, the OPC UA server 103 publishes the subscribed OPC data to the intermediary server device 101.
[0050] At step 503, the system 100 stores the subscribed OPC data in a cache unit 109B associated with a predefined type of subscription. The predefined type of subscription comprises one of an existing subscription and a new subscription. In an embodiment, the subscribed OPC data is stored by identifying the predefined type of subscription associated with the subscribed OPC data. Followed by performing storing of the subscribed OPC data in the corresponding cache unit 109B1 when the predefined type of subscription is identified as an existing subscription. Else, a new cache unit 109B2 is generated for storing the subscribed OPC data when the predefined type of subscription is identified as a new subscription. In an embodiment, the cache unit 109B comprises connection information indicating the predefined type of subscription and the corresponding subscribed OPC data.
[0051] At step 505, the system 100 receives a request from an operator 300 for performing one or more Human Machine Interface (HMI) operations. In an embodiment, the one or more HMI operations comprises at least one of, virtual scrolling, conditional sorting, pausing, and unpausing, on the subscribed OPC data. The method further comprising identifying one or more changes in the subscribed OPC data stored in the cache unit 109B, post receiving the request, followed by dynamically updating the one or more changes on the client device 102.
[0052] At step 507, the system 100 provides an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit 109B of the intermediary server device 101 based on the request, for performing the one or more HMI operations.
[0053] Fig. 6 shows an exemplary flow chart illustrating method steps for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), in accordance with some embodiments of the present disclosure. As illustrated in Fig. 6, the method 600 may comprise one or more steps. The method 600 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.
[0054] The order in which the method 600 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method. Additionally, individual blocks may be deleted from the methods without departing from the scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
[0055] At step 601, the intermediary server device 101 receives subscribed OPC data associated with one or more industrial automation services, from one or more field devices 104 of an industrial plant via the OPC UA server 103.
[0056] At step 603 , the intermediary server device 101 stores the subscribed OPC data in a cache unit 109B associated with a predefined type of subscription.
[0057] At step 603, the intermediary server device 101 retrieves the subscribed OPC data from the cache unit 109B and provides to a client device 102, on receiving a request from the client device 102, for performing one or more Human Machine Interface (HMI) operations.
COMPUTER SYSTEM
[0058] Fig. 7 illustrates a block diagram of an exemplary computer system 700 for implementing embodiments consistent with the present disclosure. In an embodiment, the computer system 700 may be used to implement the system 100. Thus, the computer system 700 may be used for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). The computer system 700 may comprise a Central Processing Unit 702 (also referred as “CPU” or “processor”). The processor 702 may comprise at least one data processor. The processor 702 may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.
[0059] The processor 702 may be disposed in communication with one or more input/output (I/O) devices (not shown) via I/O interface 701. The I/O interface 701 may employ communication protocols/methods such as, without limitation, audio, analog, digital, monoaural, RCA, stereo, IEEE (Institute of Electrical and Electronics Engineers) -1394, serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video, VGA, IEEE 8.16.n /b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc.
[0060] Using the I/O interface 701, the computer system 700 may communicate with one or more I/O devices. For example, the input device 710 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device/source, etc. The output device 711 may be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, Plasma display panel (PDP), Organic light-emitting diode display (OLED) or the like), audio speaker, etc.
[0061] The processor 702 may be disposed in communication with the communication network 709 via a network interface 703. The network interface 703 may communicate with the communication network 709. The network interface 703 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/intemet protocol (TCP/IP), token ring, IEEE 8.16.11a/b/g/n/x, etc. The communication network 709 may include, without limitation, a direct interconnection, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, etc. The network interface 703 may employ connection protocols include, but not limited to, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/intemet protocol (TCP/IP), token ring, IEEE 8.16.11 a/b/g/n/x, etc .
[0062] The communication network 709 includes, but is not limited to, a direct interconnection, an e-commerce network, a peer to peer (P2P) network, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, WiFi, and such. The first network and the second network may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/intemet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the first network and the second network may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc. [0063] In some embodiments, the processor 702 may be disposed in communication with a memory 705 (e.g., RAM, ROM, etc. not shown in Figure 8) via a storage interface 704. The storage interface 704 may connect to memory 705 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as serial advanced technology attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fiber channel, Small Computer Systems Interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid-state drives, etc.
[0064] The memory 705 may store a collection of program or database components, including, without limitation, user interface 706, an operating system 707, web browser 708 etc. In some embodiments, computer system 700 may store user/application data, such as, the data, variables, records, etc., as described in this disclosure. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle ® or Sybase®.
[0065] The operating system 707 may facilitate resource management and operation of the computer system 700. Examples of operating systems include, without limitation, APPLE MACINTOSHR OS X, UNIXR, UNIX-like system distributions (E.G, BERKELEY SOFTWARE DISTRIBUTION™ (BSD), FREEBSD™, NETBSD™, OPENBSD™, etc ), LINUX DISTRIBUTIONS™ (E.G, RED HAT™, UBUNTU™, KUBUNTU™, etc ), IBM™ OS/2, MICROSOFT™ WINDOWS™ (XP™, VISTA™/7/8, 10 etc ), APPLER IOS™, GOOGLER ANDROID™, BLACKBERRYR OS, or the like.
[0066] In some embodiments, the computer system 700 may implement the web browser 708 stored program component. The web browser 708 may be a hypertext viewing application, for example MICROSOFT1* INTERNET EXPLORER™, GOOGLER CHROME™0, MOZILLAR FIREFOX™, APPLER SAFARI™, etc. Secure web browsing may be provided using Secure Hypertext Transport Protocol (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc. Web browsers 708 may utilize facilities such as AJAX™, DHTML™, ADOBER FLASH™, JAVASCRIPT™, JAVA™, Application Programming Interfaces (APIs), etc. In some embodiments, the computer system 700 may implement a mail server (not shown in Figure) stored program component. The mail server may be an Internet mail server such as Microsoft Exchange, or the like. The mail server may utilize facilities such as ASP™, ACTIVEX™, ANSI™ C++/C#, MICROSOFT1*. NET™, CGI SCRIPTS™, JAVA™, JAVASCRIPT™, PERL™, PHP™, PYTHON™, WEBOBJECTS™, etc. The mail server may utilize communication protocols such as Internet Message Access Protocol (IMAP), Messaging Application Programming Interface (MAPI), MICROSOFT1* exchange, Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), or the like. In some embodiments, the computer system 700 may implement a mail client stored program component. The mail client (not shown in Figure) may be a mail viewing application, such as APPLER MAIL™, MICROSOFT1* ENTOURAGE™, MICROSOFT1* OUTLOOK™, MOZILLAR THUNDERBIRD™, etc.
[0067] Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution 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., be non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, non-volatile memory, hard drives, Compact Disc Read-Only Memory (CD ROMs), Digital Video Disc (DVDs), flash drives, disks, and any other known physical storage media.
[0068] Embodiments of the present disclosure provides methods and systems for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA). In the present disclosure, a system comprising a client device and an intermediary server device configured between the client device and an OPC UA server is disclosed. According to the present disclosure, the intermediary server device receives subscribed OPC data which is published by the OPC UA server and stores the subscribed OPC data in a cache unit maintained by a client of the OPC UA. Accordingly, the intermediary 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 for performing one or more Human Machine Interface (HMI) operations. The proposed system of the present disclosure is provided as a web based solution to the client in the OPC UA. In this manner, the web based solution facilitates the clients to move away from the windows based HMI service. According to the present disclosure, the cache unit maintained by the intermediary server device, stores the subscribed OPC data instead of general databases associated with the OPC client. Therefore, the intermediary server device facilitates the operators to easily access and retrieve the subscribed OPC data from the cache unit in order to perform specific runtime HMI operations on the subscribed OPC data based on the requests from the operators. Therefore, the proposed intermediary server device bridges the gap present between the OPC UA server and a client layer of corresponding OPC UA client.
[0069] The terms "an embodiment", "embodiment", "embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", and "one embodiment" mean "one or more (but not all) embodiments of the invention(s)" unless expressly specified otherwise.
[0070] The terms "including", "comprising", “having” and variations thereof mean "including but not limited to", unless expressly specified otherwise.
[0071] The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. The terms "a", "an" and "the" mean "one or more", unless expressly specified otherwise.
[0072] A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.
[0073] When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article, or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the invention need not include the device itself. [0074] The illustrated operations of Figures 5-7 show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified, or removed. Moreover, steps may be added to the above-described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.
[0075] Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following 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 purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims.
Referral Numerals:

Claims

CLAIMS:
1. A system for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), the system comprising: a client device; and an intermediary server device configured between the client device and an OPC UA server, wherein the intermediary server device is configured to: receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server; and store the subscribed OPC data in a cache unit associated with a predefined type of subscription; and wherein the client device is configured to: receive a request from an operator for performing one or more Human Machine Interface (HMI) operations; and provide an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
2. The system as claimed in claim 1, wherein the OPC UA server publishes the subscribed OPC data to the intermediary server device.
3. The system as claimed in claim 1, wherein the predefined type of subscription corresponds to one of an existing subscription and a new subscription.
4. The system as claimed in claim 1, wherein the intermediary server device is configured to store the subscribed OPC data by: identifying the predefined type of subscription associated with the subscribed OPC data; and performing one of: storing the subscribed OPC data in the corresponding cache unit when the predefined type of subscription is identified as an existing subscription; or generating a new cache unit for storing the subscribed OPC data when the predefined type of subscription is identified as a new subscription.
5. The system as claimed in claim 1, wherein the cache unit stores connection information indicating the predefined type of subscription and the corresponding subscribed OPC data.
6. The system as claimed in claim 1, wherein the one or more HMI operations comprises at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data.
7. The system as claimed in claim 1, wherein on receiving the request from the operator, the client device is configured to: determine a page number, a count of rows and a current scroll position for a visible area associated with the client device, for performing the one or more HMI operations on the subscribed OPC data; and send the received request with the determined page number, the count of rows and the current scroll position, to the intermediary server device.
8. The system as claimed in claim 7, wherein the client device is configured to determine the count of rows by excluding predefined elements from the visible area associated with the client device.
9. The system as claimed in claim 7, wherein the intermediary server device is configured to: receive the request with the determined page number, the count of rows and the current scroll position; access the subscribed OPC data from the cache unit based on a predefined type of subscription; retrieve the subscribed OPC data from the cache unit based on the page number and the count of rows; and send 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.
10. The system as claimed in claim 1, wherein the intermediary server device is further configured to: identify one or more changes in the subscribed OPC data stored in the cache unit, post receiving the request; and dynamically update the one or more changes on the client device.
11. The system as claimed in claim 10, wherein the intermediary server device is configured to dynamically update the one or more changes by performing one of: updating the one or more changes without notifying the operator, when the one or more changes are not displayed on a visible area associated with the client device; or updating the one more changes by notifying the operator, when the one or more changes are displayed on the visible area associated with the client device.
12. An intermediary server device for providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), the intermediary server device is configured between a client device and an OPC UA server, comprising: a processor; and a memory communicatively coupled to the processor, wherein the memory stores processor instructions, which, on execution, causes the processor to: receive subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via the OPC UA server; store the subscribed OPC data in a cache unit associated with a predefined type of subscription; and retrieve the subscribed OPC data from the cache unit and provide to the client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
13. A method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA), the method comprising: receiving, by an intermediary server device of a system, subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server; storing, by the intermediary server device, the subscribed OPC data in a cache unit associated with a predefined type of subscription; receiving, by a client device of the system, a request from an operator for performing one or more Human Machine Interface (HMI) operations; and providing, by the client device, an access to the subscribed OPC data by retrieving the subscribed OPC data from the cache unit of the intermediary server device based on the request, for performing the one or more HMI operations.
14. The method as claimed in claim 13, wherein the OPC UA server publishes the subscribed OPC data to the intermediary server device.
15. The method as claimed in claim 13, wherein the predefined type of subscription corresponds one of an existing subscription and a new subscription.
16. The method as claimed in claim 13, wherein storing the subscribed OPC data in the cache unit comprises: identifying the predefined type of subscription associated with the subscribed OPC data; and performing one of: storing the subscribed OPC data in the corresponding cache unit when the predefined type of subscription is identified as an existing subscription; or generating a new cache unit for storing the subscribed OPC data when the predefined type of subscription is identified as a new subscription
17. The method as claimed in claim 13, wherein the cache unit stores connection information indicating the predefined type of subscription and the corresponding subscribed OPC data.
18. The method as claimed in claim 13, wherein the one or more HMI operations comprises at least one of, virtual scrolling, conditional sorting, pausing, and un-pausing, on the subscribed OPC data.
19. The method as claimed in claim 13, on receiving the request from the operator, the method comprises: determining, by the client device, a page number, a count of rows and a current scroll position for a visible area associated with the client device, for performing the one or more HMI operations on the subscribed OPC data; sending, by the client device, the received request with the determined page number, the count of rows and the current scroll position, to the intermediary server device; receiving, by the intermediary server device, the request with the determined page number, the count of rows and the current scroll position; accessing, by the intermediary server device, the subscribed OPC data from the cache unit based on the predefined type of subscription; retrieving, by the intermediary server device, the subscribed OPC data from the cache unit based on the page number and the count of rows; sending, by the intermediary server device, 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; and receiving and displaying, by the client device, the accessed subscribed OPC data in the visible area.
20. The method as claimed in claim 19, wherein the count of rows is determined by excluding predefined elements from the visible area associated with the client device.
21. The method as claimed in claim 13 further comprising: identifying, by the intermediary server device, one or more changes in the subscribed OPC data stored in the cache unit, post receiving the request; and dynamically updating, by the intermediary server device, the one or more changes on the client device.
22. The method as claimed in claim 21 , wherein dynamically updating the one or more changes comprises performing one of: updating the one or more changes without notifying the operator, when the one or more changes are not displayed on a visible area associated with the client device; or updating the one more changes by notifying the operator, when the one or more changes are displayed on the visible area associated with the client device.
23. A method of providing Open Platform Communication (OPC) data access in an OPC Unified Architecture (OPC UA) for an intermediary server device, the method comprising: receiving, by an intermediary server device, subscribed OPC data associated with one or more industrial automation services, from one or more field devices of an industrial plant via an OPC UA server; storing, by the intermediary server device, the subscribed OPC data in a cache unit associated with a predefined type of subscription; and retrieving, by the intermediary server device, the subscribed OPC data from the cache unit and provide to a client device, on receiving a request from the client device, for performing one or more Human Machine Interface (HMI) operations.
PCT/IB2025/051813 2024-04-25 2025-02-20 System and method for providing open platform communication (opc) data access in opc unified architecture Pending WO2025224514A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202441032806 2024-04-25
IN202441032806 2024-04-25

Publications (1)

Publication Number Publication Date
WO2025224514A1 true WO2025224514A1 (en) 2025-10-30

Family

ID=95064367

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2025/051813 Pending WO2025224514A1 (en) 2024-04-25 2025-02-20 System and method for providing open platform communication (opc) data access in opc unified architecture

Country Status (1)

Country Link
WO (1) WO2025224514A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220137584A1 (en) * 2019-03-14 2022-05-05 Omron Corporation Control system, support device, and support program
US20220140888A1 (en) * 2019-03-15 2022-05-05 Omron Corporation Control system, relay device, and relay program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220137584A1 (en) * 2019-03-14 2022-05-05 Omron Corporation Control system, support device, and support program
US20220140888A1 (en) * 2019-03-15 2022-05-05 Omron Corporation Control system, relay device, and relay program

Similar Documents

Publication Publication Date Title
EP3241128B1 (en) Method and query suggestion server for providing alternate query suggestions for time bound results
US10135693B2 (en) System and method for monitoring performance of applications for an entity
US10459951B2 (en) Method and system for determining automation sequences for resolution of an incident ticket
US20160188710A1 (en) METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE
US9929997B2 (en) Method for dynamically prioritizing electronic messages in an electronic device
US9858175B1 (en) Method and system for generation a valid set of test configurations for test scenarios
US20160147646A1 (en) Method and system for executing automated tests in an integrated test environment
US9703607B2 (en) System and method for adaptive configuration of software based on current and historical data
US10452234B2 (en) Method and dashboard server providing interactive dashboard
EP3404551A1 (en) Method and device for performing testing across a plurality of smart devices
US20180367597A1 (en) Method and System of Sharing a File
US11847598B2 (en) Method and system for analyzing process flows for a process performed by users
JP6148763B2 (en) Method for grouping data records into a data store across network nodes to optimize data access
WO2025224514A1 (en) System and method for providing open platform communication (opc) data access in opc unified architecture
US20240346160A1 (en) Method and System for Managing Access to Data of Digital Twin in Industrial System
US11182142B2 (en) Method and system for dynamic deployment and vertical scaling of applications in a cloud environment
US20170300539A1 (en) Method and result summarizing apparatus for providing summary reports options on query results
EP4303680A1 (en) A method and a control system for dynamic provisioning of visual contents using machine learning
AHMED et al. A METHOD AND A SYSTEM OF PROVIDING DATA VISUALIZATION IN A SERVER
US11068495B2 (en) Method and system for integrating business logic database with HMI application
US12260099B2 (en) Method, distributed controller, and system for managing sequential storage devices in distributed storage environment
Roy SYSTEM AND METHOD FOR MAINTAINING GLOBAL ORDERING OF CO-RELATED EVENTS IN A DISTRIBUTED EVENT STREAMING PLATFORM
RAMESH VIEW-TABLE UPDATE REPORT
WO2025229411A1 (en) Methods and systems for identifying patterns in process data of industrial system
T TRUONG et al. METHOD AND SYSTEM FOR PROVIDING ACTIONABLE SUGGESTIONS USING GENERATIVE ARTIFICIAL INTELLIGENCE (GenAI)

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25713012

Country of ref document: EP

Kind code of ref document: A1