Method and system for evaluating multiple industrial systems

Through the collaboration of data input and orchestrator applications, creating and performing analysis tasks is solved, and the problem of inefficient evaluation of multiple industrial systems in the prior art is achieved, and an efficient and accurate evaluation system is achieved.

CN119256298APending Publication Date: 2025-01-03NUOVO PIGNONE TECH SRL
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380042106.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-08
Filing Date
2023-06-06
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

Existing technologies are difficult to evaluate multiple industrial systems efficiently simultaneously, especially when dealing with multiple models and multiple installed products, rewriting and debugging model programs are time-consuming and error-prone, and lack of handling multiple installed products. Product details.

Method used

Data is collected through data input applications and stored in the data database. The orchestrator application scans the system database, determines the applicable computing and analysis computer programs, creates and stores analysis tasks in the execution queue, and the execution engine executes analysis tasks independently, and creates and executes them in advance. environment for increased efficiency and accuracy.

Benefits of technology

It realizes flexible, effective and efficient evaluation of multiple industrial systems, reduces the time to rewrite and debug models, and improves the accuracy and efficiency of evaluation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119256298A_ABST
    Figure CN119256298A_ABST
Patent Text Reader

Abstract

In order to simultaneously evaluate a plurality of industrial systems (10, 20, 30, 40), a data entry application (100) repeatedly collects data from these industrial systems (10, 20, 30, 40) and stores them in a data database (110); the orchestrator application (200) repeatedly and independently of the data entry application (100): a) scans the system database (210), b) determines, for each industrial system in the system database (210), any computational analysis computer program to be applied to the data based on the information about the relationship of applicability, c) determines, for the determined computational analysis computer program, any one of the computational analysis computer programs to be applied to the data. The method comprises the following steps: (1) determining and unambiguously checking a data database (110), checking whether corresponding data is present in the data database (110), d) creating an analysis task to be executed for each determined and unambiguously checked computational analysis computer program, and e) storing the created analysis task step by step in at least one execution queue (321, 322, 323).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] manual Technical Field

[0002] The subject matter disclosed herein relates to methods and systems for evaluating a plurality of industrial systems, and in particular, the preparation of analytical tasks. Background Art

[0003] It is common to assess an (installed and operating) industrial system (i.e. either as a whole system or as a subsystem or as a component thereof); an "item" requiring special assessment might be, for example, an oil and gas plant or plant machinery, in particular a turbine or a machine component.

[0004] The assessment may be to determine some form of status of the “item” (e.g., considering how efficiently a machine has operated in the last hour, day, or week) or to determine some form of prediction about the item (e.g., how many hours a machine can operate before the next failure or abnormal condition).

[0005] It is also common that the same assessment may be repeated, for example, periodically (eg, daily, weekly, or monthly).

[0006] A solution for evaluating an "installed product" is described in patent document US Pat. No. 10,628,145; the document uses the expression "execution analysis model". Although the document generally mentions the possibility of evaluating a plurality of industrial systems, it focuses on the structure of an "execution platform" (see Figure 2 and Figure 3 ), and on the other hand focuses on the analysis model and how to make it flexible (see Figures 5 to 9). As stated in its independent claims, its system and method require an "API wrapper" associated with each of the analysis model and the execution platform, and the API wrapper includes input information, output information and "techniques"; according to the document, the technique can be a solution method, a method for generating specific values ​​of coefficients in the kernel, and a relationship between inputs and outputs.

[0007] A company may be interested in performing different assessments on multiple industrial systems simultaneously. It should be understood that "simultaneously" in this article means during and within the same time period, and does not necessarily mean occurring at the same time (even if simultaneity is not excluded); in fact, as disclosed herein, the degree of simultaneity depends on when the analysis tasks are prepared and how the analysis tasks are processed.

[0008] The above-mentioned document US10,628,145 is named as Scalable and Secure Analysis Model Integration and Deployment Platform, and according to its abstract, it relates to a system, device and method including an analysis model for an installed product; an execution platform, which is configured to execute the analysis model; an API (application programming interface) wrapper, which is associated with each of the analysis model and the execution platform (the API wrapper includes input information, output information and technology); and a storage device, which communicates with the analysis model and the execution platform and stores program instructions to perform the following functions: transmitting information between the analysis API wrapper and the execution platform API wrapper, and deploying the analysis model to the execution platform based on the transmitted information. According to its background technology section, it is usually desirable to evaluate and / or predict the operation of a real-world physical system (such as an electromechanical system); typically, a model is used to analyze data and generate results that can be used to evaluate and / or predict the physical system; a model can be an important aspect of making an industrial system operate efficiently; a model can be built on a local computer and then transferred to another computer for execution; however, running the model on a computer different from the computer on which the model was built may involve rewriting the model program and debugging the program, which may be very time-consuming and error-prone; the rewriting / debugging process may be repeated each time the model is run on another system; therefore, it would be desirable to provide a system and method that facilitates model building of a physical system in a more efficient and accurate manner. It is apparent from its description that, according to this invention, more than one "model" (according to the terminology of this specification, roughly corresponding to "computational analysis") may be applicable to a single "installed product" (according to the terminology of this specification, roughly corresponding to "industrial system"), and a single "model" may be divided into multiple "tasks" (there is no corresponding term in this specification, and does not correspond to the "tasks" of this specification). US Pat. No. 10,628,145 only states in one paragraph that its system can receive "data from at least one installed product." According to its background technology, the document does not provide details on how to process multiple models at the same time, let alone how to process multiple installed products at the same time.

[0009] It would therefore be desirable to have methods and systems for performing such assessments simultaneously; in particular, it would be desirable for them to be flexible and / or efficient and / or effective. Summary of the invention

[0010] According to a first aspect, the subject matter disclosed herein relates to an evaluation method. In order to evaluate multiple industrial systems simultaneously, a data input application repeatedly collects data from the industrial systems and stores them in a data database; an orchestrator application repeatedly and independently of the data input application performs the following operations: a) scanning the system database, b) for each industrial system in the system database, determining any computational analysis computer program to be applied to the data based on information about applicability relationships, c) for the determined computational analysis computer program, checking whether the corresponding data exists in the data database, d) for each determined and explicitly checked computational analysis computer program, creating an analysis task to be executed, and e) gradually storing the created analysis tasks in at least one execution queue.

[0011] According to a second aspect, the subject matter disclosed herein relates to an evaluation system. The system includes an orchestrator server having access to a system database and a data database; the system database stores information about the applicability relationship of a computational analysis computer program to data from an industrial system; the data database stores data collected from the industrial system. The orchestrator server is configured to create analysis tasks to be executed based on the information in the system database and the data database, and store them in one or more execution queues. The analysis tasks are executed by one or more execution engines. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] A more complete appreciation thereof will be readily obtained as the disclosed embodiments of the present invention and many of its attendant advantages become better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings, in which:

[0013] Figure 1 A general schematic diagram of one embodiment of a system for evaluating a plurality of industrial systems providing preparation of analytical tasks and execution of the prepared analytical tasks is shown.

[0014] Figure 2 A flow chart showing one embodiment of a method for evaluating a plurality of industrial systems, including preparation of an analysis task, and

[0015] Figure 3 A flow chart illustrating one embodiment of a method for evaluating a plurality of industrial systems, including the performance of analysis tasks. DETAILED DESCRIPTION

[0016] According to the subject matter disclosed herein, multiple industrial systems, such as multiple machines in an oil and gas plant located at different locations, are accessed simultaneously. Data from the industrial system is collected from the industrial system and stored in a data database. Information about the industrial system is stored in a system database. Using these two databases, an orchestrator, such as an application running on a server, prepares analytical tasks required for evaluating the industrial system in a flexible manner and stores them in one or more execution queues; the preparation of analytical tasks is continuous, repeated by scanning the system database, and independent of the collection of data from the industrial system. In addition, independent of the collection of data and the preparation of analytical tasks, one or more execution engines continuously execute analytical tasks; each analytical task is executed by pre-creating a corresponding execution environment so that it can be executed effectively and efficiently. Generally, analytical tasks are identified in one or more execution queues so that they can be executed more effectively and efficiently. As previously mentioned, "simultaneously" in this article refers to during and within the same time period, and does not necessarily mean occurring at the same time (even if simultaneity is not excluded); in fact, as disclosed herein, the degree of simultaneity depends on when the analytical tasks are prepared and how the analytical tasks are processed. It should be noted that different evaluations are designed to operate on different data. Furthermore, it is noted that the same evaluation may be applied to different data (eg, from different items) and thus lead to different analysis tasks.

[0017] Figure 1 One embodiment of a system 1000 for evaluating a plurality of industrial systems, referred to hereinafter as an "innovative evaluation system" or simply an "evaluation system," is shown.

[0018] Figure 1 Also shown are multiple industrial systems in addition to the assessment system 1000. In particular, the figure shows four industrial systems 10, 20, 30, and 40; however, any number of industrial systems may be considered starting with a minimum of one.

[0019] Data from the industrial systems 10, 20, 30 and 40 to be evaluated are repeatedly (e.g., periodically) collected and stored in a data database 110; the data is stored in the data database 110 in an orderly manner so that it can be selectively retrieved later. The data from the systems can be of the same type (e.g., temperature data at a specific location of the machine or pressure data at a specific location of the machine), or more typically, of different types (e.g., temperature data at several locations of the machine, or temperature data and pressure data at a specific location of the machine, or temperature data and pressure data at several locations of the machine, or data from several components of the machine and / or from several machines). The data used for evaluation can be measurement data and / or calculation data; the measurement data originates from sensors in the industrial system to be evaluated; the calculation data originates from processing circuits in the industrial system to be evaluated, and processing can be performed on local measurement data by analog and / or digital circuits including computers.

[0020] Data from the industrial systems 10, 20, 30 and 40 may be received by a data entry application 100, which is typically a software application running on a piece of hardware; a portion of this piece of hardware may be dedicated to data reception, and possibly also to data transmission (e.g., for interrogation purposes). The application 100 may be configured not only to receive data, but also to repeatedly (e.g., periodically) interrogate the industrial systems 10, 20, 30 and 40 (particularly the communication devices of the systems), and / or to repeatedly (e.g., periodically) receive data when the industrial systems transmit data to the evaluation system 1000. The industrial systems may collect (similar or different) measurement data and / or calculated data over a period of time; such collected data sets may be sent as data packets to the evaluation system 1000 when the evaluation system interrogates the industrial systems and / or when the industrial systems make decisions.

[0021] The application 100 may also be configured to store the received data (in an orderly manner) in a data database 110. The received data may also be processed by the application 100 before storage. Considering that data is usually received from several different (even very different) industrial systems, an effective form of processing may include, for example, labeling the data in a uniform manner before storage; temperature data at the air inlet of a gas turbine may be labeled "TAI-GT" regardless of, for example, the type and size of the gas turbine.

[0022] Information about the industrial system to be evaluated is stored in the system database 210. Such information relates in particular to the suitability of the computational analysis computer program for the data from the industrial system. Figure 1In an embodiment, by way of example, three analysis computer programs 311, 312, and 313 and four industrial systems 10, 20, 30, and 40 are provided; for example, program 311 may be applicable to data from systems 10 and 20, program 312 may be applicable to data from systems 30 and 40, and program 313 may be applicable to only one system (e.g., system 10) or to all systems.

[0023] It is noted that, according to some embodiments, some of the data in data database 110 may originate indirectly from industrial systems 10, 20, 30, and 40. Such data may, for example, originate from processing performed on data received from industrial systems by or under the control of system 1000; for example, such data may correspond to "measurements" of "virtual sensors" calculated by, for example, an execution engine of system 1000. As will become clearer below, such data may be transferred from database 410 to database 110 under the control of application 100 and / or application 400.

[0024] A computational analysis computer program is a computer program (i.e., a piece of software) that is configured to be run by a computer (i.e., a piece of hardware) and is designed to perform computational analysis on specific data from one or more industrial systems in order to evaluate, i.e., determine some form of status or some form of prediction of, the one or more industrial systems.

[0025] The system database 210 may be embodied as, for example, a table having a row for each industrial system considered by the "assessment system" and having a column corresponding to each "computational analysis" (which may also be referred to as an "analysis") provided in the "assessment system" of the computational analysis computer program; in any row, the cell is labeled as a "computational analysis" applicable to the industrial system corresponding to the row. Other columns may be advantageously provided in the table to categorize the industrial systems, such as one or more of the following category columns: "Customer" (i.e., the customer name of the plant including the industrial system), "Site" (i.e., the plant including the industrial system), "Model" (i.e., the model of the industrial system), "Name" (i.e., the name identifying the industrial system). Other columns may be advantageously provided in the table corresponding to useful parameters and / or constants when coupling the analysis program to one or more systems and / or when performing an analysis task. One or more other component columns may also be advantageously provided, named, for example, "Component Name" and / or "Component Model", corresponding to one or more components that provide data and may be subject to evaluation. Finally, one or more further time columns may advantageously be provided, named for example “installation date” and / or “maintenance date”, so that the evaluation may also take such information into account.

[0026] It is important to note that such a system database allows a great deal of flexibility for the "Innovative Assessment System". If at a certain point in time, the "Assessment System" is to take into account another industrial system, it is sufficient to add a row to the table and introduce appropriate data / information. If at a certain point in time, a further "Calculation Analysis" is to be performed, it is sufficient to add a column to the table and introduce appropriate data / information. If at a certain point in time, a new "Calculation Analysis" is to be applied to the data from the industrial system, it is sufficient to introduce appropriate data / information into the cells of the table. If a specific "Calculation Analysis" should be applied to data from a group of "Items", a Category column can facilitate the selection of "Items".

[0027] Using system database 210 and data database 110, orchestrator 200 (e.g., an application running on a server) prepares the analysis tasks required to evaluate industrial systems 10, 20, 30, and 40. Note that in this specification, reference 200 is used to identify both the application and the server running the application; however, in general, the server running the orchestrator application may run one or more other applications. Orchestrator application 200 orchestrates various databases to create analysis tasks. Orchestrator application 200 runs independently of data input application 100; typically, they run on two different servers or on two different virtual machines in the same server. As will be explained later, orchestrator application 200 is associated with orchestrator database 220 that stores data and information used to support the operation of the application.

[0028] Now we will use Figure 2 Flowchart 2000 in is used to describe the “innovative assessment approach” responsible for the preparation of analytical tasks.

[0029] exist Figure 2 In FIG. 2 , there is an initial block 2100 corresponding to an ideal start of the method.

[0030] The method includes the following preliminary steps:

[0031] - Provides multiple computational analysis computer programs ( Figure 2 2210),

[0032] -Provide system database ( Figure 2 2220 in the figure).

[0033] Note that additional computational analysis computer programs may be added at a later time, such as during design, development, and testing.

[0034] Note that any “computational analysis computer program” may have been developed by a manager of an evaluation system (eg, system 1000 ) or by a manager of an industrial system (eg, systems 10 , 20 , 30 , or 40 ).

[0035] Note also that the system database may be updated at a later time, such as due to the addition of industrial systems to be evaluated and / or the addition of "computational analyses" to be applied to the collected data.

[0036] As a preliminary step, a data database can be provided ( Figure 2 2230 in the process); initially, the data database is typically empty because data has not yet been collected from the industrial system.

[0037] Essentially, according to this approach, two applications run independently: the data entry application ( Figure 1 ) and the orchestrator application ( Figure 1 is marked as 200).

[0038] Data entry applications repeatedly collect data from industrial systems ( Figure 2 2310 in the data base) and then store them in the data base ( Figure 2 2320 in the figure).

[0039] The orchestrator application repeatedly performs the following operations:

[0040] a)( Figure 2 2410) scans the system database,

[0041] b)( Figure 2 block 2420) for each industrial system in the system database, determining any computational analysis computer programs to be applied to the data, one or more “computational analyses” may be applied to the data collected from the industrial system – only in exceptional cases, an industrial system registered in the system database is not subject to any evaluation,

[0042] c)( Figure 2 2430) for the determined computational analysis computer program, checking whether corresponding data exists in the data database - depending on the "computational analysis" to be applied, a certain amount and / or quality of data should exist in order to perform the calculation,

[0043] d)( Figure 2 2440) for each computational analysis computer program identified and explicitly checked, creating an analysis task to be performed, and

[0044] e)( Figure 2 Box 2450 in the example above) gradually stores the created analysis tasks in at least one execution queue.

[0045] Any item in the execution queue, i.e. any analysis task, can contain at least the following information:

[0046] - the name or identifier of the computer program to perform the computational analysis,

[0047] - the name or identifier of the industrial system or systems to be evaluated (ie identification of the industrial system or systems to be subjected to program analysis - more generally to task analysis),

[0048] For example, a group of systems belonging to the same category or categories,

[0049] - Time frame, i.e. the time range of the data of the industrial system to be analyzed.

[0050] As will be explained later, any item of the execution queue will be processed individually by the execution engine in order to perform the required "computation analysis".

[0051] Typically, the orchestrator application determines any computational analysis computer programs to be applied to the data based on information stored in the system database - see step b.

[0052] The orchestrator application may check whether corresponding data exists in the data database based on information stored in a configuration file associated with the computational analysis computer program - see step c.

[0053] For example Figure 1 As shown, each computational analysis computer program 311, 312, 313 is associated with a configuration file (see the smaller box following the larger box) containing information about the program; such information may be the type and amount of data from the industrial system that the program is designed to process, and may additionally be whether it is a 32-bit code program or a 64-bit code program and / or the operating system used for execution and / or whether the program is a high priority or low priority "computational analysis" and / or whether the program is a "computational analysis" that is being tested or has been tested.

[0054] Typically, the orchestrator application checks whether corresponding data, in particular sufficient and / or adequate data, exist in the database for the desired "computational analysis" - see step c. Such a check may be based on information stored in the data database; in other words, the orchestrator application may query the data database and check whether the data exists. Preferably, such a check may also be based on information stored in the orchestrator database; for example, if the "computational analysis" is performed periodically, the orchestrator application may check in the orchestrator database the time of the last execution and thereby check whether sufficient and / or adequate data exists in the data database since the last execution.

[0055] Note that if the data required for the desired current "computational analysis" (i.e., "Analysis A") comes from processing of a previous "computational analysis" (i.e., "Analysis B"), such as a "virtual sensor", then there is a certain dependency between "Analysis A" and "Analysis B".

[0056] Advantageously, the orchestrator application can check whether a "computational analysis" is already in execution; such a check is useful to avoid, for example, for the same industrial system or systems, performing an analysis of subsequent data before the same analysis of previous data has been completed. This check can be performed, for example, by storing "execution status" information, for example in an orchestrator database, indicating the "current execution status" for one / any or more or all available computational analysis computer programs and / or for one or more or all execution tasks in execution.

[0057] Such "execution status" information or equivalent information may be advantageously used by the orchestrator application to check if a "computational analysis" is "locked" and / or "slow". Such "execution" information may be supplemented by "execution start" information which allows knowing when the execution of a particular "computational analysis" started execution. The orchestrator may check for one or more or all tasks in the execution if the execution time is longer than a predetermined maximum time length; if so, the execution may be stopped and the "computational analysis" may be considered as not executed; the predetermined maximum time length may vary for different computational analysis computer programs.

[0058] Advantageously, the orchestrator application progressively stores the created analysis tasks in a plurality of execution queues (see e.g. Figure 1 In particular, Figure 1 Three execution queues 321, 322, and 323 are shown; however, any number of queues may be considered, starting with a minimum of one. Multiple execution queues are useful for distributing computational analysis work among several execution engines; the distribution may be even or uneven.

[0059] An execution queue may be associated with one or more specific execution engines or one or more types of execution engines. For example, there may be a queue dedicated to an execution engine that is capable of executing programs of a specific word length or that is capable of executing programs designed for a specific operating system or that is capable of performing particularly computationally intensive tasks, or that is dedicated to a high priority "computational analysis". An execution queue may be associated with a debug execution engine; this may be useful for testing and debugging new "computational analyses". Note that in this way, debugging may be performed on data that is "real data" and that is used for one or more industrial systems - so-called "fleet-level debugging". Note also that the "computational analysis" to be debugged may have been previously developed by an administrator of an evaluation system (e.g., system 1000) or by an administrator of an industrial system (e.g., system 10, 20, 30, or 40).

[0060] The orchestrator application may select an execution queue among a plurality of execution queues for executing the task based on information in a configuration file associated with the computational analysis computer program.

[0061] Advantageously, the orchestrator application stores information about the performed computational analyses, in particular the results of the performed computational analyses, in an orchestrator database (see e.g. Figure 1 database 220 in the database); such information can be used for future "computational analysis".

[0062] As explained, under this “innovative assessment approach”, data entry applications ( Figure 1 100) need to be in the data database ( Figure 1 110) in the query and insert data.

[0063] As explained, under this “innovative assessment methodology”, the orchestrator application ( Figure 1 200) from the data database ( Figure 1 110) and the system database ( Figure 1 210) in the query and extract data.

[0064] Such communication with the two databases, preferably both databases, may be performed through an application programming interface associated with the data database and through an application programming interface associated with the system database, respectively.

[0065] It may also be provided that each or both of the two databases may be managed by a dedicated management application. Thus, there may be a data database management application ( Figure 1 190) and / or system database management applications ( Figure 1290 in). The data entry application, the orchestrator application, and the management applications may be configured to communicate with each other to perform the operations provided by the "innovative assessment method".

[0066] As will be better explained later, the computational analysis computer programs and / or their configuration files may also be accessed through an application programming interface and / or may be accessed through a program management application ( Figure 1 It should be noted that according to some implementation schemes, the orchestrator application needs to at least access the program configuration file.

[0067] The preparation for the analytical task has just been described.

[0068] Each prepared analysis task must be executed unless there is a reason why execution is not allowed or recommended. As a first example, if a communication error occurs with an industrial system, a computational analysis associated with the industrial system may not be executed (even if prepared) or may be stopped during execution. As a second example, a computational analysis being tested or debugged may not be executed or may be stopped during execution if an error is identified before or during execution.

[0069] Execution is in principle independent of preparation.

[0070] According to the inventive subject matter disclosed herein, processing of analytical tasks related to computational analysis of data received from an industrial system and stored in a data database for evaluation of the industrial system is performed by an execution engine.

[0071] Figure 1 A plurality of execution engines are shown. In particular, the figure shows three execution engines 301, 302 and 303; however, any number of engines may be considered, starting from a minimum of one. Note that the execution engines may correspond, for example, to different physical machines, but may also correspond to different virtual machines implemented by the same piece of hardware. Furthermore, as will be better described later, one or more or all of the execution engines may be local (i.e., in the same piece of hardware on which the orchestrator application runs) or remote (i.e., in a piece of hardware different from and close to or far from the piece of hardware on which the orchestrator application runs); any combination of these two possibilities may be considered. Typically, the creation of one or more virtual machines for one or more execution engines is implemented at the beginning; however, it is not excluded that it is implemented during the operation of the "innovation assessment system".

[0072] To process the analysis task, the execution engine (e.g., engine 301) performs the following operations:

[0073] a) From computational analysis of computer programs (see Figure 1311, 312 and 313 in the computational analysis computer program) collects execution parameters corresponding to the desired analysis task, the execution parameters at least including information about the industrial system data to be processed by the computational analysis computer program,

[0074] b) From the data database ( Figure 1 extracting data from the industrial system to be processed by the computational analysis computer program based on the collected execution parameters,

[0075] c) creating an execution environment containing at least the extracted data, and

[0076] d) executing the computational analysis computer program using the created execution environment.

[0077] The execution environment (usually also including so-called "matches") allows execution in an effective and efficient way: everything necessary for execution is within the environment, so that after the creation of the environment, the engine does not need to access any data or information, in particular to any database. Furthermore, execution can be done "anywhere", i.e. also remotely; for example, if the execution of an analytical task is particularly computationally intensive, it can be executed against a remote "powerful engine" and the environment (including the "context") can be transferred to this "powerful engine".

[0078] Due to the creation of an execution environment, the execution of several analysis tasks can be performed independently of each other.

[0079] Now we will use Figure 3 Flowchart 3000 in the accompanying drawings is used to describe the "innovative evaluation method" responsible for the execution of the analysis task.

[0080] exist Figure 3 In, there is an initial box 3100 corresponding to the ideal start of the method.

[0081] As mentioned above, a hypothetical (real or virtual) execution engine is part of the "innovation evaluation system".

[0082] The following applies to any execution engine, such as Figure 1 Any one of engines 301, 302 and 303 in the process, and is repeated continuously.

[0083] First, the execution engine identifies the items to be executed in the execution queue (see, for example, Figure 1 Analysis tasks executed in queues 321, 322, and 323) in – Figure 3The first actual step 3200 in the method; typically, if a FIFO (first in, first out) method for managing analysis tasks is followed, the identified task is at the top of the execution queue; however, other methods are also possible. The execution engine may consider one (i.e., predetermined) or multiple execution queues; if more than one queue is considered, the execution engine may select analysis tasks from the queues in turn or may use a certain selection criteria.

[0084] Then, as described above, the execution engine does the following:

[0085] a)( Figure 3 3300 in the example embodiment) collects execution parameters,

[0086] b)( Figure 3 3400 in the block 3400) extracts data from a data database,

[0087] c)( Figure 3 Box 3500 in ) creates an execution environment, and

[0088] d)( Figure 3 Box 3600 in ) executes a computational analysis computer program.

[0089] As mentioned before, any item in the execution queue, i.e. any analysis task, can contain at least the following information:

[0090] - the name or identifier of the computer program to perform the computational analysis,

[0091] - the name or identifier of the industrial system or systems to be evaluated (ie identification of the industrial system or systems to be subjected to program analysis - more generally to task analysis),

[0092] For example, a group of systems belonging to the same category or categories,

[0093] - Time frame, i.e. the time range of the data of the industrial system to be analyzed.

[0094] Thus, when the engine identifies a task in a queue, a lot of data and information is also identified and can be used by the engine to perform the task.

[0095] After execution, i.e. step d, the execution engine may perform the following operations:

[0096] e)( Figure 3 The execution results are stored in a results database (e.g., see Figure 1 In the database 410).

[0097] The results of the computational analysis performed in database 410 may then be read and considered, for example, by personnel and / or entities responsible for evaluating a plurality of industrial systems.

[0098] A data output application 400 may be provided in the "Innovation Assessment System" 1000:

[0099] f)( Figure 3 Box 3800 in ) sends the results in the result database 410 to the user application.

[0100] In this case, typically, the sending of data to the user application is repeated, for example, periodically, and is typically directed to a remote application. For example, a user managing one or more plants may request another entity to be responsible for the assessment of its plants and is willing to receive the results of the assessment from that entity; the entity may be specialized in such assessment activities.

[0101] It should be noted that step f can be performed, for example, taking into account the information in the system database 210. In fact, in the system database 210, for each industrial system, "customer" information can be stored so that the result of each analysis task can be directed, for example, by the data output application 400 to the corresponding entity that owns or manages the industrial system.

[0102] Alternatively, it may be provided that the results database 410 may be configured to be accessed locally, for example from other applications within the "innovativeness assessment system", or remotely, for example from applications external to the "innovativeness assessment system".

[0103] Advantageously, after step d, and in particular after step e, the execution engine may perform the following operations:

[0104] g)( Figure 3 3900 in block 3900) to an orchestrator application (e.g., Figure 1 Application 200 in sends information about execution results.

[0105] Thus, based on the received information, the orchestrator application can be aware of the computational analyses performed and their execution timeframes and / or whether they were completed successfully and / or even the results of the computational analyses performed in some form. This can be used by the orchestrator application to prepare the following analysis tasks in the most favorable circumstances. It should be noted that some computational analyses may require or utilize previous results.

[0106] Orchestrator application 200 may store the received execution results in orchestrator database 220 .

[0107] The execution environment may also include a computational analysis computer program specified in the queue item; the computational analysis computer program may be downloaded from a computational analysis database based on, for example, the analysis task information in the queue item.

[0108] An execution environment may typically contain parameters and / or constants - see for example parameters and / or constants in a system database.

[0109] The execution environment may also include execution parameters and / or constants extracted from, for example, the analysis task information in the queue item.

[0110] The execution parameters extracted from the analysis task information may include information about the executed computational analysis, which may be stored in the orchestrator database, and in particular, the results of the executed computational analysis.

[0111] Preferably, the execution engine arranges data in the execution environment according to a predetermined structure adapted to execute.

[0112] As explained, according to this “Innovation Assessment Methodology”, the engine ( Figure 1 301, 302, and 303 in may need to be in several items and / or databases ( Figure 1 310, 320 and 410), query data, insert data and extract data from several items and / or databases.

[0113] This communication of the engine can be performed through an application programming interface associated with an item and / or a database. There may be an API associated with a program or program database, and / or an API associated with a queue or a queue database, and / or an API associated with a results database.

[0114] It may also be provided that these databases may be managed by a dedicated management application. Thus, there may be a program database management application ( Figure 1 319) and / or the queue database management application ( Figure 1 329) and / or the Result Database Management Application ( Figure 1 490 in). The engine and these management applications can be configured to communicate with each other to perform the operations provided by the "innovative evaluation method".

[0115] Figure 1 The embodiment of the system in includes all components for implementing both the "innovative evaluation method" responsible for the preparation of the analysis task and the "innovative evaluation method" responsible for the execution of the analysis task. According to an alternative embodiment, the "innovative system" may include all components for implementing the "innovative evaluation method" responsible only for the preparation of the analysis task or the "innovative evaluation method" responsible only for the execution of the analysis task.

[0116] Figure 1 A system 1000 is shown, comprising:

[0117] -Orchestrator Server 200

[0118] -Data database 110

[0119] -System database 210

[0120] -Orchestrator database 220

[0121] - Multiple execution engines 301, 302 and 303

[0122] - A plurality of computational analysis computer programs 311, 312 and 313 (thus, in this figure, a distinction is made between the computer programs (i.e., executable code) shown as larger boxes and the corresponding configuration files shown as smaller boxes behind the larger boxes)

[0123] - Multiple execution queues 321, 322 and 323, and

[0124] -Results database 410.

[0125] also, Figure 1 Also shown are a number of industrial systems 10, 20, 30 and 40 (to be accessed) which are not part of the system and are typically remote from the system.

[0126] at last, Figure 1 Also shown are some application programs, in particular a first plurality of application programs corresponding to basic application programs and a second plurality of application programs corresponding to database management applications.

[0127] The first plurality of applications includes: a data input application 100 and a data output application 400. One or more or all of these applications may run on a dedicated "real machine" (ie, a piece of hardware (which may be referred to as a "server")) or a "virtual machine".

[0128] The second plurality of applications includes: data database management application 190, system database management application 290, program management application 319, queue database management application 329, result database management application 490. All of these applications are software applications; therefore, for each of them, there is at least one corresponding computer program - as is known, a software application may correspond to a set of computer programs to be run in order to perform one or more functions of the application. One or more or all of these applications may run on a dedicated "real machine" (i.e., a piece of hardware (which may be referred to as a "server")) or a "virtual machine".

[0129] Thus, depending on how system 1000 is implemented, elements 100 , 190 , 290 , 319 , 329 , 490 , and 400 may be hardware components of system 1000 or software components of system 1000 .

[0130] Alternative system embodiments may include more or fewer components than system 1000 .

[0131] System 1000 may be divided into a first subsystem and a second subsystem. The first subsystem includes elements 100, 110, 190, 200, 210, 220, and 290. The second subsystem includes elements 301, 302, 303, 311, 312, 313, 319, 321, 322, 323, 329, 400, 410, and 490. The division between the two subsystems may include a situation where one or more hardware components and / or software components are shared by the subsystems. For example, according to some embodiments, in addition to the orchestrator application, server 200 may also run one or more of applications 100, 190, and 290. For example, according to some embodiments, the execution engine and the orchestrator application may run on the same piece of hardware. For example, according to some embodiments, a first storage device may store programs 311, 312, and 313; the first storage device may be accessed by both the orchestrator application and one or more execution engines; in this case, the first storage device (which may include application or server 319) is shared by the two subsystems. For example, according to some embodiments, the second storage device may store queues 321, 322, and 323; the second storage device may be accessed by both the orchestrator application and one or more execution engines; in this case, the second storage device (which may include application or server 329) is shared by the two subsystems. For example, according to some embodiments, the first storage device and the second storage device may be part of a single storage system shared by the two subsystems.

[0132] The first subsystem for evaluating industrial systems includes at least:

[0133] - access rights to the system database 210, i.e. not necessarily the entire database, but at least the means for accessing the database,

[0134] - access rights to the data database 110, i.e. not necessarily the entire database, but at least the means for accessing the database,

[0135] as well as

[0136] - Orchestrator server 200, which is suitably configured as described above and which may contain or may have access to orchestrator database 220 by appropriate means.

[0137] The second subsystem for processing analysis tasks includes at least:

[0138] - access rights to the data database 110, i.e. not necessarily the entire database, but at least the means for accessing the database,

[0139] - access rights to one or (more typically) several computer analysis programs 311, 312 and 313, i.e. not necessarily the program, but at least the means for accessing the program,

[0140] - at least one execution engine 301, 302 and 303 appropriately configured as described above,

[0141] And usually

[0142] - Access to one or (more typically) an execution queue 321, 322 and 323, ie not necessarily a queue, but at least means for accessing a queue.

[0143] Note that the "execution environment" (typically including the "context") is generated during the execution of the analysis task by the execution engine. Therefore, it is not a real component of the system or subsystem. However, some computer memory is necessary to store the "execution environment" when it is created and / or when it is used during the execution of the computational analysis computer program. Note that according to some embodiments, the "execution environment" can be transmitted remotely after it is created and before it is used during the execution of the computational analysis computer program - this is generally applicable to remote execution of analysis tasks.

[0144] As mentioned above, the "innovative system" may include several components. Depending on how the system is implemented, these components may be local to each other or remote from each other. In this context, the word "local" may mean within the same "virtual machine" or within the same "real machine" or within the same computer or server, and the word "remote" may mean within different "virtual machines" or within different "real machines" or within different computers or servers. Therefore, in this context, the meaning of these words does not necessarily involve physical distances; for example, even within the same board or the same cabinet, two components may be remote, i.e., at a distance of 1-100 cm. Of course, in cases where the physical distance is long, the word "remote" is generally applicable.

[0145] In the preceding paragraphs, when describing databases, computer programs and execution queues (i.e. the "entities" to be accessed), reference was often made to "access means". Such "access means" can be implemented in different ways. Advantageously, their implementation implies an application programming interface (comprising one or more access primitives); in this way, "access" does not require detailed information about the entity to be accessed, in particular its internal implementation and / or its location (e.g. remote or local, in the case of a remote entity, access to it may require, for example, communication via the Internet and / or via one or more hardware systems). The entity to be accessed, such as a database, may be managed by a management device associated with the entity; in this case, access to the entity implies communication with its management device; where necessary, the application programming interface may enable communication with the management device.

[0146] Consider computer programs 311, 312, and 313, which may be stored somewhere, and which may be managed by a management application 319 associated with a program database; their configuration files may be included in the database. Application 200 typically needs access to information in the configuration files. Execution engines 301, 302, and 303 typically need access to information in the configuration files and need to download them.

[0147] As mentioned earlier, Figure 1 Three execution engines 301, 302, and 303 are shown by way of example, all of which are located entirely within system 1000; as explained, the minimum number of execution engines is one.

[0148] According to the simplest implementation of system 1000 , each execution engine performs calculations locally, ie, within system 1000 .

[0149] However, according to alternative embodiments, one or more execution engines may perform calculations remotely, in which case, for example, the execution engine prepares everything needed for the calculation (including, for example, creating an execution environment and downloading a calculation analysis computer program) based on the data and information in the execution queue, and then requests a remote "computer system" or "computer application" to perform the calculation (usually sending both the created execution environment and the execution program) and wait for the results to be subsequently stored in the result database 410. In this case, the execution engine can "branch" out of the system. Note that according to some embodiments, part of the calculation can be performed locally, and part of the calculation can be performed remotely.

[0150] As is apparent from the above description, the systems described herein, such as system 1000 of FIG. 1000 , allow for the implementation of an “as a service” model in different levels of industrial system domains: IAAS (Infrastructure as a Service) of particular interest to network architects and IT administrators, PAAS (Platform as a Service) of particular interest to software developers, and SAAS (Software as a Service) of particular interest to end users.

Claims

1. A method for simultaneously evaluating a plurality of industrial systems (10, 20, 30, 40), the method comprising the following preliminary steps: - providing a plurality of computational analysis computer programs (311, 312, 313), - providing a system database (210) storing information on the suitability of computational analysis computer programs (311, 312, 313) for data from industrial systems (10, 20, 30, 40); in, The data entry application (100) performs the following operations: - repeatedly collecting data from the industrial systems (10, 20, 30, 40) and storing them in a data database (110); The composer application (200) repeatedly and independently of the data input application (100) performs the following operations: a) scanning the system database (210), b) for each industrial system in said system database (210), determining any computational analysis computer programs to be applied to the data, c) for a determined computational analysis computer program, checking whether corresponding data exists in the data database (110), d) for each identified and explicitly checked computational analysis computer program, creating the analysis task to be performed, and e) gradually storing the created analysis tasks in at least one execution queue (321, 322, 323).

2. The method according to claim 1, wherein: At step b), the orchestrator application (200) determines any computational analysis computer programs to be applied to the data based on information stored in the system database (210).

3. The method according to claim 1, wherein: At step b), the orchestrator application (200) determines, through an application programming interface associated with the system database (210), any computational analysis computer programs to be applied to the data.

4. The method according to claim 1, wherein: At step c), the orchestrator application (200) checks whether corresponding data exists in the data database (110) based on information stored in a configuration file associated with the computational analysis computer program (311, 312, 313).

5. The method according to claim 1, wherein: At step c), the orchestrator application (200) checks whether corresponding data, in particular sufficient and / or adequate data, exists in the data database (110) based on the information stored in the data database (110) and preferably also based on the information stored in the orchestrator database (220).

6. The method according to claim 1, wherein: At step c), the orchestrator application (200) checks whether corresponding data exists in the data database (110) through an application programming interface associated with the data database (210).

7. The method according to claim 1, wherein: The data collected by the data entry application (100) is measured data and / or calculated data.

8. The method according to claim 1, wherein: The orchestrator application (200) stores the created analysis tasks in a plurality of execution queues (321, 322, 323) step by step.

9. The method according to claim 8, wherein: An execution queue (321, 322, 323) is associated with one or more specific execution engines (301, 302, 303) or one or more types of execution engines.

10. The method according to claim 8, wherein: An execution queue (323) is associated with the debug execution engine (303).

11. The method according to claim 8, wherein: The orchestrator application (200) selects an execution queue from among a plurality of execution queues (321, 322, 323) based on information in a configuration file associated with the computational analysis computer program (311, 312, 313).

12. The method according to claim 1, wherein: The orchestrator application (200) stores information about the computational analysis that has been performed, in particular the results of the computational analysis that has been performed, in an orchestrator database (220).

13. A system (1000) for simultaneously evaluating a plurality of industrial systems (10, 20, 30, 40), the system comprising: - access to a system database (210) storing information on the suitability of computational analysis computer programs (311, 312, 313) in relation to data from industrial systems (10, 20, 30, 40), - access rights to a data database (110) storing data collected from industrial systems (10, 20, 30, 40), - an orchestrator server (200), the orchestrator server being configured to: a) scanning the system database (220), b) for each industrial system in said system database (220), determining any computational analysis computer programs to be applied to the data, c) for a determined computational analysis computer program, checking whether corresponding data exists in the data database (210), d) for each identified and explicitly checked computational analysis computer program, creating the analysis task to be performed, and e) gradually storing the created analysis tasks in at least one execution queue (321, 322, 323).

14. The system (1000) according to claim 13, wherein the system (1000) further comprises the system database (210) and / or the data database (110).

15. The system (1000) of claim 13, wherein the system (1000) further comprises an orchestrator database (220), wherein the orchestrator server (200) is configured to store information about the performed computational analysis, in particular results of the performed computational analysis, in the orchestrator database (220).

16. The system (1000) according to claim 13, wherein the system (1000) stores a computational analysis computer program (311, 312, 313) to be applied to data from an industrial system and / or a configuration file associated with the computational analysis computer program.

17. The system (1000) of claim 13, wherein the system (1000) further comprises a data server (190) for managing the data database (110), wherein the data server (190) is local or remote to the orchestrator server (200).

18. The system (1000) of claim 13, wherein the system (1000) further comprises a system server (290) for managing the system database (220), wherein the system server (290) is local or remote to the orchestrator server (200).

19. The system (1000) of claim 13, wherein the system (1000) further comprises a queue server (329) for managing one or more execution queues (321, 322, 323), wherein the queue server (329) is local or remote to the orchestrator server (200).

20. The system (1000) of claim 13, wherein the system (1000) further comprises a data server (190) for managing data from the industrial system (10, 20, 30, 40), wherein the data server (190) is local or remote to the orchestrator server (200).

21. The system (1000) of claim 13, wherein the system (1000) further comprises a computational analysis server (319) for managing one or more computational analysis computer programs (311, 312, 313), wherein the computational analysis server (319) is local or remote to the orchestrator server (200).