Abstract:
A method and system allow monitoring a manufacturing process. The process is executed at a plant. Data is acquired from the plant about the state of the plant and/or of parts thereof. The data are converted into Gantt charts. An HTML file is thereby created and sent to browsers of the clients for rendering, and a data record is asynchronously refreshed, including information about a current state of the monitored plant and/or part thereof.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims the priority, under 35 U.S.C. §119, of European patent application EP 14185482.8, filed Sep. 19, 2014; the prior application is herewith incorporated by reference in its entirety. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention: 
         [0003]    The invention relates to a method of and a system for monitoring a manufacturing process, especially in a production facility employing a computer-managed manufacturing execution system (MES). 
         [0004]    As defined by the Manufacturing Enterprise Solutions Association (MESA International), a MES system is “a dynamic information system that drives effective execution of manufacturing operations,” by managing “production operations from point of order release into manufacturing to point of product delivery into finished goods” and by providing “mission critical information about production activities to others across the organization and supply chain via bi-directional communication.” 
         [0005]    The functions that MES systems usually include, in order to improve quality and process performance of manufacturing plants, are resource allocation and state, dispatching production orders, data collection/acquisition, quality management, maintenance management, performance analysis, operations/detail scheduling, document control, labor management, process management and product tracking. 
         [0006]    For example, Siemens Corporation (Siemens Aktiengesellschaft, Munich, Germany) offers a broad range of MES products, under its SIMATIC® product family. 
         [0007]    Within such a product family, the SIMATIC IT® Overall Equipment Effectiveness Product Option provides for the acquisition of the state and production counters of one or more pieces of equipment and for the possibility to run one or more user defined calculations. Overall Equipment Effectiveness (OEE) is a hierarchy of metrics which evaluates and indicates how effectively a manufacturing operation is utilized. 
         [0008]    One meaningful visualization of the state of a piece of equipment is through Gantt charts, because they show all state records (information acquired while the piece of equipment is in a certain state) acquired in a time range and especially the description and the color associated with a state or a time category (group of states). Because of the color, the line operator or a supervisor in a plant can immediately understand e.g. when a piece of equipment is running or not. Other information as the name of the order currently in execution or the product actually in production can complete the analysis. An exemplary Gantt chart is shown in  FIG. 1 : the grey bands are associated with states of the time category “Production Time” (the different shades corresponding to different states of the category), the black bands represent the stop times and the clear bands represent states of the time category “Downtime.” 
         [0009]    It is known to visualize Gantt charts on the client machines by using web-based solutions. 
         [0010]    A first web-based solution uses third party libraries of web controls, which render the Gantt charts as images. When the web server receives a request for Gantt chart visualization, it establishes a connection with a data source, draws a bitmap file and sends it to the client. An example of such a solution can be found at the site http://www.infragistics.com/samples/aspnet/chart/gantt-chart-data. That solution is unsatisfactory in that the request can be completed only when the image has been drawn and stored on the web server: when a great number of clients request data for a same, relatively long time period, the number of files and the rate of request could be so high that the library is not able to satisfy the requests. Moreover, a single bitmap is drawn for all clients, whereby the rendering is not optimized in case the clients&#39; machines have different individual display resolutions. 
         [0011]    Another web-based solution uses ActiveX Controls installed in the client machines. As the control is instantiated in the page, it opens a connection with a data source in order to retrieve the necessary data. Such a solution has been implemented in existing versions of SIMATIC IT®. That solution requires an installation for each client, thereby making the system complex. Moreover, it entails a huge transfer of data between the data source, the web server and the clients, so that the problems of meeting the requests of a high number of clients exist also in that case. 
       SUMMARY OF THE INVENTION 
       [0012]    It is accordingly an object of the invention to provide a TITLE which overcomes the above-mentioned and other disadvantages of the heretofore-known devices and methods of this general type and which provides for a method and a system for monitoring a manufacturing process that allows serving a great number of clients with good performance. 
         [0013]    With the foregoing and other objects in view there is provided, in accordance with the invention, a method of monitoring a manufacturing process via a web application. The novel method comprises the following steps:
       acquiring from a plant executing the manufacturing process data about a state of the plant and/or of parts of the plant;   converting the data into one or more Gantt charts, the converting step including:
           creating an HTML file and sending the HTML file to browsers of clients for rendering; and   asynchronously refreshing a data record including information about a current state of the monitored plant and/or the parts thereof.   
               
 
         [0018]    In other words, the objects of the invention are achieved by a method for monitoring a manufacturing process that includes: acquiring, from a plant executing the process, data about the state of the plant and/or parts thereof and converting the data into one or more Gantt charts. The converting step in turn includes the steps of: creating a HTML file and sending it to browsers of clients for rendering; and asynchronously refreshing, in background, a data record including information about a current state of the monitored plant and/or part thereof. 
         [0019]    In accordance with an added feature of the invention, the converting step further includes the following features:
       compressing the text to be sent to the clients;   caching a list of the states acquired and updating only data records concerning states occurring between an end time of the last request for a Gantt chart and an end time of the cached results.       
 
         [0022]    In accordance with an additional feature of the invention, the method comprises a configuration step for defining at least information items to be displayed jointly with the Gantt chart(s) and a time range to be covered by the Gantt chart(s). 
         [0023]    In accordance with an added feature of the invention, the configuration step further includes defining a threshold for data record duration, and the converting step provides for preventing records having a duration shorter than the threshold from being sent to the clients. 
         [0024]    With the above and other objects in view there is also provided, in accordance with the invention, system for monitoring a manufacturing process. The novel system comprises:
       a web server executing a web application;   browsers running on clients connected to and communicating with the web server;   an Overall Equipment Effectiveness server acquiring, from a plant executing the manufacturing process, state data about a state of the plant and/or of parts of the plant and supplying the web server with the state data when one or more clients request corresponding monitoring results; and   a database configured to store the state data and also time information to be used for defining a time range of the monitoring;   a time information management server reading the time range from the database when the one or more clients request the monitoring results and supplying the web server with the time range; and   the web application and the web server being configured to convert the state data relevant to the time range into an HTML file and to send the HTML file to the browsers of the one or more clients for rendering as one or more Gantt charts.       
 
         [0031]    Furthermore, a computer program element can be provided, comprising computer program code for performing steps according to the above mentioned method when loaded in a digital processor of a computing device. 
         [0032]    Additionally, a computer program product stored on a computer usable medium can be provided, comprising computer readable program code for causing a computing device to perform the mentioned method. 
         [0033]    Furthermore, a web application running on a server is provided, which comprises computer program code for performing steps according to the above mentioned method when loaded in a digital processor of a computing device. 
         [0034]    My earlier, commonly assigned patent application publication US 2013/0173663 A1 and its counterpart European application EP 2 610 695 A1 describe a method and a web application for OEE analysis in a MES system. The earlier disclosure is not concerned with the above-mentioned problems of Gantt chart rendering. 
         [0035]    Thus, embodiments of the invention strongly reduce the amount of data transferred to the clients and improve the response time of the system, whereby also the requests in case of more clients requesting data for a high number of hours of monitoring, by. This is obtained moreover with a simpler architecture, as no installation is to be provided on the clients. 
         [0036]    Moreover, since the rendering is entrusted to the client browser only, embodiments of the invention allow optimizing it for each client, independently of differences in display resolutions. 
         [0037]    Other features which are considered as characteristic for the invention are set forth in the appended claims. 
         [0038]    Although the invention is illustrated and described herein as embodied in a method, system and web application for monitoring a manufacturing process, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims. 
         [0039]    The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING 
         [0040]      FIG. 1  is an exemplary Gantt chart; 
           [0041]      FIG. 2  is a diagram of the software and hardware architecture of the invention; 
           [0042]      FIG. 3  is an example of a display page rendered by the browser of a client; 
           [0043]      FIG. 4  is an example of another page rendered by the browser of a client; 
           [0044]      FIG. 5  is a flowchart of the method according to the invention; and 
           [0045]      FIG. 6  is a flowchart of the method according to the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0046]    Referring now to the figures of the drawing in detail and first, particularly, to  FIG. 2  thereof, there is depicted the software and hardware architectures of the invention. The invention exploits a web application  1 , called “OEE Web Gantt,” running on a web server  2 . As known, a “web application” is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language (such as JavaScript, combined with a browser-rendered markup language, such a HTML) and is reliant on a common web browser to render the application executable. OEE Web Gantt application  1  is implemented as an ASP.NET User Control, optimized so as to increase the number of clients displaying the same data and the performance of the web server. The application runs only on the server and no installation is required on the clients&#39; side. For the sake of clarity, reference will be made to an application operating in association with the SIMATIC IT® OEE Product Option. 
         [0047]    In  FIG. 2 , a database  3  stores data about the state of pieces of equipment or production lines of a plant  4 . Data acquisition from plant  4  and writing of same into database  3  is managed by OEE server  5 , which is part of a MES system  6  like SIMATIC IT® and is known per se. The manner in which plant  4  sends the state information is well known to the skilled in the art. OEE server  5  is also entrusted with reading data from database  3  and supplying them to web server  2  when the OEE Web Gantt control (i.e. Gantt chart visualization) is requested. 
         [0048]    Database  3  also stores working calendar information necessary in order a Gantt chart relating to a certain time range can be prepared. A further server  7 , the SHC (Shift Calendar) server, also being part of SIMATIC IT® system  6 , reads the time range information from database  3  when the OEE Web Gantt control is requested, and then OEE server  5  reads the records relevant to that time range. The Shift Calendar is a component of SIMATIC IT® managing the working calendar and the working shifts of the personnel. 
         [0049]    The time range and state information are converted by web server 2 into a HTML file that is sent to browsers  8   a,    8   b  . . .  8   n  of requesting clients  9   a,    9   b  . . .  9   n.  The Gantt chart is thus rendered on the client machine, and web server  2  is not involved in the rendering, which can be therefore optimized for the resolution of individual clients&#39; machines. When sending the HTML file, a compression of text is performed by web server  2 , so as to reduce the data traffic over the network connecting clients  9   a  . . .  9   n  and server  2 . 
         [0050]    The main data to be rendered by clients&#39; browsers  8  are the color of the record (the color of the machine state or of the time category, depending on the resolution required), and the start and end time of a record. The user can also add custom fields, such as the product currently in production, the order, or other data acquired from plant  4 . 
         [0051]    The list of fields required by clients  9   a  . . .  9   n  for each record is contained in a configuration XML (eXtensible Markup Language) file on web server  2 . 
         [0052]    Through the configuration file, the user can also impose filters on the record duration. This allows excluding records with duration shorter than a given threshold (e.g., microstops). The relevant data can thus be removed and are not displayed, thereby further reducing the amount of data to be transferred to clients  9 . 
         [0053]    The time range covered by a Gantt Chart can be the current shift or the last hours; in the alternative, the time range can be based on a custom field (i.e., the start time changes with the value of a custom field. The time range is defined in the configuration file. Based on the time range setting, web server  2  stores in a cache memory the list of the states and updates only the records between the end time of the last request and the end time of the cached results. In this manner, the time range is not to be calculated again at each request and the response time for all clients requesting the same time range is reduced. 
         [0054]    Web server  2  also provides for an asynchronous refresh for updating the last record: this refresh is carried out so as to allow a high data refresh frequency while minimizing the amount of data sent to browsers  8   a  . . .  8   n.  The asynchronous refresh is performed in background once the web page containing the Gantt has been generated and sent to clients  9 . At this point, the concerned browsers  8   a  . . .  8   n  start a timer requesting the last record with a desired periodicity. Indeed, this record contains the only information which is subject to change and which is to be kept up-to-date. Since the amount of data to be transferred between server and browser due to such a refresh is minimum (a single record), the refresh periodicity can be very short, e.g. a few seconds, for instance 5 s. On the contrary, the whole page refresh (synchronous refresh) cannot be performed with a high frequency, given the huge data amount involved especially if a high number of clients are to be served. A synchronous refresh periodicity could be of the order of the minutes. The periodicities of both kinds of refresh are set in the configuration file. 
         [0055]    An exemplary configuration file is shown in the following Table 1. 
         [0000]    
       
         
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                   
               
             
             
               
                 &lt;?xml version=“1.0” encoding=“utf-8”?&gt; 
               
               
                 &lt;ConfigurationRepository Version=“13”&gt; 
               
             
          
           
               
                   
                 &lt;ConfigurationItems&gt; 
               
             
          
           
               
                   
                 &lt;ConfigurationSet KeyId=“*”&gt; 
               
             
          
           
               
                   
                 &lt;ConfigurationItems&gt; 
               
             
          
           
               
                   
                 &lt;ConfigurationItem xsi:type=“LineViewConfiguration” 
               
             
          
           
               
                   
                 Name=“LineViewConfiguration” Version=“13” 
               
               
                   
                 PollingTimeMs=“5000” GanttsPerPage=“3” 
               
               
                   
                 RefreshPageInSeconds=“120” 
               
               
                   
                 EnableTimingNavigation=“false”&gt; 
               
             
          
           
               
                   
                 &lt;TimingConfiguration TimeTemplate=“ShiftShc”/&gt; 
               
             
          
           
               
                   
                 &lt;GanttOptimization&gt; 
               
             
          
           
               
                   
                 &lt;MinimumDurationProperty Name=“MinimumDuration” 
               
             
          
           
               
                   
                 Value=“00:05:00”/&gt; 
               
             
          
           
               
                   
                 &lt;TooltipForCompressedDataProperty Name=“Tooltip” 
               
             
          
           
               
                   
                 Value=“Compressed Data”/&gt; 
               
             
          
           
               
                   
                 &lt;CssForPlannedRecordProperty 
               
             
          
           
               
                   
                 Name=“GanttCellCssForPlannedRecord” 
               
               
                   
                 Value=“divGanttCell”/&gt; 
               
             
          
           
               
                   
                 &lt;CssForInducedRecordProperty 
               
             
          
           
               
                   
                 Name=“GanttCellCssForInducedRecord” 
               
               
                   
                 Value=“divGanttCell” T/&gt; 
               
             
          
           
               
                   
                 &lt;/GanttOptimization&gt; 
               
             
          
           
               
                   
                 &lt;/ConfigurationItem&gt; 
               
             
          
           
               
                   
                 &lt;/ConfigurationItems&gt; 
               
             
          
           
               
                   
                 &lt;/ConfigurationSet&gt; 
               
             
          
           
               
                 ....... 
               
             
          
           
               
                   
                 &lt;/ConfigurationItems&gt; 
               
             
          
           
               
                 &lt;/ConfigurationRepository&gt; 
               
               
                   
               
             
          
         
       
     
         [0056]    The section “Configurationitem xsi:type . . . =”false“” allows configuring a page containing the Gantt Control. More particularly:
       field “Ganttsperpage” allows setting the number of Gantts shown on the page (e.g. 3);   field “RefreshPagelnSeconds” allows setting the page refresh frequency (e.g. 120 s);   field “PollingTimeMs” allows setting the asynchronous refresh frequency in milliseconds (e.g. 5000 ms).       
 
         [0060]    Sections “TimingConfiguration TimeTemplate=“ShiftShc”” and “GanttOptimization” allow defining the time ranges and additional parameters for the Gantt, respectively. 
         [0061]      FIGS. 3 and 4  show two examples of web pages rendered on the browser  8  of a client  9  in SIMATIC IT® system, namely the “Line View” web page displaying information on one or more production lines or pieces of equipment, and the “Line Chart” web page providing the operator with an overview of the production of a specific line or piece of equipment. Further pages can be displayed to a client, as shown by the selection pushbuttons on the left of the screen: yet, such further pages are not related with Gantt control and hence are not of interest for the invention. 
         [0062]    The Line View page includes, in the example, three Gantt charts displaying the sequence of states of a line and two pieces of equipment during the current shift, together with their names (Line 1, Eq. 1, Eq. 2) and their current states (Run, Run with alarm, Run, respectively). Additionally, below the Gantt Charts, there are displayed the product being processed (Product ID) and the values of some algorithms related to the current shift, in this case OEE and availability. Further information to be displayed can be defined in the configuration file. 
         [0063]    In turn, the Line Chart page includes the Gantt chart of Line 1 during the current shift, as well as a graph showing a performance considered as good (line A) and the items actually produced (line B). 
         [0064]      FIGS. 5 and 6  summarize the method of the invention. Step  21  is the data acquisition by OEE server  5  and the data storage in database  3 . Upon occurrence of a Gantt request (step  22 ), the time range and the relevant records are read from database  3  and supplied to web server  2  (step  23 ). After filtering depending on the duration (step  24 ), the HTML file is created and sendt to the client (step  25 ) for rendering (step  26 ). Substeps  251 - 253  in step  25  are respectively the asynchronous refresh of the last record, the caching of the list of downtimes and the updating of the records between the end time of a previous request and the end time of the caching, and the text compression before transmission to the clients. 
         [0065]    In addition to the embodiments of the present invention described above, those of skill in the pertinent art will be able to arrive at a variety of other arrangements and steps which, even if not explicitly described in this document, nevertheless fall within the scope of the appended claims.