Data delivery control apparatus, method, and program

A collector (110) included in a data delivery control apparatus (100) collects data from a PLC (603, 604) and outputs the data to which collection time information indicating collection time is added. A validity determiner (140) determines whether the data is valid based on whether the collection time indicated by the collection time information added to the data is at or later than a starting time indicating a time at which a data sequence as a preset data processing sequence is started. A deliverer (130) delivers the data in accordance with a data sequence setting defining the data sequence in response to validity determination means determining that the data is valid.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is based on PCT filing PCT/JP2018/048336, filed Dec. 27, 2018, the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to a data delivery control apparatus, a method, and a program.

BACKGROUND ART

Patent Literature 1 describes a data processing apparatus that analyzes time-series data sequentially accumulated in a file to detect a specific event. Upon stopping processing, this data processing apparatus deletes data accumulated in the file and then restarts the processing to avoid operating erroneously by processing unintended data that may be accumulated in the file while the data processing apparatus is stopped. Unintended data not to be processed by the data processing apparatus may be, for example, abnormal data that may be accumulated in the file or accumulated data in the file that may be corrupted due to abnormalities while the data processing apparatus is stopped.

CITATION LIST

Patent Literature

Patent Literature 1: Unexamined Japanese Patent Application Publication No. 2011-174795

SUMMARY OF INVENTION

Technical Problem

Patent Literature 1 describes one application of the data processing apparatus that processes input data and outputs the results. However, complex processing may be divided into multiple steps, and the steps may be assigned to multiple applications included in one or more apparatuses. For example, to detect any failure in a factory automation (FA) device used in a factory production line, data collected from the FA device may be used to diagnose the FA device. This involves preprocessing before analyzing data collected from the FA device, analyzing the data collected from the FA device, and diagnosing the FA device based on the analysis result.

FIG. 8is a diagram of a processing example of multiple steps assigned to multiple processors. In the illustrated example, data collected from a target T to be diagnosed is stored in a file F, and a data processor101performs preprocessing on data stored in the file F. A data processor102analyzes data output by the data processor101, and outputs the analysis result. Based on the analysis result output by the data processor102, a data processor103diagnoses the target T. The functions of the data processor101, the data processor102, and the data processor103are implemented by different applications.

As illustrated, when multiple data processors perform a series of processing, a data sequence indicating the details of each step of processing and the processing sequence is predefined, and the predefined data is stored in each of apparatuses that implement the data processors or an apparatus that controls the data sequence. Each data processor performs processing in accordance with the data sequence. To change the details of the data sequence, a user may temporarily stop the data sequence without stopping the data processors101to103. Also, after data accumulated in the file F is deleted before the processing is restarted with the method described in Patent Literature 1, data is sequentially transferred to each data processor in the structure shown inFIG. 8. Thus, unprocessed data may remain in the data processors102and103when the user temporarily stops the processing of the data processors101to103.

Once the processing is restarted, the data processors102and103first process the remaining data. However, with the details of the data sequence being changed, the data remaining in the data processors102and103may be changed to data not to be processed, or invalid data. The data processors102and103may then process such invalid data, causing the data processor103to feed a wrong diagnosis back to the target T to be diagnosed. This may be avoided by controlling data delivery to data processors to prevent processing of data accumulated before the restart of processing.

In response to the above issue, an objective of the present disclosure is to control data delivery to prevent processing of invalid data not to be processed by a data processor.

Solution to Problem

To achieve the above objective, in a data delivery control apparatus according to an aspect of the present disclosure, collection means collects data from a device and outputs the data to which collection time information indicating collection time is added. Validity determination means determines whether the data is valid based on whether the collection time indicated by the collection time information added to the data is at or later than a starting time indicating a time at which a data sequence as a preset data processing sequence is started. Delivery means delivers the data in accordance with a data sequence setting defining the data sequence in response to the validity determination means determining that the data is valid.

Advantageous Effects of Invention

The data delivery control apparatus according to the above aspect of the present disclosure determines whether data is valid based on whether a collection time at which the data is collected from a device is at or later than a time at which a data sequence, that is, a preset data processing sequence, starts. When determining that the data is valid, the data delivery control apparatus delivers the data in accordance with a data sequence setting that defines the data sequence. Such control of data delivery can prevent the data processor from processing invalid data.

DESCRIPTION OF EMBODIMENTS

Embodiment

A data delivery control apparatus according to an embodiment of the present disclosure will now be described in detail with reference to the drawings.

A data delivery control apparatus100shown inFIG. 1is included in a diagnosis system1that diagnoses devices in a factory for, for example, preventive or predictive maintenance of the devices in the factory. An overview of the diagnosis system1will be provided.

The diagnosis system1collects data from FA devices601and602in a factory, diagnoses the FA devices601and602based on the collected data, and feeds the diagnoses back to the FA devices601and602.

The diagnosis system1includes a data delivery control apparatus100that collects data output by the FA devices601and602in the factory and controls delivery of the collected data, a data processing apparatus400that performs analytical and diagnostic processing on data provided from the data delivery control apparatus100, and a maintenance tool500with which a user operates the data delivery control apparatus100. Examples of the data delivery control apparatus100include an industrial personal computer (IPC) installed in the same factory as the factory where the FA devices601and602are installed. A server computer installed outside the factory is used as the data processing apparatus400. A personal computer having a dedicated application installed and located in the same factory as the factory where the FA devices601and602is used as the maintenance tool500.

The FA devices601and602are targets to be diagnosed by the diagnosis system1, and are mechanical apparatuses used in a production line in the factory. The FA devices601and602include various sensors including a vibration sensor, a temperature sensor, a pressure sensor, and a flow rate sensor. A programmable logic controller603(hereafter a PLC603) controls the FA device601. A programmable logic controller604(hereafter a PLC604) controls the FA device602. Output values from sensors installed in the FA device601are provided to the PLC603. Output values from sensors installed in the FA device602are provided to the PLC604.

The data delivery control apparatus100can communicate with the FA devices601and602and the PLCs603and604with a network701. The network701is in accordance with a fieldbus standard. The data delivery control apparatus100collects data of output values of the sensors installed in the FA device601through the PLC603. The data delivery control apparatus100collects data of output values of the sensors installed in the FA device602through the PLC604.

The data delivery control apparatus100communicates with the data processing apparatus400with a network702. For example, the network702is in accordance with a standard such as 10BASE-T or 100BASE-T. The data delivery control apparatus100delivers data collected from the FA devices601and602to the data processing apparatus400. Before delivering data collected from the FA devices601and602to the data processing apparatus400, the data delivery control apparatus100performs, on the collected data, preprocessing for analytical and diagnostic processing performed by the data processing apparatus400.

The data processing apparatus400performs analytical and diagnostic processing on data provided from the data delivery control apparatus100, and transmits the diagnoses for the FA devices601and602to the data delivery control apparatus100. Examples of the diagnoses include alert information alerting that the FA devices601and602deteriorate and are to undergo maintenance before failures can occur. The data delivery control apparatus100transmits the diagnoses received from the data processing apparatus400to the PLCs603and604.

The data delivery control apparatus100thus controls data delivery between the PLCs603and604and the data processing apparatus400. The data collected from the FA devices601and602is processed in multiple steps. Thus, the data delivery control apparatus100includes data indicating data sequence settings predefined for the details of each step and the sequence of the steps. The data sequence is herein a preset data processing sequence. The data delivery control apparatus100delivers data to a destination indicated by the data sequence settings.

The maintenance tool500is used by the user to operate the data delivery control apparatus100. The user registers data sequence settings to the data delivery control apparatus100through the maintenance tool500, and changes data indicating the data sequence settings registered to the data delivery control apparatus100. The user is herein, for example, a manager of the diagnosis system1.

For example, a change of the specifications of collected data may change the preprocessing performed by the data delivery control apparatus100and the data sequence settings. To change the data sequence settings, the user first stops processing performed by the data delivery control apparatus100. After changing the data sequence settings of the data delivery control apparatus100, the user restarts delivery processing of the data delivery control apparatus100. In this case, data delivered from the data delivery control apparatus100before the change of the data sequence settings may be accumulated in the data processing apparatus400. When the user cannot delete data delivered before the change of the data sequence settings from the data processing apparatus400because the data processing apparatus400is in another factory, the data processing apparatus400is a cloud server, or for any other reasons, the data processing apparatus400may process the data delivered before the change of the data sequence settings and transmit the diagnosis to the data delivery control apparatus100also after the change of the data sequence settings. This may cause a malfunction of the PLCs603and604.

Thus, the data delivery control apparatus100according to the embodiment has the characteristics below. The data delivery control apparatus100stops transmission, to the data processing apparatus400, of data collected from the PLCs603and604and not to be processed by the data processing apparatus400. The data delivery control apparatus100also stops transmission, to the PLCs603and604, of data received from the data processing apparatus400and not to be received by the PLCs603and604.

More specifically, in response to an instruction from a user, the data delivery control apparatus100handles the data collected before the time at which collection and delivery processing is started as invalid data not to be processed, and discards the data.

In contrast, the data delivery control apparatus100handles data collected at or after the time at which collection and delivery processing is started as valid data to be processed, and delivers the data to a set destination. In the embodiment, the time at which the data delivery control apparatus100starts collection and delivery processing is referred to as the start time. A series of processing including collection and delivery processing performed by the data delivery control apparatus100may hereafter be referred to as a sequence. The time point at which the data delivery control apparatus100starts the sequence is an example of a starting point in the present disclosure.

The hardware configuration of each apparatus included in the diagnosis system1will now be described. As shown inFIG. 2, the data delivery control apparatus100includes, as hardware components, a memory11that stores various programs and data, a fieldbus interface12that communicates with other apparatuses with the network701, an information network interface13that communicates with other apparatuses with the network702, and a central processing unit (CPU)14that centrally controls the data delivery control apparatus100. The memory11, the fieldbus interface12, and the information network interface13are connected to the CPU14with a bus19to communicate with the CPU14.

The memory11includes a volatile memory and a nonvolatile memory. The memory11stores programs for implementing various functions of the data delivery control apparatus100. More specifically, the memory11stores a collection program111, a delivery control program112, a delivery program113, and a processing program114. The memory11is used as a work memory for the CPU14.

The collection program111causes the data delivery control apparatus100to collect data from the PLCs603and604. The delivery control program112causes the data delivery control apparatus100to control delivery. The delivery program113causes the data delivery control apparatus100to deliver data to a designated destination. The processing program114causes the data delivery control apparatus100to perform predetermined processing on data. Examples of predetermined processing include missing value processing and outlier processing.

The fieldbus interface12includes a network interface circuit, and communicates with the PLCs603and604with the network701as controlled by the CPU14.

The information network interface13includes a network interface circuit, and communicates with the data processing apparatus400and the maintenance tool500with the network702as controlled by the CPU14.

The CPU14executes various programs stored in the memory11, and implements various functions of the data delivery control apparatus100. More specifically, the CPU14executes the collection program111to collect data from the PLCs603and604. The CPU14executes the delivery control program112to control data delivery between the data processing apparatus400and the PLCs603and604. The CPU14executes the delivery program113to deliver data. The CPU14executes the processing program114to process data.

The data processing apparatus400includes, as hardware components, a memory41that stores various programs and data, a communication interface42that communicates with other apparatuses with the network702, and a CPU43that centrally controls the data processing apparatus400. The memory41and the communication interface42are connected to the CPU43with a bus49to communicate with the CPU43.

The memory41includes a volatile memory and a nonvolatile memory. The memory41stores a program for implementing various functions of the data processing apparatus400. The memory41is used as a work memory for the CPU43. More specifically, the memory41stores an analysis diagnostic program411. The analysis diagnostic program411causes the data processing apparatus400to perform analytical and diagnostic processing of data provided from the data delivery control apparatus100.

The communication interface42includes a network interface circuit, and communicates with the data delivery control apparatus100and the maintenance tool500with the network702as controlled by the CPU43.

The CPU43executes various programs stored in the memory41to implement various functions of the data processing apparatus400. More specifically, the CPU43executes the analysis diagnostic program411to analyze data provided from the data delivery control apparatus100and diagnose the FA devices601and602based on the analysis result.

The maintenance tool500includes, as hardware components, a memory51that stores various programs and data, a communication interface52that communicates with other apparatuses with the network702, an input device53that detects input operations of the user, a display device54that outputs images, and a CPU55that centrally controls the maintenance tool500. The memory51, the communication interface52, the input device53, and the display device54are connected to the CPU55with a bus59to communicate with the CPU55.

The memory51includes a volatile memory and a nonvolatile memory. The memory51stores a program for implementing various functions of the maintenance tool500. More specifically, the memory51stores a maintenance program511. The memory51is used as a work memory for the CPU55.

The maintenance program511is a program to implement, in accordance with an operation instruction from the user, the function of transmitting a processing start instruction relating to data collection and delivery control to the data delivery control apparatus100, and the function of registering data indicating the data sequence settings to the data delivery control apparatus100.

The communication interface52includes a network interface circuit, and communicates with the data delivery control apparatus100and the data processing apparatus400with the network702as controlled by the CPU55. The input device53includes a mouse and operation keys, receives operation inputs from the user, and outputs signals indicating the operation inputs from the user to the CPU55. The display device54includes a display, and displays images based on the signal provided from the CPU55on the display.

The CPU55executes various programs stored in the memory51and implements various functions of the maintenance tool500.

The functional components of the data delivery control apparatus100will now be described with reference toFIG. 1. InFIG. 1, arrows drawn with solid lines denote data flow, and arrows drawn with broken lines and a dash-dot-dash line denote the transfer of control signals.

The data delivery control apparatus100includes, as functional components, collectors110that collect data from designated data collection targets, a collection setting storage120that stores data indicating the setting details for data collection, a deliverer130that delivers data to a designated destination, a validity determiner140that determines validity of data transferred through the data delivery control apparatus100, a data sequence setting storage150that stores data indicating the setting details for a data sequence, a data processor160that performs defined data processing, and an execution controller170that controls execution of each component in the data delivery control apparatus100in response to an instruction from the user.

The collectors110collect data acquired by the sensors installed in the FA devices601and602from the PLCs603and604. Each collector110adds time information indicating the time at which data is collected to the collected data, and transmits the data to which the time information is added to the deliverer130. Upon receiving a signal instructing start of collection processing from the execution controller170, the collector110starts collection processing, and collects data at collection intervals designated from the designated target in accordance with the settings on the collection processing stored in the collection setting storage120. For example, the collector110performs first data collection when the time indicated by the designated collection interval has elapsed after receiving the signal instructing start of data collection processing from the execution controller170. Thereafter, every after the time indicated by the designated collection interval elapses, the collector110performs data collection. The function of the collector110is implemented by the CPU14shown inFIG. 2executing the collection program111. The collector110is an example of collection means according to the present disclosure.

The collection setting storage120shown inFIG. 1stores data indicating the details of the settings of the data collection processing performed by the collector110. This data may also be referred to as collection setting data. The collection setting data includes information designated by the user, including information identifying the data collection target, information identifying data to be collected, the collection interval at which data is collected, and information identifying the collection program111for performing collection processing. The user stores the collection setting data into the collection setting storage120with the maintenance tool500.

FIG. 3shows examples of data stored in the collection setting storage120. The data includes a device name of the device serving as a data collection target, the data name, the setting details, the execution file name, and the path. The device name and the setting details are designated by the user. The setting details include a data name that identifies the data to be collected, an Internet protocol (IP) address and a port number for identifying the data collection target device, the location of data to be collected, and the data type and data length of data to be collected.

The location of data to be collected includes information identifying the area in which the target data is stored in the memory area of the PLC603or604. To collect data within a specific range in the memory area, the location includes the value indicating the first data position within the range, and the value indicating the last data position within the range. The execution file name and the path included in the collection setting data are information for identifying the program that implements the function of the collector110shown inFIG. 1, and are the file name and the path of the execution file of the collection program111shown inFIG. 2. The function of the collection setting storage120is implemented by the memory11shown inFIG. 2.

The deliverer130shown inFIG. 1delivers data to the designated destination. More specifically, the deliverer130transmits data received from the collectors110and the data processing apparatus400to the validity determiner140. The deliverer130also delivers data provided from the validity determiner140to the designated destination. This is because the validity determiner140determines the data validity, and provides the data that is determined to be valid to the deliverer130together with destination information indicating the destination. The destinations designated by the validity determiner140include the data processing apparatus400and the PLCs603and604. The function of the deliverer130is implemented by the CPU14shown inFIG. 2executing the delivery program113. The deliverer130is an example of delivery means according to the present disclosure.

The validity determiner140determines whether data provided from the deliverer130is valid, and transmits the data determined to be valid to the next destination through the deliverer130. The function of the validity determiner140is implemented by the CPU14shown inFIG. 2executing the delivery control program112. The validity determiner140is an example of validity determination means according to the present disclosure.

The validity determiner140will now be described in detail. The validity determiner140shown inFIG. 1includes a converter141that converts data, a delivery controller142that controls delivery, and a time determiner143that acquires time information added to data.

The converter141converts data that has arrived at the data delivery control apparatus100from outside, and data to be transmitted from the data delivery control apparatus100to the outside.

More specifically, when the data provided from the deliverer130is the data received from the PLCs603and604, the converter141converts the data into a predetermined internal format for the data delivery control apparatus100, and outputs the resultant data to the delivery controller142. This is due to the reasons below. The data delivery control apparatus100and the PLCs603and604exchange data with the network701. Thus, data received by the deliverer130from the PLCs603and604is data in a format converted for the data exchange with the network701. This is because the data delivery control apparatus100may fail to process data received by the converter141from the PLCs603and604unless the data format is converted into the internal format determined for the data delivery control apparatus100.

When the data provided from the deliverer130is the data received from the data processing apparatus400, the converter141converts the data format into the internal format determined for the data delivery control apparatus100, and outputs the resultant data to the delivery controller142. This is due to the reasons below. The data delivery control apparatus100and the data processing apparatus400exchange data with the network702. Thus, data received by the deliverer130from the data processing apparatus400is data in a format converted for the data exchange with the network702. Thus, the data delivery control apparatus100may fail to process data received by the converter141from the data processing apparatus400unless the data is converted into the internal format determined for the data delivery control apparatus100.

When the data provided from the delivery controller142is the data addressed to the PLCs603and604, the converter141converts the data format into the internal format determined for the PLCs603and604, and outputs the resultant data to the deliverer130.

When the data provided from the delivery controller142is the data addressed to the data processing apparatus400, the converter141converts the data format into the data exchange format, and outputs the resultant data to the deliverer130.

The delivery controller142determines whether data provided from the converter141is valid. More specifically, the delivery controller142outputs the data to the time determiner143to determine whether the collection time of the data provided from the converter141is at or later than the start time. The start time is prestored in the memory11by the execution controller170(described later).

When the determination result output by the time determiner143indicates that the data collection time is at or later than the start time, the delivery controller142determines that the data is valid. When the determination result output by the time determiner143indicates that the data collection time is earlier than the start time, the delivery controller142determines that the data is invalid. This is because the data delivery control apparatus100handles the data collected earlier than the start time as invalid data in the embodiment.

When determining that the data is valid, the delivery controller142delivers the data to the next destination directly or through the deliverer130in accordance with the setting details for the data sequence stored in the data sequence setting storage150. The next destinations include the data processor160in the data delivery control apparatus100, the data processing apparatus400, and the PLCs603and604. In contrast, when determining that the data is invalid, the delivery controller142discards the data without delivering the data to any destination.

The time determiner143determines whether the collection time indicated by the collection time information added to the data provided from the delivery controller142is at or later than the start time at which the current data sequence is started, and outputs the determination result to the delivery controller142. The determination result output by the time determiner143is expressed in binary including, for example, the value indicating that the collection time is at or later than the start time and the value indicating that the collection time is earlier than the start time.

The data sequence setting storage150stores the setting details for the data sequence that defines the details of data processing to be performed on the collected data and the sequence of the data processing. The setting details may be referred to as data sequence setting data. The data sequence setting data includes information designated by the user including the data collection target and a subject that performs each step of processing. The user stores data sequence setting data into the data sequence setting storage150with the maintenance tool500.

FIG. 4shows examples of data stored in the data sequence setting storage150. The stored examples shown include information indicating the data collection target, collection data, processing, analytical processing, diagnostic processing, and feedback destination. Examples of the data collection target include information identifying the device serving as the data collection target. Examples of the collection data include information identifying the subject that performs data collection processing. Examples of the processing include information identifying the subject that performs processing on the collected data. Examples of the analytical processing include information identifying the subject that performs analytical processing on the collected data. Examples of the diagnostic processing include information identifying the subject that performs processing of diagnosing the target to be diagnosed based on the analysis result. The functions of the data sequence setting storage150are implemented by the memory11shown inFIG. 2.

In the embodiment, as shown inFIG. 4, the processing, the analytical processing, and the diagnostic processing are performed in this order. In the illustrated example, in the setting No. 1, the data processor160processes vibration data001collected from the PLC604, a data processor410in the data processing apparatus400analyzes the processed data, and the data processor410diagnoses the data based on the analysis result, and feeds the diagnosis back to the PLC604.

The data processor160shown inFIG. 1performs predetermined processing on data provided from the delivery controller142, and provides the processed data to the delivery controller142. The processing includes missing value processing and outlier processing as the preprocessing for the analytical processing. The functions of the data processor160are implemented by the CPU14shown inFIG. 2executing the processing program114.

The execution controller170shown inFIG. 1controls activation of each component in the data delivery control apparatus100. When the execution controller170receives an activation instruction from an operation reception510in the maintenance tool500as in arrow A drawn with a dash-dot-dash line, the execution controller170transmits activation instructions to the collectors110, the deliverer130, the validity determiner140, and the data processor160as in arrows B drawn with broken lines to activate each component. When activating the collectors110, the execution controller170provides, to the collectors110, data indicating the data sequence settings stored in the data sequence setting storage150. When activating each component in the data delivery control apparatus100, the execution controller170stores the current time as start time in the memory11. Upon receiving a stop instruction from the operation reception510in the maintenance tool500, the execution controller170stops the collectors110, the deliverer130, the validity determiner140, and the data processor160.

Upon receiving data indicating the details of data sequence settings input by the user from the operation reception510in the maintenance tool500, the execution controller170stores the received data into the data sequence setting storage150. The functions of the execution controller170are implemented by the CPU14shown inFIG. 2.

The functional components of the data processing apparatus400will now be described. As shown inFIG. 1, the data processing apparatus400includes, as a functional component, the data processor410that performs analytical and diagnostic processing.

The data processor410analyzes data provided from the data delivery control apparatus100, diagnoses the FA devices601and602based on the analysis result, and outputs the diagnosis. The data provided from the data delivery control apparatus100is data collected from the PLCs604and605, and to which collection time information is added. The data processor410adds this collection time information to the diagnosis as information identifying the data provided from the data delivery control apparatus100.

The data processor410transmits data indicating the above diagnosis to the data delivery control apparatus100. In the embodiment, the data processor410is programmed to sequentially perform analytical and diagnostic processing on data received from the data delivery control apparatus100and return the diagnosis to the data delivery control apparatus100. The data processor410may not be activated at the same timing as the timing of activation of each component in the data delivery control apparatus100. The data processor410is simply to be activated when the user instructs start of collection and delivery processing. The functions of the data processor410are implemented by the CPU43shown inFIG. 2executing the analysis diagnostic program411. The data processor410is an example of data processing means according to the present disclosure.

As shown inFIG. 1, the maintenance tool500includes the operation reception510as a functional component. The operation reception510transmits a signal indicating the operation received from the user and data input by the user to the data delivery control apparatus100. More specifically, the operation reception510transmits the processing start instruction relating to the data collection and delivery control received from the user to the data delivery control apparatus100as indicated with arrow A drawn with a dash-dot-dash line. The operation reception510then transmits the data indicating the details of the data sequence settings input by the user to the data delivery control apparatus100. The functions of the operation reception510are implemented by the CPU55shown inFIG. 2.

The sequence of validity determination performed by the validity determiner140in the data delivery control apparatus100will now be described. The user may instruct the start of collection and delivery processing with the maintenance tool500. In response to the instruction from the user, the execution controller170shown inFIG. 1activates the collectors110, the deliverer130, the validity determiner140, and the data processor160. Upon receiving the start instruction from the user, the execution controller170stores the current time as start time in the memory11. The data processor410in the data processing apparatus400has already been activated. The collectors110have collected data from the PLCs603and604at designated collection intervals, and have transmitted the collected data to the deliverer130.

Upon receiving data from the deliverer130, the validity determiner140performs validity determination shown inFIG. 5to determine whether the data is valid.

Upon receiving data from the deliverer130(Yes in step S11), the converter141in the validity determiner140converts the received data (step S12), and provides the resultant data to the delivery controller142. When the data received from the deliverer130is the data received from the data processing apparatus400, the converter141converts the data format into the internal format determined for the data delivery control apparatus100. When the data received from the deliverer130is the data addressed to the PLCs603and604, the converter141converts the data format into the internal format determined for the PLCs603and604.

The delivery controller142acquires collection time from collection time information added to the data provided from the converter141(step S13). The delivery controller142outputs information indicating collection time to the time determiner143. When information indicating the collection time is provided from the delivery controller142, the time determiner143reads information stored in the memory11and indicating the start time at which the current sequence is started (step S14). The time determiner143determines whether the collection time is at or later than the start time (step S15), and outputs the determination result to the delivery controller142.

When the result output by the time determiner143indicates that the collection time is at or later than the start time (Yes in step S15), the delivery controller142identifies the details of the data sequence setting stored in the data sequence setting storage150and the next destination of the data (step S16). The delivery controller142outputs the data with information indicating the identified destination to the converter141.

The converter141converts data received from the delivery controller142(step S17), and transmits the resultant data and information indicating the destination to the deliverer130(step S18). The deliverer130thus delivers data to the designated destination. Thereafter, the converter141returns to the processing in step S11and waits for data from the deliverer130.

In contrast, when the result output by the time determiner143indicates that the collection time is earlier than the start time in step S15(No in step S15), the delivery controller142discards the data (step S19).

The validity determination is performed by the validity determiner140in this manner.

With reference toFIG. 6, an example of the entire data sequence in the diagnosis system1with the above structure will now be described. In the illustrated example, the data processor410in the data processing apparatus400analyzes and diagnoses data collected from the PLC603. Although not shown, the PLC603collects data output by sensors installed in the FA device601shown inFIG. 2. The FA device601is the target to be diagnosed.

As shown inFIG. 6, the collector110collects data from the PLC603serving as a designated data collection target at designated collection intervals (step S1001). The collector110transmits collected data to the deliverer130(step S1002).

The deliverer130transmits data received from the collector110to the validity determiner140(step S1003). The validity determiner140performs validity determination to determine the validity of the data received from the collector110(step S1004). When determining that the data is valid, the validity determiner140transmits the data to the data processor160in accordance with the setting indicated by the data sequence setting data stored in the data sequence setting storage150shown inFIG. 4(step S1005).

The data processor160performs processing on the data received from the validity determiner140(step S1006), and transmits the processed data to the validity determiner140(step S1007). The validity determiner140performs validity determination to determine the validity of the data received from the data processor160(step S1008). When determining that the data is valid, the validity determiner140transmits the data together with destination information indicating the destination to the deliverer130in accordance with the setting indicated by the data sequence setting data stored in the data sequence setting storage150shown inFIG. 4(step S1009). The data processor410in the data processing apparatus400is designated as the destination. The deliverer130transmits the data to the destination indicated by the destination information provided from the validity determiner140(step S1010).

The data processor410analyzes the data received from the data delivery control apparatus100, and diagnoses the target to be diagnosed based on the analysis result (step S1011). The data processor410transmits the diagnosis to the data delivery control apparatus100(step S1012).

The deliverer130in the data delivery control apparatus100transmits the data received from the data processing apparatus400to the validity determiner140(step S1013). The validity determiner140determines the validity of data received from the deliverer130(step S1014). When determining that the data is valid, the validity determiner140transmits the data together with destination information indicating the data destination to the deliverer130in accordance with the setting indicated by the data sequence setting data stored in the data sequence setting storage150shown inFIG. 4(step S1015). The deliverer130transmits the data to the destination indicated by the destination information provided from the validity determiner140(step S1016).

Thus, the PLC603controls the FA device601based on the diagnosis received from the data delivery control apparatus100. This is an example of the entire data sequence in the diagnosis system1.

In the embodiment, as described above, the data delivery control apparatus100determines whether the externally received data, or data received from the PLCs603and604and the data processing apparatus400, is valid. More specifically, the data delivery control apparatus100compares the collection time indicated by the collection time information added to the data and the start time at which the sequence is started, determines that the data is valid when the collection time is at or later than the start time, and delivers the data to the next destination.

When the collection time is earlier than the start time, the data delivery control apparatus100determines that the data is invalid. For example, as shown inFIG. 7, the data processor410may transmit data to the deliverer130in the data delivery control apparatus100in step S1012. The validity determiner140determines that the data received from the data processor410is invalid in validity determination in step S1014. The validity determiner140discards the data without delivering the data to the next destination (step S1016). Thus, the invalid data is prevented from being delivered outside the data delivery control apparatus100. InFIG. 7, the processing from step S1001to step S1014is similar to the processing inFIG. 6.

As described above, the data delivery control apparatus100determines the data validity based on collection time information added to the data. When the data processing apparatus400has analyzed and diagnosed data left in the data processing apparatus400before the start of the current sequence, or data not to be processed, and transmitted the diagnosis to the data delivery control apparatus100, the data delivery control apparatus100prevents delivery of the diagnosis to the PLCs603and604because the data is invalid. Thus, the data delivery control apparatus100can control delivery not to provide the diagnosis based on invalid data to the PLCs604and605. Thus, the processing of data not to be processed by the PLCs604and605can be prevented. The data delivery control apparatus100with the above structure is particularly effective when, for example, multiple data processors perform a series of processing in cooperation.

In the embodiment, the data delivery control apparatus100collects data from the FA device601through the PLC603, and collects data from the FA device602through the PLC604. In some embodiments, the data delivery control apparatus100may directly collect data from the FA devices601and602.

In the embodiment, the data delivery control apparatus100includes the collector110that performs data collection. In some embodiments, the collector110may be installed in another apparatus independent of the data delivery control apparatus100. In this case, for example, the validity determiner140may use the timing when the data delivery control apparatus100starts delivery processing as the starting point, and determine that data collected at or after this timing is valid.

In the embodiment, the data delivery control apparatus100and the data processing apparatus400are physically different apparatuses. In some embodiments, for example, the data delivery control apparatus100and the data processing apparatus400may be implemented on different virtual machines on the same apparatus.

In the embodiment, the data delivery control apparatus100performs preprocessing on data collected by the collector110. In some embodiments, the data delivery control apparatus100may not perform preprocessing on the collected data. In this case, the data delivery control apparatus100may eliminate the data processor160.

In the embodiment, the validity determiner140in the data delivery control apparatus100does not determine the validity of data received from the data processor160in the same apparatus. In some embodiments, the validity determiner140may also determine the validity of data received from the data processor160.

In the embodiment, as shown inFIG. 3, an IP address and a port number are used as examples of information identifying the device serving as a data collection target in the setting details for data collection. In some embodiments, the unit number on the network may be used as information identifying the device serving as a data collection target.

Examples usable as a recording medium that records the above programs include a non-transitory computer-readable recording medium including a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, a semiconductor memory, and a magnetic tape.

REFERENCE SIGNS LIST