Software-based time rollover detection
The controller accurately detects time rollover by comparing GNSS data to a baseline, updating dates and offset values to ensure correct time and date information for machine components, addressing incorrect detections and operational issues.
Patent Information
- Application Number
- JP2022557069
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-03-23
- Filing Date
- 2021-03-19
- Publication Date
- 2025-08-13
- Estimated Expiration
- 2041-03-19
AI Technical Summary
Existing systems fail to accurately detect time rollover in Global Navigation Satellite System (GNSS) data, leading to incorrect time and date information that can prevent operators from accessing machines or starting engines, and may incorrectly detect rollovers due to format or transmission errors.
A controller processes GNSS data to generate a GPS receiver date, compares it to a baseline date, and if earlier, obtains a network date to confirm rollover, updating the baseline date and offset value to correct the GPS receiver date, ensuring accurate system date provision.
The method accurately detects time rollover, providing correct time and date information to machine components, preventing false detections and ensuring proper machine operation.
Smart Images

Figure 0007723003000001 
Figure 0007723003000002 
Figure 0007723003000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to controllers for machines, for example, controllers configured to detect time rollover. [Background technology]
[0002] The machine may include a controller that provides commands and / or information to machine components, such as an engine, a security system, a productivity tracking system, a maintenance alert system, and / or the like. For example, the machine may include a controller having a Global Navigation Satellite System (GNSS) receiver (e.g., a Global Positioning System (GPS) receiver, a Galileo receiver, a Global Navigation Satellite System, Russian (GLONASS) receiver, a BeiDou receiver, and / or the like), a satellite radio, a cellular radio, and / or the like, and the controller may provide time and / or date information to the security system. The security system can use the time and / or date information to determine whether to allow an operator to enter the machine, start an engine therein, and / or the like. The security system may be configured, for example, to only allow certain operators and / or operators from among a group of operators to enter the machine based on the time of day, the day of the week, and / or the like.
[0003] The controller may include a GPS receiver that obtains week and second information from GPS satellites, and the controller may determine the time and / or date based on the week and second information. GPS satellites may provide the week information as the number of weeks from a predetermined date, starting from zero. However, based on the GPS protocol, GPS satellites can only use 10-digit binary numbers to provide the week information. Thus, after 1,024 weeks, GPS satellites provide zero for the week information, which may be referred to as a "rollover." Such a rollover may occur in any system that tracks time information by incrementally incrementing a counter, and the counter has a limited data space (e.g., a set of binary digits and / or the like) for transmission, storage, and / or the like.
[0004] After a rollover occurs, the controller may provide incorrect time and / or date information to machine components such as the engine, security system, productivity tracking system, maintenance alert system, and / or the like. For example, the controller may provide incorrect time and / or date information to a security system, and the security system may prevent an operator from accessing the machine, starting the engine, and / or the like based on the incorrect time and / or date information.
[0005] One attempt to detect time rollover is disclosed in Japanese Patent Publication No. 6421728 ('728 Publication) to Denso, published on November 14, 2018. In particular, the '728 Publication discloses a device on a vehicle that sets an initial date and time to the date and time of a previous GPS reception date and time backed up during a previous operation and setup date and time, and determines whether a rollover has occurred based on the initial date and time and the GPS navigation message. If a rollover has occurred, the device on the vehicle generates a GPS reception date and time based on the navigation message, taking into account a period corresponding to the rollover.
[0006] Although the device on the vehicle in the '728 publication may detect that a rollover has occurred and update the date and time based on the rollover, the device on the vehicle may detect that a rollover has occurred even when no rollover has occurred. For example, a format error, transmission error, and / or the like in the GPS navigation message may cause the device on the vehicle to detect that a rollover has occurred, and the device on the vehicle may generate an updated date and time and update a previous backed-up GPS reception date and time, thereby causing the device on the vehicle to repeatedly detect that a rollover has occurred when the GPS navigation message is received.
[0007] The method solves one or more of the above problems and / or other problems in the art. Summary of the Invention
[0008] According to some implementations, a method may include: receiving, by a controller for the machine, time data including week data and second data; processing, by the controller, the time data to generate a first date; generating, by the controller, a second date based on the first date and an offset value; obtaining, by the controller, a network date when the second date is before a baseline date; assigning, by the controller, the network date as the baseline date; processing, by the controller, the network date and the first date to determine an updated offset value; storing, by the controller, the updated offset value as the offset value; providing, by the controller, a system date based on the network date to an application when the second date is before the baseline date, wherein the application determines whether to lock a door of the machine based on the system date; and providing, by the controller, the system date to the application when the second date is not before the baseline date, wherein the system date corresponds to the second date.
[0009] According to some implementations, a method may include: receiving, by a device, time data including week data and second data; processing, by the device, the time data to generate a first date; generating, by the device, a second date based on the first date and an offset value; obtaining, by the device, a network date when the second date is earlier than a baseline date; assigning, by the device, the network date as the baseline date; processing, by the device, the network date and the first date to determine an updated offset value; storing, by the device, the updated offset value as the offset value; and determining, by the device, a system date based on the network date.
[0010] According to some implementations, a method may include: receiving, by a device, time data including week data and second data from a Global Navigation Satellite System (GNSS) satellite; processing, by the device, the time data to generate a first date; generating, by the device, a second date based on the first date and an offset value; obtaining, by the device, a network date from at least one of a network time protocol or a satellite system when the second date is earlier than a baseline date; assigning, by the device, the network date as the baseline date; processing, by the device, the network date and the first date to determine an updated offset value; storing, by the device, the updated offset value as the offset value; and determining, by the device, a system date based on the network date. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 2] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 3] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 4] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 5] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 6] FIG. 1 is a diagram of an example implementation of time rollover detection as described herein. [Figure 7] 1 is a flowchart of an example process for time rollover detection and updating of baseline dates. [Figure 8] 1 is a flowchart of an example process for time rollover detection and updating of baseline dates. [Figure 9] FIG. 7 is a diagram of example components of one or more of the devices of FIGS. 1-6. [Figure 10] 1 is a flowchart of an example process for time rollover detection. DETAILED DESCRIPTION OF THE INVENTION
[0012] The present disclosure relates to a process for detecting time rollover, for example, using a controller. The process and / or controller have universal applicability to any machine that utilizes time data (e.g., from a GNSS receiver and / or the like). For example, the controller may detect when time rollover has occurred by comparing a GPS receiver date to a baseline date (e.g., stored by the controller when the controller was last on) and determining that time rollover has occurred when the GPS receiver date is earlier than the baseline date. Based on determining that time rollover has occurred, the controller may obtain a network date from an asset connectivity satellite and / or network (e.g., to confirm that time rollover has occurred). The controller may determine whether the GPS receiver date and / or network date are valid (e.g., have the appropriate format and / or the like) to prevent an invalid date from triggering detection of time rollover. The controller may update the baseline date based on the network date, and the controller may update an offset value based on the network date. The controller may use the offset value to modify the GPS receiver date to account for the detected time rollover. The following description of the figures and example implementations provides further illustrations and explanations of the method and / or controller.
[0013] 1-6 are diagrams of an example implementation 100 of the time rollover detection described herein. For example, as shown in FIGS. 1-6, the example implementation 100 includes a machine 102, a controller 104, a GPS receiver 106, GPS satellites 108, asset connectivity satellites 110, and a network 112. While the example implementation 100 includes a GPS receiver 106 and a GPS satellite 108, other implementations may include other types of GNSS receivers and GNSS satellites (e.g., Galileo, GLONASS, BeiDou, and / or similar). FIGS. 1-6 show dates using the U.S. format of MM / DD / YYYY (month / day / year).
[0014] 1, machine 102 may include controller 104. For example, controller 104 may be an embedded controller for providing instructions and / or information to machine components such as an engine, a security system, a productivity tracking system, a maintenance alert system, and / or the like. Controller 104 may include and / or be communicatively connected to GPS receiver 106. As shown in FIG. 1, controller 104 may store tables (e.g., in non-volatile memory and / or the like) including a GPS receiver date, a system date, a baseline date, an offset value, and a modified GPS receiver date, each of which is further described herein.
[0015] 1, GPS satellites 108 may provide time data, indicated by reference numeral 130, including week data and second data, to GPS receiver 106. For example, an operator may power on machine 102, controller 104, and / or the like, and GPS receiver 106 may begin receiving signals from GPS satellites 108 that include week data and second data. As shown in FIG. 1, the week data may have a value of 1, and the second data may have a value of 115200. As also shown in FIG. 1, when an operator powers on machine 102, controller 104, and / or the like, the system date is unknown.
[0016] 1 and by reference numeral 132, the controller 104 may generate a GPS receiver date (e.g., by processing the time data). For example, the GPS receiver 106 may generate a message for the controller that includes the GPS receiver date based on the week data and second data. The GPS receiver date may be generated by adding the week number in the week data and the second number in the second data to the start date and time. For example, the GPS uses January 6, 1980 (01 / 06 / 1980) 12:00 AM as the start date and time.
[0017] The GPS receiver 106 may be configured to generate a GPS receiver date based on the week data, the second data, and an offset to account for any rollovers that may have occurred prior to the manufacture of the GPS receiver 106 (e.g., the first GPS rollover that occurred on August 22, 1999 at 12:00 AM, the second GPS rollover that occurred on April 7, 2019 at 12:00 AM, and / or the like). For example, the GPS receiver 106 may be configured to generate a GPS receiver date by adding the number of weeks in the week data, the number of seconds in the second data, and an offset of 1,024 weeks to account for the first GPS rollover on January 6, 1980 at 12:00 AM to obtain a GPS receiver date of August 30, 1999 at 8:00 AM.
[0018] 1, GPS receiver 106 may add a 1,024 week offset to January 6, 1980, 12:00 AM to account for the first GPS rollover and obtain August 22, 1999, 12:00 AM. GPS receiver 106 may add one week to August 22, 1999, 12:00 AM to account for the week within the week data and obtain August 29, 1999, 12:00 AM. GPS receiver 106 may add 115,200 seconds to August 29, 1999, 12:00 AM to account for the seconds within the seconds data and obtain a GPS receiver date of August 30, 1999.
[0019] As shown in FIG. 1 and by reference numeral 134, the controller 104 may modify the GPS receiver date with an offset value. As shown in FIG. 1, the offset value may initially be zero. The offset value may include a value to account for any rollover that may have occurred since the manufacture of the GPS receiver 106. For example, if the GPS receiver 106 was manufactured before the rollover and the controller 104 was manufactured after the rollover, the controller 104 may be configured to initially store a value to account for the rollover that occurred between the manufacture of the GPS receiver 106 and the controller 104. Thus, when the controller 104 modifies the GPS receiver date with the offset value, the modified GPS receiver date may be corrected to account for the rollover. Based on the GPS receiver date of August 30, 1999, and an offset value of zero shown in FIG. 1, the controller 104 may generate a modified GPS receiver date of August 30, 1999.
[0020] 1 and by reference numeral 136, the controller 104 may compare the modified GPS receiver date to a baseline date. The baseline date may initially be the controller 104 manufacture date, a date after rollover that is earlier than the controller 104 manufacture date, the last power-on date of the controller 104 and / or machine 102, and / or the like. As shown in FIG. 1, the baseline date may be April 3, 2019, which may correspond to the last power-on date of the controller 104.
[0021] The controller 104 may process the modified GPS receiver date and the baseline date to determine whether the modified GPS receiver date is earlier than the baseline date. For example, the controller 104 may process a modified GPS receiver date of August 30, 1999 and a baseline date of April 3, 2019 to determine that the modified GPS receiver date is earlier than the baseline date.
[0022] Based on determining that the modified GPS receiver date is earlier than the baseline date, the controller 104 may determine that a rollover has occurred. For example, a baseline date of April 3, 2019 may correspond to the date the controller 104 was last powered on. A second GPS rollover occurred on April 7, 2019, at 12:00 AM. As shown in FIG. 1 , an operator may power on the controller 104 on April 15, 2019, at 8:00 AM (UTC). Based on determining that the modified GPS receiver date of August 30, 1999 is earlier than the baseline date of April 3, 2019, the controller 104 may determine that a second rollover has occurred.
[0023] 2 , and by reference numeral 138, the controller 104 may obtain the network date from the asset connectivity satellite 110 and / or the network 112. For example, the controller 104 may obtain the network date based on determining that a modified GPS receiver date is earlier than a baseline date. The asset connectivity satellite 110 may be a component of an asset tracking system used by an entity (e.g., an owner, an operator, a manufacturer, and / or the like) associated with the machine 102 and / or the controller 104 to track, monitor, control, and / or the like the machine 102 and / or the controller 104.
[0024] The network 112 may include a cellular network (e.g., a long-term evolution (LTE) network, a code division multiple access (CDMA) network, a 3G network, a 4G network, a 5G network, another type of next-generation network, and / or the like), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, and / or the like, and / or a combination of these or other types of networks. For example, the network 112 may include a wireless network for a field where the machine 102 operates, where the wireless network is maintained by an entity associated with the machine 102, and the network 112 may include a network time protocol from which the controller 104 obtains the network date.
[0025] As shown in FIG. 2 and by reference numeral 140, the controller 104 may process the modified GPS receiver date and network date. The controller 104 may process the modified GPS receiver date and network date to determine whether the modified GPS receiver date and network date are valid. For example, the controller 104 may determine whether the modified GPS receiver date and network date have the correct formatting scheme (e.g., month-day-year format and / or the like), whether they contain valid date data (e.g., do not contain only zeros and / or the like), and / or the like. By determining whether the modified GPS receiver date and network date are valid before determining the system date, updating the baseline date, updating the offset value, and / or the like, the controller 104 may prevent an invalid GPS receiver date and / or network date from affecting the system date, baseline date, offset value, and / or the like. In this manner, the controller 104 may provide correct time and / or date information to other components, systems, applications, and / or the like.
[0026] 2, and by reference numeral 142, the controller 104 may store the network date as the baseline date. For example, the controller 104 may store the network date as the baseline date based on determining that the changed GPS receiver date and network date are valid. As shown in FIG. 2, the network date may be April 15, 2019, and the controller 104 may store the network date of April 15, 2019 in the table as the baseline date.
[0027] The controller 104 may determine and store a baseline date based on a network date and a time zone offset, where the time zone offset accounts for the time zone difference between the network date and the UTC time at which the GPS satellites provide the time data. For example, the controller 104 may use the time zone offset to convert the network date to UTC time and store the converted UTC network date as the baseline date.
[0028] As shown in FIG. 3 and by reference numeral 144, the controller 104 may update the offset value. For example, the controller 104 may update the offset value based on determining that the changed GPS receiver date and network date are valid. The controller 104 may increase the offset value by a number corresponding to the time between rollovers. For example, as shown in FIG. 3, the controller 104 may update the offset value by adding 1,024 to the offset value, where 1,024 corresponds to the number of weeks between GPS rollovers.
[0029] The controller 104 may determine the number of epochs. For example, the first epoch may be the period between a start date and time of January 6, 1980, 12:00 AM and a GPS rollover of August 22, 1999, 12:00 AM, and the second epoch may be the period between a first GPS rollover of August 22, 1999, 12:00 AM and a second GPS rollover occurring on April 7, 2019, 12:00 AM. The number of epochs may correspond to a number of epochs between the start date and time and the system date and time. For example, based on a system date of April 15, 2019, 8:00 AM, the controller 104 may determine a number of epochs of 2. Additionally or alternatively, the controller 104 may determine the epoch number by determining the difference between the system date and the start date, dividing the difference by 1,024 to obtain an exponent, and determining that the epoch number corresponds to the quotient.
[0030] 3, and by reference numeral 146, the controller 104 may determine the system date. For example, the controller 104 may determine the system date based on determining that a changed GPS receiver date and network date are valid. As shown in FIG. 3, the controller 104 may determine that the system date corresponds to a network date of April 15, 2019.
[0031] The controller 104 may provide the system date to components of the machine, such as the engine, a security system, a productivity tracking system, a maintenance alert system, and / or the like. For example, the controller 104 may provide the system date to a security system, which may allow an operator to perform one or more functions, such as starting the engine, powering on other components of the machine, and / or the like, based on the system date.
[0032] In another example, the controller 104 may provide the system date to a productivity tracking system. The productivity tracking system may provide information to an employee management system based on the system date. For example, the productivity tracking system may transmit (e.g., via the network 112, another network, and / or the like) information regarding the operation of the machine 102 by the operator, including the system date.
[0033] In yet another example, the controller 104 may provide the system date to a maintenance alert system. The maintenance alert system may provide an operator, a maintenance management system, and / or the like based on the system date, information, alerts, and / or the like. For example, the maintenance alert system may determine that one or more parts of the machine need to be replaced based on the system date, provide an alert to an operator, and transmit information regarding the one or more parts of the machine that need to be replaced (e.g., via the network 112, another network, and / or the like).
[0034] In this way, the controller 104 can determine whether a rollover has occurred based on the baseline date and the modified GPS receiver date, obtain the network date to confirm that a rollover has occurred, update the baseline date, update the offset values, and provide the correct system date to the components of the machine 102 despite the rollover.
[0035] The operator may power on the machine 102, controller 104, and / or the like at a later date and time, such as 8:00 AM on November 11, 2019, as shown in FIG. 4 . As indicated by reference numeral 148, the GPS satellites 108 may provide time data including week data and second data to the GPS receiver 106. For example, the GPS receiver 106 may begin receiving signals including week data and second data from the GPS satellites 108 when the operator powers on the machine 102, controller 104, and / or the like. As shown in FIG. 4 , the week data may have a value of 31, and the second data may have a value of 115200. As also shown in FIG. 4 , when the operator powers on the machine 102, controller 104, and / or the like, the system date is unknown.
[0036] As shown in Figure 4, and by reference numeral 150, controller 104 may generate a GPS receiver date (e.g., by processing the time data) in a manner similar to that described with respect to Figure 1. For example, GPS receiver 106 may be configured to generate a GPS receiver date by adding the week number in the week data, the second number in the second data, and an offset of 1,024 weeks to account for the first GPS rollover to January 6, 1980, at 12:00 AM, to obtain a GPS receiver date of March 27, 2000, at 8:00 AM.
[0037] 4, and by reference numeral 152, the controller 104 may modify the GPS receiver date with an offset value in a manner similar to that described with respect to FIGURE 1. For example, based on a GPS receiver date of March 27, 2000, and an offset value of 1,024, the controller 104 may generate a modified GPS receiver date of November 11, 2019.
[0038] As shown in FIG. 4 and by reference numeral 154, the controller 104 may compare the modified GPS receiver date to the baseline date in a manner similar to that described with respect to FIG. 1. The controller 104 may process the modified GPS receiver date and the baseline date to determine whether the modified GPS receiver date is earlier than the baseline date. For example, the controller 104 may process a modified GPS receiver date of November 11, 2019 and a baseline date of April 15, 2019 to determine that the modified GPS receiver date is not earlier than the baseline date. Based on determining that the modified GPS receiver date is not earlier than the baseline date, the controller 104 may determine that a rollover has not occurred.
[0039] 5, and by reference numeral 156, the controller 104 may determine the difference between the modified GPS receiver date and the baseline date. For example, based on determining that the modified GPS receiver date is not earlier than the baseline date, the controller 104 may determine the difference between the modified GPS receiver date and the baseline date.
[0040] 5, and by reference numeral 158, the controller 104 may determine whether the difference meets a threshold. The controller 104 may determine that the difference between the modified GPS receiver date and the baseline date meets the threshold based on a difference greater than a period of time (e.g., a day, a week, a month, a year, and / or the like). For example, the controller 104 may determine that the difference meets the threshold if the difference is greater than six months. Based on a modified GPS receiver date of November 11, 2019 and a baseline date of April 15, 2019 shown in FIG. 5, the controller 104 may determine that the difference meets the threshold.
[0041] 6, and by reference numeral 160, the controller 104 may obtain a network date from the asset connectivity satellite 110 and / or the network 112. For example, the controller 104 may obtain the network date based on determining that the difference between the modified GPS receiver date and the baseline date meets a threshold value.
[0042] As shown in Figure 6 and by reference numeral 162, the controller 104 may process the modified GPS receiver date and network date in a manner similar to that described with respect to Figure 2. For example, the controller 104 may process the modified GPS receiver date and network date to determine whether the modified GPS receiver date and network date are valid.
[0043] 6, and by reference numeral 164, the controller 104 may store the network date as the baseline date. For example, the controller 104 may store the network date as the baseline date based on determining that the changed GPS receiver date and network date are valid. As shown in FIG. 6, the network date may be November 11, 2019, and the controller 104 may store the network date of November 11, 2019 in the table as the baseline date.
[0044] As shown in FIG. 6 and by reference numeral 166, the controller 104 may determine the system date. For example, the controller 104 may determine the system date based on determining that a modified GPS receiver date and network date are valid. As shown in FIG. 6, the controller 104 may determine that the system date corresponds to a network date of November 11, 2019. The controller 104 may provide the system date to components of the machine, such as the engine, security system, productivity tracking system, maintenance alert system, and / or the like, in a manner similar to that described with respect to FIG. 3.
[0045] In this manner, the controller 104 can determine whether the difference between the modified GPS receiver date and the baseline date meets a threshold value that may indicate that the baseline date should be updated, obtain the network date, update the baseline date, and provide the correct system date to the components of the machine 102.
[0046] As noted above, Figures 1-6 are provided as examples. Other embodiments may differ from those described with reference to Figures 1-6.
[0047] 7 and 8 are flowcharts of an example process 700 for time rollover detection and updating of the baseline date. The controller 104 may perform one or more of the steps shown in the flowcharts of FIGS. 7 and 8. For example, the controller 104 (e.g., using the GPS receiver 106) may obtain a GPS date (block 705) (e.g., in a manner similar to that described with reference to reference numbers 130 and / or 132 in FIG. 1 , 148 and / or 150 in FIG. 4 , and / or the like). The controller 104 may modify the GPS date with an offset value (block 710) (e.g., in a manner similar to that described with reference to reference number 134 in FIG. 1 , 152 in FIG. 4 , and / or the like). The controller 104 may determine whether the modified GPS date is earlier than the baseline date (block 715) (e.g., in a manner similar to that described with reference to reference number 136 in FIG. 1 , 154 in FIG. 4 , and / or the like). If the changed GPS date is earlier than the baseline date, the controller 104 may set a flag (e.g., a flag to trigger the controller 104 to perform a re-baseline method and / or the like) to re-baseline (block 720).
[0048] If the modified GPS date is not earlier than the baseline date, the controller 104 may determine the difference between the modified GPS date and the baseline date (block 725) (e.g., in a manner similar to that described with reference to reference number 156 and / or the like in FIG. 5 ). The controller 104 may determine whether the difference meets a threshold (block 730) (e.g., in a manner similar to that described with reference to reference number 158 and / or the like in FIG. 5 ). If the difference meets the threshold, the controller 104 may set a flag to re-baseline (block 720). If the difference does not meet the threshold, the controller 104 may provide the system date (e.g., to a component, system, application, and / or the like) (block 735). For example, the controller 104 may provide the system date (block 735) in a manner similar to that described with reference to FIG. 3 .
[0049] 8, the controller 104 may determine whether a flag is set to re-baseline (block 740). If the flag is not set to re-baseline, the controller 104 may stop (Done). If the flag is set to re-baseline, the controller 104 may obtain a network date (block 745) (e.g., in a manner similar to that described with reference to reference numeral 138 of FIG. 2, reference numeral 160 of FIG. 6, and / or the like).
[0050] The controller 104 may determine whether the modified GPS date is valid (block 750) (e.g., in a manner similar to that described with respect to reference numeral 140 of FIG. 2, reference numeral 162 of FIG. 6, and / or the like). If the modified GPS date is not valid, the controller 104 may stop (Done). If the modified GPS date is valid, the controller may determine whether the network date is valid (block 755) (e.g., in a manner similar to that described with respect to reference numeral 140 of FIG. 2, reference numeral 162 of FIG. 6, and / or the like). If the network date is not valid, the controller 104 may stop (Done).
[0051] If the network date is valid, the controller 104 may store the network date as the baseline date (block 760) (e.g., in a manner similar to that described with reference to reference numeral 142 of FIG. 2, reference numeral 164 of FIG. 6, and / or the like). The controller 104 may determine an epoch number (block 765) (e.g., based on the network date, the system date, the start date, and / or the like). For example, the controller 104 may determine the epoch number (block 765) in a manner similar to that described with reference to FIG. 3. The controller 104 may store an updated offset value (block 770) (e.g., based on the epoch number and / or the like). For example, the controller 104 may store the updated offset value (block 770) in a manner similar to that described with reference to reference numeral 144 of FIG. 3. After storing the network date as the baseline date, determining the epoch number, and / or storing the updated offset value, the controller 104 may clear the flag for the baseline (block 775).
[0052] As noted above, Figures 7 and 8 are provided as examples. Other implementations may differ from those described in connection with Figures 7 and 8.
[0053] 9 is a diagram of example components of a device 900. The device 900 may correspond to the controller 104 and / or the GPS receiver 106. The controller 104 and / or the GPS receiver 106 may include one or more of the devices 900 and / or one or more components of the devices 900. As shown in FIG. 9, the device 900 may include a bus 910, a processor 920, a memory 930, a storage component 940, an input component 950, an output component 960, and a communication interface 970.
[0054] The bus 910 includes components that enable communication between multiple components of the device 900. The processor 920 is implemented in hardware, firmware, and / or a combination of hardware and software. The processor 920 may be a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or another type of processing component. The processor 920 may include one or more processors that can be programmed to perform functions. The memory 930 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions used by the processor 920.
[0055] Storage component 940 stores information and / or software related to the operation and use of device 900. For example, storage component 940 may include a hard disk (e.g., a magnetic disk, an optical disk, and / or a magneto-optical disk), a solid-state drive (SSD), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive.
[0056] Input components 950 include components that enable device 900 to receive information, for example, via user input (e.g., a touchscreen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone). Additionally or alternatively, input components 950 may include components for determining location (e.g., a global positioning system (GPS) component) and / or sensors (e.g., an accelerometer, a gyroscope, an actuator, another type of positional or environmental sensor, and / or the like). Output components 960 include components that provide output information from device 900 (e.g., via a display, a speaker, a haptic feedback component, an audio or visual indicator, and / or the like).
[0057] Communications interface 970 includes transceiver-like components (e.g., a transceiver, a separate receiver, a separate transmitter, and / or the like) that enable device 900 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communications interface 970 may enable device 900 to receive information from and / or provide information to another device. For example, communications interface 970 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a wireless local area network interface, a cellular network interface, and / or the like.
[0058] The device 900 may perform one or more processes described herein. The device 900 may perform these processes based on the processor 920 executing software instructions stored by a non-transitory computer-readable medium, such as the memory 930 and / or the storage component 940. As used herein, the term "computer-readable medium" refers to a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
[0059] Software instructions may be read into memory 930 and / or storage component 940 via communications interface 970, from another computer-readable medium, or from another device. When executed, the software instructions stored in memory 930 and / or storage component 940 may cause processor 920 to perform one or more processes described herein. Additionally, or alternatively, hardware circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
[0060] The number and arrangement of components shown in Figure 9 are provided as an example. In practice, device 900 may include additional, fewer, different, or differently arranged components than those shown in Figure 9. Additionally or alternatively, a set of components (e.g., one or more components) of device 900 may perform one or more functions described as being performed by another set of components of device 900.
[0061] 10 is a flowchart of an example process 1000 for time rollover detection. One or more process blocks of FIG. 10 may be performed by a controller (e.g., controller 104). One or more process blocks of FIG. 10 may be performed by another device or group of devices separate from or including the controller, such as a GPS receiver (e.g., GPS receiver 106) and / or the like.
[0062] 10 , process 1000 may include receiving time data (block 1010), including week data and second data. For example, a controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may receive the time data, including week data and second data, as described above. The controller may be a controller for a machine, and the machine may include at least one of a dozer, an excavator, a haul truck, a paver, or a compactor. Receiving the time data may include receiving a time date from a GNSS satellite.
[0063] 10, process 1000 may include processing the time data to generate a first date (block 1020). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may process the time data to generate the first date, as described above.
[0064] 10, process 1000 may include generating a second date based on the first date and the offset value (block 1030). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may generate the second date based on the first date and the offset value, as described above.
[0065] 10 , process 1000 may include obtaining a network date when the second date is earlier than the baseline date (block 1040). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may obtain a network date when the second date is earlier than the baseline date, as described above. Obtaining the network date may include obtaining the network date from at least one of a network time protocol or a satellite system.
[0066] 10, process 1000 may include assigning a network date as a baseline date (block 1050). For example, the controller (e.g., using the processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may assign the network date as the baseline date, as described above.
[0067] 10, process 1000 may include processing the network date and the first date to determine an updated offset value (block 1060). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may process the network date and the first date to determine an updated offset value, as described above. Processing the network date and the first date to determine an updated offset value may include determining a difference between the first date and the network date and dividing the difference between the first date and the network date by an integer.
[0068] 10, process 1000 may include storing the updated offset value as the offset value (block 1070). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may store the updated offset value as the offset value, as described above.
[0069] 10, process 1000 may include determining a system date based on the network date (block 1080). For example, the controller (e.g., using processor 920, memory 930, storage component 940, input component 950, output component 960, communication interface 970, and / or the like) may determine the system date based on the network date, as described above. Determining the system date may include determining the system date as corresponding to the network date.
[0070] Process 1000 may include providing a system date to the application when the second date is earlier than the baseline date. Process 1000 may include providing a system date based on the network date to the application when the second date is earlier than the baseline date, where the application determines whether to lock a door of the machine based on the system date.
[0071] The process 1000 may include, when the second date is not before the baseline date, providing a system date to the application, where the system date corresponds to the second date. The process 1000 may include, when the second date is not before the baseline date, processing the second date and the baseline date to determine whether a difference between the second date and the baseline date meets a threshold or whether a difference between the second date and the baseline date does not meet a threshold, obtaining a network date based on the difference between the second date and the baseline date meeting the threshold, and storing the network date as the baseline date.
[0072] The process 1000 may include determining an epoch number based on a difference between the network date and the first date, and storing the epoch number. The process 1000 may include periodically processing the received time data to generate another date, generating a modified date based on the offset value and the another date, obtaining the another network date, and processing the other network date and the modified date to determine whether the modified date corresponds to the other network date or whether the modified date does not correspond to the other network date.
[0073] 10 shows example blocks of process 1000, in some implementations process 1000 may include additional, fewer, different, or differently arranged blocks than depicted in FIG 10. Additionally or alternatively, two or more of the blocks of process 1000 may be performed in parallel. [Industrial Applicability]
[0074] The controller 104 of the machine 102 may be configured to provide commands and / or information to machine components, such as an engine, a security system, a productivity tracking system, a maintenance alert system, and / or the like. For example, the controller 104 may be configured to provide a system date and / or time to the machine 102 components when an operator powers on the machine 102, the controller 104, and / or the like. The machine components may use the system date to perform functions such as starting the engine, enabling the locking and unlocking of doors on the machine 102, providing information to a workforce management system regarding the operator's operation of the machine 102, providing maintenance information to an operator and / or maintenance management system, and / or the like.
[0075] Because machine 102 may not be used for an extended period of time (e.g., a day, a week, a month, a year, and / or the like), machine 102 may not include a power source (e.g., a battery and / or the like) to power a clock in controller 104, and the system date may be unknown to controller 104 upon power-up. Controller 104 may obtain time data using GPS receiver 106 and from GPS satellites 108. GPS receiver 106 may provide controller 104 with a GPS receiver date based on the time data, and controller 104 may determine the system date based on the GPS receiver date.
[0076] However, due to a GPS rollover, the controller 104 may determine an incorrect system date based on the GPS receiver date. The controller 104 may provide the incorrect system date to the machine's components, and the components may not function properly (e.g., the engine may not start, doors may lock and / or unlock at the wrong time and / or on the wrong day, maintenance alerts may not be generated, and / or the like).
[0077] Thus, the controller 104 may detect a GPS rollover based on the baseline date. Based on detecting the GPS rollover, the controller 104 may obtain a network date from the asset connectivity satellite 110 or the network 112 to confirm that a GPS rollover has occurred. By obtaining the network date after determining that a rollover has occurred, the controller 104 may save computational resources (e.g., processing resources, memory resources, power resources, communication resources, and / or the like) and / or network resources that would otherwise be consumed by obtaining a network date each time the machine 102, the controller 104, and / or the like are powered on.
[0078] The controller 104 may update the baseline date and offset value (e.g., stored in non-volatile memory) based on the network date. The controller 104 may modify the GPS receiver date based on the offset value to determine the correct system date in the future. By modifying the GPS receiver date using the offset value, the controller 104 may save computational resources (e.g., processing resources, memory resources, power resources, communication resources, and / or the like) and / or network resources that would otherwise be consumed by obtaining the network date each time the machine 102, the controller 104, and / or the like are powered on.
[0079] Before determining the system date, before updating the baseline date, before updating the offset values, and / or the like, the controller 104 may determine whether the GPS receiver date and the network date are valid. By determining whether the GPS receiver date and the network date are valid before determining the system date, before updating the baseline date, before updating the offset values, and / or the like, the controller 104 may prevent an invalid GPS receiver date and / or network date from affecting the system date, the baseline date, the offset values, and / or the like.
[0080] The controller 104 may determine a difference between the baseline date and the GPS receiver date modified with the offset value and may determine whether the difference meets a threshold. The controller 104 may obtain a network date based on determining that the difference meets the threshold and may update the baseline date based on the network date. In this manner, the controller 104 may periodically update the baseline date to improve the accuracy of GPS rollover detection and the determined system date. By obtaining the network date after determining that the baseline date meets the threshold and should be updated, the controller 104 may save computational resources (e.g., processing resources, memory resources, power resources, communication resources, and / or the like) and / or network resources that would otherwise be consumed by obtaining the network date every time the machine 102, the controller 104, and / or the like are powered on. In this manner, the controller 104 may provide correct time and / or date information to other components, systems, applications, and / or the like.
[0081] The term "machine" may refer to any machine that performs an operation associated with an industry, such as, for example, mining, construction, agriculture, transportation, or any other industry. As some examples, a machine may be a vehicle, a backhoe loader, a cold planer, a wheel loader, a compactor, a feller buncher, a forestry machine, a forwarder, a harvester, an excavator, an industrial loader, a knuckle boom loader, a material handler, a motor grader, a pipe layer, a road recovery machine, a skid steer loader, a skidder, a telehandler, a tractor, a dozer, a tractor scraper, a train, a locomotive, a diesel railcar, a rail car, a generator set, or other surface, underground, or marine equipment. Additionally, one or more implements may be connected to the machine and driven from the controller.
[0082] As used herein, the articles "a" and "an" are intended to include one or more items and may be used interchangeably with "one or more." Also, as used herein, the terms "having," "having," "having," or similar terms are intended to be open terms. Furthermore, the phrase "based on" is intended to mean "based at least in part on."
[0083] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations can be made in light of the above disclosure and obtained from practice of the implementations. It is intended that the specification be considered by way of example only, with the true scope of the disclosure being indicated by the following claims and their equivalents. Although particular combinations of features are recited in the claims and / or disclosed herein, these combinations are not intended to limit the disclosure of various implementations. Each dependent claim listed below may depend directly on only one claim, but the disclosure of various implementations includes each dependent claim in combination with all other claims in the series.
Claims
1. 1. A method comprising: receiving, by a device (104), time data including week data and second data; processing, by the device (104), the time data to generate a first date; generating, by the device (104), a second date based on the first date and an offset value; obtaining, by the device (104), a network date when the second date is earlier than a baseline date; assigning, by the device (104), the network date as the baseline date; processing, by the device (104), the network date and the first date to determine an updated offset value; storing, by the device (104), the updated offset value as the offset value; and determining, by the device (104), a system date based on the network date.
2. The method of claim 1 , wherein receiving the time data comprises receiving the time data from a Global Navigation Satellite System (GNSS) satellite (108).
3. obtaining the network date, The method of claim 1 , comprising obtaining the network date from at least one of a network time protocol or a satellite system (110).
4. processing the network date and the first date to determine the updated offset value; determining a difference between the first date and the network date; and dividing the difference between the first date and the network date by an integer.
5. determining the system date The method of claim 1 , comprising making the network date the system date.
6. The method of claim 1 , further comprising providing the system date to an application when the second date is earlier than the baseline date.
7. providing the system date to an application when the second date is not before the baseline date; The method of claim 1 , wherein the system date corresponds to the second date.
8. when the second date is not before the baseline date, processing the second date and the baseline date to determine whether a difference between the second date and the baseline date meets a threshold value or whether the difference between the second date and the baseline date does not meet the threshold value; obtaining the network date based on the difference between the second date and the baseline date satisfying the threshold; The method of claim 1 , further comprising: storing the network date as the baseline date.
9. A controller (104) for a machine (102), comprising: one or more memories (930); one or more processors (920) communicatively coupled to the one or more memories (930), receiving time data, including week data and second data; processing the time data to generate a first date; generating a second date based on the first date and an offset value; obtaining a network date when the second date is earlier than a baseline date; assigning the network date as the baseline date; processing the network date and the first date to determine an updated offset value; storing the updated offset value as the offset value; providing a system date based on the network date to an application when the second date is earlier than the baseline date, the application determining whether to lock a door of the machine (102) based on the system date; providing the system date to the application when the second date is not before the baseline date, the system date corresponding to the second date; one or more processors (920) for performing A controller (104).
10. The controller (104) of claim 9, wherein the machine (102) comprises at least one of a dozer, an excavator, a haul truck, a paver, or a compactor.
Citation Information
Patent Citations
Date-specifying method
JP2000352583A
GPS receiving device
JP2002090441A
Server device, date / time generator, and date / time generation system
JP2010249594A
Electronic timepiece
JP2015225057A
On-vehicle device and GPS reception date and time generation program
JP2017049088A