Data Utilization System

The data utilization system addresses the challenge of collecting time-series data from multiple PLCs by using a hierarchical data collection and processing structure, ensuring comprehensive and uninterrupted data collection across asynchronous PLC operations.

JP7649368B2Active Publication Date: 2025-03-19KEYENCE CORP
View PDF 13 Cites 0 Cited by

Patent Information

Application Number
JP2023218376
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-12-25
Publication Date
2025-03-19
Estimated Expiration
2039-10-03

AI Technical Summary

Technical Problem

Existing data utilization systems struggle to collect time-series data from multiple programmable logic controllers (PLCs) without omission, due to asynchronous operations of the PLCs.

Method used

A data utilization system with multiple data utilization units, where a higher-level unit sets specification information, collects data, processes it, and displays it on a dashboard, while lower-level units acquire data from basic units and store it in buffers for transfer to the higher-level unit.

Benefits of technology

Enables the higher-level data utilization unit to collect time-series data from one or more lower-level units without omission, facilitating comprehensive monitoring of industrial machines and production lines.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007649368000001
    Figure 0007649368000001
  • Figure 0007649368000002
    Figure 0007649368000002
  • Figure 0007649368000003
    Figure 0007649368000003
Patent Text Reader

Abstract

To enable a higher-order data utilization unit to completely collect time-series data from one or more lower-order units.SOLUTION: A higher-order unit sets designation information designating data being a collection object to a lower-order unit to collect the data being the collection object stored in the lower-order unit. In accordance with the designation information, the lower-order unit acquires data acquired by a basic unit connected to the lower-order unit, from the basic unit. The higher-order unit or the lower-order unit is provided with a buffer in which the acquired data is stored for delivery from the lower-order unit to the higher-order unit. The higher-order unit is configured to read out the data being the collection object from the buffer.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a data utilization system. [Background technology]

[0002] A programmable logic controller (PLC) is a controller that controls industrial machines such as manufacturing equipment, transport devices, and inspection devices in factory automation (Patent Documents 1 and 2). A PLC controls various extension units and controlled devices by executing user programs such as ladder programs created by a programmer. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 5661222 [Patent Document 2] JP 2018-097662 A Summary of the Invention [Problem to be solved by the invention]

[0004] Incidentally, in order to monitor the operation of a PLC or the operation of industrial machinery controlled by a PLC, it is desirable to collect and utilize the data held by the PLC. A PLC has a base unit (CPU unit) and an expansion unit connected to it. The base unit controls the expansion unit by executing user programs such as ladder programs. The expansion unit controls the industrial machinery according to commands from the base unit and returns the control results to the base unit. Here, in order to reduce the processing load on the base unit, the inventors came up with the idea of ​​connecting a data utilization unit to the base unit as one of the expansion units. This would make it possible to collect time-series data without omission within a single PLC.

[0005] Incidentally, in one production line, multiple PLCs may each control different industrial machines. In this case, if data could be collected and utilized from multiple PLCs, it would be easier to monitor the entire production line in an integrated manner. In this case, the upper data utilization unit collects data from multiple lower data utilization units. It is desirable for the upper data utilization unit to collect time series data from multiple lower data utilization units without omission. However, since multiple PLCs operate asynchronously, it is not easy to collect time series data without omission.

[0006] Therefore, an object of the present invention is to enable a higher-level data utilization unit to collect time-series data from one or more lower-level data utilization units without omission. [Means for solving the problem]

[0007] The present invention relates to, for example, A data utilization system having a plurality of data utilization units, A higher-level unit among the plurality of data utilization units is A setting unit that sets designation information that designates data to be collected for a lower unit among the plurality of data utilization units; a collection unit that collects the data to be collected that is stored in the lower unit; a data processing unit that performs data processing on the data collected by the collection unit in accordance with a processing setting; a web server that transmits display data for a dashboard that displays a data processing result obtained by executing the data processing by the data processing unit; having The lower unit further comprises: an acquisition means for acquiring data acquired in a basic unit connected to the lower unit from the basic unit in accordance with the designation information; a buffer provided in the upper unit or the lower unit for storing the data acquired by the acquisition means in order to transfer the data from the lower unit to the upper unit; having the collection unit of the upper unit is configured to read the data to be collected from the buffer, The setting unit sets variable information for determining a device or a variable from which data is to be collected by the lower unit. 、 The lower unit Programmable logic controller including Retrieved from The WEB server is Programmable logic controller including transmit display data for selecting a device or variable to be collected, the display data reflecting the variable information acquired from the The setting unit designates a device or a variable designated via a setting screen based on the display data as the designated information. The present invention provides a data utilization system. Effect of the Invention

[0008] According to the present invention, a higher-level data utilization unit can collect time-series data from one or more lower-level data utilization units without omission. [Brief description of the drawings]

[0009] [Figure 1] Diagram showing a PLC system [Diagram 2] Diagram explaining PC [Diagram 3] Diagram explaining PC [Figure 4] Diagram explaining PLC [Diagram 5] Diagram explaining the basic unit [Figure 6] Diagram explaining the data utilization unit [Figure 7] Diagram explaining the expansion unit [Figure 8] Diagram explaining the data record format [Figure 9]Diagram explaining transfer timing [Figure 10] Diagram explaining the data record format [Figure 11] Diagram explaining data compression [Figure 12] Diagram showing an example dashboard [Figure 13] Flowchart showing collection and transfer methods [Figure 14] Flowchart showing collection and transfer methods [Figure 15] Flowchart showing collection and transfer methods [Figure 16] Flowchart showing how to create a collection configuration [Figure 17] A diagram explaining the connection settings UI. [Figure 18] Diagram explaining the variable editing UI [Figure 19] A diagram explaining the collection target setting UI [Figure 20] Flowchart showing collection processing of lower units [Figure 21] Flowchart showing the collection process of the upper unit [Figure 22] Diagram explaining the dashboard [Diagram 23] A diagram explaining the display part setting UI [Figure 24] Diagram explaining the placement of the transfer buffer [Diagram 25] A diagram explaining the use of sub-buffers DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more features among the multiple features described in the embodiments may be arbitrarily combined. In addition, the same reference numbers are given to the same or similar configurations, and duplicated descriptions are omitted. Lowercase alphabets may be added to the end of reference numbers indicating the same or similar elements. When matters common to multiple elements are described, the lowercase alphabets are omitted.

[0011] <System configuration> First, in order to allow those skilled in the art to better understand programmable logic controllers (PLCs, which may also be simply called programmable controllers), the configuration and operation of a typical PLC will be described.

[0012] FIG. 1 is a conceptual diagram showing an example of a configuration of a programmable logic controller system according to an embodiment of the present invention. As shown in FIG. 1, this system includes a PC 2a for editing a user program such as a ladder program, and PLCs (Programmable Logic Controllers) 1a to 1c for comprehensively controlling various control devices installed in a factory or the like. PC is an abbreviation for personal computer. The user program may be created using a graphical programming language such as a motion program in a flow chart format, such as a ladder language or an SFC (Sequential Function Chart), or may be created using a high-level programming language such as the C language. In the following, for convenience of explanation, the user program is assumed to be a ladder program. The PLC 1 includes a basic unit 3 with a built-in CPU, and one or more expansion units 4. One or more expansion units 4 are detachable from the basic unit 3.

[0013] In data utilization, PLC1 has an upper mode in which it functions as a higher-level system and a lower mode in which it functions as a lower-level system. For example, in FIG. 1, PLC1a is the upper system, and PLC1b and 1c are the lower-level systems. PLC1a sets data to be collected for PLC1b and 1c, and acquires data collected by PLC1b and 1c. PLC1a is connected to PLC1b via a communication cable 9c. PLC1a is connected to PLC1c via a communication cable 9d. However, the communication cable 9 may be a wired network or a wireless network.

[0014] The basic unit 3 includes a display section 5 and an operation section 6. The display section 5 can display the operating status of each expansion unit 4 attached to the basic unit 3. The display section 5 switches the display content according to the operation content of the operation section 6. The display section 5 usually displays the current value (device value) of the device in the PLC 1 and error information generated in the PLC 1. The device is a name that refers to an area in memory provided to store device values ​​(device data), and may also be called a device memory. The device value is information that indicates the input state from the input device, the output state to the output device, and the state of an internal relay (auxiliary relay), timer, counter, data memory, etc. that are set in the user program. There are two types of device values: bit type and word type. A bit device stores a device value of 1 bit. A word device stores a device value of 1 word. Not only devices but also variables may be specified as the collection target of the data utilization program described in detail below. However, both devices and variables are holding means for holding information. Therefore, in the following description, the device also refers to variables. The memory that holds the device may be called a device memory. The memory that holds the collected data may be called a data memory.

[0015] The expansion unit 4 is provided to expand the functions of the PLC 1. A field device (controlled device) 10 corresponding to the function of the expansion unit 4 may be connected to each expansion unit 4, and each field device 10 is connected to the basic unit 3 via the expansion unit 4. The field device 10 may be an input device such as a sensor, a camera, or a barcode reader, or an output device such as an actuator. In addition, a plurality of field devices may be connected to one expansion unit 4.

[0016] For example, the extension unit 4b may be a positioning unit that drives a motor (field device 10) to position a workpiece, or may be a counter unit that counts signals from an encoder (field device 10) such as a manual pulsar.

[0017] The expansion unit 4a is a data collection unit that collects data to be collected from the basic unit 3 and the expansion unit 4b, processes the collected data by executing a flow to create data to be displayed, and creates display data for displaying a dashboard on the display unit 7 or the PC 2. The basic unit 3 is sometimes called a CPU unit. Note that a system including the PLC 1 and the PC 2 may be called a programmable logic controller system.

[0018] PC2a is a computer operated mainly by a programmer. On the other hand, PC2b is a computer operated mainly by a field staff. PC2a may be called a program creation support device (setting device). PC2 is, for example, a portable notebook type or tablet type personal computer or a smartphone, and is an external computer equipped with a display unit 7 and an operation unit 8. The external computer is a computer outside PLC1. A ladder program, which is an example of a user program for controlling PLC1, is created using PC2a. The created ladder program is converted into a mnemonic code in PC2a. PC2 is connected to the basic unit 3 of PLC1 via a communication cable 9 such as a USB (Universal Serial Bus) cable. For example, PC2a sends the ladder program converted into the mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into a machine code and stores it in a memory provided in the basic unit 3. Note that, although the mnemonic code is transmitted to the basic unit 3 here, the present invention is not limited to this. For example, PC2a may convert the mnemonic code into an intermediate code and transmit the intermediate code to the basic unit 3.

[0019] 1, the operation unit 8 of the PC 2 may include a pointing device such as a mouse connected to the PC 2. The PC 2 may be configured to be detachably connected to the base unit 3 of the PLC 1 via a communication cable 9 other than a USB cable. The PC 2 may be connected to the base unit 3 of the PLC 1 by wireless communication without using the communication cable 9.

[0020] <Program creation support device> FIG. 2 is a block diagram for explaining the electrical configuration of the PC 2a. As shown in FIG. 2, the PC 2a includes a CPU 11a, a display unit 7a, an operation unit 8a, a storage device 12a, and a communication unit 13a. The display unit 7a, the operation unit 8a, the storage device 12a, and the communication unit 13a are each electrically connected to the CPU 11a. The storage device 12a includes a RAM, a ROM, a HDD, and an SSD, and may further include a removable memory card. CPU is an abbreviation for central processing unit. ROM is an abbreviation for read-only memory. RAM is an abbreviation for random access memory. HDD is an abbreviation for hard disk drive. SSD is an abbreviation for solid state drive.

[0021] A user of the PC 2a causes the CPU 11a to execute the project editing program 14a stored in the storage device 12a, and edits the project data 15 through the operation unit 8a. The CPU 11a executes the project editing program 14a, thereby realizing a project creation unit 16 and a project transfer unit 17. The project creation unit 16 creates the project data 15 according to a user input. The project transfer unit 17 transfers the project data 15 to the PLC 1. The project data 15 includes one or more user programs (e.g., ladder programs) and configuration information of the basic unit 3 and the extension unit 4. The configuration information is information indicating the connection positions of the multiple extension units 4 relative to the basic unit 3, the functions provided in the basic unit 3 (e.g., communication function and positioning function), the functions of the extension units 4 (e.g., photography function), and the like. Here, editing the project data 15 includes creating and changing (re-editing) the project data 15. The user can read out the project data 15 stored in the storage device 12a as necessary, and change the project data 15 using the project editing program 14a. The communication unit 13a communicates with the basic unit 3 via the communication cable 9a. The project transfer unit 17 transfers project data to the basic unit 3 via the communication unit 13a. The communication unit 13a communicates with the extension unit 4a via the communication cable 9b.

[0022] The variable information 19 is a part of the project data 15, and includes variables used in the user program, devices assigned to the variables, data types, initial values, comments, and the like. The variable information 19 is useful for setting devices to be collected when utilizing data. For example, when a list of variables is created from the variable information 19 and a user specifies one of the variables from the list of variables, a device assigned to the specified variable is identified from the variable information 19 or the list, and is determined as a device to be collected. Note that instead of PC2, the data utilization unit of PLC1a functioning as a higher-level system may read the variable information 19 of the lower-level system and determine a device to be collected. When PC2 functions as a setting device (program creation support device) for three PLC1, PC2 may create the collection setting. This example is shown in FIG. 2. Project data 15a is project data for PLC1a, and variable information 19a is variable information for PLC1a. Project data 15b is project data for PLC1b, and variable information 19b is variable information for PLC1b. The project data 15c is project data for PLC1c, and the variable information 19c is variable information for PLC1c. When the three PLCs 1 are configured by different configuration devices, the upper system will comprehensively create the collection settings. This will make the creation of the collection settings more efficient. The objects to be collected may not only be devices, but also the variables themselves.

[0023] <PC used to view the dashboard> Fig. 3 is a block diagram for explaining the electrical configuration of PC 2b. As shown in Fig. 3, PC 2b includes CPU 11b, display unit 7b, operation unit 8b, storage device 12b, and communication unit 13b. Display unit 7b, operation unit 8b, storage device 12b, and communication unit 13b are each electrically connected to CPU 11b. Storage device 12b includes RAM, ROM, HDD, SSD, and may further include a removable memory card.

[0024] The CPU 11b executes the Web browser program 14d to implement the Web browser 18. The Web browser 18 accesses a setting page of a data utilization application provided by the extension unit 4a and accesses a dashboard page via the communication unit 13b.

[0025] <plc> FIG. 4 is a block diagram for explaining the electrical configuration of the PLC 1. As shown in FIG. 4, the basic unit 3 includes a CPU 31, a display unit 5, an operation unit 6, a storage device 32, and a communication unit 33. The display unit 5, the operation unit 6, the storage device 32, and the communication unit 33 are each electrically connected to the CPU 31. The storage device 32 may include a RAM, a ROM, a memory card, and the like. The storage device 32 has a plurality of storage areas such as a device unit 34 and a project storage unit 35. The device unit 34 has a bit device, a word device, and the like, and each device stores a device value. The project storage unit 35 stores project data input from the PC 2a. The storage device 32 also stores a control program for the basic unit 3. As shown in FIG. 4, the basic unit 3 and the expansion unit 4 are connected via an expansion bus 90, which is a type of communication bus. In FIG. 4, a communication circuit related to the expansion bus 90 is implemented in the CPU 31, but may be implemented as a part of the communication unit 33. The communication unit 33 may have a network communication circuit. The CPU 31 receives the project data from the PC 2 a via the communication unit 33 .

[0026] Here, a supplementary explanation will be given about the expansion bus 90. This expansion bus 90 is a communication bus used for input / output refresh. Input / output refresh is a process for updating device values ​​between the basic unit 3 and the expansion unit 4. Input / output refresh is performed each time a ladder program is executed once (i.e., each scan). Note that one scan cycle includes the execution period of the input / output refresh, the execution period of the user program, and the execution period of the end process.

[0027] The expansion unit 4 includes a CPU 41 and a memory 42. The CPU 41b of the expansion unit 4b controls the field device 10 according to instructions (device values) from the basic unit 3 stored in the device. The CPU 41b also stores the control results of the field device 10 in a device called a buffer memory. The control results stored in the device are transferred to the basic unit 3 by input / output refresh. The control results stored in the device are also transferred to the basic unit 3 in accordance with a read command from the basic unit 3, even at a timing different from the input / output refresh. The memory 42 includes a RAM, a ROM, and the like. In particular, a storage area used as a buffer memory is secured in the RAM. The memory 42 may have a buffer that temporarily holds data (e.g., still image data or video data) acquired by the field device 10.

[0028] The CPU 41a of the extension unit 4a functioning as a data utilization unit communicates with the PC 2b via the communication unit 43 and the cable 9b. The data utilization unit is an extension unit that executes a data utilization application. The data utilization application includes a flow that collects and processes control data, and a dashboard that displays the execution result of the flow. The function of collecting control data may be realized by a user program other than the data utilization application. The flow may have an operation block that collects data, an operation block that executes data processing, and an operation block that creates display data. The dashboard has a graph display component and a numerical display component. These display components may be realized by HTML data, CSS data, JavaScript (registered trademark) code, and the like. The collection of HTML data, CSS data, and JavaScript (registered trademark) code may be called a Web application. In this embodiment, the flow is realized by a flow template. The flow template is prepared in advance for each application, and has one or more operation blocks in which parameters specified by the user are set. The dashboard is also realized by a template. The dashboard template has one or more display components in which parameters specified by the user are set. The parameters are a wide variety of information, such as the name of the dashboard, the device name, a numerical value, the name of a unit variable, etc. The unit variable is a variable for the extension unit 4a to hold the execution result of the flow.

[0029] ●Functions realized by the CPU of the base unit FIG. 5 shows functions realized by the CPU 31 regarding data utilization. The execution engine 51 repeatedly executes a user program for each scan period. The execution engine 51 may be realized by an ASIC or FPGA provided outside the CPU 31. ASIC is an abbreviation for application specific integrated circuit. FPGA is an abbreviation for field programmable gate array. These dedicated circuits can often execute specific data processing faster than a combination of a CPU and a program. The collection unit 52a collects device values ​​to be collected from the device unit 34 during the end processing period of the scan period, creates a data record, and stores the data in the first buffer 37a. It is not essential to collect data during the end processing period, and a description for collecting data (program code such as a trigger command) may be included in the user program executed by the execution engine 51. However, in the case where data is collected by the end processing, there is an advantage that the user program does not need to be changed. The collection period may be a period specified by the collection setting 36a. By providing the first buffer 37a, the execution engine 51 is less susceptible to the effects of an increase in scan time due to collection and transfer processing. The device value to be collected is specified by the collection setting 36a. The collection setting 36a can be stored in the base unit 3 by the PC 2a or the expansion unit 4a. The transfer unit 53a transfers one or more data records stored in the first buffer 37a to the expansion unit 4a via the expansion bus 90. The transfer unit 53a executes the transfer process when the communication traffic in the expansion bus 90 is free. Therefore, the transfer process is executed while avoiding the period when the execution engine 51a is executing an input / output refresh or the period when data is being read from the buffer memory of the expansion unit 4 according to a read command written in the user program. The communication traffic of the expansion bus 90 is monitored by the monitoring unit 54a. In order to shorten the transfer time of the data record, the compression engine 55a may compress multiple data records. In addition, the compression engine 55a does not need to be realized by the CPU 31, and may be realized by an ASIC or an FPGA.In this way, by employing the first buffer 37a, it becomes possible to execute the transfer process and the user program asynchronously.

[0030] ● Functions of the Data Utilization Unit 6 is a diagram for explaining the functions realized by the CPU 41a of the expansion unit 4a. The expansion unit 4a of the upper system may be called the upper unit, and the expansion unit 4a of the lower system may be called the lower unit. First, the functions realized by the CPU 41a of the lower unit will be explained. However, the CPU 41a of the upper unit may also collect data in the PLC 1a to which it is connected.

[0031] The collection unit 52c is a function that the CPU 41a collects data according to the collection setting 39. The collection unit 52c can be realized by the CPU 41a executing a control program such as a user program. The collection unit 52c sets the basic unit 3 so that the basic unit 3 collects the device value specified by the collection setting 39 and transfers it to the second buffer 37b of the expansion unit 4a. The collection unit 52c may write the collection setting 36a of the basic unit 3 included in the collection setting 39 to the storage device 32 of the basic unit 3. The collection setting 39 can be written to the memory 42a by the PC 2 or another data utilization unit operating as a higher-level system. It is desirable that the collection unit 52c and the data processing unit 73 can basically operate asynchronously. A buffer may be provided to achieve this.

[0032] The collection unit 52c may set the expansion unit 4b so that the expansion unit 4b collects the device value specified by the collection setting 39 and transfers it to the third buffer 37c of the expansion unit 4a. By providing the second buffer 37b and the third buffer 37c, even if the processing load of the data processing unit 73 varies, data can be collected without missing. The collection unit 52c may write the collection setting 36b (FIG. 7) of the expansion unit 4b included in the collection setting 39 to the memory 42b of the expansion unit 4b. These setting functions may be realized by the setting unit 71. The setting unit 71 receives the collection setting 39, the processing setting 61, and the display setting 62 from the PC 2a or the PC 2b and writes them to the memory 42a. The processing setting 61 includes information and a flow (program) that defines the data processing executed by the data processing unit 73 on the collected data. The display setting 62 includes a dashboard template (HTML data, CSS, JavaScript (registered trademark) code, etc.) that provides the data processing result to the Web browser 18 through the Web server 70. The generation unit 74 creates display data for the dashboard by substituting the data processing results into the template of the dashboard according to the display settings 62 that define the display components of the dashboard. The display data may be, for example, HTML data, image data, CSS (Cascading Style Sheets), JavaScript (registered trademark) code, and the like. The display components include, for example, a pie chart component, a bar chart component, a line graph component, and a numeric display component. When the web page of the dashboard is accessed by the web browser 18, the web server 70 transmits the display data for the dashboard to the web browser 18. The web browser 18 receives the display data and displays the dashboard.

[0033] Note that multiple data utilization applications may be provided. In this case, the data and read timing required for each data utilization application may differ. In this case, a sub-buffer may be secured in the memory 42a for each data utilization application. The collection unit 52c reads the data records stored in the second buffer 37b and stores the data for the first data utilization application in the first sub-buffer 38a. The collection unit 52c reads the data records stored in the second buffer 37b and stores the data for the second data utilization application in the second sub-buffer 38b. Note that the collection unit 52c may read the data records stored in the third buffer 37c and store the data for the first data utilization application in the first sub-buffer 38a. The collection unit 52c may read the data records stored in the third buffer 37c and store the data for the second data utilization application in the second sub-buffer 38b. The data processing unit 73 reads the data from the first sub-buffer 38a according to the first data utilization application, executes data processing, and generates a processing result. The data processing unit 73 reads the data from the second sub-buffer 38b according to the second data utilization application, executes data processing, and generates a processing result. The decompression engine 75 is a function paired with the compression engine 55a of the basic unit 3 and the compression engine 55b of the expansion unit 4b. The decompression engine 75 decompresses data compressed and transferred by the basic unit 3 and stores the data in the second buffer 37b. The decompression engine 75 decompresses data compressed and transferred by the expansion unit 4b and stores the data in the third buffer 37c. This will reduce congestion in communication traffic on the expansion bus 90. The decompression engine 75 may be realized by an ASIC or FPGA. In this way, data transmission between the basic unit 3 and the expansion units 4a, 4b is performed via the expansion bus 90.

[0034] There may be a plurality of pieces of data required for each data utilization application. In that case, the chunks of data collected in each scan may be kept in the buffer, and the plurality of pieces of data required may be stored in the sub-buffer. Furthermore, even when distributing data to the sub-buffers, a timestamp or the like may be added to each record. As shown in FIG. 25, the second buffer 37b (or the third buffer 37c) holds chunks of collected data. One record includes a scan number, a timer value (timestamp), and collected data. In this example, the collected data includes relays RL1 to RL3, and devices Dev1 and Dev2. The first data utilization application 2501 requires relays RL1 to RL3 out of the collected data. Therefore, the scan number, the timer value, and relays RL1 to RL3 are read from the second buffer 37b and stored in the first sub-buffer 38a. The first data utilization application 2501 reads the scan number, the timer value, and relays RL1 to RL3 from the first sub-buffer 38a to create a display screen (source data). The second data utilization application 2502 requires relay RL3, and devices Dev1 and Dev2 from the collected data. Therefore, the scan number, the timer value, relay RL3, devices Dev1 and Dev2 are read from the second buffer 37b and stored in the second sub-buffer 38b. The second data utilization application 2502 reads the scan number, the timer value, relay RL3, devices Dev1 and Dev2 from the second sub-buffer 38b to create a display screen (source data). By utilizing the sub-buffer in this way, it becomes possible to maintain the original data in the buffer without changing it. The original data held in the buffer can be used for other purposes.

[0035] The transfer buffer 40 is used when transferring collected data between the upper system and the lower system. The transfer buffer 40 may be provided in at least one of the upper system and the lower system. For example, the data utilization unit of PLC1b functioning as the lower system stores the time series data collected in PLC1b in the transfer buffer 40. The data utilization unit of PLC1a functioning as the upper system acquires the time series data related to PLC1b from the transfer buffer 40 of the lower system. If PLC1b operates at a higher speed than PLC1a, there is a possibility that the device value of a bit device that is ON for a very short time in PLC1b cannot be acquired. Therefore, by providing the transfer buffer 40, it is less likely that the time series data will be missed. This buffer arrangement is also advantageous in cases where data processing such as statistical processing is performed in the lower system and the processing results are transferred to the upper system. The lower system stores the processing results in the transfer buffer 40. The upper system periodically checks the transfer buffer 40. If the processing results are stored in the transfer buffer 40, the upper system reads out the processing results. In this case, a FIFO type would be suitable for the transfer buffer 40.

[0036] The data utilization unit of PLC 1a may be provided with a transfer buffer 40. The data utilization unit of PLC 1b, which functions as a lower system, stores time series data collected within PLC 1b in the transfer buffer 40 of the data utilization unit of PLC 1a, which is a higher system.

[0037] ● Functions of the extension unit 4b related to data utilization FIG. 7 is a diagram for explaining the functions realized by the CPU 41b of the expansion unit 4b.

[0038] The execution engine 51b executes the basic functions of the extension unit 4b (such as executing a motion flow if it is a motion unit). The collection unit 52b collects data specified by the collection setting 36 from the device unit 34b at the timing specified by the collection setting 36 and stores the data in the fourth buffer 37d. The transfer unit 53b reads out the data records stored in the fourth buffer 37d at the timing specified by the collection setting 36 or at the timing when a transfer request is received by the extension unit 4a, and transfers the data records to the third buffer 37c of the extension unit 4a via the expansion bus 90. The transfer unit 53b may transfer the data records at a timing when the communication traffic of the expansion bus 90 monitored by the monitoring unit 54 is low. The compression engine 55b compresses the data records according to the collection setting 36. In other words, the transfer unit 53b may transfer the data records compressed by the compression engine 55b to the extension unit 4a. The compression engine 55b may be realized by the CPU 41b, but from the viewpoint of high speed processing and reduction of the processing load of the CPU 41b, it may be realized by an ASIC or FPGA.

[0039] Example of a data record FIG. 8 shows a data record 91 written by the collection unit 52a to the first buffer 37a. The multiple data records 91 are an example of time-series data. In this example, the collection unit 52a collects device values ​​of device names Dev0, Dev1, and Dev10 from the device unit 34a for each scan period, and creates one data record by adding the collection count and time information obtained from the timer, and stores the data in the first buffer 37a. The collection target may be data stored in a buffer memory or device assigned to the expansion unit 4b. In this example, the first buffer 37a is a FIFO (first-in, first-out) type buffer. The collection count is a count value of a counter that is incremented by one each time a data record is collected. Since the collection count is a number that is assigned sequentially, it is useful for detecting missing or compressed data records.

[0040] Time information such as a time stamp is useful, for example, when displaying data acquired by the basic unit 3 and data acquired by the expansion unit 4b on a dashboard so that they can be compared. In general, the collection timing in the basic unit 3 does not match the collection timing in the expansion unit 4b. Therefore, in order to compare the operation of the basic unit 3 with the operation of the expansion unit 4b, information is required to link the data of the basic unit 3 with the data of the expansion unit 4b. In general, the basic unit 3 and the expansion units 4a and 4b can synchronize the time information by inter-unit synchronization or the like. Therefore, the basic unit 3 and the expansion unit 4b each add time information when collecting the data record to the data record, so that the data processing unit 73 can align multiple data records acquired by different units on the time axis.

[0041] Timing of transfer FIG. 9 is a diagram for explaining the transfer timing of data records. As shown in FIG. 9, the PLC 1 repeatedly executes input / output refresh, user program execution, and end processing. In order to reduce the extension of the scan cycle, the transfer processing is executed while avoiding the input / output refresh period. Similarly, in order to reduce the extension of the scan cycle, the transfer processing is executed while avoiding the execution period of UREAD and UWRIT. UREAD is an instruction to read data from the buffer memory assigned to the expansion unit 4, and is described in the user program. Therefore, during the execution period of the user program, the basic unit 3 accesses the expansion unit 4 according to UREAD to obtain data from the buffer memory. UWRIT is an instruction to write data to the buffer memory assigned to the expansion unit 4, and is described in the user program. During the execution period of the user program, the basic unit 3 accesses the expansion unit 4 according to UWRIT to write data to the buffer memory.

[0042] 9, in the remaining transferable periods excluding input / output refresh, UREAD, and UWRIT, the transfer process is executed on the expansion bus 90. For example, assume that the collection setting 36a is set to execute the transfer process for five data records at a time. In this case, the transfer unit 53a executes the transfer process after the accumulation of five data records in the first buffer 37a is completed, during the first transferable period or at the timing when a transfer request is received by the expansion unit 4a.

[0043] Change collection settings Data collection may be performed continuously during the operation of a factory, for example. In this case, a collection setting used in the morning may be different from a collection setting used in the afternoon. In this case, it would be convenient to easily identify which data records among a plurality of data records were acquired based on a first collection setting and which data records were acquired based on a second collection setting.

[0044] FIG. 10 shows a format of a data record 91 that can accommodate changes in collection settings. In this example, identification information for distinguishing between a plurality of collection settings is added to the data record 91. The setting identification information "1" corresponds to the first collection setting. In the first collection setting, the devices to be collected are Dev1 and Dev10. The setting identification information "2" corresponds to the second collection setting. In the first collection setting, the devices to be collected are Dev1, Dev10, and Dev11. By adopting such a format, the data processing unit 73 can execute data processing by dividing the data processing target for each collection setting. For example, the setting identification information "1" may correspond to the first data processing setting, and the setting identification information "2" may correspond to the second data processing setting. The data processing unit 73 may acquire the data processing setting corresponding to the setting identification information from the processing setting 61, and perform data processing on the data record according to the acquired data processing setting.

[0045] The data record 91 may be assigned a system ID by the CPU 41a when it is stored in the transfer buffer 40. The system ID is identification information for identifying the PLCs 1a to 1c.

[0046] ●Data compression FIG. 11 is a diagram for explaining information compression of data records. The data record group 91a shows data records before information compression. Here, four relay devices RL1, RL2, RL3, and RL4 are specified as collection targets. In addition, the scan number is adopted as the collection count. The counter may be time information acquired by a timer or the like (for example, a numerical value indicating the time interval from when a relay is turned on until it is turned off). In the data record group 91a, there is no change point of the relay device between the data record of scan number "1" and the data record of scan number "2". In other words, the data record of scan number "2" can be compressed (discarded or deleted). However, the relay device RL1 of the data record of scan number "3" is different from the relay device RL1 of the data record of scan number "1". In this way, since the scan number "3" has a change point, the data record of scan number "3" is not compressed. Since there is no change point of the relay device between the data record of scan number "3" and the data record of scan number "4", the data record of scan number "4" can be compressed. Similarly, since there is no change in the relay device between the data record with scan number "5" and the data record with scan number "6", the data record with scan number "6" can be compressed. By performing information compression focusing on such change points, compressed data record group 91b is realized. Each data record constituting compressed data record group 91b has a change point.

[0047] ● Example of a dashboard FIG. 12 shows the UI 130 of the Web browser 18. The UI 130 includes a URL input section 131 and a display area 105 of the dashboard. The URL input section 131 is input with a URL assigned to the dashboard. The display area 105 shows the data processing result obtained from the data to be collected by the data processing unit 73. In this example, the waveforms of the relay devices RL1 and RL2 are included. Since the data records are collected at each scan period, for example, if data collection is continued for a day, a large number of data records are collected. The data processing unit 73 displays a plurality of waveforms acquired for the relay device RL1 in an overlapping manner based on the rising edge of the relay device RL1. In this example, a deviation occurs in the timing of the falling edge of the relay device RL1. For example, the data processing unit 73 may calculate the average value of the plurality of waveforms and display the waveform corresponding to the average value with a thick line. There may be a pass range dX1 for the deviation of the falling edge. The data processing unit 73 may determine that the timing of each falling edge is pass if it is included in the pass range dX1. The data processing unit 73 may perform the same process for the relay device RL2. However, since the rise time deviation for the relay device RL2 is not included in the pass range dX2, the data processing unit 73 may determine that it is unsuccessful.

[0048] When a failure occurs in this way, the CPU 41a may send an error report email to a predetermined email address. The error report email may include a link including a URL of a dashboard. The recipient of the error report email may click on this link to launch the web browser 18, display the dashboard, and check the waveform, thereby eliminating the cause of the error.

[0049] The extension unit 4b is a motion unit. The motion unit operates the industrial machine according to the command value by the basic unit 3, and holds the operation result of the industrial machine. The command value may be, for example, the coordinates of the arm of an arm-type robot. The operation result (current value) may be the coordinates of the actual arm acquired by a sensor or the like. The extension unit 4a may acquire the command value and the corresponding current value as time-series data from the extension unit 4b, and display the deviation between the command value and the current value on the dashboard. The data processing unit 73 may obtain the difference between the command value and the current value, and display a graph showing how the difference changes over time on the dashboard. By checking such a waveform, the user can easily determine whether the cause of the error is due to the life of the consumable or an unexpected event applied from the outside. For example, as the end of the life of the consumable approaches, the response of the waveform may gradually delay. On the other hand, if an error occurs due to an unexpected event, a change in the waveform occurs only at the time of the event. Therefore, the user can find the cause of the error by observing the waveform and take measures against it.

[0050] <Flowchart> ● Expansion unit 4a 13 is a flowchart showing the collection process executed by the CPU 41a of the expansion unit 4a. When a specific relay device is turned ON, the CPU 41a executes the following process.

[0051] At S1, the CPU 41a (setting unit 71) sets the basic unit 3 and the expansion unit 4b. For example, the CPU 41a transfers the collection setting 36a for the basic unit 3 to the basic unit 3. The basic unit 3 stores the collection setting 36a in the storage device 32. The CPU 41a transfers the collection setting 36b for the basic unit 3 to the expansion unit 4b. The expansion unit 4b stores the collection setting 36b in memory 42b.

[0052] In S2, the CPU 41a (data processing unit 73 or collection unit 52c) determines whether a predetermined amount of collected data is stored in the second buffer 37b or the third buffer 37c (the first sub-buffer 38a or the second sub-buffer 38b). The predetermined amount is defined by the process settings 61. Here, it is sufficient to check the buffer specified by the process settings 61, and it is not always the case that both the second buffer 37b and the third buffer 37c are the targets of checking. The CPU 41 waits until the predetermined amount of data is stored in the buffer. When the predetermined amount of data is stored in the buffer, the CPU 41a proceeds to S3.

[0053] In S3, the CPU 41a (data processing unit 73) executes data processing on a predetermined amount of data read from the buffer, and obtains a data processing result. The contents of the data processing are defined by the processing setting 61. The data processing result is held in the memory 42a.

[0054] In S4, the CPU 41a (generation unit 74) determines whether or not there is a display request (Web access) for the dashboard from the Web browser 18 of the PC 2b. If there is no display request, the CPU 41a proceeds to S2 and continues collecting and processing data. If there is a display request, the CPU 41a proceeds to S5.

[0055] In S5, the CPU 41a (the generation unit 74) creates display data for a dashboard corresponding to the display request. For example, the CPU 41a creates the display data by substituting the data processing results stored in the memory 42a into a template of the dashboard.

[0056] In S6, the CPU 41a (Web server 70) transmits the display data to the Web browser 18 of the PC 2b. This enables the Web browser 18 of the PC 2b to display the dashboard.

[0057] ● Basic unit 3 14 is a flowchart showing the collection process executed by the CPU 31 of the basic unit 3. When a specific relay device is turned ON, the CPU 31 executes the following process.

[0058] In S11, the CPU 31 (collection unit 52a) determines whether the collection timing (e.g., every scan period, every time a trigger signal is input, every predetermined period) specified by the collection setting 36a has arrived. When the collection timing arrives, the CPU 31 proceeds to S12.

[0059] In S12, the CPU 31 (collection unit 52a) collects the collection target data specified by the collection setting 36a from the device unit 34a and stores it in the first buffer 37a.

[0060] In S13, the CPU 31 (transfer unit 53a) determines whether the transfer condition specified by the collection setting 36a is satisfied. The transfer condition may be, for example, the number of data records stored in the first buffer 37a. If the transfer condition is not satisfied, the CPU 31 returns to S11 and continues collecting data. If the transfer condition is satisfied, the CPU 31 proceeds to S14.

[0061] In S14, the CPU 31 (monitoring unit 54a) determines whether or not there is a small amount of communication traffic on the expansion bus 90. If there is a large amount of communication traffic, the CPU 31 returns to S11 and continues to collect data. If there is a small amount of communication traffic, the CPU 31 proceeds to S15.

[0062] In S15, the CPU 31 (transfer unit 53a) reads a predetermined amount of data records from the first buffer 37a and transfers them to the second buffer 37b. The predetermined amount is also defined by the collection setting 36a.

[0063] ● Expansion unit 4b 15 is a flowchart showing the collection process executed by the CPU 41b of the expansion unit 4b. When a specific relay device is turned ON, the CPU 41b executes the following process.

[0064] In S21, the CPU 41b (collection unit 52b) determines whether the collection timing (for example, every time a trigger signal is input, or at a predetermined interval) specified by the collection setting 36b has arrived. When the collection timing has arrived, the CPU 41b proceeds to S22.

[0065] In S22, the CPU 41b (collection unit 52b) collects the collection target data specified by the collection setting 36a from the device unit 34a, and stores the data in the fourth buffer 37d.

[0066] In S23, the CPU 41b (transfer unit 53b) determines whether the transfer condition specified by the collection setting 36b is satisfied. The transfer condition may be, for example, the number of data records stored in the fourth buffer 37d. If the transfer condition is not satisfied, the CPU 41b returns to S21 and continues collecting data. If the transfer condition is satisfied, the CPU 41b proceeds to S24.

[0067] In S24, the CPU 41b (monitoring unit 54b) determines whether or not there is a small amount of communication traffic on the expansion bus 90. If there is a large amount of communication traffic, the CPU 41b returns to S21 and continues to collect data. If there is a small amount of communication traffic, the CPU 41b proceeds to S25.

[0068] In S25, the CPU 41b (transfer unit 53b) reads a predetermined amount of data records from the fourth buffer 37d and transfers them to the third buffer 37c. The predetermined amount is also defined by the collection setting 36b.

[0069] <Collecting and utilizing data from lower-level systems by upper-level systems> As already explained, the data utilization unit may have an upper mode and a lower mode. Here, PLC 1a functions as an upper system operating in the upper mode. PLCs 1b and 1c function as lower systems operating in the lower mode. PC 2a or the expansion unit 4a of PLC 1a creates the collection settings 39 for PLCs 1b and 1c.

[0070] Creating collection settings 16 shows a setting method executed by the CPU 11a of the PC 2a or the CPU 41a of the expansion unit 4a of the PLC 1a. Here, the setting method is executed by the CPU 41a, but it may also be executed by the CPU 11a. User instructions are input to the CPU 41a through a web browser of the PC 2b. The web server 70 of the CPU 41a provides web pages useful for creating the collection settings 39 and accepts user input.

[0071] In S31, the CPU 41a (setting unit 71) acquires the variable information 19a to 19c of the PLCs 1a to 1c. For example, the CPU 41a displays a setting UI 1700 as shown in FIG. 17 on the display unit 7a of the PC 2b. The setting UI 1700 includes a system ID, a network address, and a file name of the variable information. The system ID is identification information for identifying the PLCs 1a to 1c. The network address is an IP address or the like given to the extension units 4a of the PLCs 1b and 1c. The variable information is the file name of a file that holds the variable information 19b and 19c in the PLCs 1b and 1c. The CPU 41a receives the system ID, the network address, and the file name of the variable information through the setting UI 1700, creates connection setting information, and stores it in the memory 42a. The CPU 41a connects to the PLC 1b, which is a lower system, according to the network address included in the connection setting information, and reads out the variable information 19b. The CPU 41a connects to the PLC 1c, which is a lower system, according to the network address included in the connection setting information, and reads the variable information 19c. When the CPU 11a executes the setting, the CPU 11a reads the variable information 19a to 19c from the storage device 12a.

[0072] FIG. 18 shows a variable editing UI 1800 for creating variable information 19. The CPU 11a of the PC 2a extracts global variables and local variables from the project data 15, and creates variable information 19 including a list of the extracted variables. The variable information 19 includes information such as the variable name, the data type of the variable, the device name (allocated device) assigned to the variable, and the initial value. The user edits the variable information 19 by operating the operation unit 8a. The variable information 19 may be a part of the project data 15, or may be independent of the project data 15. In either case, the variable information 19 is transferred from the PC 2a to the PLC 1. This allows the CPU 41a of the upper system to obtain the variable information 19 of the lower system from the lower system. The variable information 19 also includes the system ID of each PLC.

[0073] In S32, the CPU 41a (setting unit 71, Web server 70) displays the setting UI to be collected on the display unit 7a of the PC 2b. The CPU 41a (Web server 70) transmits a Web page corresponding to the setting UI to the PC 2b. On the other hand, when the CPU 11a executes the setting, the CPU 11a displays the setting UI on the display unit 7a.

[0074] In S33, the CPU 41a (setting unit 71, Web server 70) accepts designation of a collection target and the like through a collection target setting UI. The CPU 41a (Web server 70) accepts user input through HTTP communication. On the other hand, when the CPU 11a executes the setting, the CPU 11a accepts user input through the operation unit 8a.

[0075] In S34, the CPU 41a (setting unit 71) creates collection settings 39 based on the designation of the collection target, etc. On the other hand, when the CPU 11a executes the setting, the CPU 11a creates collection settings 39 according to the user input.

[0076] In S35, the CPU 41a (setting unit 71) transfers the collection setting 39 to the lower systems (eg, PLC 1b, PLC 1c). On the other hand, when the CPU 11a executes the setting, the CPU 11a transfers the collection setting 39 to the PLCs 1a to 1c.

[0077] FIG. 19 shows a collection target setting UI 1900. The setting UI 1900 has a pull-down menu 1901 for selecting a system to be set, and a collection target designation section 1902. The CPU 41a acquires a system ID from the variable information 19 and lists the system ID in the pull-down menu 1901. In this example, "PLC1b" is selected as the system ID, but "PLC1c" or "PLC1a" may be selected. The CPU 41a reads out variable information 19b associated with the system ID designated by the pull-down menu 1901 from the memory 42a and reflects it in the collection target designation section 1902. The collection target designation section 1902 has a pull-down menu 1903 for selecting a variable or device to be collected. The CPU 41a lists the variable names and device names included in the variable information 19b associated with PLC1b in the pull-down menu 1903. The CPU 41a may accept designation of the data type of the variable or device. The storage destination designation unit 1904 accepts designation of the name of the buffer that stores the data to be collected (e.g., the transfer buffer 40 of PLC 1b or the transfer buffer 40 of PLC 1a). The CPU 41a may also accept designation of the type of buffer (e.g., FIFO, ring, etc.). The CPU 41a creates the collection setting 39 using the designation information accepted via the setting UI 1900.

[0078] ● Collection operation of lower system Fig. 20 is a flowchart showing the collection operation in the lower system. Note that the same reference numerals are given to processes that are the same as or similar to those already explained, and they will be explained briefly. Note that, with regard to data collection within PLC1a, PLC1a collects data according to the flowchart shown in Fig. 13.

[0079] In S1, the CPU 41a (setting unit 71) of the lower system sets the base unit 3 and the expansion unit 4 of the lower system in accordance with the collection setting 39 created by the upper system or the PC 2a.

[0080] In S2, the CPU 41a (data processing unit 73 or collection unit 52c) determines whether a predetermined amount of collected data is stored in the second buffer 37b or the third buffer 37c (the first sub-buffer 38a or the second sub-buffer 38b). The predetermined amount is defined by the process settings 61. Here, it is sufficient to check the buffer specified by the process settings 61, and it is not always the case that both the second buffer 37b and the third buffer 37c are the targets of checking. The CPU 41 waits until the predetermined amount of data is stored in the buffer. When the predetermined amount of data is stored in the buffer, the CPU 41a proceeds to S3.

[0081] In S3, the CPU 41a (data processing unit 73) executes data processing on a predetermined amount of data read from the buffer, and obtains a data processing result. The contents of the data processing are defined by the processing setting 61. The data processing result is held in the memory 42a. In Fig. 20, S9 is provided next to S3.

[0082] In S9, the CPU 41a (data processing unit 73 or collection unit 52c) stores the data specified by the collection setting 39 (e.g., data collected in PLC 1 and data processing results) in the transfer buffer 40 specified by the collection setting 39. The transfer buffer 40 may be provided in the data utilization unit (expansion unit 4a) of the lower system, or in the data utilization unit (expansion unit 4a) of the higher system. The position of the transfer buffer 40 is specified by the collection setting 39.

[0083] ● Collection operation of the upper system 21 is a flow chart showing the collection operation in the lower system. Note that the same reference numerals are given to processes that are the same as or similar to those already described, and they will be described briefly.

[0084] In S41, the CPU 41a (collection unit 52c) of the host system determines whether or not the read condition included in the collection setting 39 of the host system is satisfied. The read condition may be a periodic timing, or may be that a predetermined amount of data is stored in the transfer buffer 40. When the read condition is satisfied, the CPU 41a proceeds to S42.

[0085] In S42, the CPU 41a (the data processing unit 73 or the collection unit 52c) reads the data from the transfer buffer 40. The CPU 41a of the upper system executes S3 to S6 for the data acquired from the PLCs 1a to 1c. Although the amount of data increases, the basic process flow is the same.

[0086] Before executing data processing, the CPU 41a may integrate the time series data collected in the PLC 1a with the time series data collected in the PLCs 1b and 1c, respectively, using time stamps. This will make it easier to compare data acquired at the same time by different PLCs 1a to 1c.

[0087] ● Use of variable information A dashboard that displays collected time-series data and its analysis results has a plurality of display components. Meanwhile, the PC 2 may have variable information 19a to 19c. Therefore, the PC 2 may use the variable information 19a to 19c to facilitate the setting of the display components that constitute the dashboard.

[0088] FIG. 22 shows an example of the dashboard 120. In FIG. 22, the legend section 121 shows colors assigned to the data to be analyzed and the analysis results. The graph section 122 includes one or more graphs that display the data processing results such as loss analysis. The type of graph may be prepared in advance for each dashboard. The analysis result display section 123 displays the data processing results such as loss analysis. The display target to be displayed on the analysis result display section 123 may also be prepared in advance for each dashboard. The current state display section 124 shows the current state of PLC 1. The current state display section 124 may be prepared individually for each of PLCs 1a, 1b, and 1c. The PLC selection section 125 is a pull-down menu for selecting a PLC, among PLCs 1a, 1b, and 1c, whose data processing results are to be displayed on the dashboard. In this example, PLC 1b is selected in the PLC selection section 125, and therefore the dashboard 120 displays the data processing results for PLC 1b. When the PLC 1c is selected in the PLC selection unit 125, the CPU 41a switches the display data so that the dashboard 120 displays the data processing results for the PLC 1c.

[0089] The CPU 41a or the CPU 11a of the PC 2 may set the dashboard 120. When setting the dashboard 120, the CPU 11a may display a preview of the dashboard 120 on the display unit 7a. Here, when the CPU 11a detects that any display component has been right-clicked with the pointer 101, the CPU 11a may display a setting UI for the display component.

[0090] FIG. 23 is a diagram showing a setting UI 2300. The setting UI 2300 is a UI for setting a display component that is right-clicked in a preview. The reference designation unit 2301 accepts designation of variables and device values ​​to be displayed in the display component. When "PLC1b" is input to the reference designation unit 2301, the CPU 11a sets the variable information 19b as a search target for variables and the like. When "." and "E" are input following "PLC1b" through the operation unit 8a, the CPU 11a extracts variables beginning with "E" from the variable information 19b, and inputs the name of the extracted variable, "ErrorNo", to the reference designation unit 2301. That is, the user can designate a variable name without inputting the entire variable name. In this way, the use of the variable information 19 may facilitate the setting of the dashboard.

[0091] <Summary> [Point 1] As shown in FIG. 1, according to this embodiment, a data utilization system having a plurality of data utilization units (e.g., the extension unit 4a of PLC1a to 1c) is provided. In a higher-level unit (e.g., the extension unit 4a of PLC1a) among the plurality of data utilization units, the CPU 41a and the setting unit 71 function as setting means for setting designation information (e.g., collection setting 39) for designating data to be collected for a lower-level unit (e.g., the extension unit 4a of PLC1b and 1c) among the plurality of data utilization units. The CPU 41a and the collection unit 52c function as collection means for collecting data to be collected (e.g., device values, variables, analysis results, etc.) stored in the lower-level unit. The plurality of data to be collected may form time-series data. The data processing unit 73 and the generation unit 74 function as creation means for creating display data for displaying the data collected by the collection means or the analysis results acquired by performing a predetermined analysis process on the data. The lower-level unit may be an extension unit constituting a programmable logic controller (e.g., PLC1b and 1c), but may also be another unit. The CPU 41a and the collecting unit 52c of the PLC 1b, 1c function as an acquiring means for acquiring data acquired in the basic unit 3 connected to the lower unit from the basic unit 3 according to the designated information. The transfer buffer 40 is an example of a buffer provided in the upper unit or the lower unit, which accumulates the data acquired by the acquiring means in order to transfer the data from the lower unit to the upper unit. The collecting means of the upper unit (e.g., the collecting unit 52c or the data processing unit 73) is configured to read the data to be collected from the buffer. By employing such a transfer buffer 40, it will be possible to collect time series data without omission. In addition, it will be possible to transfer the data to be collected without the upper unit and the lower unit performing a complicated handshake.

[0092] [Point 2] As shown in FIG. 24(A), the lower unit may have a transfer buffer 40. The lower unit writes data collected in the lower system and data processing results acquired in the lower system to the transfer buffers 40b, 40c. The upper unit collects data from the transfer buffers 40b, 40c of the lower unit. The creation means (e.g., data processing unit 73) of the upper unit functions as an analysis means that executes a predetermined analysis process on the data to be collected collected from the transfer buffers 40a, 40b. The display data may include the analysis results of the predetermined analysis process executed in the upper unit. Since the lower unit has the transfer buffer 40, data collection omissions are less likely to occur even if the lower unit operates faster than the upper unit.

[0093] As shown in FIG. 24B, the upper unit may have a transfer buffer 40a. The lower unit writes data collected in the lower system and data processing results acquired in the lower system to the transfer buffer 40a of the upper unit. The upper unit reads data from the transfer buffer 40a of the upper unit and executes data processing. In this case, data collection omissions are also unlikely to occur. The transfer buffer 40a may be provided separately for PLC1b and PLC1c. If one transfer buffer 40a is provided in common for PLC1b and PLC1c, the upper unit needs to arbitrate the writing of data from PLC1b and the writing of data from PLC1b. On the other hand, if a transfer buffer 40a is provided separately for PLC1b and PLC1c, such arbitration will not be necessary. In addition, the upper unit can treat the transfer buffer 40a for PLC1b and the transfer buffer 40a for PLC1c on the same level as the second buffer 37b and the third buffer 37b.

[0094] [Point 3] The lower unit may further include a generating means (e.g., CPU 41a of PLC 1b, 1c) that generates data to be collected based on data acquired by the acquiring means. The generating means may include an analyzing means (e.g., data processing unit 73) that executes a predetermined analysis process. In this case, the data to be collected can include the analysis results of the predetermined analysis process. Also, the display data can include the analysis results of the predetermined analysis process executed in the lower unit. By executing the analysis process in this manner in the lower unit, the computational load in the upper unit is reduced. Also, it is considered that data collection omissions are less likely to occur.

[0095] [Point 4] The setting means (e.g., the setting unit 71 of the PLC 1a) may identify data to be collected by analyzing the project data 15 including the user program executed in the lower unit, and create the designation information (e.g., the collection setting 39) so as to include the designation of the identified data. This reduces the burden on the user when creating the designation information.

[0096] [Point 5] The setting means (e.g., the setting unit 71 of the PLC 1a) may identify variables that are candidates for collection by analyzing the project data 15, and create the designation information so as to include variables designated by the user among the identified variables or devices that store the variables. This reduces the burden on the user when creating the designation information. Also, not only device values ​​but also variables and the like may be designated as collection targets.

[0097] [Point 6] The acquiring means (e.g., the collecting unit 52c of the PLCs 1b and 1c) may assign identification information of the lower unit (e.g., the system ID) to the data to be collected and store the data in the transfer buffer 40. This will make it easier for the upper unit to distinguish between the time-series data collected from multiple lower units.

[0098] [Point 7] The upper unit may be a computer different from the programmable logic controller. The upper unit may be an expansion unit in another programmable logic controller (e.g., PLC1a) that is different from the programmable logic controller (e.g., PLC1b, 1c) that includes the lower unit. In this case, the manufacturer that delivers PLC1a to the customer, the manufacturer that delivers PLC1b to the customer, and the manufacturer that delivers PLC1c to the customer may be different or the same.

[0099] [Point 8] A plurality of PLCs 1a to 1c may control a manufacturing line for a workpiece (a product manufactured in a factory). PLC 1b functions as a first programmable logic controller that controls a first industrial machine (e.g., the field device 10 of PLC 1b) arranged upstream in the manufacturing line for the workpiece. The expansion unit 4 of PLC 1b functions as a first lower unit mounted on PLC 1b. PLC 1c functions as a second programmable logic controller that controls a second industrial machine (e.g., the field device 10 of PLC 1c) arranged downstream in the manufacturing line. The PLC 1bc expansion unit 4 functions as a second lower unit mounted on PLC 1c. In this case, the data to be collected from the first lower unit and the second lower unit may include workpiece identification information for identifying each workpiece. Workpiece identification information such as a barcode or a QR code (registered trademark) may be attached or engraved on the workpiece. One of the field devices 10 may be a code reader. In this case, the time-series data stored in the transfer buffer 40 includes the workpiece identification information acquired by the code reader. The creation means of the upper unit (e.g., CPU 41a of PLC 1a) may integrate the data for each work by referring to the work identification information of the data collected from the first lower unit and the data collected from the second lower unit. This makes it easy to obtain analysis data for each work based on data acquired across multiple PLCs.

[0100] [Point 9] The data to be collected from the first lower unit (e.g., the extension unit 4 of PLC 1b) and the second lower unit (e.g., the extension unit 4 of PLC 1c) may include a timestamp indicating the collection time of each data. That is, the CPU 41a of PLCs 1b and 1c may add such a timestamp to the time series data and store it in the transfer buffer 40. The creation means (e.g., the CPU 41a of PLC 1a) may integrate data with close timestamps by referring to the timestamps of the data collected from the first lower unit and the data collected from the second lower unit. This will be useful for comparing time series data with close times.

[0101] [Point 10] The creation means (e.g., CPU 41a of PLC 1a) may shift the timestamp of one of the data collected from the first lower unit and the data collected from the second lower unit by a certain amount, and then perform data integration based on the shifted timestamp.

[0102] [Point 11] 22 and 23, the CPU 11a, 41a, or the reference destination designation unit 2301 may function as a designation unit that designates collected data for a display component of a dashboard that displays display data. As described with reference to FIG. 23, the CPU 11a, 41a, or the reference destination designation unit 2301 may display variables or devices acquired by analyzing the project data 15 as candidates for display data when associating display data with a display component of a dashboard. This will reduce the burden on the user in designating data to be displayed in the display component.

[0103] The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the gist of the invention.< / plc>

Claims

1. A data utilization system having a plurality of data utilization units, A higher-level unit among the plurality of data utilization units is A setting unit that sets designation information that designates data to be collected for a lower unit among the plurality of data utilization units; a collection unit that collects the data to be collected that is stored in the lower unit; a data processing unit that performs data processing on the data collected by the collection unit in accordance with a processing setting; a web server that transmits display data for a dashboard that displays a data processing result obtained by executing the data processing by the data processing unit; having The lower unit further comprises: an acquisition means for acquiring data acquired in a basic unit connected to the lower unit from the basic unit in accordance with the designation information; a buffer provided in the upper unit or the lower unit for storing the data acquired by the acquisition means in order to transfer the data from the lower unit to the upper unit; having the collection unit of the upper unit is configured to read the data to be collected from the buffer, the setting unit acquires variable information for determining devices or variables from which data is to be collected by the lower unit, from a programmable logic controller including the lower unit; the WEB server transmits display data for selecting a device or variable to be collected, the display data reflecting the variable information acquired from the programmable logic controller including the lower unit; The setting unit designates a device or a variable designated via a setting screen based on the display data as the designated information. A data utilization system characterized by:

2. the data processing unit of the upper unit has an analysis means for executing a predetermined analysis process as the data processing on the data to be collected collected from the buffer, 2. The data utilization system according to claim 1, wherein the display data includes an analysis result of the predetermined analysis process executed in the upper unit.

3. The lower unit further comprises: a generating means for generating the data to be collected based on the data acquired by the acquiring means, The generating means has an analyzing means for executing a predetermined analysis process, the data to be collected includes an analysis result of the predetermined analysis process, 2. The data utilization system according to claim 1, wherein the display data includes an analysis result of the predetermined analysis process executed in the lower unit.

4. 4. The data utilization system according to claim 1, wherein the acquiring means adds identification information of the lower unit to the data to be collected and stores the data in the buffer.

5. 5. The data utilization system according to claim 1, wherein the upper unit is an expansion unit in a programmable logic controller different from the programmable logic controller including the lower unit.

6. As the lower unit, a first lower unit is mounted on a first programmable logic controller that controls a first industrial machine arranged upstream in a work production line; a second sub-unit mounted in a second programmable logic controller that controls a second industrial machine disposed downstream in the manufacturing line; having The data to be collected from each of the first lower unit and the second lower unit includes work identification information for identifying each work, The data processing unit refers to the work identification information for each of the data collected from the first lower unit and the data collected from the second lower unit, 6. The data utilization system according to claim 1, wherein the data is integrated for each work.

7. the lower level units include a first lower level unit and a second lower level unit, and the data to be collected, which are collected from the first lower level unit and the second lower level unit, respectively, include a timestamp indicating a collection time of each piece of data; The data processing unit refers to the time stamps of the data collected from the first lower unit and the data collected from the second lower unit, 6. The data utilization system according to claim 1, further comprising: a processor configured to integrate the data having similar time stamps.

8. The data utilization system described in claim 7, characterized in that the data processing unit shifts the timestamp of one of the data collected from the first lower unit and the data collected from the second lower unit by a certain amount, and then performs data integration based on the timestamp.

9. A data utilization system having a plurality of data utilization units, A higher-level unit among the plurality of data utilization units is A setting unit that sets designation information that designates data to be collected for a lower unit among the plurality of data utilization units; a collection unit that collects the data to be collected that is stored in the lower unit; a data processing unit that performs data processing on the data collected by the collection unit in accordance with a processing setting; a web server that transmits display data for a dashboard that displays a data processing result obtained by executing the data processing by the data processing unit; having The lower unit further comprises: an acquisition means for acquiring data acquired in a basic unit connected to the lower unit from the basic unit in accordance with the designation information; a buffer provided in the upper unit or the lower unit for storing the data acquired by the acquisition means in order to transfer the data from the lower unit to the upper unit; having the collection unit of the upper unit is configured to read the data to be collected from the buffer, the setting unit is configured to identify variables that are candidates for collection targets by analyzing project data including a user program executed in the lower unit, and to create the designation information so as to include a variable designated by a user from among the identified variables or a device that stores the variable; The display device further includes a designation unit for designating the collected data as a display component of a dashboard that displays the display data, When associating the display data with a display component of the dashboard, the designation means A data utilization system characterized in that variables or devices obtained by analyzing the project data are displayed as candidates for the display data.

10. As the lower unit, A first sub-unit mounted on a first programmable logic controller that controls a first industrial machine disposed upstream in a work production line; a second sub-unit mounted in a second programmable logic controller that controls a second industrial machine disposed downstream in the manufacturing line; having The data to be collected, which is collected from each of the first lower unit and the second lower unit, includes work identification information for identifying each work; The data processing unit refers to the work identification information for each of the data collected from the first lower unit and the data collected from the second lower unit, 10. The data utilization system according to claim 9, characterized in that the data is integrated for each work.

11. A data utilization system having a plurality of data utilization units, A higher-level unit among the plurality of data utilization units is A setting unit that sets designation information that designates data to be collected for a lower unit among the plurality of data utilization units; a collection unit that collects the data to be collected that is stored in the lower unit; a data processing unit that performs data processing on the data collected by the collection unit in accordance with a processing setting; a web server that transmits display data for a dashboard that displays a data processing result obtained by executing the data processing by the data processing unit; having The lower unit further comprises: an acquisition means for acquiring data acquired in a basic unit connected to the lower unit from the basic unit in accordance with the designation information; a buffer provided in the upper unit or the lower unit for storing the data acquired by the acquisition means in order to transfer the data from the lower unit to the upper unit; having the collection unit of the upper unit is configured to read the data to be collected from the buffer, the setting unit is configured to identify variables that are candidates for collection targets by analyzing project data including a user program executed in the lower unit, and to create the designation information so as to include a variable designated by a user from among the identified variables or a device that stores the variable; As the lower unit, A first sub-unit mounted on a first programmable logic controller that controls a first industrial machine disposed upstream in a work production line; a second sub-unit mounted in a second programmable logic controller that controls a second industrial machine disposed downstream in the manufacturing line; having The data to be collected, which is collected from each of the first lower unit and the second lower unit, includes work identification information for identifying each work; The data processing unit refers to the work identification information for each of the data collected from the first lower unit and the data collected from the second lower unit, A data utilization system configured to integrate data for each work.

Citation Information

Patent Citations

  • Index table

    JP1981061222A

  • Data collector

    JP2004178479A

  • Data management device

    JP2006031588A

  • Data acquisition system and data acquisition device

    JP2008269489A

  • PLC system

    JP2017010556A