Jump to content
OMRON Forums

motor[x].ActPos no decimals showing


Dan.Allard

Recommended Posts

The motor[x].ActPos and motor[x].ActVel don't seem to be returning floating point values on my system. The motor[x].PosError is returning what I would expect. Below is what I get when I type these commands into the terminal window. Is there a setting to correct this? The software reference doesn't mention anything.

 

motor[1].ActPos

Motor[1].ActPos=5722118563

motor[1].ActVel

Motor[1].ActVel=14

motor[1].PosError

Motor[1].PosError=14.0083770751953125

 

from software refrence

Motor[x].ActPos

Description: Motor outer-loop feedback position

Range: Floating-point

Units: Motor units

Motor[x].ActPos contains the present servo cycle’s net feedback position value for the outer servo loop. It is derived from the measured position in Motor[x].Pos with corrections such as those from position-table compensation and backlash compensation. It is scaled in the motor units and referenced to the power-up position. It will be subtracted from Motor[x].DesPos to obtain the following error value in Motor[x].PosError.

To calculate the position relative to the motor zero position, subtract the value of Motor[x].HomePos.

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

If a floating-point value holds an exact integer value, Power PMAC will report it without any places past the decimal point. When you have a feedback device and processing that does not produce any sub-count or sub-LSB estimation, actual position values will always be integers. Similarly, actual velocity values in this case will simply be the difference of two integers, so integers themselves.

 

Desired positions are always computed with floating-point math, so are much more likely to have fractional components in any given servo cycle. Of course, the position error (DesPos - ActPos) will have a fractional component if either source does.

Link to comment
Share on other sites

It is possible to not be on a fractional count – it all depends on how the motor was commanded to the current position. Verify this math “Motor[1].PosError = Motor[1].DesPos - Motor[1].ActPos” by viewing Motor[1].DesPos and Motor[1].ActPos in the watch window along with: “p1 = Motor[1].DesPos - Motor[1].ActPos p1”. The “Motor[1].PosError" should follow p1 with fractional resolution.

 

Also verify your position feedback processing in the ECT is providing fractional data.

Link to comment
Share on other sites

Thanks, I can look at the position feedback. I am running virtual motors that were provided for setting up web server on the PP. I just didn't know if the PP could be configured to always be on a full count. I have always worked with the turbo pmac product line in the past and don't remember ever seeing a position which wasn't configured for subcounts.
Link to comment
Share on other sites

The most common real feedback is incremental encoders processed with timer-based "1/T" sub-count interpolation, which generally produces fractional values in the actual position.

 

The most common virtual feedback is from pulse frequency outputs wrapped back into a counter, with NO sub-count interpolation (because that tends to cause continual dithering at rest).

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...