Motion Scaling Attributes
These are the basic motion scaling configuration attributes associated with a Motion Control Axis. These attributes are involved in conversion between position, speed, and acceleration expressed in Motion Counts and Motion Units, and the user-defined Position Unit of the axis. The motion scaling function is also involved in conversion of Motion Counts to/from Feedback Counts, and Motion Units to/from Feedback Units.
Motion Scaling Configuration
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/GSV | USINT | 0 | - | - | Enumeration 0 = Control Scaling (R) 1 = Drive Scaling (O) 2-255 = Reserved |
The Motion Scaling Configuration attribute determines whether the scaling function is performed by the controller or the drive. The Control Scaling selection configures the control system to perform the scaling calculations in the controller. In this mode, the controller interacts with the drive in terms of Feedback Counts or Motor Units, hence no scaling operations are required by the drive. Also, in Control Scaling mode the controller is responsible for Position Unwind (Cyclic Unwind for device axis objects) operations associated with Cyclic Travel Mode (Cyclic Unwind Control for device axis objects).
The Drive Scaling selection configures the control system to perform the scaling calculations in the drive device. In this mode, the controller interacts with the drive in terms of Motion Counts or Motion Units and the drive is responsible for conversion to equivalent Feedback Counts and Motor Units. Also, in Drive Scaling mode the drive is responsible for Position Unwind (Cyclic Unwind) operations associated with Cyclic Travel Mode (Cyclic Unwind Control).
Scaling Source
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ SSV# | USINT | 0 | - | - | Enumeration: 0 = From Calculator 1 = Direct Scaling Factor Entry 2-255 = reserved |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
Enumerated attribute used to determine whether the scaling factors are going to be entered directly from the user or calculated based on Position Scaling, Position Unwind, and Travel Range values. When entered directly, the scaling factors, for example, Conversion Constant, Position Unwind, and Motion Resolution are expressed in units of "counts". When using the scaling calculator, the scaling factors are calculated based on values entered by the user in the preferred units of the application without requiring any knowledge of "counts".
NOTE:
Configuration of Scaling page parameters is required for any attributes expressed in position, velocity, or acceleration units to return meaningful values.
Scaling Calculations are performed by the Logix Designer application whenever the Scaling attribute values change. Scaling attributes are defined as Position Scaling Numerator, Position Scaling Denominator, Position Unwind Numerator, Position Unwind Denominator, Travel Mode, and Travel Range. The purpose of the Scaling Calculation is to generate the key Scaling Factors used to convert between the user defined Position Units and the quantized Motion Count units used by the control system. The set of Scaling Factor attributes consist of Motion Resolution, Conversion Constant, and Position Unwind.
The specific Scaling Calculations performed by the Logix Designer application depend on the Travel Mode setting as follows:
Cyclical Travel:
- Max Resolution = Int((2^31-1) * (Pos Scaling Num/Pos Scaling Denom) / (Unwind Num/Unwind Denom))
- Base Resolution = Minimum (Default Motion Resolution, Max Resolution)
- Motion Resolution = (Pos Scaling Num*Unwind Denom) * (10^(Int (Log10(Base Resolution/(Pos Scaling Num*Unwind Denom)))))
- Conversion Constant = Motion Resolution * (Pos Scaling Denom/Pos Scaling Num)
- Unwind = Conversion Constant * (Unwind Num/Unwind Denom)
Limited Travel:
- Max Resolution = Int((2^31-1) * (Pos Scaling Num/Pos Scaling Denom) / Travel Range)
- Base Resolution = Minimum (Default Motion Resolution, Max Resolution)
- Motion Resolution = Pos Scaling Num * (10^(Int (Log10(Base Resolution/Pos Scaling Num))))
- Conversion Constant = Motion Resolution * (Pos Scaling Denom/Pos Scaling Num)
Unlimited Travel:
- Base Resolution = Default Motion Resolution
- Motion Resolution = Pos Scaling Num * (10^(Int (Log10(Base Resolution/Pos Scaling Num))))
- Conversion Constant = Motion Resolution * (Pos Scaling Denom/Pos Scaling Num)
When Scaling Calculations are performed, the Logix Designer application sets the Scaling Source to "from calculator". If any of the Scaling Factor attributes is changed directly by the user either through Logix Designer or through programmatic access, Scaling Source is set to "direct entry". The "direct entry" setting indicates that the Scaling Factors are no longer consistent with the current Scaling attribute values.
Travel Mode
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ SSV# | USINT | 0 | - | - | Enumeration: 0 = Unlimited 1 = Limited (E) 2 = Cyclic (E) 3-255 = reserved |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
Enumerated attribute used to determine the travel constraints of the axis. Unlimited travel is for axes that run continuously without limit but are not cyclic. Limited travel is for axes that have imposed limits to their travel, usually due to mechanical limitations. Cyclic travel is for axes whose position repeats as part of a product cycle. While the axis may run continuously, the position value is bound between 0 and the Position Unwind value. If the Feedback Configuration = No Feedback, such as with Sensorless/Encoderless operation, then the only valid Travel Mode setting is "Unlimited".
Position Scaling Numerator
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ GSV | REAL | 1 | 0+ | Position Units |
A floating point value used by the scaling calculator to determine the number of Position Units per Position Scaling Denominator units (Motion Units).
Position Scaling Denominator
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ GSV | REAL | 1 | 0+ | Motion Unit |
A floating point value used by the scaling calculator to determine the number of Motion Units per Position Scaling Numerator units (Position Units).
Position Unwind Numerator
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - E | Set/ GSV | REAL | 1 | 0+ | Position Units |
A floating point value used by the scaling calculator to determine the number of Position Units per Position Unwind Denominator units (Unwind Cycles). This value is only used by the calculator if cyclic Travel Mode is selected.
Position Unwind Denominator
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - E | Set/ GSV | REAL | 1 | 0+ | Unwind Cycles |
A floating point value used by the scaling calculator to determine the number of Unwind Cycles per Position Unwind Numerator units (Position Units). This value is only used by the calculator if cyclic Travel Mode is selected.
Travel Range
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - E | Set/ GSV | REAL | 1000 | 0+ | Position Units |
A floating point value used by the scaling calculator to determine the maximum travel range in Position Units for a limited Travel Mode position scaling calculation.
Motion Unit
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ GSV | USINT | 0 | - | - | Enumeration 0 = Motor Rev 1 = Load Rev 2 = Feedback Rev 3 = Motor mm 4 = Load mm 5 = Feedback mm 6 = Motor inch 7 = Load inch 8 = Feedback inch 9 = Motor Rev/s 10 = Load Rev/s 11 = Motor m/s 12 = Load m/s 13 = Motor inch/s 14 = Load inch/s 15-255 = Reserved |
The Motion Unit attribute determines the unit of measure used to express the Motion Resolution used by motion planner functions. A Motion Unit is the standard engineering unit of measure for motion displacement. Motion Units may be configured as Revs, Inches, or Millimeters depending on the specific application.
Motion Resolution
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ SSV# | DINT | Default Motion Resolution | 1 | 2 31 -1 | Motion Counts / Motion Unit |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
The Motion Resolution attribute is an integer value that determines the number of Motion Counts per Motion Unit used by the scaling function to convert between Motion Counts and Feedback Counts. This attribute determines how many Motion Counts there are in a Motion Unit. A Motion Count is the fundamental unit of displacement used by the Motion Planner and a Motion Unit is the standard engineering unit of measure for motion displacement. Motion Units may be configured as Revs, Inches, or Millimeters depending on the specific application.
All command position, velocity, and acceleration data is scaled from the user's preferred Position Units to Motion Units for the Motion Planner based on the Motion Resolution and Conversion Constant. The ratio of the Conversion Constant to Motion Resolution determines the number of Position Units in a Motion Unit as described using the following formula.
- Conversion Constant / Motion Resolution = Motion Units (revs, inches, or millimeters) / Position Unit
Conversely, all actual position, velocity, and acceleration data from the Motion Planner is scaled from Motion Units to the user's preferred Position Units based on the Motion Resolution and Conversion Constant. The ratio of Motion Resolution and the Conversion Constant determines the number of Position Units in a Motion Unit as described using the following formula:
- Motion Resolution / Conversion Constant = Position Units / Motion Unit (rev, inch, or millimeter)
In general, the Motion Resolution value may be may be configured in Motion Counts per Motion Unit independent of the resolution of the feedback device(s) used. The drive's scaling function takes care of scaling between Feedback Counts and Motion Counts. Providing a configurable Motion Resolution value is particularly useful for addressing Fractional Unwind applications where it is necessary to have an integer number of Motion Counts per Unwind Cycle.
Valid Motion Unit attribute selections are determined by the Feedback Configuration, Load Type, and Linear Actuator Unit (Lead Unit or Diameter Unit) values according to the following table:
Feedback Configuration | Load Type | Linear Actuator Unit | Motion Unit |
---|---|---|---|
No Feedback | Direct Rotary | - | Motor Rev/s |
No Feedback | Rotary Transmission | - | Load Rev/s |
No Feedback | Linear Actuator | mm/rev | mm | Load m/s |
No Feedback | Linear Actuator | inch/rev| inch | Load inch/s |
Master Feedback | Direct Rotary | - | Feedback Rev |
Master Feedback | Direct Linear | - | Feedback mm |
Master Feedback | Rotary Transmission | - | Load Rev |
Master Feedback | Linear Actuator | mm/rev | mm | Load mm |
Master Feedback | Linear Actuator | inch/rev| inch | Load inch |
Motor Feedback | Direct Rotary | - | Motor Rev |
Motor Feedback | Direct Linear | - | Motor mm |
Motor Feedback | Rotary Transmission | - | Load Rev |
Motor Feedback | Linear Actuator | mm/rev |mm | Load mm |
Motor Feedback | Linear Actuator | inch/rev | inch | Load inch |
Load | Dual Feedback | Direct Rotary | - | Load Rev |
Load | Dual Feedback | Direct Linear | - | Load mm |
Load | Dual Feedback | Rotary Transmission | - | Load Rev |
Load | Dual Feedback | Linear Actuator | mm/rev | mm | Load mm |
Load | Dual Feedback | Linear Actuator | inch/rev | inch | Load inch |
The Default Motion Resolution value used for scaling factors, Motion Resolution, Conversion Constant, and Position Unwind, depends on the Motion Unit selection according to the following table:
Motion Unit | Default Motion Resolution |
---|---|
Motor|Load|Feedback Rev | 1,000,000 |
Motor|Load|Feedback mm | 10,000 |
Motor|Load|Feedback Inch | 200,000 |
Motor|Load|Feedback Rev/s | 1,000,000 |
Motor|Load|Feedback m/s | 10,000,000 |
Motor|Load|Feedback Inch/s | 200,000 |
Travel Range Limit
Because the position parameters are sometimes internally limited to signed 32-bit representation, the Motion Resolution parameter impacts the travel range. In such a case, the equation for determining the maximum travel range based on Motion Resolution is as follows:
- Travel Range Limit (in Motion Units) = +/- 2,147,483,647 / Motion Resolution
Based on a default value of 1,000,000 Motion Counts per Motion Unit, the range limit is 2,147 Motion Units. When the axis position exceeds this value, the position accumulators roll-over, essentially flipping the sign of the axis position value. Motion continuous smoothly through the roll-over but the position values are obviously not contiguous. This is nominal operation in Unlimited Travel Mode. While it is relatively rare for this travel range limitation to present a problem, say in point-to-point positioning applications, it is a simple matter to lower the Motion Resolution to increase the travel range. The downside of doing so is that the position data is then passed with lower resolution that could impact the smoothness of motion. Selecting Limit Travel Mode sets the Motion Resolution value close to the maximum value that complies with the specified Travel Range of the application.
Fractional Unwind
In some cases, however, you may also want to specifically configure Motion Resolution value to handle fractional unwind applications or multi-turn absolute applications requiring cyclic compensation. In these cases where the Position Unwind value for a rotary application does not work out to be an integer number of Motion Counts, the Motion Resolution attribute may be modified to a value that is integer divisible by the Position Unwind value. This is done automatically when selecting the Cyclic Travel Mode.
Motion Polarity
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ SSV# | USINT | 0 | - | - | Enumeration: 0 = Normal 1 = Inverted 2-255 = (Reserved) |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
Use Motion Polarity to switch the directional sense of the motion control system. A Normal setting leaves the sign of the motion control command and actual signal values unchanged from their values in the drive control structure. An Inverted setting flips the sign of the command signal values to the drive control structure and flips the sign of the actual signal values coming from the drive control structure. Also use Motion Polarity to adjust the sense of the positive direction of the motion control system to agree with the positive direction on the machine.
Cyclic Unwind Control
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - Scaling | Set | BOOL | - | - | - | 0 = Non-Cyclic Operation (R) 1 = Cyclic Operation (E) |
When this Boolean attribute is set true (1), it enables the cyclic unwind capability of the scaling function. This feature provides infinite positioning range by “unwinding” the axis position whenever the axis moves through a complete machine cycle. The number of Motion Counts per machine cycle of the axis is specified by the Cyclic Unwind Position attribute. Thus, if the axis is configured for Cyclic Operation, implementation of the Cyclic Unwind Position attribute is required.
If the Cyclic Unwind attribute is false (0), indicating non-cyclic operation, no “unwind” operation is performed, and unidirectional motion continues to accumulate position and can eventually exceed the range of the position representation resulting in a roll-over. For this reason, non-cyclic travel is typically limited for position control applications.
Cyclic Unwind Position
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - Scaling E | Set | DINT | - | - | - | Motion Counts / Unwind Cycle |
This integer value is used to “unwind” command and actual position values every machine cycle. Cyclic unwind functionality provides infinite position range for cyclic axes by subtracting the Cyclic Unwind Position value from both the actual and command position whenever the axis reaches or crosses the Cyclic Unwind Position. Similarly when moving in the reverse direction, the Cyclic Unwind Position value is added to both the actual and command position whenever the axis reaches or crosses zero. Thus command and actual position values shall never be outside the range of 0 and the Cyclic Unwind Position. To avoid accumulated error due to round-off with irrational conversion constants, the unwind value is represented as an integer number of Motion Counts per Cycle.
When the Motion Scaling Configuration is set to Drive Scaling, the CIP Motion Connection interface and the drive control structure performs the Motion Polarity. When the Motion Scaling Configuration is set to Controller Scaling, the controller performs the Motion Polarity inversion.
To maintain directional consistency, the signs of all Signal Attribute values read from the drive control structure or being written to the drive control structure are determined by Motion Polarity. A comprehensive list of Signal Attributes and their access rules is defined in the following table:
ID | Access Rule | Signal Attribute Name |
---|---|---|
1402+o | Get | Position Feedback n |
1403+o | Get | Velocity Feedback n |
1404+o | Get | Acceleration Feedback n |
2380+o | Get | Position Feedback nU |
2381+o | Get | Velocity Feedback nU |
2382+o | Get | Acceleration Feedback nU |
2383+o | Get | Position Feedback nS |
2384+o | Get | Velocity Feedback nS |
2385+o | Get | Acceleration Feedback nS |
62 | Get | Registration 1 Positive Edge Position |
63 | Get | Registration 1 Negative Edge Position |
64 | Get | Registration 2 Positive Edge Position |
65 | Get | Registration 2 Negative Edge Position |
70 | Get | Home Event Position |
360 | Set* | Controller Position Command - Integer |
361 | Set* | Controller Position Command - Float |
362 | Set* | Controller Velocity Command |
363 | Set* | Controller Acceleration Command |
364 | Set* | Controller Torque Command |
365 | Get | Fine Command Position |
366 | Get | Fine Command Velocity |
367 | Get | Fine Command Acceleration |
370 | Set | Skip Speed 1 |
371 | Set | Skip Speed 2 |
372 | Set | Skip Speed 3 |
430 | Get | Position Command |
431 | Set* | Position Trim |
432 | Get | Position Reference |
433 | Get | Velocity Feedforward Command |
434 | Get | Position Feedback |
435 | Get | Position Feedback – 64 Bit |
780 | Get | Position Integral Feedback |
436 | Get | Position Error |
437 | Get | Position Integrator Output |
438 | Get | Position Loop Output |
450 | Get | Velocity Command |
451 | Set* | Velocity Trim |
452 | Get | Acceleration Feedforward Command |
453 | Get | Velocity Reference |
454 | Get | Velocity Feedback |
455 | Get | Velocity Error |
456 | Get | Velocity Integrator Output |
457 | Get | Velocity Loop Output |
480 | Get | Acceleration Command |
481 | Set* | Acceleration Trim |
482 | Get | Acceleration Reference |
483 | Get | Acceleration Feedback |
801 | Get | Load Observer Acceleration Estimate |
802 | Get | Load Observer Torque Estimate |
490 | Get | Torque Command |
491 | Set* | Torque Trim |
492 | Get | Torque Reference |
493 | Get | Torque Reference - Filtered |
494 | Get | Torque Reference - Limited |
495 | Get | Torque Estimate |
520 | Get | Iq Current Command |
523 | Get | Motor Electrical Angle |
524 | Get | Id Current Reference |
525 | Get | Id Current Reference |
840 | Set | Current Disturbance |
527 | Get | Iq Current Error |
528 | Get | Id Current Error |
529 | Get | Iq Current Feedback |
530 | Get | Id Current Feedback |
531 | Get | Vq Decoupling |
532 | Get | Vd Decoupling |
533 | Get | Vq Voltage Output |
534 | Get | Vd Voltage Output |
535 | Get | U Voltage Output |
536 | Get | V Voltage Output |
537 | Get | W Voltage Output |
538 | Get | U Current Feedback |
539 | Get | V Current Feedback |
540 | Get | W Current Feedback |
541 | Get | U Current Offset |
542 | Get | V Current Offset |
543 | Get | W Current Offset |
565 | Get | Slip Compensation |
566 | Set | Slip Compensation Enable |
600 | Get | Output Frequency |
601 | Get | Output Current |
602 | Get | Output Voltage |
603 | Get | Output Power |
Motion Polarity also impacts directional position, velocity, acceleration, and torque limit attributes. When the Motion Scaling Configuration is set to Drive Scaling, inverting Motion Polarity requires that positive and negative position, velocity, acceleration*, and torque limit values be both sign inverted and swapped between the CIP Motion Connection interface and the drive's internal control structure.
When the Motion Scaling Configuration is set to Controller Scaling, inverting Motion Polarity requires that positive and negative position, velocity, acceleration, and torque limit attribute values in Motion Control Axis Object be inverted and swapped with the corresponding attributes in the Motion Device Axis Object. For example entering a Velocity Limit – Positive value in the controller of 100 revs/sec would result in a "Velocity Limit – Negative" value of -100 revs/sec in the drive device.
A comprehensive list of these Directional Limit Attributes and their access rules is defined in the following table:
ID | Access Rule | Attribute Name |
---|---|---|
374 | Set | Ramp Velocity - Positive |
375 | Set | Ramp Velocity - Negative |
376 | Set | Ramp Acceleration |
377 | Set | Ramp Deceleration |
448 | Set | Position Limit - Positive |
449 | Set | Position Limit - Negative |
473 | Set | Velocity Limit - Positive |
474 | Set | Velocity Limit - Negative |
485 | Set | Acceleration Limit* |
486 | Set | Deceleration Limit* |
504 | Set | Torque Limit - Positive |
505 | Set | Torque Limit - Negative |
* Acceleration and Deceleration Limits are unsigned positive values and, therefore, do not need to be sign inverted. |
Position Units
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set | STRING | "Position Units" | - | - | "Revs" |
The Position Units string attribute allows user-defined engineering units rather than "counts" to be used for measuring and programming all motion-related values (position, velocity, acceleration, etc). Position Units can be different for each axis and should be chosen for maximum ease of use in the machine application. For example, linear axes might use Position Units of "Inches", "Meters", or "mm" while rotary axes might use Position Units of "Revs" or "Degrees".
The Position Units attribute can support an ASCII text string of up to 32 characters. This string is used by the Logix Designer application in the axis configuration dialogs to request values for motion-related parameters in the specified Position Units. In this case, the software limits the maximum string length to 15 characters.
Average Velocity Timebase
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/ SSV# | REAL | 0.25 | 0.001
(1 coarse update period) | 32 (1000 coarse update period) | Sec |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
This attribute determines the period of time over which the system computes Average Velocity for this axis instance.
Range limits based on coarse update period and history array size are ultimately enforced for Average Velocity Timebase attribute by clamping to limit rather than generating a value out of range error. Only if the value is outside the fixed Min/Max limits is an out of range error given.
Conversion Constant
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - All | Set/
SSV# | REAL | Default Motion Resolution | 10 -12 | 10 12 | Counts/Position Unit |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
This attribute is used as a scaling factor allowing axis position, velocity, and acceleration attributes to be displayed or configured in the user's preferred units specified by the Position Unit string attribute. Specifically, the Conversion Constant, is used by the motion system to scale the axis position units into motion planner counts and vice versa. The Conversion Constant represents the number of counts of the motion planner per Position Unit.
Position Unwind
Usage | Access | Data Type | Default | Min | Max | Semantics of Values |
---|---|---|---|---|---|---|
Required - E | Set/
SSV# | DINT | Default Motion Resolution | 1 | 10 9 | Counts/Cycle |
# Indicates the attribute cannot be set while the tracking command (Tracking Command bit in CIP Axis Status is true). |
If the axis is configured for cyclic Travel Mode, a value for the Position Unwind attribute is required. This is the value used to perform electronic unwind of the cyclic axis' position. Electronic unwind operation provides infinite position range for cyclic axes by subtracting the position unwind value from both the actual and command position every time the axis completes a machine cycle. To avoid accumulated error due to round-off with irrational conversion constants, the unwind value is expressed as an integer number of feedback counts per cycle.
Provide Feedback