Information processing system and information processing method

The information processing system addresses the challenge of managing time in industrial automation systems with multiple nodes by assigning timestamps at each node, ensuring accurate data time management and aggregation.

JP2025152515APending Publication Date: 2025-10-10OMRON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024054427
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-28
Publication Date
2025-10-10

AI Technical Summary

Technical Problem

Industrial automation systems with multiple nodes face challenges in accurately managing the time of generated data due to the complexity of integrating and checking data from various sources.

Method used

An information processing system with a database and nodes that generate data, including time management units to assign timestamps to data along the path to the database, allowing for accurate time management and synchronization of timestamps across nodes.

Benefits of technology

This configuration enables precise time management of data even in systems with multiple nodes, improving the accuracy of data aggregation and utilization in industrial automation systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025152515000001_ABST
    Figure 2025152515000001_ABST
Patent Text Reader

Abstract

To provide a solution that allows for more accurately managing the time of generated data, even in configurations that include multiple nodes.SOLUTION: The information processing system includes a database and a plurality of nodes. At least some of the plurality of nodes are configured to generate data to be stored in the database. The information processing system includes an aggregator that aggregates the data to be stored in the database. At least some of the plurality of nodes include a time management unit that manages time. Each piece of data to be stored in the database is assigned with a timestamp by the time management unit that exists on a path from the node that generates each piece of data to the database. The aggregator aggregates the data based on the timestamp assigned to each piece of data.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system and an information processing method. [Background technology]

[0002] When investigating the cause of an abnormality in an industrial automation system, it is necessary to integrate and check multiple pieces of data rather than just one piece of data.

[0003] Patent Document 1 (JP 2022-180157 A) discloses a configuration in which a log detection unit or a log writer adds a timestamp to a log, thereby collecting both a secure communication log and an event log on a common time axis. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Publication No. 2022-180157 Summary of the Invention [Problem to be solved by the invention]

[0005] Industrial automation systems often include multiple nodes such as sensors and actuators.

[0006] An object of the present invention is to provide a solution that can more accurately manage the time of generated data even in a configuration including multiple nodes. [Means for solving the problem]

[0007] An information processing system according to an embodiment of the present invention includes a database and a plurality of nodes. At least some of the plurality of nodes are configured to generate data to be stored in the database. The information processing system includes an aggregator that aggregates the data to be stored in the database. At least some of the plurality of nodes include a time management unit that manages time. Each piece of data to be stored in the database is assigned a timestamp by a time management unit located on a path from the node that generates each piece of data to the database. The aggregator aggregates the data based on the timestamp assigned to each piece of data.

[0008] According to this configuration, a timestamp is assigned to data generated by a node along the path from the node to the database. The time-stamped data is aggregated and stored in the database, allowing the data stored in the database to be used efficiently.

[0009] The information processing system may further include a determination unit that determines a node that will assign a timestamp to each piece of data stored in the database. With this configuration, the node that will assign the timestamp is appropriately determined depending on the positional relationship of the nodes that generate the data.

[0010] At least some of the time management units included in at least some of the plurality of nodes may be synchronized with one another. With this configuration, the synchronization of the time management units improves the accuracy of the time within the information processing system.

[0011] The value of the timestamp to be assigned may be corrected according to the delay time from the node that generates the data to the time management unit that assigns the timestamp to the data. With this configuration, the delay time from when the node generates the data to when the timestamp is assigned can be corrected, so the time of the data can be managed more accurately.

[0012] At least some of the data stored in the database may be set with an offset according to the path from the node that generates each piece of data to the time management unit that assigns a timestamp to the data. This configuration makes it possible to correct the delay time between when a node generates data and when the timestamp is assigned in the database.

[0013] The database may receive a communication frame including a timestamp and one or more pieces of data. According to this configuration, the one or more pieces of data are aggregated based on the timestamp included in the communication frame.

[0014] The aggregating unit may aggregate a plurality of data using a timestamp as a key. According to this configuration, data is aggregated by focusing on the value of the timestamp.

[0015] The information processing system may further include a management unit that manages the state of the time management unit.

[0016] The management unit may manage information indicating the time source of the time management unit and information indicating the accuracy of the time source.

[0017] A first node among the plurality of nodes may calculate a period of data to be stored in the database in response to a recording start trigger, and may transmit the calculated period to the other nodes.

[0018] According to an embodiment of the present invention, there is provided an information processing method executed in a system including a database and a plurality of nodes, the information processing method including the steps of: managing time by at least some of the plurality of nodes; generating data to be stored in the database by at least some of the plurality of nodes; assigning a timestamp to each piece of data stored in the database along a path from the node that generates each piece of data to the database; aggregating the plurality of pieces of data based on the timestamp assigned to each piece of data; and storing the aggregated data in the database.

[0019] The information processing method may further include a step of determining a node that will timestamp each piece of data stored in the database. [Effects of the Invention]

[0020] According to the present invention, even in a configuration including a plurality of nodes, the time of generated data can be managed more accurately. [Brief explanation of the drawings]

[0021] [Figure 1] 1 is a schematic diagram showing a main part of an information processing system according to an embodiment of the present invention. [Figure 2] 1 is a schematic diagram showing an example of the overall configuration of an information processing system according to the present embodiment; [Figure 3] FIG. 1 is a block diagram illustrating an example of a hardware configuration of a PLC (Programmable Logic Controller) according to the present embodiment. [Figure 4] FIG. 1 is a block diagram illustrating an example of a hardware configuration of an IPC (Industrial Personal Computer) according to the present embodiment. [Figure 5] FIG. 2 is a block diagram showing an example of a hardware configuration of a relay unit according to the present embodiment. [Figure 6] FIG. 2 is a block diagram showing an example of a hardware configuration of a servo driver according to the present embodiment. [Figure 7] FIG. 2 is a block diagram showing an example of a hardware configuration of a support device that constitutes the information processing system according to the present embodiment. [Figure 8] FIG. 2 is a diagram showing an example of a communication frame used in the information processing system according to the present embodiment. [Figure 9] FIG. 2 is a diagram showing an example of a file used in the information processing system according to the present embodiment. [Figure 10] FIG. 10 is a schematic diagram showing an example of a process for assigning a time stamp in the information processing system according to the present embodiment. [Figure 11] It is a schematic diagram showing another example of a process for attaching a time stamp in an information processing system according to the present embodiment. [Figure 12] It is a schematic diagram showing a configuration example for determining a node to which a time stamp is attached in an information processing system according to the present embodiment. [Figure 13] It is a flowchart showing a processing procedure for determining a node to which a time stamp is attached in an information processing system according to the present embodiment. [Figure 14] It is a schematic diagram showing a configuration example for managing the time indicated by a time stamp in an information processing system according to the present embodiment. [Figure 15] It is a diagram showing an example of timer management information generated and updated in an information processing system according to the present embodiment. [Figure 16] It is a schematic diagram showing a functional configuration example related to aggregation processing according to the present embodiment. [Figure 17] It is a diagram for explaining an example of aggregation processing according to the present embodiment. [Figure 18] It is a diagram for explaining another example of aggregation processing according to the present embodiment. [Figure 19] It is a diagram for explaining an example of data collection according to collection conditions in an information processing system according to the present embodiment. [Figure 20] It is a schematic diagram showing an example of utilization of data stored in a database of an information processing system according to the present embodiment.

Embodiments for Carrying Out the Invention

[0022] Embodiments of the present invention will be described in detail with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals and their descriptions will not be repeated.

[0023] <A. Application Example> First, an example of a scenario to which the present invention is applied will be described.

[0024] Fig. 1 is a schematic diagram showing a main part of an information processing system 1 according to the present embodiment. Referring to Fig. 1, information processing system 1 includes a database 2 and a plurality of nodes 4-1 to 4-8.

[0025] As used herein, the term "node" encompasses any element that is directly or indirectly connected to the network of the information processing system 1. The term "node" encompasses all elements that are involved in at least one of generating and transmitting data to be stored in a database.

[0026] At least some of the nodes 4-1 to 4-8 generate data to be stored in the database 2. In the example shown in Fig. 1, among the nodes 4-1 to 4-8, the nodes 4-3, 4-5, and 4-8 each generate data. The nodes 4-3, 4-5, and 4-8 that generate data can also be referred to as "data generation nodes."

[0027] A node that generates data (data generation node) may include, for example, at least one of a sensor that outputs the results of measurement or detection, an actuator that operates mechanically or electrically, a control device (PLC) that executes a user program to generate or update data, and an information processing device (IPC) that executes various information processing. The data generated by the data generation node may be of any type.

[0028] The data generated by the data generating node is transferred sequentially between nodes toward the database 2. Note that not all of the data generated by the data generating node needs to be stored in the database 2. In other words, at least a portion of the data generated by the data generating node is stored in the database 2.

[0029] At least some of the nodes 4-1 to 4-8 include a time management unit 5 that manages time. In the example shown in Fig. 1, among the nodes 4-1 to 4-8, the nodes 4-1, 4-5, and 4-7 each manage time. The nodes 4-1, 4-5, and 4-8 that manage time can also be called "time management nodes."

[0030] Note that the same node may function as both a data generation node and a time management node. In the example shown in FIG. 1, node 4-5 belongs to both the data generation node and the time management node.

[0031] Also, there may be multiple time management nodes in the path where the same data is transferred to the database.

[0032] For each data stored in database 2, a timestamp is given by the time management unit 5 existing in the path from the node (data generation node) that generates each data to database 2. That is, at least a part of the time management unit 5 (time management node) gives a timestamp to the data stored in database 2.

[0033] The aggregation unit 3 aggregates the data stored in database 2. More specifically, the aggregation unit 3 aggregates the data based on the timestamps given to each data. The process of aggregating the data includes storing the data from each node as it is in database 2. Details of the process of aggregating the data will be described later.

[0034] As described above, in the information processing system 1 according to the present embodiment, even in a configuration including a plurality of nodes, a timestamp is given to each data, so that the time of the generated data can be managed more accurately.

[0035] <B. Overall Configuration Example of Information Processing System> Next, an overall configuration example of the information processing system 1 according to the present embodiment will be described.

[0036] FIG. 2 is a schematic diagram showing an overall configuration example of the information processing system 1 according to the present embodiment. Referring to FIG. 2, the information processing system 1 may function as an industrial automation system.

[0037] The information processing system 1 includes one or more PLCs 100-1, PLC 100-2, ... (hereinafter also collectively referred to as "PLC 100"). The PLC 100 is an example of a control device, and executes control processing for controlling production equipment. The control processing includes, for example, sequence control and motion control.

[0038] The PLC 100 is connected to one or more devices via a field network 14. The field network 14 may employ an industrial communication protocol. Known examples of such communication protocols include EtherCAT (registered trademark), EtherNet / IP (registered trademark), DeviceNet (registered trademark), and CompoNet (registered trademark).

[0039] The information processing system 1 includes an IPC 200. The IPC 200 is an example of an information processing device and executes any information processing. The IPC 200 may execute control processing for controlling production equipment. In this case, in the following description, the "PLC 100" may be read as the "IPC 200."

[0040] The IPC 200 is connected to the PLC 100, the database server 500, and the like via the information network 16. The information network 16 may employ a communication protocol such as EtherNet / IP.

[0041] In this specification, devices that generate data input to PLC 100 and / or IPC 200 are collectively referred to as "sensors." As an example, sensors are placed in production equipment and measure or detect the state of the production equipment or the workpieces produced by the production equipment. In the following description, "measurement" includes "measurement" and "detection." Data including the results of measurements taken by the sensors (hereinafter also referred to as "measured values") are provided to PLC 100 and / or IPC 200 as "input data."

[0042] In this specification, devices that operate according to data output by the PLC 100 are collectively referred to as "actuators." As an example, actuators are placed in production equipment and move to specified positions, generate specified forces, etc. according to "output data" provided by the PLC 100. The output data provided by the PLC 100 may include command values ​​or target values.

[0043] In this specification, the term "measured value" includes not only instantaneous values ​​but also time-series data consisting of multiple instantaneous values, images (moving or still images), and sounds.

[0044] The PLC 100 may include input / output units for receiving input data from sensors and sending output data to actuators.

[0045] The PLC 100 may be connected to a support device 400 for creating user programs and performing various settings.

[0046] In the overall configuration example shown in Figure 2, the PLC 100 includes a remote input / output device 12, servo drivers 20-1 to 20-3 (hereinafter also collectively referred to as "servo drivers 20"), sensor units 30-1 to 30-3 (hereinafter also collectively referred to as "sensor units 30"), image processing units 40-1 and 40-2 (hereinafter also collectively referred to as "image processing units 40"), and an audio processing unit 50.

[0047] The servo driver 20 corresponds to an actuator. The servo driver 20 may also correspond to a sensor. The sensor unit 30, the image processing unit 40, and the sound processing unit 50 correspond to sensors.

[0048] The remote input / output device 12 transmits input data from sensors to the PLC 100, and provides output signals from the PLC 100 to actuators. The remote input / output device 12 includes a relay unit 300 and an input / output unit 350.

[0049] The relay unit 300 is connected to the PLC 100 via the field network 14. The input / output unit 350 is connected to at least one of a sensor and an actuator. For example, the input / output unit 350 is connected to proximity sensors 60-1 and 60-2.

[0050] The servo drivers 20-1 to 20-3 drive the servo motors 22-1 to 22-3, respectively, in accordance with output data provided by the PLC 100. The servo motors 22-1 to 22-3 are mechanically connected to the encoders 24-1 to 24-3 (hereinafter also collectively referred to as "encoders 24"), respectively. The servo drivers 20-1 to 20-3 transmit input data from the encoders 24-1 to 24-3 to the PLC 100.

[0051] Sensor heads 32-1 to 32-3 (hereinafter also collectively referred to as "sensor heads 32") are connected to the sensor units 30-1 to 30-3, respectively. The sensor units 30 and the sensor heads 32 function, for example, as photoelectric sensors. The sensor head 32 includes a light-emitting unit for emitting light and a light-receiving unit for receiving reflected light (or transmitted light). The sensor units 30-1 to 30-3 transmit the detection results of the sensor heads 32-1 to 32-3 to the PLC 100 as input data.

[0052] Cameras 42-1 and 42-2 (hereinafter also collectively referred to as "cameras 42") are connected to image processing units 40-1 and 40-2, respectively. Image processing units 40-1 and 40-2 transmit images (and sounds) captured by cameras 42-1 and 42-2, respectively, to PLC 100 as input data.

[0053] Microphones 52-1 and 52-2 (hereinafter also collectively referred to as "microphones 52") are connected to the audio processing unit 50. The audio processing unit 50 transmits the sounds collected by the microphones 52-1 and 52-2 to the PLC 100 as input data.

[0054] In the information processing system 1, the term "node" includes not only the PLC 100 and the IPC 200, but also all elements present on a path where the PLC 100 or the IPC 200 receives input data, and all elements present on a path where the PLC 100 or the IPC 200 transmits output data. In this way, the information processing system 1 includes multiple nodes.

[0055] In the overall configuration example shown in Figure 2, the "node" includes an IPC 200, a PLC 100, a remote input / output device 12 (relay unit 300 and input / output unit 350), a servo driver 20, a servo motor 22, an encoder 24, a sensor unit 30, a sensor head 32, an image processing unit 40, a camera 42, an audio processing unit 50, and a microphone 52.

[0056] The information processing system 1 includes a database for storing data. The IPC 200 may include the database 250. A database server 500 connected to the information network 16 may be used. A database (not shown) located in a cloud environment may be used. The database may be a time series database (TSDB).

[0057] The data stored in the database includes at least some of the input data, output data, and data generated and / or updated within the PLC 100 and / or IPC 200 (hereinafter also referred to as "internal data").

[0058] The input data may include safety inputs used for safety control. The output data may include safety outputs used for safety control. In these cases, the information processing system 1 may include a safety controller. The safety controller conforms to, for example, a predetermined performance level (PL) defined in the international standard ISO 13849-1. Also, the safety controller has a predetermined safety integrity level (SIL) defined in IEC 61508.

[0059] The input data and / or the output data may include, for example, trajectory data indicating the behavior of a robot.

[0060] The internal data may include a system event log, a user event log, and an audit log.

[0061] In the information processing system 1, the data stored in the database is given a time stamp. Any node existing in the path from the node that generates each data to the database gives the time stamp. Details of the process of giving the time stamp will be described later.

[0062] <C. Hardware Configuration Example> Next, a hardware configuration example of the main devices of the information processing system 1 according to the present embodiment will be described.

[0063] (c1: Hardware Configuration Example of PLC100) FIG. 3 is a block diagram showing a hardware configuration example of the PLC100 according to the present embodiment. Referring to FIG. 3, the PLC100 includes a processor 102 such as a CPU (Central Processing Unit) and a GPU (Micro-Processing Unit), a memory 104, a storage 106, a USB (Universal Serial Bus) controller 108, a memory card interface 110, a field network controller 114, and a network controller 116.

[0064] The processor 102 reads out a program stored in the storage 106, loads it into the memory 104, and executes it to realize the processing required by the PLC 100.

[0065] The memory 104 is a volatile memory such as a dynamic random access memory (DRAM) or a static random access memory (SRAM).

[0066] The storage 106 is a non-volatile memory such as a NOR flash memory or a NAND flash memory, etc. The storage 106 stores a system program 120, a user program 122, setting information 124, and the like.

[0067] The system program 120 includes computer-readable instructions for executing the basic processing of the PLC 100. The user program 122 includes computer-readable instructions for controlling the production equipment. The setting information 124 includes settings for assigning time stamps, as described below.

[0068] The USB controller 108 exchanges data with the support device 400 and the like in accordance with the USB standard.

[0069] The memory card interface 110 is configured to allow a memory card 112 to be attached or detached. The memory card interface 110 writes data to the memory card 112 and reads data from the memory card 112.

[0070] The field network controller 114 exchanges data with devices connected via the field network 14. The field network controller 114 has a timer 115 for synchronizing time with devices connected via the field network 14. The timer 115 corresponds to the time management unit 5 that manages time.

[0071] The network controller 116 exchanges data with the IPC 200 and the like via the information network 16. The network controller 116 has a timer 117 for synchronizing time with the IPC 200 and the like connected via the information network 16. The timer 117 corresponds to the time management unit 5 that manages time.

[0072] (c2: Example of hardware configuration for IPC200) 4 is a block diagram showing an example of a hardware configuration of an IPC 200 according to the present embodiment. Referring to FIG. 4, the IPC 200 includes a processor 202 such as a CPU or a GPU, a memory 204, a storage 206, a USB controller 208, and a network controller 210.

[0073] The processor 202 reads out a program stored in the storage 206, loads it into the memory 204, and executes it to realize the processing required by the IPC 200.

[0074] The memory 204 is a volatile memory such as a DRAM or an SRAM. The storage 206 is a non-volatile memory such as a NOR flash memory or a NAND flash memory. The storage 206 stores a system program 220, an application program 222, setting information 224, and the like.

[0075] The system program 220 includes computer-readable instructions for executing basic processing of the IPC 200. The application program 222 includes computer-readable instructions for executing various information processing operations. The setting information 224 includes settings for assigning timestamps, as described below.

[0076] The application programs 222 may include computer-readable instructions for configuring a database in the IPC 200 .

[0077] The USB controller 208 exchanges data with the support device 400 and the like in accordance with the USB standard.

[0078] The network controller 210 exchanges data with the PLC 100 and the like via the information network 16. The network controller 210 has a timer 211 for synchronizing time with the PLC 100 connected via the information network 16. The timer 211 corresponds to the time management unit 5 that manages time.

[0079] (c3: Example of hardware configuration of relay unit 300) 5 is a block diagram showing an example of a hardware configuration of a relay unit 300 according to the present embodiment. Referring to FIG. 5, the relay unit 300 includes a processor 302 such as a CPU or a GPU, a memory 304, a storage 306, a field network controller 314, and an internal bus controller 316.

[0080] The processor 302 reads out the system program stored in the storage 306, loads it into the memory 304, and executes it, thereby realizing the processing required in the relay unit 300.

[0081] The memory 304 is a volatile memory such as a DRAM or an SRAM. The storage 306 is a non-volatile memory such as a NOR flash memory or a NAND flash memory. The storage 306 stores a system program 320, setting information 322, and the like.

[0082] The system program 320 includes computer-readable instructions for executing basic processing of the relay unit 300. The setting information 322 includes settings for adding a time stamp as will be described later.

[0083] The field network controller 314 exchanges data with devices connected via the field network 14. The field network controller 314 has a timer 315 for synchronizing time with devices connected via the field network 14. The timer 315 corresponds to the time management unit 5 that manages time.

[0084] The internal bus controller 316 exchanges data with the input / output unit 350 via an internal bus 318. The internal bus controller 216 has a timer 317 for synchronizing time with the input / output unit 350 connected via the internal bus 318. The timer 317 corresponds to the time management unit 5 that manages time.

[0085] (c4: Example of hardware configuration of devices connected to field network 14) 6 is a block diagram showing an example of a hardware configuration of servo driver 20 according to the present embodiment. Referring to FIG. 6, servo driver 20 includes a field network controller 26, a control module 28, and an interface circuit 29.

[0086] The field network controller 26 exchanges data with devices connected via the field network 14. The field network controller 26 has a timer 27 for synchronizing time with devices connected via the field network 14. The timer 27 corresponds to the time management unit 5 that manages time.

[0087] The control module 28 executes necessary processing in the servo driver 20. The control module 28 includes a processor, a memory, and a storage.

[0088] The interface circuit 29 exchanges signals with the servo motor 22 and the encoder 24 .

[0089] An example of the hardware configuration of devices (sensor unit 30, image processing unit 40, audio processing unit 50, etc.) connected to the field network 14 is the same as that shown in FIG. 6, and therefore detailed description thereof will not be repeated.

[0090] (c5: Support device 400) 7 is a block diagram showing an example of a hardware configuration of support device 400 constituting information processing system 1 according to the present embodiment. Support device 400 is configured using, for example, a general-purpose computer.

[0091] Referring to FIG. 7, the support device 400 includes a processor 402 such as a CPU and a GPU, a memory 404, a storage 406, an input interface 408, a display interface 410, a USB controller 412, a network controller 414, and an optical drive 416.

[0092] The processor 402 reads out a program stored in the storage 406, loads it into the memory 404, and executes it to realize the processing required by the support device 400.

[0093] The storage 406 is a non-volatile memory such as a hard disk drive (HDD) or a flash solid state drive (SSD), etc. The storage 406 stores a system program 420, a support program 422, project data 424, and the like.

[0094] The input interface 408 accepts user operations from input devices such as a keyboard and a mouse. The input devices may be components of the support device 400.

[0095] The display interface 410 outputs the processing results from the processor 402 to a display or the like. The display may be a component of the support device 400.

[0096] The USB controller 412 exchanges data with the PLC 100 etc. in accordance with the USB standard.

[0097] The network controller 414 exchanges data with devices connected via the network.

[0098] The optical drive 416 reads data stored on an optical recording medium 418 such as a DVD (Digital Versatile Disc).

[0099] (c6: Database server 500) The database server 500 according to the present embodiment is configured using a general-purpose computer. Since the hardware configuration of a general-purpose computer is well-known, a detailed description will not be given.

[0100] (c7: Modification example) In FIGS. 3 to 7, examples in which the necessary processing is realized by the processor executing a program are shown. However, part or all of the functions assumed by the processor may be replaced with a hard-wired circuit (for example, an ASIC (Application Specific Integrated Circuit) and an FPGA (Field-Programmable Gate Array), etc.). Also, a SoC (System on Chip) incorporating a processor may be adopted.

[0101] In this specification, the term "processor" includes, in addition to a narrow-sense processor such as a CPU and a GPU, a hard-wired circuit such as an ASIC and an FPGA, a DSP (Digital Signal Processor), and an AI (Artificial Intelligence) chip, etc.

[0102] <D. Communication frame and file> Next, the communication frame and file for transmitting data with a time stamp in the information processing system 1 according to the present embodiment will be described.

[0103] FIG. 8 shows an example of a communication frame used in information processing system 1 according to the present embodiment.

[0104] 8A, a communication frame 600 includes one or more pieces of data 601 measured by a sensor or the like, and a timestamp 602 indicating when the data 601 was measured. The timestamp 602 of the communication frame 600 includes time information.

[0105] 8(B), a communication frame 610 includes one or more pieces of data 611 measured by a sensor or the like, and a timestamp 612 indicating when the data 611 was measured. The timestamp 612 of the communication frame 610 includes time information in milliseconds.

[0106] 8(C), a communication frame 620 includes one or more pieces of data 621 measured by a sensor or the like, and a timestamp 622 indicating when the data 621 was measured. The timestamp 622 of the communication frame 620 includes not only time in the strict sense but also date information. In other words, the timestamp 622 includes date and time information (date and time).

[0107] 8(D), a communication frame 630 includes one or more pieces of data 631 measured by a sensor or the like, and a timestamp 632 indicating when the data 631 was measured. The timestamp 632 of the communication frame 630 includes, for example, a count value indicated by a timer held by each of a plurality of devices connected via the field network 14. The timers held by each of the plurality of devices are synchronized with each other, so the timing when the data 631 was measured can be uniquely calculated from the count value indicated by the timestamp 632.

[0108] FIG. 9 shows an example of a file used in information processing system 1 according to the present embodiment.

[0109] 9(A), a timestamp 641 may be added to a video file 640. Since a video file 640 typically includes multiple frames, the timestamp 641 may indicate when the first or last frame included in the video file 640 was captured.

[0110] 9(B), in addition to timestamp 641, timestamp 642 may be added to moving image file 640. Since moving image file 640 typically includes multiple frames, timestamp 641 may indicate when the first frame included in moving image file 640 was captured, and timestamp 642 may indicate the recording time included in moving image file 640. The start and end times of a series of frames included in moving image file 640 can be uniquely calculated from timestamp 641 and timestamp 642.

[0111] 9(C), instead of the timestamp 641, a timestamp 643 indicating a count value may be added to the video file 640. The timers held by the devices connected via the field network 14 are synchronized with each other, so the time when the first (or last) frame included in the video file 640 was captured can be uniquely calculated from the count value indicated by the timestamp 632.

[0112] 9(D), an additional information file 645 may be prepared in addition to the video file 640. The additional information file 645 includes, for example, a timestamp 641 and meta information 644. The meta information 644 may be written in XML format. The meta information 644 includes, for example, information related to capturing and collecting the video file 640.

[0113] 9(E), an additional information file 646 may be prepared in addition to the video file 640. The additional information file 646 includes, for example, a timestamp 641, a timestamp 642, and meta information 644.

[0114] Referring to FIG. 9(F), an additional information file 647 may be prepared separately from the video file 640. The additional information file 647 includes, for example, a time stamp 643 and meta information 644.

[0115] As shown in FIGS. 8 and 9, one or more time stamps are assigned to one or more measurements. The time stamp may include a value indicating the actual time (and date and time), or may include a count value indicated by timers synchronized with each other. The notation format of the time (and date) (for example, 12-hour notation and 24-hour notation, etc.) may be any format. The time stamp may include a value indicating a specific timing, or may include a value indicating the length of a specific period.

[0116] The accuracy or granularity of the time indicated by the time stamp (for example, in seconds, milliseconds, microseconds, etc.) may be set in any way. Depending on the environment and device configuration for measuring data, etc., the accuracy or granularity of the time indicated by the time stamp assigned to the data may be determined.

[0117] As shown in FIGS. 8 and 9, the database receives a communication frame and / or a file including a time stamp and one or more data.

[0118] <E. Assignment of Time Stamp> Next, an example of a process for assigning a time stamp to data in the information processing system 1 will be described.

[0119] FIG. 10 is a schematic diagram showing an example of a process for assigning a time stamp in the information processing system 1 according to the present embodiment. Referring to FIG. 10, for example, data is stored in the database 250 of the IPC 200.

[0120] At least some of the nodes included in the information processing system 1 generate data to be stored in the database 250. That is, at least some of the nodes included in the information processing system 1 execute a process to generate data to be stored in the database 250. In the configuration example shown in FIG. 10 , the nodes that generate data correspond to the sensor 62, the sensor 64, the sensor unit 30 and the sensor head 32, and the camera 42.

[0121] At least some of the nodes included in the information processing system 1 include a time management unit 5 that manages time. That is, at least some of the nodes included in the information processing system 1 execute a process for managing time. In the configuration example shown in FIG. 10, the time management unit 5 corresponds to timer 117, timer 367, timer 37, timer 47, and timer 211. Note that at least some of the time management units 5 (timers) included in at least some of the nodes may be synchronized with each other.

[0122] In the information processing system 1, each piece of data stored in the database 250 is assigned a timestamp by a time management unit 5 (timer) located on the path from a node (for example, a sensor) that generates each piece of data to the database 250. That is, at least some of the nodes included in the information processing system 1 execute a process of assigning a timestamp to each piece of data stored in the database 250 on the path from the node that generates each piece of data to the database 250.

[0123] A specific example will be described below with reference to FIG.

[0124] The measurement value (data) generated by the sensor 62 is transmitted to the IPC 200 via the input / output unit 150 and the PLC 100 (path 70). On the path 70, the PLC 100 assigns a timestamp to the data from the sensor 62 (simply indicated as "TS assigned" in the figure). The value of the timestamp assigned by the PLC 100 may be based on a timer 117 that synchronizes the time between the PLC 100 and the IPC 200. The timer 117 of the PLC 100 is synchronized with the timer 211 of the IPC 200 and also with the timer 115 of the PLC 100. In this way, the data from the sensor 62 may be assigned a timestamp by the timer 117.

[0125] The measurement value (data) generated by the sensor 64 is transmitted to the IPC 200 via the input / output unit 350, the relay unit 300, and the PLC 100 (path 72). On the path 72, the input / output unit 350 assigns a timestamp to the data of the sensor 64. The value of the timestamp assigned by the input / output unit 350 may be based on a timer 367 for synchronizing the time between the input / output unit 350 and the relay unit 300. The timer 317 of the relay unit 300 is synchronized with the timer 367 of the input / output unit 350 and also with the timer 315 of the relay unit 300. The timer 315 of the relay unit 300 is synchronized with the timer 115 of the PLC 100. In this way, the timer 367 may assign a timestamp to the data of the sensor 64.

[0126] Measurement values ​​(data) generated by the sensor unit 30 and the sensor head 32 are transmitted to the IPC 200 via the PLC 100 (path 74). On path 74, the sensor unit 30 assigns a timestamp to the data from the sensor unit 30 and the sensor head 32. The value of the timestamp assigned by the sensor unit 30 may be based on a timer 37 that synchronizes the time between the sensor unit 30 and the PLC 100. The timer 37 of the sensor unit 30 is synchronized with the timer 115 of the PLC 100. In this way, the timer 37 may assign a timestamp to the data from the sensor unit 30 and the sensor head 32.

[0127] The images (data) captured by the camera 42 are transmitted to the IPC 200 via the image processing unit 40 and the PLC 100 (path 76). On path 76, the image processing unit 40 may buffer the images captured by the camera 42 to generate a video file. The image processing unit 40 assigns a timestamp to the images captured by the camera 42 (the video file generated by the image processing unit 40). The value of the timestamp assigned by the image processing unit 40 may be based on a timer 47 that synchronizes the time between the image processing unit 40 and the PLC 100. The timer 47 of the image processing unit 40 is synchronized with the timer 115 of the PLC 100. In this way, the timer 47 may assign a timestamp to the images captured by the camera 42.

[0128] If the delay time from measurement by a sensor or the like to the assignment of a timestamp cannot be ignored, the delay time may be corrected. In other words, the value of the assigned timestamp may be corrected according to the delay time from the node that generates the data to the time management unit 5 (timer) that assigns the timestamp to the data. A specific example will be described below.

[0129] 11 is a schematic diagram showing another example of a process for assigning a timestamp in information processing system 1 according to the present embodiment. Referring to FIG. 11, measurement values ​​(data) generated by sensors 66 and 68 are transmitted to IPC 200 via master unit 370 connected to relay unit 300 (path 78). Master unit 370 is, for example, an IO-Link master unit. Master unit 370 and sensors 66 and 68 are connected via field bus 6.

[0130] 11, the master unit 370 does not have a timer, so the relay unit 300 assigns a timestamp to the data of the sensors 66, 68. Therefore, the timestamp assigned to the data of the sensors 66, 68 may have a delay time equivalent to the time it takes for the data of the sensors 66, 68 to arrive at the relay unit 300.

[0131] The time required for the data from the sensors 66 and 68 to arrive at the relay unit 300 may be determined in advance, and based on the determined time, the value of the timestamp assigned by the relay unit 300 may be corrected. That is, the relay unit 300 may assign, as the timestamp, a value obtained by subtracting a predetermined time (delay time) from the time (or count value) at which the timestamp is assigned.

[0132] The time required for the data from the sensors 66, 68 to arrive at the relay unit 300 may be determined by actual measurement, may be determined based on design values, or may be determined by simulation.

[0133] Alternatively, an offset indicating a delay time may be associated with the data, rather than the relay unit 300 correcting the timestamp value. That is, an offset may be set for at least a part of the data stored in the database according to the path from the node that generates each piece of data to the time management unit (timer) that assigns a timestamp to the data.

[0134] For example, a node that assigns a time stamp (in the configuration example shown in FIG. 11, the relay unit 300) may assign an offset corresponding to the delay time to the data in addition to the time stamp (without correction).

[0135] Also, when storing data in the database, the corresponding offset may be associated with the data. Alternatively, an offset may be predefined for each data, and when utilizing the data stored in the database, the time stamp may be corrected based on the corresponding offset.

[0136] By adopting the process of reflecting the delay time and offset as described above, the sensor can more accurately manage the time when the data is generated.

[0137] <F. Determination of the Node Responsible for Assigning the Time Stamp> As described above, in the information processing system 1 according to the present embodiment, the nodes existing in the path from the node that generates the data to the database assign the time stamp. Hereinafter, a processing example for determining the node that assigns the time stamp for each data will be described.

[0138] FIG. 12 is a schematic diagram showing a configuration example for determining the node that assigns the time stamp in the information processing system 1 according to the present embodiment.

[0139] Referring to FIG. 12(A), the support device 400 has a determination engine 430 for determining the node that assigns the time stamp. The determination engine 430 corresponds to a determination unit and determines the node that assigns the time stamp for each data stored in the database by a process as described later. The determination engine 430 outputs setting information 432 including the determined content. The setting information 432 is transmitted to the PLC 100 (and the devices connected to the PLC 100). According to the setting information 432, at least some of the nodes included in the information processing system 1 assign the time stamp to the data.

[0140] 12(B), the PLC 100 may have a decision engine 80. The decision engine 80 corresponds to a decision unit and determines or changes the node that will assign a timestamp. In response to data being added or changed to the database, the decision engine 80 determines or changes the node that will assign a timestamp to the changed or added data. The PLC 100 changes the settings of the PLC 100 (and devices connected to the PLC 100) in accordance with the decision made by the decision engine 80.

[0141] By disposing the decision engine 80 in the PLC 100, it is possible to dynamically add or change the nodes to which time stamps are assigned.

[0142] The configuration information 432 may be sent to the IPC 200. The decision engine 80 may be located in the IPC 200.

[0143] Fig. 13 is a flowchart showing a processing procedure for determining a node to which a timestamp is to be assigned in information processing system 1 according to the present embodiment. Each step shown in Fig. 13 is realized, for example, by processor 402 of support device 400 executing support program 422. Alternatively, each step shown in Fig. 13 is realized by processor 202 of IPC 200 executing system program 220.

[0144] For ease of explanation, an example will be described in which the support device 400 performs the processing of Figure 13 (corresponding to the decision engine 430 of the support device 400 shown in Figure 12(A)), but the IPC 200 may also perform the processing of Figure 13 (corresponding to the decision engine 80 of the IPC 200 shown in Figure 12(B)).

[0145] 13, support device 400 acquires a list of data to be stored in a database (step S100), and selects one piece of data from the acquired list of data (step S102).

[0146] The support device 400 determines a route from the node that generates the selected data to the database (step S104). The support device 400 searches for nodes on the determined route that can assign a timestamp (step S106). Of the searched nodes that can assign a timestamp, the support device 400 determines the node that is closest to the node that generates the selected data as the node that will assign the timestamp (step S108).

[0147] The support device 400 may, for example, refer to the system configuration information and network configuration information contained in the project data 424 to determine a route from the node that generates the selected data to the database, and may search for a node along that route that can assign a timestamp.

[0148] The support device 400 may determine, as the node to assign the timestamp, the node that is evaluated as the most appropriate based on one or more evaluation criteria among the searched nodes that can assign a timestamp, rather than the node that is closest to the node that generates the selected data. The one or more criteria may include, for example, a low load (having ample processing resources) and the ability to guarantee the required accuracy. In other words, the node to assign the timestamp may be determined based on the load or the time accuracy.

[0149] The required accuracy may include, for example, the highest time accuracy, obtaining common time accuracy among multiple nodes, and obtaining any accuracy set by the user.

[0150] The support device 400 determines the format of the communication frame for the selected data (step S110).

[0151] The support device 400 determines whether all the data in the list of acquired data have been selected (step S112). If there is unselected data in the list of acquired data (NO in step S112), the support device 400 selects another piece of data from the list of acquired data (step S114) and repeats the processes from step S104 onwards. <000052�>

[0152] If all the data in the list of acquired data have been selected (YES in step S112), the support device 400 generates setting information 432 including the node to which a timestamp is to be assigned and the format of the communication frame, which have been determined for each piece of data (step S116). The support device 400 transmits the generated setting information 432 to the IPC 200 (step S118). The IPC 200 changes the settings according to the setting information 432. Then, the process ends. ​​​​​​​​​​​​​​​ Regarding the management of the synchronization state, the time indicated by a timestamp assigned by a node is based on a timer possessed by the node. By managing the synchronization state of the timer that determines the time indicated by the timestamp, the accuracy of the time can be estimated. The synchronization state of the timer includes, for example, an unsynchronized state and a synchronized state. The unsynchronized state includes, for example, a state in which synchronization is being established and a state in which an error of a predetermined value or more has occurred in the synchronized state.

[0157] FIG. 14 is a schematic diagram showing an example of a configuration for managing the time indicated by the time stamp in information processing system 1 according to the present embodiment.

[0158] 14(A), support device 400 has a management engine 440 for managing the time indicated by the timestamp. Management engine 440 generates and updates timer management information 442 for managing the time for each node to which a timestamp is assigned.

[0159] 14(B), the IPC 200 may include a management engine 90. Similar to the management engine 440, the management engine 90 generates and updates state information for managing the time for each node to which a timestamp is assigned.

[0160] In this way, the management engine 440 manages the state of the time management unit 5 (time management node).

[0161] 15 is a diagram showing an example of timer management information 442 generated and updated in information processing system 1 according to the present embodiment. Referring to Fig. 15, timer management information 442 indicates the state of a timer for generating a timestamp for each node.

[0162] The timer management information 442 includes, for example, a node number 4420 , device details 4422 , a time source 4424 , a status value 4426 , and a synchronization establishment date and time 4428 .

[0163] The node number 4420 indicates the identification number of the device that assigns (or can assign) a timestamp. The device details 4422 indicate details of each device (for example, the type of each device). The time source 4424 indicates the timer (time source) with which the timer that outputs the timestamp in each device is synchronized. The time source 4424 stores a timer identifier that indicates the time source. For example, a network address that indicates the time source may be used as the timer identifier. The status value 4426 indicates the synchronization status of the timer. For example, "Sync" indicates a state in which synchronization with another timer (master) is established, "UnSync" indicates a state in which synchronization is not established, and "Degraded" indicates a state in which an error of a predetermined value or more has occurred after synchronization was established. The synchronization establishment date and time 4428 indicates the most recent date and time when synchronization was established.

[0164] The node number 4420 and the device details 4422 may be set in advance by referring to system configuration information (not shown).

[0165] The timer management information 442 shown in FIG. 15 may be referenced in the processing of the PLC 100 and / or the IPC 200, or may be presented to the user via the support device 400.

[0166] By associating the setting information 432 with the timer management information 442, it is possible to manage the node that serves as the information source for each variable. Also, by associating the setting information 432 with the time source information 434, it is possible to manage the accuracy or granularity of the time for each variable and / or for each variable.

[0167] 15, the setting information 432 includes, for example, a variable name 4320 and a node number 4322. The variable name 4320 indicates identification information for identifying the target variable, and the node number 4322 indicates the identification number of the device that assigns (or can assign) a timestamp. When referenced from the timer management information 442, the node number 4322 is used as a primary key.

[0168] The time source information 434 includes, for example, a time source 4340, a timer precision 4342, and a format 4344. The time source 4340 indicates the source of information (time source) of time that can be used as a timestamp. When referenced from the timer management information 442, the time source 4340 is used as a primary key. The timer precision 4342 indicates the timer precision of each time source. For example, "H" indicates a high-precision timer, and "M" indicates a normal-precision timer. The format 4344 indicates the format of the timer output by each time source. For example, TAI time, an EtherCAT (registered trademark) timestamp, JST (Japan Standard Time), etc. are stored in the format 4344.

[0169] In this way, the management engine 440 may manage information (time source 4424) indicating the time source of the time management unit 5 (time management node) and information (timer accuracy 4342) indicating the accuracy of the time source.

[0170] The management engine 440 (management engine 90) associates the setting information 432 with the timer management information 442 to identify the node that assigns a timestamp for each variable. Furthermore, the management engine 440 (management engine 90) associates the setting information 432 with the time source information 434 to identify the accuracy or granularity of the time indicated by the timestamp assigned to each variable and / or for each variable, based on the timer accuracy of the time source, etc. In this way, the management engine 440 (management engine 90) can manage the node that serves as the information source and accuracy for the timestamp assigned to each variable. Information on the information source and accuracy for the timestamp may be used as attribute information for data stored in a database, or may be presented to the user via the support device 400.

[0171] Furthermore, by referencing the attribute information included in the time source information 434, it is possible to manage differences in the notation of the assigned timestamps, as well as the magnitude of potential error in the time indicated by the timestamp and the number of significant digits indicated by the time. It is also possible to display data by reflecting the difference between the timestamps assigned to each variable.

[0172] <H. Aggregation Processing> Next, an example of the aggregation processing executed to store data in the database will be described.

[0173] Even for data with the same timestamp, depending on the path of each data, the time to reach the database may be different. In the information processing system 1 according to the present embodiment, since a timestamp is attached to each data, for example, a plurality of data with the same timestamp can be aggregated and then stored in the database.

[0174] FIG. 16 is a schematic diagram showing a functional configuration example of the aggregation processing according to the present embodiment. Referring to FIG. 16, an aggregation engine 270 is provided in association with a database (for example, database 250 or database server 500). The aggregation engine 270 corresponds to the aggregation unit 3 and aggregates the data stored in the database. The aggregation engine 270 is connected to a buffer 260 that temporarily stores the data transmitted from the node. In this way, the aggregation engine 270 executes a process of aggregating a plurality of data based on the timestamp attached to each data. Then, the database executes a process of storing the aggregated data.

[0175] The aggregation engine 270 aggregates one or more data temporarily stored in the buffer 260 and stores it in the database. The aggregation engine 270 aggregates the data based on the timestamp attached to each data.

[0176] The buffer 260 and the aggregation engine 270 may be arranged in the same device where the database is arranged, or may be arranged in another device. That is, the buffer 260 and the aggregation engine 270 are arranged on the path from the node that generates the data to the database.

[0177] Hereinafter, the aggregation processing executed by the aggregation engine 270 will be described.

[0178] FIG. 17 is a diagram illustrating an example of the aggregation process according to the present embodiment.

[0179] 17, for example, suppose that data 651 to 659 arrive at buffer 260. In FIG. 17, the positions of the data 651 to 659 indicate the order of arrival. A timestamp is assigned to each of the data 651 to 659, and therefore the data can be aggregated based on the timestamp. For example, data 651, data 652, and data 654 are assigned timestamps that indicate the same value, and therefore these three data can be aggregated into one data 661.

[0180] Similarly, since the data 653 and the data 658 are assigned timestamps indicating the same value, these two data can be aggregated into one data 662.

[0181] Similarly, since the data 655, data 656, and data 659 are assigned timestamps that indicate the same value, these two pieces of data can be aggregated into one piece of data 663.

[0182] As described above, the aggregation engine 270 aggregates multiple pieces of data sequentially stored in the buffer 260 into a smaller number of pieces of data based on the timestamps attached to each piece of data. The aggregation engine 270 may aggregate multiple pieces of data using the timestamps as a key.

[0183] The aggregation process may include a process of calculating a feature amount from a plurality of data, in other words, a statistical process based on a plurality of data.

[0184] For example, if data with a timestamp in 100 millisecond units is transmitted and the data is stored in a database every second, 10 pieces of data will be included in one cycle. In this case, feature amounts may be calculated from the multiple pieces of data included in one cycle, and the calculated feature amounts may be stored in the database.

[0185] 18 is a diagram illustrating another example of the aggregation process according to the present embodiment. Referring to FIG. 18, a timestamp in 100 millisecond units is assigned to each of data 671 to 680. Aggregation engine 270 calculates feature amounts from values ​​indicated by the ten data 671 to 680.

[0186] 18 shows an example in which an average value is calculated as the feature amount. Aggregation engine 270 aggregates the value obtained by averaging the values ​​indicated by data 671 to 680 as data 681. Aggregated data 681 is stored in a database.

[0187] The aggregation process may include any process for calculating feature quantities, such as maximum values, minimum values, median values, and standard deviations.

[0188] When collecting data with different sampling periods, the data may be thinned or leveled during the aggregation process. When data is thinned or leveled, a record may be left that allows the location to be identified later. For example, information indicating that data processing such as thinning or leveling has been performed may be added to the aggregated data. Specifically, a method using data such as a flag may be used, or a method adding information to the file name may be used. Alternatively, the system may record an event log indicating that data processing such as thinning or leveling has been performed.

[0189] The aggregation engine 270 may apply mechanisms for preventing data tampering to the aggregated data 681. Additionally, the aggregation engine 270 may apply mechanisms for detecting data tampering by a third party to the aggregated data 681. As a mechanism for preventing data tampering, known data protection descriptions can be used. As a mechanism for detecting data tampering by a third party, methods such as adding CRC (Cyclic Redundancy Check) or an electronic signature (e.g., MD5 algorithm) to the data can be used.

[0190] <I. Data Collection> In the information processing system 1, the data stored in the database (the database 250 of the IPC 200 and / or the database server 500) may be predetermined. Each of the predetermined data may be cyclically transmitted to the database at a predetermined cycle. Alternatively, each of the predetermined data may be transmitted to the database in response to an arbitrary trigger.

[0191] Each node may have a buffer for holding time-series data. According to a predetermined setting and / or in accordance with an arbitrary command, each node may transmit part or all of the time-series data held in the buffer to a specified destination. The data may be sequentially written into the database or may be filed and transmitted to a file server or the like.

[0192] The data transmitted to the node holding the buffer may be generated according to the communication frame 600 shown in FIG. 8. The data generated by the node itself holding the buffer may not be transferred using the communication frame 600 shown in FIG. 8, but may be filed and transmitted or may be directly written into the database.

[0193] Data to be collected may be appropriately specified for the nodes included in the information processing system 1. For example, when a user operates the support device 400 to select data to be collected, information for specifying the selected data is transmitted to the target node. Note that the information for specifying the selected data may be transmitted by broadcast or multicast. In the case of broadcast, the node that manages the specified data processes the information. In the case of multicast, the entity that transmits the information identifies the destination node.

[0194] The data to be collected may be determined by any of the PLC 100, the IPC 200, and the database server 500. The information processing system 1 may provide an interface for selecting the data to be collected. For example, the PLC 100 or the IPC 200 may have a web server function and may be configured to accept the selection of data to be collected from an external device. In response to the selection from the external device, the PLC 100 or the IPC 200 transmits information for specifying the selected data.

[0195] A plurality of nodes may cooperate to store time-series data in a database according to preset collection conditions.

[0196] 19 is a diagram for explaining an example of data collection according to collection conditions in information processing system 1 according to the present embodiment. With reference to FIG. 19, a user operates support device 400 to create collection conditions 450.

[0197] The collection conditions 450 include, for example, data to be collected (e.g., variable names), a recording start trigger condition, a collection period, a storage destination, and notification settings. The recording start trigger condition may be a combination of one or more pieces of data. The recording start trigger condition may be multiple conditions set in parallel. In this case, data collection will start regardless of which condition is met. The recording start trigger condition may be such that its fulfillment can be determined only at a specific node.

[0198] The collection period is set based on the timing (trigger timing) when the recording start trigger condition is met and a trigger is issued. For example, the collection period may include a period (pre-trigger) that is a predetermined time in the past from the trigger timing, or a period (post-trigger) that is a predetermined time in the future from the trigger timing. The collection period may also start a predetermined time later than the trigger timing.

[0199] The storage destination may be an available database or file server.

[0200] The notification setting is a setting for notifying other nodes of the collection period. If only a specific node can determine whether the recording start trigger condition is met, the node that determines that the condition is met notifies other nodes of the collection period. By making such notifications, even if the data to be collected is distributed across multiple nodes, the necessary time-series data can be extracted after the fact and stored in the database.

[0201] As an example, the IPC 200, the PLC 100-1, and the PLC 100-2 collect data. Figure 19 shows an example in which the IPC 200 issues a trigger.

[0202] The collection conditions 450 created by the user operating the support device 400 are transmitted to each of the IPC 200, PLC 100-1, and PLC 100-2. Each of the IPC 200, PLC 100-1, and PLC 100-2 collects time-series data in accordance with the collection conditions 450 (steps S200, S300). The collection conditions 450 transmitted to each of the IPC 200, PLC 100-1, and PLC 100-2 may be common, or may be generated for each device.

[0203] Each of the IPC 200, PLC 100-1, and PLC 100-2 continues to collect time-series data regardless of whether a trigger is issued. However, the time-series data may be retained only for a period sufficient for the maximum collection period. That is, each of the IPC 200, PLC 100-1, and PLC 100-2 may discard time-series data that exceeds a predetermined data amount, starting with the oldest data.

[0204] The IPC 200 determines that the recording start trigger condition is met and issues a trigger (step S202). Next, the IPC 200 calculates a collection period based on the trigger timing (step S204). The calculated collection period includes a start time and an end time specified using the time indicated by a synchronized timer.

[0205] The IPC 200 notifies the other nodes (PLC 100-1 and PLC 100-2) of the calculated collection period (step S206). The other nodes receive the notification of the collection period from the IPC 200 (step S302). As a result, the collection period is shared among the IPC 200, PLC 100-1, and PLC 100-2.

[0206] In this way, a specific node among the multiple nodes (IPC200 in the example shown in FIG. 19) calculates the period of data to be stored in the database in response to a recording start trigger, and transmits the calculated period to other nodes (PLC100-1 and PLC100-2 in the example shown in FIG. 9).

[0207] The IPC200 extracts time series data of the data to be collected during the collection period from the collected time series data (step S208), and files the extracted time series data (step S210). The IPC200 transmits the filed time series data to a database (step S212). Note that the file creation process in step S210 may be omitted.

[0208] Similarly, each of PLC 100-1 and PLC 100-2 extracts time-series data of the data to be collected during the collection period from the collected time-series data (step S304) and files the extracted time-series data (step S306). Each of PLC 100-1 and PLC 100-2 transmits the filed time-series data to a database (step S308). Note that the file creation process of step S306 may be omitted.

[0209] The database stores the time series data received from each node (step S400). The time series data transmitted from each node may have attribute information added to it. The database stores the time series data together with the attribute information.

[0210] When either PLC 100-1 or PLC 100-2 issues a trigger, the node that issued the trigger calculates the collection period and notifies the other nodes of the calculated collection period.

[0211] 19 shows an example of a process in which a node that issued a trigger notifies other nodes of the calculated collection period. However, in addition to or instead of the collection period, additional information of the issued trigger may be notified to other nodes. Each node that receives the additional information of the trigger may extract necessary time-series data according to preset collection conditions and / or according to the evaluation result of the received additional information. For example, each node that receives the additional information of the trigger may extract time-series data for the same period as the notified collection period, or may extract time-series data for a period different from the notified collection period.

[0212] When attribute information is stored in a database together with time-series data, the attribute information may be presented to the user. Also, a function for filtering time-series data based on the attribute information may be provided. For example, when the attribute information of each time-series data includes the synchronization state of a timer and / or the accuracy of time, filtering results using AND / OR conditions for this information may be presented to the user.

[0213] When the attribute information includes a timer identifier indicating a time source, the error between timestamps (e.g., the time difference between timers for which synchronization has not been established or the time zone difference) may be presented to the user. The user can perform filtering processing in consideration of the presented error between timestamps. For example, trigger conditions reflecting the presented error between timestamps may be configurable.

[0214] Note that FIG. 19 shows an example of transmitting time-series data to a database, but the result of quantifying the features of time-series data may be transmitted to the database.

[0215] <J. Utilization of Data Stored in Database> Next, utilization of the data stored in the database will be described. In the information processing system 1 according to the present embodiment, the data is aggregated based on timestamps and then stored in the database. Therefore, multiple types of data can be reproduced on a common time axis.

[0216] FIG. 20 is a schematic diagram showing an example of utilization of the data stored in the database of the information processing system 1 according to the present embodiment. In the example shown in FIG. 20, the time-series data of variable A, the time-series data of variable B, and the line video are associated on a common time axis.

[0217] The association on the time axis shown in FIG. 20 is performed based on the time stamps assigned to each data. When an arbitrary time is specified, the variables and video at the specified time are displayed together. Since the user can check both the values of one or more variables at an arbitrary time and the video at that time, for example, the cause of an abnormality can be more easily investigated. That is, by associating multiple types of data on a common time axis and providing the associated data to the user together, the work of cause investigation by the user can be supported.

[0218] As shown in FIG. 20, in the information processing system 1, a plurality of time-series data can be viewed in a composite manner. One or more time-series data displayed on a common time axis may be arbitrarily selectable by the user.

[0219] In the information processing system 1 according to the present embodiment, since the time when each data is generated can be specified, a plurality of types of data can be more easily evaluated on a common time axis.

[0220] The utilization of the data stored in the database may include not only the association of data as shown in FIG. 20 but also various display processes and statistical processes.

[0221] In order to facilitate the utilization of the data stored in the database, the database may be constructed in accordance with the Asset Administration Shell, which is a standard specification of the data model. For example, the time-series data may be stored in the database in the form of the time-series data submodel of the Asset Administration Shell. The data can be managed using the interface of the Asset Administration Shell.

[0222] <K. Modified Example> In the above description, the focus was mainly on the assignment of time stamps to input data and output data. However, for internal data, the PLC 100 or the IPC 200 may assign a time stamp. Alternatively, no time stamp may be assigned to the internal data, and when storing the internal data in a database, a record corresponding to the time stamp to be assigned may be determined as the storage destination of the data.

[0223] In the above description, as the time management unit 5 for managing time, a timer for synchronizing time was exemplified. However, for example, the time management unit 5 may be configured using a positioning system such as GPS (Global Positioning System). Alternatively, the time management unit 5 may be configured using a time-synchronized network such as TSN (Time-Sensitive Networking). That is, the time management unit 5 may be realized using any hardware resources as long as it can manage the time required for the assignment of time stamps.

[0224] In the above description, the PLC 100 and the IPC 200 show independent configuration examples, but the two may be integrated. For example, the functions of the PLC 100 and the IPC 200 may be implemented in a single housing. Alternatively, units equipped with the function of the PLC 100 and units equipped with the function of the IPC 200 that can be connected to each other may be prepared. In this case, a plurality of units may be connected via an internal bus.

[0225] <L. Addendum> The present embodiment as described above includes the following technical ideas.

[0226] [Configuration 1] A database (2; 250; 500), and a plurality of nodes (4; 100; 200; 300; 350; 20; 30; 40; 50), at least a part (350; 20; 30; 40; 50) of the plurality of nodes being configured to generate data to be stored in the database. An aggregation unit (3; 270) that aggregates data stored in the database, At least some of the plurality of nodes include a time management unit (5; 115; 117; 211; 315; 317; 27) that manages time, A timestamp is assigned to each piece of data stored in the database by a time management unit located on a path from a node generating each piece of data to the database; The aggregating unit aggregates data based on a timestamp assigned to each piece of data.

[0227] [Configuration 2] 2. The information processing system according to configuration 1, further comprising a determination unit (430; 80) that determines a node to assign a timestamp to each piece of data stored in the database.

[0228] [Configuration 3] 3. The information processing system according to configuration 1 or 2, wherein at least some of the time management units included in at least some of the plurality of nodes are synchronized with each other.

[0229] [Configuration 4] 4. The information processing system according to any one of configurations 1 to 3, wherein the value of the timestamp to be assigned is corrected according to the delay time from the node that generates the data to the time management unit that assigns the timestamp to the data.

[0230] [Configuration 5] An information processing system according to any one of configurations 1 to 4, wherein an offset is set for at least a portion of the data stored in the database according to the path from the node that generates each data to the time management unit that assigns a timestamp to the data.

[0231] [Configuration 6] 6. The information processing system according to any one of configurations 1 to 5, wherein the database receives a communication frame (610; 620; 630) including a timestamp and one or more pieces of data.

[0232] [Configuration 7] 7. The information processing system according to any one of configurations 1 to 6, wherein the aggregation unit aggregates a plurality of data using a timestamp as a key.

[0233] [Configuration 8] 5. The information processing system according to any one of configurations 1 to 4, further comprising a management unit (440) that manages the state of the time management unit.

[0234] [Configuration 9] 9. The information processing system according to configuration 8, wherein the management unit manages information (4424; 4340) indicating the time source of the time management unit and information (4342) indicating the accuracy of the time source.

[0235] [Configuration 10] An information processing system according to any one of configurations 1 to 4, wherein a first node among the plurality of nodes calculates (S204) a period of data to be stored in the database in response to a recording start trigger (S202), and transmits the calculated period to other nodes (S206).

[0236] [Configuration 11] An information processing method executed in a system (1) comprising a database (2; 250; 500) and a plurality of nodes (4; 100; 200; 300; 350; 20; 30; 40; 50), a step (5; 115; 117; 211; 315; 317; 27) of at least some of the plurality of nodes managing time; generating, by at least some of the plurality of nodes, data to be stored in the database (350; 20; 30; 40; 50); a step (5; 115; 117; 211; 315; 317; 27) of assigning a timestamp to each piece of data stored in the database along the path from the node generating each piece of data to the database; A step (3; 270) of aggregating the plurality of data based on a timestamp assigned to each data; An information processing method comprising the step of storing aggregated data in the database.

[0237] [Configuration 12] The information processing method according to Configuration 8, further comprising the step of determining a node (430; 80) that assigns a time stamp to each of the data stored in the database.

[0238] <M. Advantage> According to the information processing system according to the present embodiment, even in a configuration including a plurality of nodes, the time of the generated data can be managed more accurately. By managing the time more accurately, time-series data can be analyzed and evaluated cross-sectionally and / or comprehensively, so that useful information that cannot be obtained only from local time-series data can be obtained.

[0239] The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.

Explanation of Reference Numerals

[0240] 1 Information processing system, 2,250 Database, 3 Aggregation unit, 4 Node, 5 Time management unit, 6 Field bus, 12 Remote input / output device, 14 Field network, 16 Information network, 20 Servo driver, 22 Servo motor, 24 Encoder, 26, 114, 314 Field network controller, 27, 37, 47, 115, 117, 211, 315, 317, 367 Timer, 28 Control module, 29 Interface circuit, 30 Sensor unit, 32 Sensor head, 40 Image processing unit, 42 Camera, 50 Audio processing unit, 52 Microphone, 60 Proximity sensor, 62, 64, 66, 68 Sensor, 70, 72, 74, 76, 78 Route, 80, 430 Decision engine, 90, 440 Management engine, 100 PLC, 102, 202, 302, 402 Processor, 104, 204, 304, 404 Memory, 106, 206, 306, 406 Storage, 108, 208, 412 USB controller, 110 Memory card interface, 112 Memory card, 116, 210, 414 Network controller, 120, 220, 320, 420 System program, 122 User program, 124, 224, 322, 432 Configuration information, 150, 350 Input / output unit, 216, 316 Internal bus controller, 222 Application program, 260 Buffer, 270 Aggregation engine, 300 Relay unit, 318 Internal bus, 370 Master unit, 400 Support device, 408 Input interface, 410 Display interface, 416 Optical drive, 418 Optical recording medium, 422 Support program, 424 Project data, 434 Time source information, 442 Timer management information, 450 Collection conditions, 500 Database server, 600, 610, 620, 630 Communication frame, 601, 611, 621, 631, 651, 652, 653, 654, 655, 656, 658, 659, 661, 662, 663, 671, 680, 681 Data, 602, 612, 622, 632, 641, 642, 643 Time stamp, 640 Video file, 4320 Variable name, 4322, 4420 Node number, 4340,4424 Time Source, 4342 Timer Precision, 4344 Format, 4422 Device Details, 4426 Status Value, 4428 Synchronization Establishment Date and Time.

Claims

1. A database, a plurality of nodes, at least some of the plurality of nodes configured to generate data to be stored in the database; an aggregation unit that aggregates data stored in the database, At least some of the plurality of nodes include a time management unit that manages time, A timestamp is assigned to each piece of data stored in the database by a time management unit located on a path from a node generating each piece of data to the database; The aggregating unit aggregates data based on a timestamp assigned to each piece of data.

2. The information processing system according to claim 1 , further comprising a determination unit that determines a node to assign a timestamp to each piece of data stored in the database.

3. The information processing system according to claim 1 , wherein at least some of the time management units included in at least some of the plurality of nodes are synchronized with each other.

4. 2. The information processing system according to claim 1, wherein the value of the timestamp to be added is corrected according to a delay time from a node that generates data to a time management unit that adds a timestamp to the data.

5. An information processing system according to any one of claims 1 to 4, wherein an offset is set for at least a portion of the data stored in the database according to the path from the node that generates each data to the time management unit that assigns a timestamp to the data.

6. 5. The information processing system according to claim 1, wherein the database receives a communication frame including a timestamp and one or more pieces of data.

7. 5. The information processing system according to claim 1, wherein the aggregation unit aggregates a plurality of data using a timestamp as a key.

8. 5. The information processing system according to claim 1, further comprising a management unit that manages the state of the time management unit.

9. The information processing system according to claim 8 , wherein the management unit manages information indicating a time source of the time management unit and information indicating accuracy of the time source.

10. An information processing system according to any one of claims 1 to 4, wherein a first node among the plurality of nodes calculates the period of data to be stored in the database in response to a recording start trigger and transmits the calculated period to other nodes.

11. An information processing method executed in a system including a database and a plurality of nodes, a step in which at least some of the plurality of nodes manage time; at least some of the plurality of nodes generating data to be stored in the database; A step of assigning a timestamp to each piece of data stored in the database along a path from a node generating each piece of data to the database; aggregating the plurality of data based on a timestamp assigned to each data; and storing the aggregated data in the database.

12. The information processing method according to claim 11, further comprising the step of determining a node that will add a timestamp to each piece of data stored in the database.

Citation Information

Patent Citations

  • Control device, logging method, and program

    JP2022180157A