Method and system for monitoring timestamps in data acquired by data acquisition devices in an industrial environment
By generating predicted timestamps using a virtual clock and combining them with a real clock, the problem of clock stability and synchronization accuracy of data acquisition devices in industrial environments is solved. This achieves accurate data streams and wide-ranging integration, and is applicable to systems without changing hardware or software.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SIEMENS AG
- Filing Date
- 2024-09-06
- Publication Date
- 2026-06-26
AI Technical Summary
In industrial environments, existing technologies struggle to achieve clock stability in data acquisition devices and accurate synchronization between different data acquisition devices, impacting the accuracy of data stream applications.
By using a virtual clock-based control mechanism, a predicted timestamp is generated and combined with the real clock timestamp, providing a timestamp correction mechanism for subsequent index values, thus ensuring the clock stability and synchronization accuracy of the data acquisition device.
It improves the clock stability of data acquisition devices and the synchronization accuracy between different data acquisition devices, supports large-scale data integration, and is suitable for existing systems without changing hardware or software.
Smart Images

Figure CN122295635A_ABST
Abstract
Description
[0001] Regardless of how the grammatical term is used, individuals with male, female, or other gender identities are included in the term. Inside. Technical Field
[0002] The subject matter disclosed herein relates to methods and systems for monitoring timestamps in data acquired by a data acquisition device, wherein the data acquisition device includes a real clock and a virtual clock, the real clock being used to mark timestamps onto the data, and the virtual clock being used to advance at substantially constant time steps, and the data being indexed based on the time steps of the virtual clock.
[0003] This topic also relates to computer programs that include instructions that, when executed by a computer, cause the computer to perform the steps of the methods mentioned above. Background Technology
[0004] Data in an industrial environment is collected from a variety of different resources, such as data acquisition devices. High-frequency data may exist from assets (e.g., from machine tool controllers), while ultra-high-frequency data may also exist from additional sensors deployed to monitor and measure assets, such as machines, machine parts, processing procedures, workpieces, and tool characteristics.
[0005] Bringing all such data together into a common representation on a (single) data aggregation device, synchronizing data streams with each other (e.g., with the cycle time of a machine tool controller), and ultimately providing a common representation of time-related data from different data sources for further processing on the data aggregation device and / or in a data lake outside the data aggregation device is a daunting task.
[0006] One possible solution is to synchronize each individual industrial data acquisition device providing the corresponding data stream with a given global clock. This can be accomplished, for example, using the NTP protocol.
[0007] While some industrial control devices currently in operation support the NTP protocol, they often have poor-quality, unstable system clocks and lack any other synchronization interfaces that can serve as a basis for accurate timing and for understanding potential correlations between them and other nearby non-real-time devices. This can significantly impact the accuracy of applications performing tasks such as condition monitoring and behavior prediction using individual or combined data streams from different data acquisition devices. In short, if at least one NTP participant exhibits poor NTP synchronization accuracy, relying solely on the NTP protocol will result in rather poor performance.
[0008] Another approach is based on synchronization using cycle frequency. This involves inferring from predetermined, generally known events and then calculating the elapsed time across all devices by multiplying the known cycle time by the difference in cycle counts. However, this technique requires extremely stable hardware. In practice, this solution is only suitable for small time spans, and for long periods, significant errors can accumulate during operation. Furthermore, the stage inferred from known events can introduce unpredictable inaccuracies—especially if, for example, the lead time between signal acquisition by sensors and signal processing on data aggregation devices is unknown or cannot be calculated deterministically. Summary of the Invention
[0009] Therefore, the purpose of this disclosure is to improve the stability of the clock of the data acquisition device and enhance the synchronization accuracy of data from different data acquisition devices.
[0010] This objective is achieved through the methods mentioned above, which include: - Receive index values and corresponding timestamps from the data. - Generate a predicted timestamp for the subsequent index value based on the index value and its corresponding timestamp, as well as based on the preceding index value and its corresponding timestamp to predict the timestamp of the subsequent index value (e.g., the index value following the received index value). - Receive the real clock timestamp of the subsequent index value. - Based on the acceptance criteria associated with the real clock timestamp and the predicted timestamp, provide the real clock timestamp or the predicted timestamp for the subsequent index value.
[0011] In other words, this method provides a control mechanism for the real clock of the data acquisition device based on a reliable and robust virtual clock of the data acquisition device (i.e., a virtual clock that advances at a substantially constant time step).
[0012] In one embodiment, the method further includes: depending on whether the difference between the real clock timestamp and the predicted timestamp exceeds a predetermined threshold, providing the real clock timestamp or the predicted timestamp of the subsequent index value.
[0013] In one embodiment, the method further includes determining a threshold based on a previous index value and the corresponding real clock and predicted timestamp.
[0014] In one embodiment, the method further includes: correcting the real clock timestamp based on the predicted timestamp based on an acceptance criterion associated with the real clock timestamp and the predicted timestamp (e.g., if the difference between the real clock timestamp and the predicted timestamp exceeds a threshold).
[0015] In one embodiment, the method further includes updating the real clock timestamp of a subsequent index value to the predicted timestamp of the subsequent index value based on an acceptance criterion associated with the real clock timestamp and the predicted timestamp (e.g., if the difference between the real clock timestamp and the predicted timestamp exceeds a threshold).
[0016] In one embodiment, the method further includes storing the previous / previous index value and the corresponding timestamp for a predetermined time period (e.g., 5 min).
[0017] In one implementation, the data (e.g., data stream) is measurement data of at least one physical parameter of an asset of an automated system.
[0018] In one embodiment, a first data acquisition device acquires first data and a second data acquisition device acquires second data, wherein the data acquisition devices include corresponding virtual clocks and the real clocks of the data acquisition devices are synchronized to a global clock, and the method further includes: - Monitor the timestamps in the first data, and - Align the timestamps in the second data with the timestamps in the first data.
[0019] This objective is also achieved through a system for data acquisition, comprising: at least two data acquisition devices adapted to acquire data related to an industrial process and provide corresponding data streams; and a data aggregation device adapted to receive the data streams and including a computer program with instructions that, when executed by a computer, cause the computer to perform the steps of the method disclosed herein, wherein the data aggregation device is configured to: - Allows selection of at least one of the data streams as the primary data stream. - The main data stream is processed by a computer program to correct the timestamps of the data stream. - Synchronize at least one of the two data streams with the main data stream.
[0020] The subject matter disclosed in this paper provides a hardware-independent approach that facilitates the integration of all kinds of data acquisition devices, such as external data sources.
[0021] In particular, when applied to machine tools, there is no need to change the original engineering of the machine tool (e.g., no change to ProfiNet / Profibus communication settings, no PLC engineering).
[0022] The methods and systems disclosed herein can be used as non-invasive additions to existing hardware, such as assets of industrial facilities, like machine tools.
[0023] The subject matter disclosed in this article can even be effectively used for brownfield controllers that do not allow any changes or upgrades to their hardware or software.
[0024] The methods and systems disclosed in this paper can extend the capabilities of third-party controllers, thereby allowing third-party controller support to be incorporated into a much larger scope of data integration. Attached Figure Description
[0025] The above and other aspects and advantages of the subject matter disclosed herein will be discussed further with reference to the accompanying drawings, which only illustrate some possible ways in which it can be practiced. The same reference numerals in the drawings refer to the same parts.
[0026] Figure 1 A flowchart corresponding to the method according to the present invention is shown. Figure 2 A flowchart corresponding to the method and underlying system according to one aspect of the present invention is shown. Figure 3 A system for synchronizing auxiliary data streams with the main data stream is shown.
[0027] The reference numerals used in the drawings and claims are for illustrative purposes and should not be construed as limiting the features of the corresponding claims. Detailed Implementation
[0028] Figure 1 A flowchart corresponding to the method according to the present invention is illustrated.
[0029] Data 100 is provided. Data 100 is acquired by data acquisition device 101. Data acquisition device 101 includes a real clock, which marks the data with timestamp 102 according to the real clock. The timestamp 102 is not guaranteed to be correct or accurate, and therefore should be monitored and corrected as needed.
[0030] The data acquisition device 101 also includes a virtual clock. The virtual clock advances with a substantially constant time step. Based on the time step of the virtual clock, an index 103 is provided to the data 101, such that each data point in the data is assigned a pair of values: a timestamp and a corresponding index.
[0031] Data 100 can be a data stream of measurement data for at least one physical parameter of an asset of an automated system. The step size of the virtual clock can correspond to the sampling rate of the physical parameter.
[0032] A software module or program routine 104 is provided so that timestamp 102 and index 103 can be queried from data 100.
[0033] Software module 104 includes instructions that, when executed by a computer (not shown here for simplicity), cause the computer to perform the steps in the method.
[0034] For index value 103a and corresponding timestamp 102a, software module 104 determines the timestamp of subsequent index value 103b.
[0035] Values can be retrieved from data 100 via program routine 104 (e.g., if the corresponding function 105 is called), or the user can input values into software module 104.
[0036] Prediction can be performed by calling prediction function 106 included in software module 104. Prediction function 106 can calculate the predicted timestamp of subsequent index values based on the received index value 103a and corresponding timestamp 102a, as well as based on historical index values previously obtained from data 100 and their corresponding timestamps 107. These previous timestamps and corresponding index values 107 can be stored, for example, in volatile memory allocated to the software module during the runtime of the software module 104, or in non-volatile memory of the computer.
[0037] Depending on the available memory, it can be ensured that the previous index value and the corresponding timestamp 107 are stored for a predetermined time period (e.g., 5 minutes).
[0038] The timestamp for predicting subsequent index values may optionally include a time conversion step (in which case the timestamp is converted to a predetermined time format). This can help avoid conflicts between timestamp formats when monitoring timestamps from data acquisition devices.
[0039] The scheduled time format can be set by the user through the time format interface 109.
[0040] Those skilled in the art should understand that a subsequent index value can be any index value that follows the current index value 103a, which is queried from or otherwise received from data 100. For example, a subsequent index value can be the closest index value or another "future" index value that should be indexed with a future timestamp. For example, a subsequent index value can be selected by the user.
[0041] Software module 104 receives or queries the real clock timestamp of the subsequent index value, for example, by receiving or querying directly from data 100.
[0042] Software module (or program routine) 104 calculates the difference 110 between the actual clock timestamp and the predicted timestamp of the subsequent index value, and, depending on whether the difference exceeds a certain threshold, provides the actual clock timestamp or the predicted timestamp of the subsequent index value as output.
[0043] In one implementation, program routine 104 may determine the threshold based on a previous index value and the corresponding real clock timestamp 107 and the corresponding predicted timestamp.
[0044] In other words, for each index value, there can be two timestamps associated with that index value: a real clock timestamp and a predicted timestamp. All of these values can be stored during the runtime of routine 104, as described in this paper.
[0045] The following provides an example of how to calculate the threshold and predict the timestamp using program routine 104.
[0046] For example, a data stream is given in time series form with the following physical parameter values for indexing the data: real clock timestamps and cycle counts. The time format is selected as HH:MM:SS.
[0047]
[0048] Table 1: Exemplary real-world clock timestamps and cycle counts in data (e.g., data 100).
[0049] That is, in one embodiment, the virtual clock may correspond to the sampling rate of the physical parameters and the index value may correspond to the cycle count.
[0050] In other words, a virtual clock can be viewed as a representation of the elapsed time when a physical action is known to be taking place (e.g., a CNC machine moving an axis with known acceleration and speed, and preferably with a known length of movement). The elapsed time can then be correlated with a cycle counter or wall clock.
[0051] As can be seen from the provided data examples, it appears that the actual time period of the data acquisition device is not constant; that is, the time elapsed between two adjacent indices varies.
[0052]
[0053] Table 2: Real clock timestamps, cycle counts, real clock instantaneous and predicted time periods, and thresholds / accuracy.
[0054] In other words, the current or instantaneous time period of the real clock can be determined based on the index value and the last two or two nearest neighbor values of the corresponding real clock timestamp (see Table 2).
[0055] The predicted time period can be calculated based on the current time period 111 for the previous index value. In one implementation, the least squares method is used to calculate the predicted time period 112.
[0056] Instantaneous period 111 is a list of all stored (accepted) delta (periods) (e.g., the last 5 minutes in one embodiment) in the algorithm disclosed herein.
[0057] The predicted time period can be used to calculate the predicted or expected timestamp 118 of the subsequent index value.
[0058] For example, given a cycle count of 343, the predicted time period for the real clock is 1 second. Therefore, for the subsequent index value 353, program routine 104 will predict a timestamp value of 10:10:30. However, the real clock timestamp for cycle count 353 is 10:10:50, indicating that the real clock may be faulty.
[0059] In this case, the difference between the actual clock timestamp and the predicted timestamp is 20 seconds.
[0060] Since the current loop count of 343 has no deviation (the predicted timestamp equals the actual clock timestamp), the threshold is set to 0s.
[0061] Clearly, 20s exceeds 0s, and the state of the real clock is poor. In this case, the current time period of 3 seconds of the real clock is not accepted, the predicted value of the 1-second time period is accepted, and the real timestamp is corrected from 10:10:50 to 10:10:30 for cycle count 353.
[0062] In other words, the state of the real clock for cycle count 353 is not accepted, and the timestamp for that cycle count is recalculated, as described above.
[0063] It can store the predicted time period 113 of the real clock, as described in this article.
[0064] It should be understood that the current or instantaneous period 111 is different from the predicted period 113, because the predicted period 113 refers to the predicted length of the period within a predetermined time period (e.g., the last 5 minutes).
[0065] The instantaneous time period 111 is the original input, while the predicted time period 113 is the calculated value.
[0066] In one implementation, program routine 104 returns the determined state 115 and / or precision / threshold 116 of the real clock. For example, program routine 104 returns the determined state 115 and / or precision / threshold 116 of the real clock in response to a corresponding call 117.
[0067] Depending on whether the acceptance criteria for the state of the real clock and the corresponding real clock timestamp are met, routine 104 returns 119 whether the state of the real clock or real clock timestamp of the subsequent (queried or entered) index value is acceptable.
[0068] In one embodiment, software module 104 may include the following functionality: the software module only provides information about the state of the real clock 120, provided that the software module 121 is invoked for the purpose of providing such information.
[0069] In one implementation, program routine 104 may include functionality 122 for checking the correctness of the real clock. In response to a corresponding call 122, program routine 104 checks (e.g., as described herein) the current state of the real clock 123 and returns the last real clock timestamp 124 if the current state of the real clock according to the index value (which is ultimately available to program routine 104), otherwise returns the expected timestamp 125.
[0070] In one implementation, if the difference between the actual clock timestamp and the predicted timestamp exceeds a threshold, program routine 104 may recommend or cause a correction to the actual clock timestamp based on the predicted timestamp.
[0071] In one implementation, software module 104 updates the real clock timestamp of the subsequent index value according to the predicted timestamp of the subsequent index value in data 100.
[0072] Technicians should understand that, although Figure 1 The case of checking the real clock of the data acquisition device 101 in real time is described, but the method described herein is also applicable to offline checking.
[0073] For this purpose, data 100 may be stored and provided to program routine 104 at a later time. In particular, the data may be further processed (e.g., analyzed, evaluated, etc.) after a real-time timestamp check of data 100 is performed.
[0074] Figure 2 A flowchart of a method and underlying system 200 corresponding to one aspect of the present invention is shown.
[0075] This flowchart describes a real-time data acquisition method that includes correcting the timestamps of the collected data. Technical personnel should understand that timestamp correction can be performed offline, not in real time.
[0076] System 200 includes two or more (preferably multiple) industrial data acquisition devices 201a, ..., 201n.
[0077] Each industrial data acquisition device 201a, ..., 201n may include a corresponding local clock 202a, ..., 202n and a corresponding real clock 203a, ..., 203n.
[0078] Industrial data acquisition devices 201a, ..., 201n operate their respective data acquisition processes according to their own cycles, which are constituted by the cycles based on their respective local clocks 202a, ..., 202n. The acquired data may be sampled from analog or digital sensors (not shown) that can be connected to or attached to the respective industrial data acquisition devices 201a, ..., 201n.
[0079] The industrial data acquisition devices 201a, ..., 201n may include corresponding NTP clients (not shown here for simplicity) for synchronizing their respective real clocks 203a, ..., 203n with an external NTP server 204. To perform synchronization, the NTP server 204 provides a corresponding NTP signal 205 to each NTP client.
[0080] NTP server 204 can be designed as a locally managed NTP server in part of an NTP pool on the Internet, in an intranet, or in the IT environment of a production plant where industrial data acquisition devices 201a...201n are located.
[0081] Technical personnel should understand that Figure 2 The NTP framework shown is just one of several examples of providing a global or world clock as the time synchronization target for all observed data.
[0082] Other protocols (such as the Precision Time Protocol GPS signaling) can be used directly or adapted to provide a global clock and thus provide an accurate timestamp.
[0083] For other global clocks, it can be advantageous to provide a global clock analyzer to analyze how the global clock functions or (in other words) its operating mode. Knowledge of global synchronization behavior can be useful when it comes to synchronizing data from different industrial data acquisition devices 201a, ..., 201n.
[0084] Industrial data acquisition devices 201a, ..., 201n can be industrial controllers designed to control assets (e.g., machine tools, electric motors, pumps, etc.) of automated systems.
[0085] Industrial data acquisition devices 201a, ..., 201n are providing their data along with corresponding timestamps from the respective world clocks. Local clocks 202a, ..., 202n advance at substantially constant time steps and are used to index the corresponding data streams 206a, ..., 206n, such that each data point in the corresponding data stream 206a, ..., 206n is assigned a pair of values: a timestamp and a corresponding index (e.g., a cycle count).
[0086] The computing device 207 receives data in different data streams 206a, ..., 206n.
[0087] The computing device 207 can be designed as an edge computing device.
[0088] The computing device may include, but is not required to include, the NTP client 208. The NTP client 208 may offer advantages and facilitate verification of whether a timestamp is illusory and gives completely incorrect data (e.g., 1970 or a similar year). The NTP client 208 may also improve the rough verification of whether the current state of the global clock is roughly correct.
[0089] One of the main functions of the edge computing device 207 is to aggregate data from one or more of the industrial data acquisition devices 201a, ..., 201n.
[0090] The edge computing device 207 can continuously (preferably in real time) analyze the time information associated with the input data 206a, ..., 206n, and identify anomalies in the timestamp and loop counter value sequences of each input data stream 206a, ..., 206n, including analyzing missing time slots or time jumps.
[0091] For example, in sensor networks that monitor physical processes (e.g., manufacturing), particularly machining processes, cycle counter values can represent the count of measured cycles that have occurred. This information can be useful for analyzing periodic patterns or identifying anomalies that deviate from expected cyclical behavior.
[0092] It monitors and corrects anomalies in the timestamp value sequence, and can synchronize data streams 206a, ..., 206n through timestamp correction and time synchronization module 209.
[0093] To this end, the timestamp correction and time synchronization module 209 includes a program routine that provides a world clock timestamp or predicted timestamp for the corresponding cyclic counter value based on an acceptance criterion related to the real clock timestamp and the predicted timestamp. The program routine is the one described herein, for example, Figure 1 Program routine 104.
[0094] The timestamp correction and time synchronization module 209 can select a single data stream (e.g., data stream 206a) from data streams 206a, ..., 206n, which will become the main data stream used for time synchronization. The main data stream selection can be performed once for the entire synchronization process.
[0095] In one embodiment, the main data stream 206a is a high-frequency data stream.
[0096] After monitoring and correcting the timestamps in the main data stream 206a, the timestamp correction and time synchronization module 209 can align the timestamps of the corresponding other data streams 206b, 206n with the main data stream 206a.
[0097] It should be understood that the time correction and synchronization module 209 can independently monitor and correct the global clock timestamp of each of the provided data streams 206b, ..., 206n.
[0098] Data streams 206a, ..., 206n may include high-frequency data, low-frequency data, or both.
[0099] In one embodiment, the high-frequency data comes from an industrial automation controller, which serves as the main controller for industrial assets. In one embodiment, the industrial automation controller is the main controller for a CNC machine, i.e., the controller responsible for controlling the axis movement of the CNC machine.
[0100] As used herein, the term "master controller" refers to the controller that drives the primary use case in an application domain, while auxiliary controllers manage subordinate control flows. For example, in the CNC domain, the CNC, acting as the master controller, moves axes and spindles to drill and cut materials based on the machine's primary milling or turning use case, while auxiliary data sources (such as other controllers or sensor systems) manage and provide information related to processes associated with the auxiliary use case, such as information about one or more of the following: the status of the CNC machine's doors, connected tool magazine devices, tool or workpiece loading robots, pallet converters, coolant flow controllers, etc.
[0101] Another example in the automotive field: Here, the main controller can be an automotive electronic control unit that manages safe driving from A to B, while the auxiliary controller can be a multimedia, heating or air conditioning environment control or navigation system that can help make driving more comfortable or efficient.
[0102] Another example in the infrastructure sector: In buildings, the main controller can be a building management and control system for lighting, heating, ventilation and air conditioning, while auxiliary systems can be security monitoring systems, energy market price or weather observation systems, or other types of auxiliary monitoring and control systems.
[0103] The acquired data, and thus the data in data streams 206a, 206b, ..., 206n, may include data related to one or more CNC machines; that is, data from other controllers (e.g., PLCs) in the context of the CNC machine tool, which may be controlling the tool magazine system, lighting, coolant flow, ventilators, or doors of the CNC machine. Furthermore, it may include data acquired from additional sensor systems, such as vibration sensors, temperature sensors, force measurement sensors, etc.
[0104] The timestamp correction and time synchronization module 209 determines time-related attributes, and in particular time attributes, i.e., time attributes associated with each data point, such as the timestamp of the data in the primary or master data stream 206a.
[0105] In other words, the timestamp correction and time synchronization module 209 synchronizes data from at least one auxiliary data stream 206b, ..., 206n to the main data stream 206a based on the data time-related attributes (especially the time attributes of the main data stream 206a).
[0106] In one embodiment, after correcting and aligning the timestamps of multiple data streams 206a, 206b, ..., 206n, the timestamp correction and time synchronization module 209 may, for example, provide at least a portion of the time-synchronized multiple data streams 210 on an edge computing device 207 and / or to one or more other IT devices 212 (e.g., a workshop server or a cloud server) for further, preferably offline, processing 213 of the time-corrected and master-synchronized data 210, for further, preferably real-time processing 211 of the time-corrected and master-synchronized data 210.
[0107] IT device 212 preferably has large computing resources for processing large aggregated data history in a batch-based (offline) manner to obtain analytical insights by crawling large amounts of pre-integrated data.
[0108] Figure 3 The illustration shows an implementation of synchronizing the second data stream 301 with the first data stream 300.
[0109] The system comprises three hardware devices: a first data acquisition device 302, a second data acquisition device 303, and a data aggregation device 304. All three hardware devices are synchronized with the global NTP server 305.
[0110] The first data acquisition device 302 and the second data acquisition device 303 are preferably different numerical control units (NCUs) that sample physical parameters at different sampling rates and perform timestamp marking 306 according to the global clock 307 provided by the global NTP server 305.
[0111] The data aggregation device 304 is preferably designed as an edge computing device and receives a first data stream 300 from a first NCU 302 and a second data stream 301 from a second NCU 303.
[0112] In one embodiment, the main data stream 300 provided by the first NCU 302 includes batches of 200 values for each of up to 200 NCU signals.
[0113] In one embodiment, values in the first data stream 300 are sampled into data batches at 2ms intervals, and these batches are sent to the data aggregation device 304 substantially every 200ms.
[0114] In one embodiment, the auxiliary data stream 301 may contain values from different analog and / or digital inputs. In one embodiment, the sampling rate for sampling the analog inputs differs from the sampling rate for sampling the digital inputs.
[0115] For example, the auxiliary data stream 301 may contain values from, for example, four analog inputs (e.g., the values of four analog inputs of a vibration signal sampled at 10 kHz), and / or values from, for example, eight digital inputs sampled at 2 kHz, and values from, for example, a temperature sensor (e.g., a PT-200 sensor) sampled at 2 kHz. Furthermore, here, the data may first be organized into batches on the NCU side, and then transmitted as block data to the data aggregation device 304.
[0116] The data aggregation edge device 304 may include two adapter software components 308 and 309 running on the edge device 304 to facilitate the reception of a first data stream 300 and a second data stream 301 from a first NCU 302 and a second NCU 303, respectively. In other words, the first adapter software component 308 is responsible for acquiring data from the first NCU 302, and the second adapter software component 309 receives data from the second NCU 303.
[0117] Different adapter software components 308 and 309 are particularly convenient when different NCUs 302 and 303 communicate with the data aggregation device 304 according to different communication protocols. In other words, adapter software components 308 and 309 facilitate communication between the data aggregation device 304 and the different NCUs 308 and 309 that support different communication protocols.
[0118] Technicians should understand that there can be more data streams and adapters (see...) Figure 2 ).
[0119] After the adapters 308 and 309 acquire the data, both the main data stream 300 and the auxiliary data stream 301 are forwarded (preferably without integration), for example, via the data bus 310 to a software module 311 that can be executed under the data aggregation device 304 and preferably runs during the aggregation of data 300 and 301 by the data aggregation device 304.
[0120] Software module 311 applies the mechanism for robust clocking described herein, which synchronizes auxiliary stream 301 with mainstream 300, while preferably detecting and correcting potential anomalies / quality issues in the timestamp generation process on the data source side of mainstream 300.
[0121] For example, software module 311 may include Figure 2 The timestamp correction and time synchronization module 209 selects the main data stream 300 as the main data stream to synchronize the auxiliary data stream 301 with it.
[0122] To detect and correct potential anomalies and / or quality issues during timestamp generation on the mainstream 300 data source side, software module 311 can use program routines, such as Figure 1 Program routine 104.
[0123] In one embodiment, the output of software module 311 may be an integrated and (with regard to timing) coordinated data stream that includes data from both the main stream 300 and the auxiliary stream 301, and the output of the software module has an improved accurate time mapping to the master clock of the data source 302 of the main stream 300.
[0124] Output data can be provided wiredly on the output data bus 312.
[0125] The output data can be read, analyzed, and further processed by the edge-internal application 313 and / or the edge-external application 314, for example, stored in a database 315. For example, the edge application 313 can scan the output data to find trigger conditions and record data based on start and end triggers selected in any data stream of the data stream. Trigger factors can be defined as time-based references with a loop counter or timestamp. Records contain data preferably from all selected streams (here, 300 and 301) and can be exported for further processing outside the data aggregation device 304.
[0126] As described herein, the data aggregation device 304 may include an NTP client 316 for global clock synchronization.
[0127] The embodiments of this disclosure described above are for illustrative purposes and not for limiting purposes. In particular, the embodiments described with reference to the accompanying drawings are only a few examples of the embodiments described in the introductory section. The technical features described with reference to the system can be applied to expand the methods disclosed herein, and vice versa.
Claims
1. A method for monitoring timestamps in data (100) acquired by data acquisition devices (101, 201a, ..., 201n, 302, 303), wherein, The data acquisition device (101, 201a, ..., 201n, 302, 303) includes a real clock (203a, ..., 203n) and a virtual clock (202a, ..., 202n), which assigns the timestamp (102) to the data according to the real clock, and the virtual clock advances in substantially constant steps, and indexes (103) the data (100) according to the virtual clock. The method includes: - Receive the index value (103, 103a) and the corresponding timestamp (102, 102a) from the data (100). - Based on the index value and the corresponding timestamp, and based on the preceding index value (103) and the corresponding timestamp (102), predict the timestamp of the subsequent index value to generate the predicted timestamp of the subsequent index value. - Receive the real clock timestamp of the subsequent index value. - Based on the acceptance criteria associated with the actual clock timestamp and the predicted timestamp, the subsequent index value is provided with either the actual clock timestamp or the predicted timestamp. The data is measurement data (300, 301) of at least one physical parameter of the assets of the automated system, and the data acquisition device (101, 201a, ..., 201n, 302, 303) is an industrial controller for controlling the assets of the automated system.
2. The method of claim 1, wherein the real clock timestamp or the predicted timestamp is provided as the subsequent index value, depending on whether the difference between the real clock timestamp and the predicted timestamp exceeds a determined threshold.
3. The method according to claim 2, further comprising: The threshold is determined based on the previous index value and the corresponding real clock timestamp and the predicted timestamp.
4. The method according to any one of claims 1 to 3, further comprising: Based on the acceptance criteria associated with the real clock timestamp and the predicted timestamp, the real clock timestamp is corrected based on the predicted timestamp.
5. The method according to any one of claims 1 to 4, further comprising: Based on the acceptance criteria associated with the actual clock timestamp and the predicted timestamp, the actual clock timestamp of the subsequent index value is updated according to the predicted timestamp of the subsequent index value.
6. The method according to any one of claims 1 to 5, further comprising: Store the previous index value and corresponding timestamp for a predetermined time period.
7. The method according to any one of claims 1 to 6, wherein, The data is a data stream.
8. The method according to any one of claims 1 to 7, wherein, The method involves acquiring first data (300) via a first data acquisition device (302) and acquiring second data (301) via a second data acquisition device (303), wherein the data acquisition devices include corresponding virtual clocks, and the real clocks of the data acquisition devices are synchronized to a global clock (307). The method further includes: - Monitor the timestamps in the first data (300), and - Align the timestamp in the second data (301) with the timestamp in the first data (300).
9. A computer program comprising instructions that, when executed by a computer, cause the computer to perform the steps of the method according to any one of claims 1 to 8.
10. A system for data acquisition, comprising: At least two data acquisition devices (201a, ..., 201n, 302, 303) are adapted to acquire data related to industrial processes and provide corresponding data streams (206a, ..., 206n, 300, 301); and a data aggregation device (207, 304) is adapted to receive the data streams (206a, ..., 206n, 300, 301) and includes a computer program (209, 311) according to claim 9, wherein the data aggregation device (207, 304) is configured to: - Allows selection of at least one of the data streams as the primary data stream (206a, 300). - The main data stream (206a, 300) is processed by the computer program (209, 311) to correct the timestamps of the main data stream (206a, 300). - Synchronize at least one of the other data streams (206b, ..., 206n, 301) with the main data stream (206a, 300).