Information processing system and information processing method
The information processing system addresses the challenge of managing time across multiple nodes by assigning timestamps along the data path, ensuring accurate time management and improved data utilization in industrial automation systems.
Patent Information
- Application Number
- PCT/JP2025/012382
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-28
- Filing Date
- 2025-03-27
- Publication Date
- 2025-10-02
AI Technical Summary
Existing industrial automation systems face challenges in accurately managing the time of generated data across multiple nodes, leading to inefficiencies in data management and analysis.
An information processing system that includes a database and nodes with time management units, where timestamps are assigned to data along the path from generation to storage, allowing for accurate time management and synchronization of data through synchronized time management units and correction of delay times.
The system enables precise time management of data across multiple nodes, enhancing data utilization and accuracy in industrial automation systems.
Smart Images

Figure JP2025012382_02102025_PF_FP_ABST
Abstract
Description
Information processing system and information processing method
[0001] The present invention relates to an information processing system and an information processing method.
[0002] When investigating the cause of an abnormality in an industrial automation system, it is necessary to check multiple pieces of data in an integrated manner rather than just one piece of data.
[0003] Patent Document 1 (Japanese Patent Application Laid-Open No. 2022-180157) 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.
[0004] Japanese Patent Application Publication No. 2022-180157
[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.
[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 a state of the time management unit. The management unit may manage information indicating a time source of the time management unit and information indicating accuracy of the time source.
[0016] 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.
[0017] 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.
[0018] The information processing method may further include a step of determining a node that will timestamp each piece of data stored in the database.
[0019] According to the present invention, even in a configuration including a plurality of nodes, the time of generated data can be managed more accurately.
[0020] FIG. 1 is a schematic diagram showing a main part of an information processing system according to the present embodiment. FIG. 1 is a schematic diagram showing an example of the overall configuration of an information processing system according to the present embodiment. FIG. 2 is a block diagram showing an example of the hardware configuration of a PLC (Programmable Logic Controller) according to the present embodiment. FIG. 3 is a block diagram showing an example of the hardware configuration of an IPC (Industrial Personal Computer) according to the present embodiment. FIG. 4 is a block diagram showing an example of the hardware configuration of a relay unit according to the present embodiment. FIG. 5 is a block diagram showing an example of the hardware configuration of a servo driver according to the present embodiment. FIG. 6 is a block diagram showing an example of the hardware configuration of a support device constituting the information processing system according to the present embodiment. FIG. 7 is a diagram showing an example of a communication frame used in the information processing system according to the present embodiment. FIG. 8 is a diagram showing an example of a file used in the information processing system according to the present embodiment. FIG. 9 is a schematic diagram showing an example of a process for assigning a timestamp in the information processing system according to the present embodiment. FIG. 10 is a schematic diagram showing another example of a process for assigning a timestamp in the information processing system according to the present embodiment. FIG. 11 is a flowchart showing a process procedure for determining a node to assign a timestamp in the information processing system according to the present embodiment. FIG. 12 is a schematic diagram showing an example of a configuration for managing the time indicated by a timestamp in the information processing system according to the present embodiment. FIG. 13 is a diagram showing an example of timer management information generated and updated in the information processing system according to the present embodiment. FIG. 1 is a schematic diagram showing an example of a functional configuration related to aggregation processing according to the present embodiment; FIG. 2 is a diagram for explaining an example of aggregation processing according to the present embodiment; FIG. 3 is a diagram for explaining another example of aggregation processing according to the present embodiment; FIG. 4 is a diagram for explaining an example of data collection according to collection conditions in an information processing system according to the present embodiment; and FIG. 5 is a schematic diagram showing an example of utilization of data stored in a database of the information processing system according to the present embodiment.
[0021] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in detail with reference to the accompanying drawings, in which the same or corresponding parts are designated by the same reference numerals and will not be described repeatedly.
[0022] <A. Application Example> First, an example of a situation in which the present invention is applied will be described.
[0023] 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.
[0024] In this specification, 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.
[0025] 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."
[0026] 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.
[0027] The data generated by the data generation node is transferred sequentially between nodes toward the database 2. Note that not all of the data generated by the data generation node needs to be stored in the database 2. In other words, at least a portion of the data generated by the data generation node is stored in the database 2.
[0028] 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 Figure 1, of 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."
[0029] The same node may function as both a data generation node and a time management node. In the example shown in Figure 1, node 4-5 belongs to both the data generation node and the time management node.
[0030] Furthermore, there may be multiple time management nodes along the path through which the same data is transferred to the database.
[0031] Each piece of data stored in the database 2 is given a timestamp by a time management unit 5 located on the path from the node that generates each piece of data (data generation node) to the 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 the database 2.
[0032] The aggregator 3 aggregates the data stored in the database 2. More specifically, the aggregator 3 aggregates the data based on the timestamp attached to each piece of data. The process of aggregating the data includes storing the data from each node as is in the database 2. Details of the process of aggregating the data will be described later.
[0033] In this way, in information processing system 1 according to the present embodiment, even if the system includes a plurality of nodes, a timestamp is assigned to each piece of data, so that the time of generated data can be managed more accurately.
[0034] <B. Example of Overall Configuration of Information Processing System> Next, an example of the overall configuration of information processing system 1 according to the present embodiment will be described.
[0035] 2 is a schematic diagram showing an example of the overall configuration of information processing system 1 according to the present embodiment. Referring to FIG. 2, information processing system 1 may function as an industrial automation system.
[0036] The information processing system 1 includes one or more PLCs 100-1, 100-2, ... (hereinafter also collectively referred to as "PLCs 100"). The PLCs 100 are an example of a control device and execute control processing for controlling production equipment. The control processing includes, for example, sequence control and motion control.
[0037] 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).
[0038] 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."
[0039] 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.
[0040] 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 made by the sensors (hereinafter also referred to as "measured values") is provided to PLC 100 and / or IPC 200 as "input data."
[0041] 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 arranged in production equipment, and move to a specified position, generate a specified force, etc. according to the "output data" provided by the PLC 100. The output data provided by the PLC 100 may include a command value or a target value.
[0042] 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.
[0043] The PLC 100 may include input / output units for receiving input data from sensors and sending output data to actuators.
[0044] A support device 400 may be connected to the PLC 100 for creating user programs and performing various settings.
[0045] In the overall configuration example shown in FIG. 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] Cameras 42-1 and 42-2 (hereinafter also collectively referred to as "cameras 42") are connected to the image processing units 40-1 and 40-2, respectively. The image processing units 40-1 and 40-2 transmit images (and sounds) captured by the cameras 42-1 and 42-2, respectively, to the PLC 100 as input data.
[0052] 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.
[0053] 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 a plurality of nodes.
[0054] 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.
[0055] 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).
[0056] The data stored in the database includes at least some of the input data, output data, and data generated and / or updated within PLC 100 and / or IPC 200 (hereinafter also referred to as "internal data").
[0057] The input data may include a safety input used for safety control. The output data may include a safety output used for safety control. In these cases, the information processing system 1 may include a safety controller. The safety controller conforms to a predetermined performance level (PL) defined in, for example, the international standard ISO 13849-1. The safety controller also has a predetermined safety integrity level (SIL) defined in IEC 61508.
[0058] The input data and / or output data may include, for example, trajectory data that indicates the behavior of the robot.
[0059] The internal data may include a system event log, a user event log, and an audit log.
[0060] In the information processing system 1, a timestamp is assigned to data stored in a database. The timestamp is assigned by any node on the path from the node that generates each piece of data to the database. The process of assigning the timestamp will be described in detail later.
[0061] <C. Example of Hardware Configuration> Next, an example of the hardware configuration of main devices of information processing system 1 according to the present embodiment will be described.
[0062] (c1: Example of Hardware Configuration of PLC 100) Fig. 3 is a block diagram showing an example of a hardware configuration of PLC 100 according to the present embodiment. Referring to Fig. 3, PLC 100 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.
[0063] The processor 102 reads out a program stored in the storage 106 , expands it into the memory 104 , and executes it to realize the processing required in the PLC 100 .
[0064] The memory 104 is a volatile memory such as a dynamic random access memory (DRAM) or a static random access memory (SRAM).
[0065] 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.
[0066] The system program 120 includes computer-readable instructions for executing basic processing of the PLC 100. The user program 122 includes computer-readable instructions for controlling production equipment. The setting information 124 includes settings for providing time stamps, as will be described later.
[0067] The USB controller 108 exchanges data with the support device 400 and the like in accordance with the USB standard.
[0068] 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.
[0069] 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.
[0070] 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.
[0071] (c2: Example of Hardware Configuration of IPC 200) Fig. 4 is a block diagram showing an example of a hardware configuration of IPC 200 according to the present embodiment. Referring to Fig. 4, IPC 200 includes a processor 202 such as a CPU and a GPU, a memory 204, a storage 206, a USB controller 208, and a network controller 210.
[0072] The processor 202 reads out a program stored in the storage 206 , expands it in the memory 204 , and executes it to realize the processing required by the IPC 200 .
[0073] 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.
[0074] 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.
[0075] The application programs 222 may include computer readable instructions for configuring a database in the IPC 200 .
[0076] The USB controller 208 exchanges data with the support device 400 and the like in accordance with the USB standard.
[0077] 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.
[0078] (c3: Example of Hardware Configuration of Relay Unit 300) Fig. 5 is a block diagram showing an example of a hardware configuration of the relay unit 300 according to the present embodiment. Referring to Fig. 5, the relay unit 300 includes a processor 302 such as a CPU and a GPU, a memory 304, a storage 306, a field network controller 314, and an internal bus controller 316.
[0079] The processor 302 reads out the system program stored in the storage 306 , loads it into the memory 304 , and executes it to realize the processing required in the relay unit 300 .
[0080] 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.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] (c4: Example of Hardware Configuration of Device Connected to Field Network 14) Fig. 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.
[0085] 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.
[0086] The control module 28 executes necessary processing in the servo driver 20. The control module 28 includes a processor, a memory, and a storage.
[0087] The interface circuit 29 exchanges signals with the servo motor 22 and the encoder 24 .
[0088] An example of the hardware configuration of the 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.
[0089] 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.
[0090] 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.
[0091] 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 .
[0092] 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.
[0093] 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.
[0094] 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.
[0095] The USB controller 412 exchanges data with the PLC 100 and the like in accordance with the USB standard.
[0096] The network controller 414 exchanges data with devices connected via a network.
[0097] The optical drive 416 reads data stored on an optical recording medium 418 such as a DVD (Digital Versatile Disc).
[0098] (c6: Database Server 500) The database server 500 according to this embodiment is configured using a general-purpose computer. The hardware configuration of a general-purpose computer is well known, so a detailed description will not be given here.
[0099] 3 to 7 show examples in which necessary processing is realized by a processor executing a program, but some or all of the functions handled by the processor may be replaced by a hardwired circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)). Also, a SoC (System on Chip) incorporating a processor may be employed.
[0100] In this specification, the term "processor" encompasses processors in the narrow sense, such as CPUs and GPUs, as well as hardwired circuits such as ASICs and FPGAs, DSPs (Digital Signal Processors), and AI (Artificial Intelligence) chips.
[0101] <D. Communication Frames and Files> Next, communication frames and files for transmitting data to which time stamps are added in information processing system 1 according to the present embodiment will be described.
[0102] FIG. 8 shows an example of a communication frame used in information processing system 1 according to the present embodiment.
[0103] 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.
[0104] 8B, 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.
[0105] 8C , 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).
[0106] 8(D), the 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. Since the timers held by each of the plurality of devices are synchronized with each other, the timing when the data 631 was measured can be uniquely calculated from the count value indicated by the timestamp 632.
[0107] FIG. 9 shows an example of a file used in information processing system 1 according to the present embodiment.
[0108] 9A, 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.
[0109] 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 the series of frames included in moving image file 640 can be uniquely calculated from timestamp 641 and timestamp 642.
[0110] 9C , 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.
[0111] 9(D), an additional information file 645 may be prepared in addition to the moving image 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 moving image file 640.
[0112] 9(E), an additional information file 646 may be prepared separately from the video file 640. The additional information file 646 includes, for example, a timestamp 641, a timestamp 642, and meta information 644.
[0113] 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 timestamp 643 and meta information 644.
[0114] As shown in Figures 8 and 9, one or more timestamps are assigned to one or more measurements. The timestamps may include values indicating actual time (and date and time), or may include count values indicated by timers synchronized with each other. The time (and date) may be expressed in any format (e.g., 12-hour format, 24-hour format, etc.). The timestamps may include values indicating a specific timing, or may include values indicating the length of a specific period.
[0115] The accuracy or granularity of the time indicated by the timestamp (for example, seconds, milliseconds, microseconds, etc.) may be set in any way. The accuracy or granularity of the time indicated by the timestamp attached to the data may be determined depending on the environment and device configuration for measuring the data.
[0116] As shown in Figures 8 and 9, the database receives communication frames and / or files that include a timestamp and one or more pieces of data.
[0117] <E. Adding a Timestamp> Next, an example of a process for adding a timestamp to data in the information processing system 1 will be described.
[0118] 10 is a schematic diagram showing an example of a process for assigning a time stamp in information processing system 1 according to the present embodiment. Referring to FIG.
[0119] 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 of generating 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.
[0120] 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.
[0121] 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 (e.g., 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.
[0122] A specific example will be described below with reference to FIG. 10 . Measurement values (data) generated by the sensor 62 are 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.
[0123] 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 data of the sensor 64 may be assigned a timestamp by the timer 367.
[0124] The 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.
[0125] 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 the 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.
[0126] 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. That is, 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.
[0127] 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.
[0128] 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 required for the data of the sensors 66, 68 to arrive at the relay unit 300.
[0129] 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. In other words, the relay unit 300 may assign a value obtained by subtracting a predetermined time (delay time) from the time (or count value) at which the timestamp is assigned as the timestamp.
[0130] The time required for the data from the sensors 66 and 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.
[0131] 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 portion 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.
[0132] For example, the node that assigns the timestamp (the relay unit 300 in the example configuration shown in FIG. 11) may assign an offset corresponding to the delay time to the data in addition to the timestamp (uncorrected).
[0133] Furthermore, when data is stored in a database, a corresponding offset may be associated with the data. Alternatively, an offset may be defined in advance for each piece of data, and when the data stored in the database is utilized, the timestamp may be corrected based on the corresponding offset.
[0134] By employing the process described above that reflects the delay time and offset, the time at which the sensor generates data can be managed more accurately.
[0135] <F. Determining the node responsible for assigning a timestamp> As described above, in the information processing system 1 according to the present embodiment, a node on the path from the node that generates the data to the database assigns a timestamp. Below, an example of a process for determining the node that will assign a timestamp to each piece of data will be described.
[0136] FIG. 12 is a schematic diagram showing an example of a configuration for determining a node to assign a timestamp in information processing system 1 according to the present embodiment.
[0137] 12A , the support device 400 has a decision engine 430 for determining which node should assign a timestamp. The decision engine 430 corresponds to a decision unit, and determines which node should assign a timestamp to each piece of data stored in the database through processing described below. The decision engine 430 outputs setting information 432 including the determined content. The setting information 432 is transmitted to the PLC 100 (and devices connected to the PLC 100). In accordance with the setting information 432, at least some of the nodes included in the information processing system 1 assign a timestamp to the data.
[0138] 12(B), the PLC 100 may include a decision engine 80. The decision engine 80 corresponds to a decision unit and determines or changes the node that assigns a timestamp. In response to data being added or changed to the database, the decision engine 80 determines or changes the node that assigns 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.
[0139] 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.
[0140] The configuration information 432 may be sent to the IPC 200. The decision engine 80 may be located in the IPC 200.
[0141] 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.
[0142] For ease of explanation, an example will be described in which the support device 400 executes 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 execute the processing of Figure 13 (corresponding to the decision engine 80 of the IPC 200 shown in Figure 12 (B)).
[0143] 13, support device 400 acquires a list of data to be stored in the database (step S100), and selects one piece of data from the acquired list of data (step S102).
[0144] 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).
[0145] 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.
[0146] 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.
[0147] 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.
[0148] The support device 400 determines the format of the communication frame for the selected data (step S110).
[0149] The support device 400 determines whether all 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 in the list of acquired data (step S114) and repeats the processing from step S104 onwards.
[0150] If all data in the acquired data list 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 determined for each data (step S116). The support device 400 transmits the generated setting information 432 to the IPC 200 (step S118). The IPC 200 changes the setting in accordance with the setting information 432. Then, the process ends.
[0151] Meta-information may be prepared as advance information for determining the nodes that will assign timestamps as described above. When the nodes that will assign timestamps are determined in advance, the meta-information is provided to the decision engine 80. The setting information 432 may include meta-information so that the nodes that will assign timestamps can be dynamically determined or changed.
[0152] The meta-information may include, for example, a specification of the type of timer that will be used as the master timestamp, its identification information, and the required accuracy. The meta-information may also include evaluation criteria (e.g., selection of the closest node, specification of the required accuracy, specification of the maximum allowed load, etc.).
[0153] <G. Management of Time Indicated by Timestamp> As described above, in the information processing system 1 according to the present embodiment, a timestamp is assigned to each piece of data by a specific node. The time indicated by the assigned timestamp may be managed. The time management may include, for example, management of a synchronization state, management of nodes that serve as information sources, and management of accuracy.
[0154] 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.
[0155] 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.
[0156] 14A, the support device 400 has a management engine 440 for managing the time indicated by the timestamp. The management engine 440 generates and updates timer management information 442 for managing the time for each node to which a timestamp is assigned.
[0157] 14B, 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.
[0158] In this way, the management engine 440 manages the state of the time management unit 5 (time management node).
[0159] 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.
[0160] 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 .
[0161] 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 (e.g., 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.
[0162] The node number 4420 and the device details 4422 may be set in advance by referring to system configuration information (not shown).
[0163] The timer management information 442 shown in FIG. 15 may be referenced in processing in the PLC 100 and / or the IPC 200, or may be presented to the user via the support device 400.
[0164] 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.
[0165] 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.
[0166] 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 information source (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, the format 4344 stores TAI time, an EtherCAT (registered trademark) timestamp, JST (Japan Standard Time), etc.
[0167] In this way, the management engine 440 may manage information indicating the time source of the time management unit 5 (time management node) (time source 4424) and information indicating the accuracy of the time source (timer accuracy 4342).
[0168] 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. In this way, the management engine 440 (management engine 90) can manage the node that serves as the information source and the 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.
[0169] 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.
[0170] <H. Aggregation Processing> Next, an example of aggregation processing executed to store data in a database will be described.
[0171] Even if data are timestamped with the same time, the time it takes to reach the database may differ depending on the path of each data. In the information processing system 1 according to this embodiment, since each data is timestamped, it is possible to, for example, aggregate multiple data that have been timestamped with the same time and store them in a database.
[0172] FIG. 16 is a schematic diagram showing an example of a functional configuration related to aggregation processing according to this embodiment. Referring to FIG. 16, an aggregation engine 270 is provided in association with a database (e.g., database 250 or database server 500). The aggregation engine 270 corresponds to the aggregation unit 3 and aggregates data stored in the database. The aggregation engine 270 is connected to a buffer 260 that temporarily stores data transmitted from nodes. In this manner, the aggregation engine 270 executes a process of aggregating multiple data based on the timestamp assigned to each data. The database then executes a process of storing the aggregated data.
[0173] The aggregation engine 270 aggregates one or more pieces of data temporarily stored in the buffer 260 and stores the aggregated data in a database. The aggregation engine 270 aggregates the data based on the timestamp assigned to each piece of data.
[0174] The buffer 260 and the aggregation engine 270 may be located in the same device as the database or in a different device, i.e., the buffer 260 and the aggregation engine 270 are located on the path from the node that generates the data to the database.
[0175] The following describes the aggregation process executed by aggregation engine 270. Fig. 17 is a diagram for explaining an example of the aggregation process according to this embodiment.
[0176] 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. Each of the data 651 to 659 is assigned a timestamp, so 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, so these three data can be aggregated into a single data 661.
[0177] Similarly, since the data 653 and data 658 are assigned timestamps indicating the same value, these two data can be aggregated into one data 662 .
[0178] Similarly, since the data 655 , 656 , and 659 are assigned timestamps that indicate the same value, these two pieces of data can be aggregated into one piece of data 663 .
[0179] 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.
[0180] 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.
[0181] For example, if data is transmitted with a timestamp in 100 millisecond increments, and the data is stored in a database every second, 10 pieces of data are 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.
[0182] 18 is a diagram illustrating another example of aggregation processing 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 the values indicated by the ten data 671 to 680.
[0183] 18 shows an example in which an average value is calculated as a feature amount. The aggregation engine 270 aggregates the value obtained by averaging the values indicated by the data 671 to 680 as data 681. The aggregated data 681 is stored in a database.
[0184] The aggregation process may include any process for calculating feature quantities, such as maximum values, minimum values, median values, and standard deviations.
[0185] 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.
[0186] The aggregation engine 270 may apply a mechanism for preventing data tampering to the aggregated data 681. The aggregation engine 270 may also apply a mechanism for detecting data tampering by a third party to the aggregated data 681. A known data protection description may be used as a mechanism for preventing data tampering. A method for detecting data tampering by a third party may be used, such as adding a cyclic redundancy check (CRC) or an electronic signature (e.g., an MD5 algorithm) to the data.
[0187] <I. Data Collection> In the information processing system 1, the data stored in the database (database 250 of IPC 200 and / or database server 500) may be predetermined. Each piece of the predetermined data may be cyclically transmitted to the database at a predetermined cycle. Alternatively, each piece of the predetermined data may be transmitted to the database in response to an arbitrary trigger.
[0188] Each node may have a buffer for storing time-series data. According to a predetermined setting and / or an arbitrary command, each node may transmit some or all of the time-series data stored in the buffer to a specified destination. The data may be written sequentially to a database, or may be converted into a file and transmitted to a file server or the like.
[0189] The data to be transmitted to the node holding the buffer may be generated in accordance with the communication frame 600 shown in Fig. 8. The data generated by the node holding the buffer itself may be converted into a file and transmitted, or may be written directly to a database, instead of being transferred using the communication frame 600 shown in Fig. 8.
[0190] 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.
[0191] 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 a 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.
[0192] A plurality of nodes may cooperate to store time-series data in a database according to preset collection conditions.
[0193] 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. Referring to FIG. 19, a user operates support device 400 to create collection conditions 450.
[0194] 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.
[0195] 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 a predetermined time in the past from the trigger timing (pre-trigger), or a period a predetermined time in the future from the trigger timing (post-trigger). The collection period may also start a predetermined time later than the trigger timing.
[0196] An available database or file server may be specified as the storage destination. The notification setting is a setting for notifying other nodes of the collection period. If only a specific node can determine that 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 spans multiple nodes, the necessary time-series data can be extracted after the fact and stored in a database.
[0197] As an example, the IPC 200, the PLC 100-1, and the PLC 100-2 collect data. Fig. 19 shows an example in which the IPC 200 issues a trigger.
[0198] The collection conditions 450 created by the user operating the support device 400 are transmitted to each of the IPC 200, the PLC 100-1, and the PLC 100-2. Each of the IPC 200, the PLC 100-1, and the 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, the PLC 100-1, and the PLC 100-2 may be common or may be generated for each device.
[0199] Each of the IPC 200, the PLC 100-1, and the 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, the PLC 100-1, and the PLC 100-2 may discard time-series data that exceeds a predetermined data amount, starting with the oldest data.
[0200] 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.
[0201] 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.
[0202] In this way, a specific node among the multiple nodes (IPC200 in the example shown in Figure 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 Figure 9).
[0203] The IPC 200 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 IPC 200 transmits the filed time-series data to a database (step S212). Note that the file-creation process in step S210 may be omitted.
[0204] Similarly, each of the PLCs 100-1 and 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 the PLCs 100-1 and 100-2 transmits the filed time-series data to a database (step S308). Note that the file creation process in step S306 may be omitted.
[0205] The database stores the time series data received from each node (step S400). Attribute information may be added to the time series data transmitted from each node. The database stores the time series data together with the attribute information.
[0206] When either the PLC 100-1 or the 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.
[0207] 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 results 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.
[0208] When attribute information is stored in the database together with the time-series data, the attribute information may be presented to a user. Also, a function for filtering the 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 status of a timer and / or the time accuracy, a filtering result using an AND / OR condition for this information may be presented to a user.
[0209] If the attribute information includes a timer identifier indicating a time source, the error between timestamps (e.g., the time difference between unsynchronized timers or the difference in time zones) may be presented to the user. The user can perform filtering processing taking into account the error between the presented timestamps. For example, a trigger condition that reflects the error between the presented timestamps may be configurable.
[0210] Although FIG. 19 shows an example in which time-series data is transmitted to a database, the time-series data may be converted into features and the results transmitted to the database.
[0211] <J. Utilization of Data Stored in a Database> Next, utilization of data stored in a database will be described. In the information processing system 1 according to this embodiment, data is aggregated based on timestamps and then stored in a database. Therefore, multiple types of data can be reproduced on a common time axis.
[0212] 20 is a schematic diagram showing an example of utilization of 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.
[0213] The correspondence on the time axis shown in FIG. 20 is based on the timestamp assigned to each data item. When a desired time is specified, the variables and video at the specified time are displayed together. The user can check both the values of one or more variables at a desired time and the video at that time, which makes it easier to investigate the cause of an abnormality, for example. In other words, by correlating multiple types of data on a common time axis and providing the user with the associated data, the user's work to investigate the cause can be supported.
[0214] 20 , multiple pieces of time-series data can be viewed in a composite manner in the information processing system 1. The user may be able to arbitrarily select one or more pieces of time-series data to be displayed on a common time axis.
[0215] In information processing system 1 according to the present embodiment, the time at which each piece of data was generated can be identified, so that multiple types of data can be more easily evaluated on a common time axis.
[0216] Utilization of data stored in a database can include not only data association as shown in FIG. 20 but also various display processes and statistical processes.
[0217] To facilitate the utilization of data stored in a database, the database may be constructed in accordance with the Asset Administration Shell, a data model standard. For example, the database may store time series data in the format of the Asset Administration Shell's time series data submodel. The data can be managed using the Asset Administration Shell interface.
[0218] <K. Modifications> In the above description, attention has been focused mainly on assigning timestamps to input data and output data, but timestamps may be assigned to internal data by PLC 100 or IPC 200. Alternatively, no timestamp may be assigned to internal data, and when the internal data is stored in a database, a record corresponding to the timestamp to be assigned may be determined as the storage destination for the data.
[0219] In the above description, a timer for synchronizing time has been exemplified as the time management unit 5 that manages time, but the time management unit 5 may also 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). In other words, the time management unit 5 may be realized using any hardware resources as long as it can manage the time required to assign a timestamp.
[0220] Although the above description shows an example of a configuration in which the PLC 100 and the IPC 200 are independent, they may be integrated. For example, the functions of the PLC 100 and the IPC 200 may be implemented in a single housing. Alternatively, a unit implementing the functions of the PLC 100 and a unit implementing the functions of the IPC 200 may be provided, which are connectable to each other. In this case, the multiple units may be connected via an internal bus.
[0221] <L. Supplementary Note> The present embodiment as described above includes the following technical idea.
[0222] [Configuration 1] An information processing system comprising: a database (2; 250; 500); and a plurality of nodes (4; 100; 200; 300; 350; 20; 30; 40; 50), at least some of the plurality of nodes (350; 20; 30; 40; 50) are configured to generate data to be stored in the database; an aggregator (3; 270) that aggregates the data to be stored in the database; at least some of the plurality of nodes include time management units (5; 115; 117; 211; 315; 317; 27) that manage 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; and the aggregator aggregates the data based on the timestamp assigned to each piece of data.
[0223] [Configuration 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.
[0224] [Configuration 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.
[0225] [Configuration 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.
[0226] [Configuration 5] The 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 piece of data to a time management unit that assigns a timestamp to the data.
[0227] [Configuration 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.
[0228] [Configuration 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.
[0229] [Configuration 8] 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.
[0230] [Configuration 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.
[0231] [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 (S206) the calculated period to other nodes.
[0232] [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), the information processing method comprising: a step (5; 115; 117; 211; 315; 317; 27) of at least some of the plurality of nodes managing time; a step (350; 20; 30; 40; 50) of at least some of the plurality of nodes generating data to be stored in the database; a step (5; 115; 117; 211; 315; 317; 27) of assigning a timestamp to each piece of data to be stored in the database along the path from the node that generates each piece of data to the database; a step (3; 270) of aggregating the plurality of pieces of data based on the timestamp assigned to each piece of data; and a step of storing the aggregated data in the database.
[0233] [Configuration 12] The information processing method according to Configuration 8, further comprising the step of determining (430; 80) a node that will timestamp each piece of data stored in the database.
[0234] <M. Advantages> According to the information processing system according to the present embodiment, even in a configuration including multiple nodes, the time of generated data can be managed more accurately. By managing time more accurately, time series data can be analyzed and evaluated in a cross-sectional and / or composite manner, thereby obtaining useful information that cannot be obtained from local time series data alone.
[0235] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims.
[0236] 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. An information processing system comprising: a database; and a plurality of nodes, at least some of which are configured to generate data to be stored in the database; an aggregation unit that aggregates the data to be stored in the database; at least some of which 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; and the aggregation unit aggregates the data based on the 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. An information processing system according to claim 1, 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.
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 piece of data to the time management unit that assigns a timestamp to the data.
6. An information processing system according to any one of claims 1 to 4, wherein the database receives a communication frame including a timestamp and one or more pieces of data.
7. An information processing system according to any one of claims 1 to 4, wherein the aggregation unit aggregates multiple pieces of data using a timestamp as a key.
8. An information processing system according to any one of claims 1 to 4, further comprising a management unit that manages the state of said time management unit.
9. The information processing system according to claim 8, wherein the management unit manages information indicating the time source of the time management unit and information indicating the 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 comprising a database and a plurality of nodes, comprising the steps of: at least some of the plurality of nodes managing time; at least some of the plurality of nodes generating data to be stored in the database; assigning a timestamp to each piece of data to be stored in the database along the path from the node generating 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.
12. The information processing method according to claim 11, further comprising the step of determining a node that will assign a timestamp to each piece of data stored in the database.
Citation Information
Patent Citations
Control device, logging method, and program
JP2022180157A
Process system
JP2006276958A
Data recording device and method
JP2016081316A
Data collection device, data collection system, data server, data collection method, data collection program, and recording medium
JP2018185781A
Safety controller and history display device
JP2021082029A