Electronic clock
Summary by NHIP
Power Machine Time Tracking
The method maintains elapsed time for a power machine by intermittently writing clock data to successive non-volatile memory locations. Upon power down, current data writes to the next location, while power up triggers a search for the highest valid value among stored entries to initialize volatile memory.
Claim Score by NHIP
Abstract
A clock stores time data indicative of time of operation of a power machine. A timing circuit provides a timing signal and a controller is coupled to a timing circuit and to a memory, which includes a plurality of memory locations. An elapsed time value is maintained, based on the timing signal, by the timing circuit, and a subset of a plurality of memory locations is intermittently updated with the elapsed time value.

Term
Term ended
Expired 24 January 2021, 5.7 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
21 claims: 2 independent, 19 dependent
- 1Broadest claimClaim Score 60, broad(NHIP)A method of maintaining clock data indicative of time of operation of a power machine, comprising:providing a plurality of clock locations in non-volatile memory;receiving a clock signal indicative of elapsed time;and intermittently writing clock data, indicative of elapsed time, to a first subset, and subsequently to a second subset, of the plurality of clock locations such that, clock data in the first subset of clock locations is different from clock data in the second subset of clock locations.
- 12A clock storing time data indicative of time of operation of a power machine, the clock comprising:a timing circuit providing a timing signal;a memory having a plurality of time locations;and a controller coupled to the timing circuit and the memory, the controller maintains an elapsed time value, based on the timing signal, and selects a first time location of the plurality of time locations and updates the selected first time location with the elapsed time value and, after a first update time period, updates a subsequently selected second time location with a first updated elapsed time value.
Independent claims2
66 paragraphs in 4 sections, as filed
The present application is based on and claims the benefit of U.S. Provisional Patent Application Ser. No. 60/221,810, filed Jul. 31, 2000, the content of which is hereby incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION
The present invention deals with power machines. More specifically, the present invention deals with an electronic clock for use as an hour meter in a power machine.
Power machines, such as skid steer loaders and mini-excavators, often require maintenance which is performed based on a number of hours of operation of the power machine. The number of hours of operation can give maintenance personnel an idea of what parts might be wearing, and what maintenance operations should be considered and performed.
Such power machines often operate in fairly hostile conditions. In other words, the power machines are often operated at construction sites over various extremely rugged terrains, and in environments which are filled with dust, snow, mud and other debris. Similarly, such power machines can operate in electronically noisy environments where electronic signaling encounters difficulty.
In spite of these difficult operating conditions, it is still desirable to maintain the hour meter for the power machine (i.e. the electronic clock) with a high degree of accuracy. Therefore, in prior systems, the hour meter was implemented with an electronic controller and a timing circuit. The actual hour meter value was stored at three separate locations in memory. At predetermined intervals, the controller would write an updated hour meter value to all three locations in memory. The write operations were performed substantially simultaneously. While this system did substantially improve the accuracy by reducing problems associated with bad memory locations and by reducing the problems associated with single bad memory write operations, the system still had disadvantages.
For instance, if the hour meter data being written by the controller was somehow corrupted, this corrupted data would be written to all three memory locations such that all three locations would then contain corrupted data. Similarly, the prior clocks wrote to all three memory locations upon power-up and power-down. However, due to different circuits in the control system powering down at different times, and glitches which can occur on signal and power lines during power-down, the hour meter value at power-down can be inaccurate. Therefore, again, all three memory locations would be written with inaccurate data.
SUMMARY OF THE INVENTION
A clock stores time data indicative of time of operation of a power machine. A timing circuit provides a timing signal and a controller is coupled to a timing circuit and to a memory, which includes a plurality of memory locations. An elapsed time value is maintained, based on the timing signal, by the timing circuit, and a subset of a plurality of memory locations is intermittently updated with the elapsed time value.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an illustration of a power machine in accordance with one embodiment of the present invention.
FIG. 2 is a block diagram of a control system for the power machine shown in FIG. <b>1</b>.
FIG. 3 is a simplified block diagram of a timing control circuit in accordance with one embodiment of the present invention.
FIG. 4 is a more detailed block diagram of a portion of the timing control circuit shown in FIG. <b>3</b>.
FIG. 5 is a flow diagram illustrating operation of the timing control circuit upon power-up.
FIG. 6 is a flow diagram illustrating operation of the timing control circuit in validating non-volatile memory values in accordance with one embodiment of the present invention.
FIG. 7 is a flow diagram illustrating the operation of the timing control circuit in updating the volatile and non-volatile memory locations in accordance with one embodiment of the present invention.
FIG. 8 is a flow diagram illustrating an operation of a timing control circuit in writing to a selected non-volatile memory location.
DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS OVERVIEW
The present invention proceeds with respect to a loader described below. However, it should be noted that the present invention can be implemented in other power machines, such as mini-excavators, as well. The present invention is described with respect to the loader for illustrative purposes only.
FIG. 1 is a side elevational view of a skid steer loader <b>10</b> of the present invention. Skid steer loader <b>10</b> includes a frame <b>12</b> supported by wheels <b>14</b>. Frame <b>12</b> also supports a cab <b>16</b> which defines an operator compartment and which substantially encloses a seat <b>19</b> on which an operator sits to control skid steer loader <b>10</b>. Cab <b>16</b> can take any shape desired and is illustrated with the shape shown for illustrative purposes only. A seat bar <b>21</b> is pivotally coupled to a portion of cab <b>16</b>. When the operator occupies seat <b>19</b>, the operator then pivots seat bar <b>21</b> from the raised position (shown in phantom in FIG. 1) to the lowered position shown in FIG. <b>1</b>. It should also be noted that seat bar <b>21</b> can be a rear pivot seat bar or can take substantially any other form.
A lift arm <b>17</b> is coupled to frame <b>12</b> at pivot points <b>20</b> (only one of which is shown in FIG. 1, the other being identically disposed on the opposite side of loader <b>10</b>). A pair of hydraulic cylinders <b>22</b> (only one of which is shown in FIG. 1) are pivotally coupled to frame <b>12</b> at pivot points <b>24</b> and to lift arm <b>17</b> at pivot points <b>26</b>. Lift arm <b>17</b> is also coupled to a working tool which, in this preferred embodiment, is a bucket <b>28</b>. Lift arm <b>17</b> is pivotally coupled to bucket <b>28</b> at pivot points <b>30</b>. In addition, another hydraulic cylinder <b>32</b> is pivotally coupled to lift arm <b>17</b> at pivot point <b>34</b> and to bucket <b>28</b> at pivot point <b>36</b>. While only one cylinder <b>32</b> is shown, it is to be understood that any desired number of cylinders could be used to work bucket <b>28</b> or any other desired tool.
The operator residing in cab <b>16</b> can manipulate lift arm <b>17</b> and bucket <b>28</b> by selectively actuating hydraulic cylinders <b>22</b> and <b>32</b>. By actuating hydraulic cylinders <b>22</b> and causing hydraulic cylinders <b>22</b> to increase in length, the operator moves lift arm <b>17</b>, and consequently bucket <b>28</b>, generally vertically upward in the direction indicated by arrow <b>38</b>. Conversely, when the operator actuates cylinder <b>22</b> causing it to decrease in length, bucket <b>28</b> moves generally vertically downward to the position shown in FIG. <b>1</b>.
The operator can also manipulate bucket <b>28</b> by actuating cylinder <b>32</b>. When the operator causes cylinder <b>32</b> to increase in length, bucket <b>28</b> tilts forward about pivot points <b>30</b>. Conversely, when the operator causes cylinder <b>32</b> to decrease in length, bucket <b>28</b> tilts rearward about pivot points <b>30</b>. The tilting is generally along an arcuate path indicated by arrow <b>40</b>.
FIG. 1 also illustrates a plurality of hand controls, or hand grips <b>39</b> which reside within the operator compartment <b>16</b>. Hand grips <b>39</b> are illustratively provided with a number of actuators (such as push buttons, potentiometers, switches, etc.) which can be manipulated by the operator to accomplish certain functions. The operator-actuable inputs on hand grips <b>39</b> in one illustrative embodiment provide electrical signals to a control computer (described in greater detail later in the specification) which controls certain functions of loader <b>10</b> in response to the signals received.
In addition, in one illustrative embodiment, one or more operator input and display panels (shown in FIG. 2) are provided in operator compartment <b>16</b>. The operator input display panels provide a display for indicating certain items of information to the operator, and also provide additional operator input devices, such as a membrane keypad, a touch sensitive screen, etc., through which the operator can provide inputs.
It should, however, be noted that inputs can be provided in a mechanical way as well. For instance, hand grips <b>39</b> can be coupled to levers which control valve spools or solenoids through mechanical linkages. Similarly, foot pedals can be provided in operator compartment <b>16</b> which also control valve spools or solenoids through mechanical linkages.
In addition, loader <b>10</b> illustratively has one or more auxiliary hydraulic couplings (not shown in FIG. 1) which can be provided with quick disconnect type fittings. Hydraulic pressure to the auxiliary couplings can also be controlled based on signals from one or more of the operator input devices within operator compartment <b>16</b>.
FIG. 2 is a block diagram of one embodiment of a control system <b>50</b>. System <b>50</b> includes controller <b>52</b>, control panel inputs <b>54</b>, sensor inputs <b>56</b>, hand/foot inputs <b>58</b>, sensor <b>60</b>, hydraulic actuators <b>64</b>, electro-mechanical solenoids <b>66</b>, timing control circuit <b>70</b>, and display panel devices <b>67</b>. Controller <b>52</b> is illustratively a digital computer, microprocessor, or microcontroller with associated memory which can be integrated or provided separately.
Control panel inputs <b>54</b> can include a wide variety of operator interfaces used to control such features as headlights, interlock systems, ignition, etc. This information can be transmitted to controller <b>52</b> via direct digital inputs, a one-way serial stream or any number of bi-directional serial communication protocols. Similarly, the connection between control panel inputs <b>54</b> and controller <b>52</b> illustratively includes power and ground connections as well.
Sensor inputs <b>56</b> can also include a wide variety of analog or digital sensors or frequency inputs indicative of operating conditions or other sensed items, such as an engine oil pressure sensor, a fuel sensor, an engine cooling sensor, an air filter sensor (which indicates reduced air flow—thus indicating a clogged air filter), an engine speed sensor, a hydraulic oil temperature sensor, a hydraulic oil charge pressure sensor, and/or a hydraulic oil filter pressure switch, etc.
Hand grip and foot pedal inputs <b>58</b> can also include a variety of input devices which form the operator actuable inputs within operator compartment <b>16</b>. Such inputs can provide signals indicative of requested operation of the auxiliary hydraulic couplers (e.g., modulated control), requested detent, requested high speed or low speed operation in a multi-speed loader, and other requested functions (such as lift and tilt of the tool mounted to the loader, etc.).
Seat bar sensor <b>60</b> is illustratively coupled to seat bar <b>21</b>. Seat bar sensor <b>60</b> illustratively provides a signal indicative of whether seat bar <b>21</b> is in the raised or lowered position illustrated in FIG. <b>1</b>.
Hydraulic actuators <b>64</b> illustratively include the lift and tilt cylinders for use in manipulating tool <b>28</b> (shown in FIG. <b>1</b>), a high flow valve for emitting high flow hydraulic fluid in response to a user input, a diverter valve for diverting hydraulic fluid to the auxiliary couplers in response to a user input, auxiliary relief valves, and a plurality of lockout valves for being actuated in response to operator inputs, or in response to certain sensed operating parameters. Of course, the hydraulic actuators are controlled by manipulating valve spools of valves connected between the specific actuator being controlled and a source of, or reservoir for, hydraulic fluid. Such valves include one or more primary valves controlling flow to primary hydraulic couplers and optionally one or more auxiliary valves for controlling flow to auxiliary hydraulic couplers. The valves can be controlled electronically, hydraulically or mechanically. Block <b>64</b> represents all of these elements.
Electromechanical solenoids <b>66</b> also include a wide variety of items. Some items are embodied as electrical relays which are controlled by energizing an electrical relay coil. Such electromechanical devices illustratively include a starter relay for energizing a starter, a switched power relay for providing battery power for switched power devices, a fuel shut-off relay for energizing a fuel shut-off valve, a traction lock relay for energizing a traction lock solenoid, a glow plug relay for energizing glow plugs, and light relays for controlling various lights (such as headlights, marker lights, etc.).
Display panel devices <b>67</b> are illustratively devices which receive outputs from controller <b>52</b> and indicate information to the operator. Such devices can include, for example, indicator lights, an hour meter, gauges, etc. Display panel devices <b>67</b> can be integrated with control panel inputs <b>54</b> as a unitary input and display panel, or provided separately therefrom.
In operation, controller <b>52</b> receives a variety of inputs from the control panel inputs <b>54</b>, the sensor inputs <b>56</b>, the hand and foot actuable inputs <b>58</b>, and seat bar sensor <b>60</b>. In response to those inputs, controller <b>54</b> provides outputs to hydraulic actuators <b>64</b> electromechanical devices <b>66</b> and display panel devices <b>67</b> to control various functions on loader <b>10</b>.
Timing Control Circuit
FIG. 2 also illustrates that timing control circuit <b>70</b> is coupled to controller <b>52</b>. Timing control circuit <b>70</b> in conjunction with controller <b>52</b>, implements an hour meter which stores a time value indicative of the amount of time which power machine <b>10</b> is running. Timing control circuit <b>70</b> does this in a way which avoids corruption of the timing value and thus significantly enhances the accuracy of the hour meter.
FIG. 3 is a more detailed block diagram of timing control circuit <b>70</b>. Timing control <b>70</b> includes timing controller <b>72</b>, timing circuit <b>74</b>, volatile memory <b>76</b> and non-volatile memory <b>78</b>. It should be noted that timing controller <b>72</b> can be implemented with controller <b>52</b>, or it can be implemented in a separate microcontroller, microprocessor, or other controller or digital computer.
Timing circuit <b>74</b> is illustratively a crystal oscillator based timing circuit which, when power is applied thereto, provides an oscillating timing signal, which oscillates at a desired frequency. Based on the output from timing circuit <b>74</b>, timing controller <b>72</b> tracks the amount of time that power machine <b>10</b>, and hence control system <b>50</b>, is powered up.
Volatile memory <b>76</b> and non-volatile memory <b>78</b> are provided to store the timing values associated with the hour meter implemented by timing control circuit <b>70</b>. Volatile memory <b>76</b> is used to store intermittent timing values which are indicative of the value of the hour meter while timing control circuit <b>70</b> is powered up. Non-volatile memory <b>78</b> is used to accumulate the timing values during operation and when timing control circuit <b>70</b> is powered down, such that those values can again be retrieved the next time timing control circuit <b>70</b> is powered up to continue accumulation of time.
FIG. 4 is a more detailed block diagram of a portion of timing control circuit <b>70</b>. FIG. 4 illustrates that non-volatile memory <b>78</b> includes, in one illustrative embodiment, three hour meter banks (or accumulators) <b>80</b>, <b>82</b> and <b>84</b> within non-volatile memory <b>78</b>. Non-volatile memory <b>78</b>, in one illustrative embodiment, is electrically erasable programmable read only memory (EEPROM). EEPROM banks <b>80</b>-<b>84</b> act as hour meter accumulators, and are each divided into four blocks A-D which store the time value information indicative of the accumulated run time of power machine <b>10</b>. Each accumulator <b>80</b>-<b>84</b> also has a second portion which is similarly broken into four separate blocks CSA-CSD. Blocks CSA-CSD contain redundancy data (such as check sum data) associated with each block A-D in accumulators <b>80</b>-<b>84</b>. Pointers <b>86</b>, <b>88</b> and <b>90</b> are associated with accumulators <b>80</b>-<b>84</b> and point to a currently active block (A-D) in each of hour meter accumulators <b>80</b>-<b>84</b>, and its corresponding checksum block (CSA-CSD).
FIG. 4 also illustrates volatile memory <b>76</b> and shows that it illustratively also includes a pair of memory banks (or memory locations) <b>92</b> and <b>94</b>. Briefly, during operation, timing controller <b>72</b> updates the memory banks <b>92</b> and <b>94</b>, simultaneously, with the time value. After a predetermined update time period has elapsed, timing controller <b>72</b> then writes the current timing values stored in memory banks <b>92</b> and <b>94</b> in volatile memory <b>76</b> into a selected one of the accumulators <b>80</b>-<b>84</b>. Timing controller <b>72</b> then waits for another elapsed time interval, all the while updating memory banks <b>92</b> and <b>94</b> in volatile memory <b>76</b>, and then writes the time value stored in banks <b>92</b> and <b>94</b> into the next accumulator <b>80</b>-<b>84</b>. In one illustrative example, the elapsed time interval is one-tenth of an hour. Therefore, once a tenth of an hour has expired, the time value of the hour meter stored in volatile memory <b>76</b> is written to the current accumulator (e.g. accumulator <b>80</b>). After another tenth of an hour has elapsed, the current value in the hour meter in volatile memory <b>76</b> is written to the next accumulator (e.g. accumulator <b>82</b>). This pattern continues until all accumulators have been written to, and timing controller <b>72</b> then again begins writing the current time value from volatile memory <b>76</b> into accumulator <b>80</b>. Thus, this example creates an 18 minute cycle between writes to any single hour meter accumulator <b>80</b>-<b>84</b>.
Initialization
FIG. 5 is a flow diagram which illustrates the initialization of the hour meter implemented in timing control circuit <b>70</b>. Upon power up, indicated by block <b>100</b>, timing controller <b>72</b> examines each block pointed to in the accumulators <b>80</b>-<b>84</b> and retrieves the highest valid elapsed time value from the accumulators <b>80</b>-<b>84</b> in non-volatile memory <b>78</b>. This is indicated by block <b>102</b>. The method by which timing controller <b>72</b> determines whether an elapsed time value stored in non-volatile memory <b>78</b> is valid is discussed in greater detail below with respect to FIG. <b>6</b>.
After the highest elapsed time value has been retrieved, that value is loaded into the memory banks (or time locations) <b>92</b> and <b>94</b> in volatile memory <b>76</b>. This is indicated by block <b>104</b>.
Once the highest valid value is loaded into the memory locations <b>92</b> and <b>94</b> in volatile memory <b>76</b>, timing controller <b>72</b> waits for a first predetermined update time interval. That interval can be any desired interval, such as 10 seconds, 30 seconds, 1 minute, etc. After the first predetermined update interval has elapsed, timing controller <b>72</b> updates the timing values stored in locations <b>92</b> and <b>94</b> in volatile memory <b>76</b>. The new updated timing values are written to locations <b>92</b> and <b>94</b> substantially simultaneously, such that the two locations contain the same value. This is indicated by block <b>106</b>.
Timing controller <b>72</b> continues to update the memory locations <b>92</b> and <b>94</b> in volatile memory <b>76</b> every first update time interval. Timing controller <b>72</b> also tracks a second update time interval, after which it updates the current accumulator <b>80</b>-<b>84</b> in non-volatile memory <b>78</b>. Once the second update period has elapsed, timing controller <b>72</b> writes the current value stored in memory locations <b>92</b> and <b>94</b> in volatile memory <b>76</b> into the currently selected accumulator <b>80</b>-<b>84</b> in the currently selected memory blocks A-D in non-volatile memory <b>78</b>. This is indicated by block <b>108</b>.
It should also be noted that, during both update time intervals, timing controller <b>72</b> is periodically monitoring for a power-down condition. This is indicated by block <b>110</b>. If no power-down condition is detected, timing controller <b>72</b> simply continues to update the memory locations <b>92</b> and <b>94</b> in volatile memory <b>76</b> and the accumulators <b>80</b>-<b>84</b> in non-volatile memory <b>78</b> according to the two update time periods. Updating the volatile and non-volatile memories <b>76</b> and <b>78</b> is discussed in greater detail with respect to FIG. 7 below.
When a power-down condition is detected, timing controller <b>72</b> retrieves the highest valid elapsed time value stored in memory locations <b>92</b> and <b>94</b> in volatile memory <b>76</b>, as indicated by block <b>112</b>. That retrieved value is loaded into the currently pointed to memory block A-D in the currently pointed to accumulator <b>80</b>-<b>84</b> in non-volatile memory <b>78</b>. This is indicated by block <b>114</b>. The power-down state is then entered. This is indicated by block <b>116</b>.
FIG. 6 is a block diagram further illustrating a method by which elapsed time values stored in accumulators <b>80</b>-<b>84</b> are validated during the initialization period. Of course, this validation algorithm can be performed upon power-up, on power-down, or simply periodically during operation.
First, timing controller <b>72</b> retrieves the elapsed time values and optional checksums pointed to by pointers <b>86</b>-<b>90</b> in accumulators <b>80</b>-<b>84</b>. This is indicated by block <b>120</b>. When the optional checksums are implemented, a conventional checksum algorithm is executed to calculate checksums on the retrieved elapsed time values. The calculated checksums are compared with the retrieved checksums, retrieved from accumulators <b>80</b>-<b>84</b>, in order to verify the elapsed time values retrieved from accumulators <b>80</b>-<b>84</b>. This is indicated by block <b>122</b>.
Of course, when checksums are used, this can be the end of the validation process. However, when checksums are not used, or when an additional validation check is desired, the elapsed time values are then compared to one another to determine whether they are within a predetermined range of one another. For example, if the accumulators <b>80</b>-<b>84</b> are to be updated every tenth of an hour (i.e., every 6 minutes), then the values stored therein will never be more than 12 minutes different from one another. Comparison of the retrieved elapsed time values against one another is indicated by block <b>124</b>.
If all of the retrieved elapsed time values are within the predetermined time range of one another as indicated by block <b>126</b>, then timing controller <b>72</b> determines that all of the retrieved values are valid. This is indicated by block <b>128</b>. Timing controller <b>72</b> thus continues with the valid elapsed time values and continues to use the current location in accumulators <b>80</b>-<b>84</b>. This is indicated by block <b>130</b>.
However, if all of the elapsed time values are not within the predetermined range of one another as indicated by block <b>128</b>, then the pointer <b>86</b>-<b>90</b> which is associated with the particular accumulator <b>80</b>-<b>84</b> that contains the elapsed time value that is outside of the predetermined time range is moved to the next memory block A-D. This is indicated by block <b>132</b>. After the pointer has been moved, timing controller <b>72</b> continues with the remaining elapsed time values which are valid, as indicated by block <b>134</b>, and continues to use the current memory locations in the accumulators <b>80</b>-<b>84</b> which did not contain corrupted data, and uses the newly pointed to memory location (or memory block A-D) in the particular accumulator <b>80</b>-<b>84</b> which contained corrupted data. This is indicated by block <b>130</b>.
Updating Hour Meter Values
FIG. 7 is a block diagram which indicates, in greater detail, how timing controller <b>72</b> updates volatile and non-volatile memories <b>76</b> and <b>78</b>. It should be noted that the flow diagram set out in FIG. 7 corresponds to the blocks <b>106</b>, <b>108</b> and <b>110</b> in FIG. <b>5</b>.
First, controller <b>72</b> determines whether the first update time period has elapsed. This is indicated by block <b>150</b>. If not, as discussed above, controller <b>72</b> intermittently detects for a power-down condition indicated by block <b>152</b>. If no power-down condition is detected, controller <b>72</b> continues to monitor for whether the first update period has elapsed. It should also be noted that power-down detection and/or elapsed time period detection can be interrupt driven as well.
Once the first update time period has elapsed, controller <b>72</b> selects a location or block in volatile memory <b>76</b> and writes the current elapsed time value to volatile memory <b>76</b> (and also substantially simultaneously writes a copy of the current elapsed time value in another location or block in volatile memory <b>76</b>). This is indicated by blocks <b>152</b> and <b>154</b>. Controller <b>72</b> then determines whether the second update time period has elapsed. This is indicated by block <b>156</b>. It should be noted that the first and second update time periods can be equal, or in one illustrative embodiment, the first update time period is less than the second update time period.
In any case, if the second update time period has elapsed, controller <b>172</b> retrieves and compares the elapsed time values from volatile memory <b>76</b>. This is indicated by block <b>158</b>. If the retrieved values are within a predetermined range of one another (such as if they are identical or spaced a short time distance apart) then it is determined that the values stored in the volatile memory are valid, and the next accumulator to be updated in non-volatile memory <b>78</b> is selected. This is indicated by blocks <b>160</b> and <b>162</b>.
The highest elapsed time value retrieved from volatile memory <b>76</b> is then written into the selected accumulator <b>80</b>-<b>84</b> in non-volatile memory <b>78</b>. This is indicated by block <b>164</b>. The process then repeats itself.
If, at block <b>160</b>, it was determined that the values in volatile memory <b>76</b> are not within a predetermined range of one another, then controller <b>72</b> determines that it must update volatile memory <b>76</b> with a valid elapsed time value. Controller <b>72</b> thus retrieves the elapsed time value from the currently selected accumulator in non-volatile memory <b>78</b>. This is indicated by block <b>166</b>. That value is then written to the volatile time locations in volatile memory <b>76</b>, and then the update process begins anew. This is indicated by block <b>168</b>.
If, at any time during the update process, a power-down condition is detected at block <b>152</b>, processing continues at block <b>112</b> in FIG. <b>5</b>. This is indicated by block <b>170</b>.
FIG. 8 is a flow diagram illustrating how controller <b>72</b> writes the time values from volatile memory <b>76</b> to accumulators in non-volatile memory <b>78</b>, and how it processes errors in those memory locations. This process corresponds to block <b>164</b> in FIG. <b>7</b>.
First, controller <b>72</b> attempts to write to the pointed to location in the selected accumulator <b>80</b>-<b>84</b> in non-volatile memory <b>78</b>. This is indicated by block <b>180</b>. Controller <b>72</b> then determines whether that attempted write operation was successful. This is indicated by block <b>182</b>. Controller <b>72</b> can make this determination in any number of suitable ways. For example, controller <b>72</b> can simply write to the desired accumulator and read that value back and compare it to the written value, or it can read back the written value and do a checksum calculation and comparison.
If the write operation is determined to be successful, that ends the operation. However, if the write operation is unsuccessful, then it is determined whether there are any additional secondary locations A-D in the selected accumulator <b>80</b>-<b>84</b>. This is indicated by block <b>184</b>. If there are secondary locations A-D available, then controller <b>72</b> moves the associated pointer <b>86</b>-<b>90</b> to the next available location A-D in the selected accumulator. This is indicated by block <b>186</b>.
However, if at block <b>184</b>, it is determined that there are no secondary locations A-D available in the selected accumulator <b>80</b>-<b>84</b>, then this indicates that all memory locations in the selected accumulator have been corrupted or are no longer functioning properly. Therefore, controller <b>72</b> sets a flag indicating that the selected accumulator is no longer available for use in the electronic clock implementation. This is indicated by block <b>188</b>. Next, controller <b>72</b> selects the next accumulator in non-volatile memory <b>78</b>, as indicated by block <b>190</b>, and continues intermittently writing between the two remaining accumulators to implement redundancy in the electronic clock.
It can thus be seen that the present invention provides a high degree of accuracy in the electronic hour meter implemented in power machine <b>10</b>. The accuracy is obtained even though corrupted data may be written to one or more memory locations, and even though wildly incorrect time values are obtained during power down.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Contents4
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN106383436A | Cited by | China | Search report |
| US6876601B2 | Cited by | United States of America | Search report |
| US9207347B2 | Cited by | United States of America | Applicant |
| US7835221B2 | Cited by | United States of America | Applicant |
| US7676327B2 | Cited by | United States of America | Applicant |
| US2010002538A1 | Cited by | United States of America | Pre-grant |
| US2004037170A1 | Cited by | United States of America | Pre-grant |
| US2004039956A1 | Cited by | United States of America | Pre-grant |
| US4150333A | Cites | United States of America | Search report |
| US4168525A | Cites | United States of America | Search report |
| US5229981A | Cites | United States of America | Search report |
| US6069848A | Cites | United States of America | Search report |
| US6252823B1 | Cites | United States of America | Search report |
| US6282152B1 | Cites | United States of America | Search report |
2 members in 1 office
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 22181000 | United States of America | P | |
| 22181000 | United States of America | P | |
| 76873001 | United States of America | A | |
| 60221810 | – | – | – |
| US20000221810P | – | – | – |
| US20010768730 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2002018403A1 | United States of America | A1 | |
| US6552965B2This record | United States of America | B2 |
44 transactions on the USPTO file
Allowed after 2 non-final rejections.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Receipt into PubsR1021 | R1021 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Receipt into PubsR1021 | R1021 | |
| Workflow - File Sent to ContractorSENT | SENT | |
| Receipt into PubsR1021 | R1021 | |
| Dispatch to PublicationsD1220 | D1220 | |
| Dispatch to PublicationsD1220 | D1220 | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Mail Formal Drawings RequiredMN/DR | MN/DR | |
| Formal Drawings RequiredN/DR | N/DR | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAU | – | |
| Case Docketed to Examiner in GAU | – | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Correspondence Address Change | – | |
| Correspondence Address Change | – | |
| Workflow - Drawings FinishedDRWF | DRWF | |
| Workflow - Drawings Matched with File at ContractorDRWM | DRWM | |
| Application Is Now CompleteCOMP | COMP | |
| Correspondence Address ChangeC.AD | C.AD | |
| IFW Scan & PACR Auto Security Review | – | |
| Initial Exam Team nnIEXX | IEXX |
17 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 6552965
- Publication, EPODOC
- US6552965
- Application
- 9768730
- Application, DOCDB
- 76873001
- Application, EPODOC
- US20010768730
Titles
- English
- Electronic clock
Patent term adjustment
- Applicant delay
- −3 days
- Net adjustment
- 0 days
Classification
- CPC, 1
- G07C3/02
- IPC, 1
- G07C3 02
- USPC, 4
- 368107000
- 368010000
- 368111000
- 368113000