Abstract:
In motion control systems, definable jerk parameters (definable radius of curves on the motion profile) for any particular location on the motion profile are provided. Further, vector mode control capability is provided by employing a ring buffer defining data points across a motion profile, directing movement to a position at a defined velocity. Finally, real time position capture is provided in a motion control system to avoid position determination errors.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    This application relates to motion control systems, whereby computerized control of machinery is performed to direct the path of movement of a tool or other device.  
           [0002]    In motion control systems, a typical linear motion profile is shown in FIG. 1, where motion starts, reaches a peak velocity, decelerates, and then stops. Each transition goes from, for example, a constant acceleration, to zero acceleration, zero to peak acceleration, etc.  
           [0003]    The particular transition points from stop to moving, and moving to different speed, and moving to stop, may have a different particular profile, depending on the particular kinematics of any individual machine. Some devices or applications may have a very quick acceleration profile, for example, but may not be capable of a correspondingly rapid deceleration (or vice versa).  
           [0004]    When accelerating from a low velocity to a higher velocity, frictional forces may be higher in on particular change point than at another.  
           [0005]    In accordance with the prior art, a “jerk parameter” (which is shown by the radius of the arc at the change point  10  (FIG. 1,  2 )) is defined for the entire motion profile. Thus, even though the actual behavior of a given machine may vary depending on the particular motion state and change being performed, the prior art allows only a single overall parameter covering the entire profile. So, the motion control system will not be able to provide accurate or precise operation of the controlled device.  
           [0006]    Another issue that can arise in motion control, relates to how to define a motion action. In a typical motion control arrangement, to define a motion action, the user sets a start point, an endpoint, and an acceleration profile. However, it may not always be desirable, convenient or readily apparent to use such a manner of defining motion in every situation.  
           [0007]    Also, another issue that arises in motion control relates to position sensing. It is often desired to determine the position of a moving device in response, for example, to a sensor indicating an event has occurred.  
           [0008]    Since the device will typically continue to move after the sensor is triggered, any delay in reading the position will introduce an amount of error. Typically, an interrupt is generated by the sensor triggering, and a process is invoked to go read the position of the device. In such an interrupt driven system, a delay of, for examples, 40 microseconds typically will pass before the position is read, in accordance with the prior art. This delay results in less precision in determining the position.  
         SUMMARY OF THE INVENTION  
         [0009]    In accordance with the invention, an improved motion control system is provided whereby a definable jerk parameter is providable.  
           [0010]    It is another object of the invention to provide definable jerk parameters (definable radius of curves on the motion profile) for any particular location on the motion profile.  
           [0011]    Yet another system in accordance with an invention herein provides vector mode control capability in a motion control system.  
           [0012]    Still another system in accordance with the invention provides real time position capture in a motion control system.  
           [0013]    Accordingly, it is an object of the present invention to provide an improved motion control system with improved jerk parameter control.  
           [0014]    It is yet another object of the present invention to provide an improved motion control device having vector mode control capability.  
           [0015]    A further object of the invention is to provide real time position capture in a motion control system.  
           [0016]    The subject matter of the present invention is particularly pointed out and distinctly claimed in the concluding portion of this specification. However, both the organization and method of operation, together with further advantages and objects thereof, may best be understood by reference to the following description taken in connection with accompanying drawings wherein like reference characters refer to like elements. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]    [0017]FIG. 1 is a representation of a typical trapezoidal motion profile in accordance with the prior art;  
         [0018]    [0018]FIG. 2 is a representation of an S-curve motion profile having a constant acceleration rate on both the acceleration and deceleration sides of the profile;  
         [0019]    [0019]FIG. 3 is an example of asymmetrical S-curve profile;  
         [0020]    [0020]FIG. 4 is an S-curve velocity profile broken into nine regions;  
         [0021]    [0021]FIG. 5 is a block diagram of a real time position sensor system; and  
         [0022]    [0022]FIG. 6 is a block diagram of the vector mode system.  
     
    
     DETAILED DESCRIPTION  
       [0023]    Referring now to FIG. 2, an S-curve acceleration profile is an alternative to the traditional trapezoidal profile that has a constant rate of acceleration, or jerk, on both the acceleration and deceleration sides of the profile.  
         [0024]    An S-curve acceleration profile is one that starts with increasing jerk, then transitions to constant jerk, then transitions to decreasing jerk until zero acceleration is reached at the desired velocity. When it is time to start decelerating, the S-curve profile starts increasing jerk and then transitions to constant jerk, and finally transitions to decreasing jerk until zero velocity is reached.  
         [0025]    The S-curve profile is not truncated in moves that do not reach full velocity due to moves that are shorter than the acceleration and deceleration distances required to reach full velocity and decelerate to a stop. The S-curve profile is preserved by limiting the velocity on these short moves to a velocity that is sufficiently small to allow the entire profile to be preserved.  
         [0026]    In accordance with the invention a command, AJ, for an Accelerating Jerk, defines both the ramp-up and ramp-down portions of an S-curve acceleration profile. The command takes from 0 to 3 parameters. If no parameters are entered, the current AJ parameters are listed. The first parameter, J1, defines the percentage of the constant jerk in the first half of the acceleration. The remaining percentage, 1.0-J1, will be the curved portion of the profile at the start of the acceleration ramp.  
         [0027]    This curved portion of the ramp will transition from zero acceleration to the acceleration defined by the AC command.  
         Range: 0.0&lt;=J1&lt;=1.0  
         [0028]    The second parameter, J2, defines the percentage of the constant jerk in the second half of the acceleration. The remaining percentage, 1.0-J2, will be the curved portion of the profile at the end of the acceleration ramp. This portion of the ramp will transition from the acceleration defined by the AC command to zero acceleration. If the second parameter is omitted, it is set equal to the first parameter (J1).  
         Range: 0.0&lt;=J2&lt;=1.0  
         [0029]    The third parameter, J3, defines a radius or stretch factor that increases acceleration time during the non-constant portions of the acceleration.  
         [0030]    If the third parameter is omitted, it is set equal to one (1.0).  
         Range: 0.0&lt;=J1&lt;=10.0  
         [0031]    When this command is entered the ramp-down portion of the profile will defined symmetrical to the ramp-up portion of the profile.  
       EXAMPLE 1  
       [0032]    AJO.5; J2 defaults to 0.5, J3 defaults to 1.0  
         [0033]    The lowermost and the uppermost 25% of the ramp will be curved. The lower 25% will be increasing jerk. The upper 25% will be decreasing jerk. The middle 50% will be constant.  
       EXAMPLE 2  
       [0034]    AJO.5, 0.75; The lower 25% and the upper 12.5% will be curved.  
         [0035]    The lower 25% will be increasing jerk. The upper 12.5% will be decreasing jerk. The middle 62.5% will be constant.  
         [0036]    DJ Decelerating Jerk  
         [0037]    This command can be used to produce asymmetrical S-curve profiles.  
         [0038]    The command is analogous to the AJ command. It defines equivalent parameters for the falling edge or ramp-down portion of an S-curve acceleration profile. Parameter one defines the lower portion of the ramp and parameter two defines the upper portion of the ramp, similar to the AJ command parameters one and two, respectively. If parameter two is omitted, it is set equal to parameter one by default.  
         [0039]    Parameter three defines a radius or stretch factor that increases acceleration time during the non-constant portions of the acceleration.  
         [0040]    If parameter three is omitted it is set to 1.0 by default.  
         [0041]    The range of valid values for DJ command parameters is equivalent to the ranges for the AJ command parameters.  
         [0042]    The parameters entered with the DJ command override the AJ parameters for the falling edge of the profile, therefore this command must be entered AFTER any AJ command to produce asymmetrical profiles.  
         [0043]    If no parameters are entered with the DJ command then the currently defined DJ parameters are listed.  
         [0044]    [0044]FIG. 3 is an example of asymmetrical S-curve profile. In FIG. 4, the S-curve velocity profile is broken into nine regions. What follows is a description of the nine regions and how they are defined by the AJ and DJ command parameters.  
         [0045]    AJ command parameter one determines the length of region  2  by specifying the percentage on constant jerk (linear acceleration) below the fifty percent velocity line. Region  1  is also defined indirectly by parameter  1  and is the remainder of the profile below the fifty percent velocity line.  
         [0046]    AJ command parameter two determines the length of region  3  by specifying the percentage of constant jerk above the fifty percent velocity line. Region  4  is also defined indirectly by the parameter  2  and is the remainder of the profile above the fifty percent velocity line and below the maximum velocity (region  5 ).  
         [0047]    AJ command parameter three can be used to “stretch” regions  1  and  4  in the time dimension.  
         [0048]    If no DJ command is entered, then regions  6 ,  7 ,  8 , and  9  are symmetrical with regions  4 ,  3 ,  2 , and  1  respectively. If a DJ command is entered then regions  6 ,  7 ,  8  and  9  can be specified independently of regions  4 ,  3 ,  2 , and  1 , thus producing an asymmetrical profile.  
         [0049]    DJ command parameter one directly determines the length of region  8  by specifying the percentage of constant jerk below the fifty percent velocity line. Region  9  is also defined indirectly by parameter  1  and is the remainder of the profile below the fifty percent line.  
         [0050]    DJ command parameter two directly determines the length of region  7  by specifying the percentage of constant jerk above the fifty percent velocity line. Region  6  is also defined indirectly by parameter two and is the remainder of the profile above the fifty percent line and below the maximum velocity (region  5 ).  
         [0051]    DJ command parameter three can be used to “stretch” regions  6  and  9  in the time dimension.  
         [0052]    Note the following in connection with the above description:  
         [0053]    1. Parameters are separated by commas.  
         [0054]    2. The command “AJ1.0,1.0;” is equivalent to a symmetrical S-curve profile, where the transitions in acceleration and deceleration are uniform.  
         [0055]    3. The command “AJ0,0;” is equivalent to the linear ramp type (see FIG. 1).  
         [0056]    4. Entering an AJ command with parameters automatically sets all DJ parameters equal to the AJ parameters, producing a symmetrical profile.  
         [0057]    5. The “?RT” command returns which profile is defined for any given axis and the “SS” command is used to select the specific defined S-curve ramp type.  
         [0058]    Thus, in accordance with the invention, the jerk profile for any particular point on a motion profile is definable, whereby precise control is obtainable. The system may be implemented by use of a microprocessor or controller that is adapted to control a motion device in accordance with the above information.  
         [0059]    While in accordance with the prior art, motion control commands have heretofore been defined by setting a velocity and an endpoint, where velocity is defined in the number of update cycles of the controller, in accordance with the invention, a table in memory is built, in the form of a ring buffer. Into the buffer are defined data points across a motion profile, directing movement to a position at a defined velocity. Motion thus continues at the velocity in the defined direction until other data is provided giving another motion command. This allows creation of any type of motion profile in real time.  
         [0060]    In the ring buffer, a particular data point will indicate which axes are to be controlled (one or many axes can be controlled in this manner). FIG. 6 illustrates a block diagram of the vector mode employing a ring buffer. In this configuration, an application program supplies vector data to a ring buffer, which is supplied to a microprocessor. The microprocessor provides output to motors for control thereof.  
         [0061]    As noted hereinabove in the background, since a moving device will typically continue to move after a sensor is triggered, any delay in reading the position of the device after the sensor is triggered, will introduce an amount of error. In accordance with an aspect of the invention, this undesirable result is overcome, eliminating this delay, by providing a hardware latch that, in connection with the sensor being triggered, will latch the position data at the time the sensor triggers, taking a snapshot of the position data. Then, the latched data can be retrieved without having to be concerned about any delay caused by microprocessor response time to an interrupt indicating that the sensor has triggered. Referring to FIG. 5, it may be observed that input from the sensor is supplied to a latch, while input from a motor/encoder is supplied to a position counter. The activation of the sensor causes the latch to read the position counter showing the position of the motor/encoder at that time. Then, later, the microprocessor can retrieve the position from the latch, under direction, for example, of the application program.  
         [0062]    While plural embodiments of the present invention has been shown and described, it will be apparent to those skilled in the art that many changes and modifications may be made without departing from the invention in its broader aspects. The appended claims are therefore intended to cover all such changes and modifications as fall within the true spirit and scope of the invention.