Patent Description:
This disclosure relates generally to data processing and, in particular, to synchronizing operational parameters of an industrial machine with encrypted time.

Many industries, such as hydrocarbon exploration and power generation, can rely heavily upon continuous operation of machinery. In industrial environments, failure of machines can incur significant costs, due to repair expenses as well as loss of production and potential injury to workers. Considering machine failure risks, operating parameters of machine components (e.g., position, vibration, temperature, speed, etc.) can be monitored to detect potential machine failures and to prevent or timely address machine failures. Monitoring of operating parameters of machine components can provide long term benefits such as lower production costs, reduced equipment down time, improved reliability, and enhanced safety. Prior art documents <CIT> and <CIT> focuse on putting a timestamp on data objects and then encrypting the entire package.

In some implementations, a method incudes receiving data characterizing a plurality of operating parameters associated with an industrial machine, and receiving data characterizing a plurality of encrypted time. The method also includes identifying a first encrypted time from the plurality of encrypted times based on temporal location of the first encrypted time relative to a first system time of a plurality of system time. A first operating parameter of the plurality of operating parameters is received at the first system time. The method further includes generating an operating data set including at least the first operating parameter and a new encrypted time based at least on the identified first encrypted time. The new encrypted time is tagged to the first operating parameter. The method also includes providing the operating data set.

One or more of the following features can be included in any feasible combination.

In some implementations, the method further includes identifying a second encrypted time from the plurality of encrypted times based on temporal location of the second encrypted time relative to a first system time. The first encrypted time is received at a second system time and the second encrypted time is received at a third system time. The method further includes determining an interpolated encrypted time associated with a first system time at least based on the first encrypted time and the second encrypted time. The method also includes setting the new encrypted time to the interpolated encrypted time. In some implementations, the first system time is temporally located between the second system time and the third system time. In some implementations, the first encrypted time is received at the first system time, and the new encrypted time is set to the first encrypted time.

In some implementations, the method further includes generating, by an encryption algorithm, the first plurality of encryption times. The encryption algorithm and the plurality of system time is synchronized with a time source. In some implementations, the method further includes receiving the operating data set including the new encrypted time; and generating, by a decryption algorithm, a decrypted time by at least decrypting the new encrypted time. In some implementations, the method further including controlling the operation of the industrial machine based on the operating data set.

In some implementations, a condition monitoring system is configured to receive the data characterizing the plurality of operating parameters from a sensor operatively coupled to the industrial machine, receive the data characterizing the plurality of encrypted times, and generate the operating data set. An encryption system is configured to execute the encryption algorithm, and a decryption system is configured to execute the decryption algorithm. The encryption and the decryption systems are separate from the condition monitoring system. In some implementations, a condition monitoring system is configured to receive the data characterizing the plurality of operating parameters from a sensor operatively coupled to the industrial machine, execute the encryption algorithm to generate the plurality of encrypted times, and generate the operating data set. A decryption system is configured to execute the decryption algorithm, the decryption system is separate from the condition monitoring system. In some implementations, a condition monitoring system is configured to receive the data characterizing the plurality of operating parameters from a sensor operatively coupled to the industrial machine, execute the encryption algorithm to generate the plurality of encrypted times, generate the operating data set, and execute the decryption algorithm.

These and other capabilities of the disclosed subject matter will be more fully understood after a review of the following figures, detailed description, and claims.

When practical, like labels are used to refer to same or similar items in the drawings.

Implementations of the present disclosure are generally directed to monitoring industrial systems. More particularly, implementations of the present disclosure are directed to monitoring industrial systems using a synchronization of operational parameters of an industrial machine with encrypted time. A computing device (e.g., a computer) can include a mechanism to maintain an internal system clock of the computing device. In some implementations, the system clock can be synchronized to an external time source (e.g., indicative of the time zone associated with the computing device). The system clock time can be included in data communications associated with the computing device. For example, a computing device associated with an industrial machine (e.g., a condition monitoring system) can communicate operating data such as vibration data, waveform data associated with the industrial machine. The communicated data can include time information (e.g., time at which the operating data was detected). The operating data can be communicated with a network of computing devices associated with industrial machines in an industrial enterprise (e.g., industrial machines at an oil and gas site).

The timing information communicated among the computing devices of an industrial enterprise can include a time stamp indicative of the internal system clock time (or system time) of the computing devices. The process of data communication (e.g., receiving / transmitting operating data, communicating with other computing device, etc.) can allow an outside party to intercept the data and access the system time of the computing device (or multiple computing devices in the industrial enterprise). The data interception can render the computing device (or network of computing devices) vulnerable to an external attack by the outside party. The prevention (or reduction) of data interception can reduce the vulnerability of the computing device to the external attack. The vulnerability reduction can be achieved, for example, by preventing transmission of system time during data transmission.

In some implementations, data communicated among computing devices can include encrypted time instead of system time. This can prevent an external party from accessing the system time of the computing devices. In some implementation, an encryption algorithm can be synchronized with an external time source that is synchronized with the system time of the computing devices (e.g., the external time generated by the external time source is the same as the system time of the computing devices). The encryption algorithm can generate encrypted time from the external time information provided by the external time source and provide the encrypted time to a computing device. The computing device can tag the operating data (e.g., received from the industrial machine) with the encrypted time based on the time of receiving the operating data and the encrypted time, and transmit the tagged operating data to a second computing device. The second computing device can execute a decryption algorithm that can decrypt the tagged encrypted time to generate the system time of the computing device(s).

Some implementations of condition monitoring system described below can provide a technical solution to the technical problem of transmitting system time over communication channel that can be accessed by an outside party and render the condition monitoring system vulnerable to an external attack. For example, the system time in the communication can be replaced by an encrypted time. In some implementations, the encrypted time can be generated by an encryption algorithm executed outside the condition monitoring system. The condition monitoring system is designed to tag the received encrypted time values with the received operating parameters and transmit an operating data set (that includes the encrypted time and the operating parameters) over the communication channel. As a result, an outside party does not have access to the system time of the condition monitoring system. In some implementations, the condition monitoring system can seamlessly operate for different rates (or periodicity) of the encrypted time and the operating parameters (e.g., different rates at which the encrypted time and the operating parameters are received by the condition monitoring system).

<FIG> is a flowchart of an example of a method <NUM> for generating an operating data set that includes operating parameters tagged with encrypted time.

At step <NUM>, data characterizing a plurality of operating parameters associated with an industrial machine can be received. The operating parameters can be detected by one or more sensors (pressure sensors, temperature sensors, movement sensors, velocity sensors, chemical concentration sensors, volume sensors, or any other types of sensors) operatively coupled to the industrial machine or one or more components (engines, chambers, pipes, compressor, turbine or any type of rotating or moving components) of the industrial machine. The operating parameters can be received, by a condition monitoring system, as packages of parameter variations over time between pair of different time points.

At step <NUM>, data characterizing a plurality of encrypted times can be received. The plurality of encrypted times can be generated by an encrypted time source that can be synchronized with an external time source. The encrypted time source can execute an encryption algorithm that can receive the external time from the external time source and generate the encrypted time. In some implementation, an encryption algorithm can be synchronized with an external time source that is synchronized with the system time of a computing devices, such as a controller of the industrial machine. The external time can be generated by the external time source is the same as the system time of the computing devices). The encryption algorithm can generate encrypted time from the external time information provided by the external time source and provide the encrypted time to the computing device. The operating parameters and the encrypted time are described in detail with reference to <FIG>.

<FIG> shows an example system <NUM> configured to execute the process described with reference to <FIG>. The example system <NUM> can include a condition monitoring system <NUM> configured to generate operating data set that includes operating parameter tagged to encrypted times. The condition monitoring (CM) system <NUM> can be communicatively coupled an industrial machine <NUM> (e.g., coupled to sensors <NUM> in the industrial machine <NUM> configured to detect operating parameters of the industrial machine <NUM>). The CM system <NUM> can receive data characterizing the plurality of operating parameters (that vary as a function of time) associated with an industrial machine <NUM>. The CM system <NUM> can also be communicatively coupled to a second computing device <NUM> (e.g., a controller of an industrial machine).

The CM system <NUM> can be communicatively coupled to an encrypted time source <NUM>. For example, the CM system <NUM> can receive data characterizing a plurality of encrypted times from the encrypted time source <NUM>. The encrypted time source <NUM> (encryption module) can be synchronized with an external time source <NUM> (digital timer or clock). For example, the encrypted source <NUM> can receive an external time, from the external time source <NUM>, can execute an encryption algorithm using the received external time, and can generate the encrypted time. The encrypted time source <NUM> can transmit (broadcast) the encrypted time (e.g., periodically broadcast), which can be received by the CM system <NUM>.

The CM system <NUM> operates on a system time that can by synchronized with an external time source <NUM>. For example, CM <NUM> can be synchronized with the external time source <NUM> that provides external time to the encrypted time source <NUM>. Alternately, CM <NUM> can be synchronized to a second external time source that is synchronized with the external time source <NUM> (e.g., both the external time source <NUM> and the second external time source generate the time associated with the local time zone). As a result, the external time generated by the external time source <NUM> and the system time of the CM system <NUM> are synchronized.

In some implementations, the plurality of encrypted times and the plurality of system time can be periodic with same or different periodicity. For example, the plurality of encrypted times can be periodically broadcasted at a first rate (e.g., r<NUM>) and can be received by the CM system <NUM>. In other words, temporally adjacent encrypted time broadcast can be separated by a time duration t<NUM> (where t<NUM> = <NUM>/n). The plurality of system time can have a rate / periodicity r<NUM>. In other words, a given system time of the plurality of system time can last for a time duration t<NUM> (where t<NUM>=<NUM>/r<NUM>). In some implementations, r<NUM> can be equal to r<NUM>. As a result, a single encrypted time can be received for a given system time. Alternately, the rate of the plurality of system time (r<NUM>) can be greater than the rate (r<NUM>) at which the broadcasted plurality of encrypted times are received. As a result, the encrypted time may not be received for one or more system time temporally located between a first system time and a second system time, when a first encrypted time and a second encrypted time are received, respectively.

Returning to <FIG>, at step <NUM>, a first encrypted time can be identified from the plurality of encrypted times received at step <NUM> (e.g., by the CM system <NUM> from the encrypted time source <NUM> described with reference to <FIG>). The identification of the first encrypted time can be based on temporal location of the first encrypted time relative to a first system time when a first operating parameter is received considering the temporal synchronization of the encrypted time with a respective operating parameter. For example, the identification of the first encrypted time can be based on the system time of the CM system <NUM> when the first encrypted time is received (e.g., from the encrypted time source <NUM>) relative to the system time when a first operating parameter is received (e.g., from the industrial machine <NUM>).

<FIG> illustrates an example of a temporal configuration <NUM>, at which various operating parameters (OP) values <NUM> and encrypted time (ET) values <NUM> are received relative to system time (ST) values <NUM> by a condition monitoring system (e.g., CM <NUM> described with reference to <FIG>). For example, the first operating parameter OP4 is received at the first system time ST4. In the example configuration, no encrypted time is received during the first system time ST4. In some implementations, an encrypted time for the first system time ST4 can be calculated based on interpolation of encrypted time received at other system time. For example, a first encrypted time ET2 received at second system time ST3 and a second encrypted time ET3 received at third system time ST5 can be identified. In some implementations, an interpolated encrypted time ET_N corresponding to first system time ST4 can be calculated at least by interpolating the first encrypted time ET2 and the second encrypted time ET3. In some implementations, additional encrypted time and the corresponding system time can be identified (e.g., encrypted time ET1 received at system time ST1, encrypted time ET4 received at system time ST7, etc.) and used in interpolation.

<FIG> illustrates another example of a temporal configuration <NUM> at which various operating parameters values <NUM> and encrypted time values <NUM> are received relative to system time values <NUM> by the condition monitoring system. In this configuration, an encrypted time ET4 is received when an operating parameter OP4 is received (at system time ST4) and there may not be a need to perform an interpolation on encrypted time. In this implementation, the encrypted time ET4 can be identified and used for the generation of an operating data set.

Returning back to <FIG>, at step <NUM>, an operating data set can be generated using the identified encrypted time. The operating data set can include at least the first operating parameter and a new encrypted time based at least on the identified first encrypted time. For example, as described in <FIG>, the new encrypted time can be set to the interpolated encrypted time ET_N. The new encrypted time can be based on the first encrypted time ET2 and the second encrypted time ET3. Alternately, as described in <FIG>, the new encrypted time can be set to the value of the selected encrypted time ET4.

In some implementations, new encrypted time values can be calculated (e.g., based on interpolation) or identified (for multiple operating parameter values, such as operating parameter values OP1-OP7) that are received at various system times (e.g., system time values <NUM>). For example, a new encrypted time can be calculated when a corresponding encrypted time is not available (e.g., as described in <FIG>) or the encrypted time can be identified when a corresponding encrypted time is available (e.g., as described in <FIG>). In some implementations, new encrypted times may be calculated for some operating parameter values and identified for other operating parameter values. For example, new encrypted times may be calculated for a first set of operating parameters (e.g., operating parameters OP2, OP4 and OP6) and identified for a second set of operating parameters (e.g., operating parameters OP1, OP3, OP5 and OP7).

The new encrypted time values can be tagged to the corresponding operating parameter values in the operating data set. For example, as illustrated in <FIG>, new encrypted time values ET1, ET2, ET_N, ET3 and ET4 can be tagged to operating parameter values OP1, OP3, OP4, OP5 and OP7, respectively, in the operating data set. As describe above, the encrypted time (e.g., ET1, ET2, etc.) can be generated by encrypting external time generated by external time source <NUM>. In some implementations, system time (e.g., system time <NUM>) can be synchronized with the external time of the external time source <NUM>. The synchronization can result in a relationship between the encrypted time (e.g., encrypted time values <NUM>) and the system time (e.g., system time values <NUM>), wherein an encrypted time value is generated by encrypting a system time value. For example, as shown in <FIG>, encrypted time values ET1, ET2, ET3, ET4 can be generated by encrypting system time values ST1, ST3, ST5 and ST7, respectively.

The CM system <NUM> can include a calculation unit <NUM> and a memory <NUM>. The calculation unit <NUM> can execute steps <NUM>-<NUM>. For example, the calculation unit <NUM> can receive the operating parameter values (e.g., OP1-OP7) and encrypted time values (e.g., ET1-ET4), and calculate the operating data set that includes new encrypted time values. In some implementations, the calculation unit <NUM> may also generate the system time values (e.g., based on external time generated by external time source). The CM system <NUM> can include a memory <NUM> that can store various information associated with the generation of the operating data set.

Returning back to <FIG>, at step <NUM>, the operating data set can be provided (e.g., to a second computing device <NUM>). The second computing device <NUM> can receive the operating data set and execute a decryption algorithm <NUM>. The decryption algorithm <NUM> can receive the operating data set including the one or more encrypted time values (e.g., selected from the encrypted time values <NUM>, generated based on interpolation, etc.) and generate corresponding decrypted time values. The decrypted time values can correspond to the system time values (e.g., system time values <NUM>). For example, as illustrated in <FIG>, decrypting the encrypted time values ET1, ET2, ET_N, ET3 and ET4 can generate system time values ST1, ST3, ST4, ST5 and ST7, respectively. By transmitting the operating data set and by decrypting the encrypted time values, information associated with the operating parameters received by the CM system <NUM> and the corresponding system time values (e.g., system time values at which the encrypted time values are received) can be transmitted from the CM system <NUM> to the second computing device <NUM>. Transmission of encrypted time values instead to system time values can reduce the vulnerability of the CM system <NUM>, second computing device <NUM>, etc..

In some implementations, the second computing device <NUM> can be a controller. The controller can receive the operating parameters and the corresponding encrypted time values and control the operations on an industrial machine (e.g., industrial machine <NUM>, another industrial machine in the industrial enterprise that includes the industrial machine <NUM>, etc.). For example, the controller can stop an industrial machine (e.g., industrial machine <NUM>) when one or more operating parameter values exceed a predetermined threshold value. Alternately, the controller can vary the operating state or operating parameter of the industrial machine, set an alarm, generate a notification, etc., based on the operating parameter values as a function of system time.

The controller can, among other things, monitor operating parameters of the industrial machine <NUM>, send signals to actuate and/or adjust various operating parameters of such industrial machines <NUM>. As shown in <FIG>, <FIG>, and <FIG>, the controller included in the second computing device <NUM> can include one or more processors and a non-transitory computer readable memory storage (e.g., memory) containing instructions that cause the processors to perform operations, such as the process <NUM> described with reference to <FIG>. The processors can be coupled to an input/output (I/O) interface for sending and receiving communications with components in the industrial machine <NUM>, including, for example, [SC]: temperature, pressure and flow T2 sensor, the P2 sensor, the T48 sensor, a fuel flow rate sensor. In some implementations, the controller can additionally communicate a status with and send actuation and/or control signals to one or more of the various components (including, for example, a fuel flow pump) of the industrial machine <NUM>, as well as other sensors (e.g., pressure sensors, temperature sensors, vibration sensors and other types of sensors) that provide signals to the industrial machine <NUM>.

The controller can be implemented with various levels of autonomy. In some implementations, the controller can alert an operator that an operating parameter is out of an optimal operating range (defined by a corresponding specification as corresponding to a functional range with low risk of leading to operational defects) during a period of time. For example, emissions that are above a target threshold along a set period of time can be identified in an alert sent to the operator who can adjusts engine parameter to move the emissions below the desired emissions threshold. In some implementations, the controller alerts the operator that an operating parameter is out of the optimal operating range (defined by a corresponding specification) during a period of time, and provides recommendations to the operator to adjust an operation of the industrial machine <NUM> to adjust the operational parameter to be within the operational range. The operator can select an option and the controller adjusts operations accordingly. In some implementations, the controller can determine that an operating parameter is out of the optimal operating range (defined by a corresponding specification) during a period of time, and can be configured to automatically change or otherwise adjusts operations of the industrial machine <NUM> to adjust the operating parameter within the optimal operating range with no input from the operator. The automatic adjustment of operating parameters can also prevent the industrial machine <NUM> from becoming unfunctional.

<FIG> is another example of a system <NUM> including an example of a condition monitoring system <NUM>. In the example system <NUM>, the condition monitoring system <NUM> can be configured to execute an encryption algorithm <NUM> that can receive an external time from the external time source <NUM> and generate encrypted time. The encrypted time generated by the encryption algorithm <NUM> can be received by the calculation unit <NUM>. Additionally, the calculation unit <NUM> can be configured to receive the data characterizing the plurality of operating parameters from a sensor operatively coupled to the industrial machine <NUM>, and generate the operating data set based on the encrypted time (e.g., generated by the encryption algorithm <NUM>), the received operating parameters and the system time (e.g., as described in steps <NUM>-<NUM> of <FIG>). The operating data set can be provided to the second computing device <NUM> that can be configured to include a decryption module <NUM> configured to execute the decryption algorithm.

<FIG> is another example of a system <NUM> including an example of a condition monitoring system <NUM>. In the example system <NUM>, the condition monitoring system <NUM> can execute an encryption algorithm <NUM> and the decryption algorithm <NUM>. As described above, the encryption algorithm <NUM> can generate encrypted time that can be received by the calculation unit <NUM>. Additionally, the calculation unit <NUM> can be configured to generate operating data set (e.g., as described in steps <NUM>-<NUM> of <FIG>). The operating data set can be provided to the decryption algorithm <NUM> that can decrypt the encrypted time in the operating data set (e.g., as described in <FIG>, decrypt the encrypted time values ET1, ET2, ET_N, ET3 and ET4 and generate ST1, ST3, ST4, ST5 and ST7, respectively).

One skilled in the art will appreciate further features and advantages of the subject matter described herein based on the above-described embodiments. Accordingly, the present application is not to be limited specifically by what has been particularly shown and described.

Other embodiments are within the scope of the disclosed subject matter. Those skilled in the art will understand that the systems, devices, and methods specifically described herein and illustrated in the accompanying drawings are non-limiting examples of embodiments and that the scope of the present invention is defined solely by the claims. The features illustrated or described in connection with one exemplary embodiment may be combined with the features of other embodiments. Such modifications and variations are intended to be included within the scope of the present invention.

The subject matter described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them.

Claim 1:
A method comprising:
receiving data characterizing a plurality of operating parameters associated with an industrial machine;
receiving data characterizing a plurality of encrypted times;
identifying a first encrypted time from the plurality of encrypted times based on temporal location of the first encrypted time relative to a first system time of a plurality of system time, wherein a first operating parameter of the plurality of operating parameters is received at the first system time;
generating an operating data set comprising at least the first operating parameter and a new encrypted time based at least on the first encrypted time, wherein the new encrypted time is tagged to the first operating parameter; and
providing the operating data set.