Jump to content
OMRON Forums

steveneads

Members
  • Posts

    107
  • Joined

  • Last visited

Everything posted by steveneads

  1. Hi Steve Thanks for your comment - it didn't really explain what I was looking for, but then I twigged it myself - it depends upon the state of MasterCtrl. The value reported in the position window didn't seem to make sense because I was commanding the motor via the Master Position input and MasterCtrl was set to 3. In this mode the motor was moving but the reported position in the position window was not changing. However, Motor[x].ActPos was changing in the watch window in the way that I expected. By contrast, the position reported in the position widow does change if MasterCtrl is set to 1. It might be helpful to reiterate this in the manual. Steve
  2. while (P80 = 0 || I120 > 300 && I120 < 400) page 478 Presumably it should be == ?
  3. Hi sbondhus Thanks for the reply - but I think that there's more to it than that. The value displayed is also affected by the master position input and compensation inputs - so that's why I was wanting to see what's actually being reported.
  4. For a user-servo, the manual states: "Power PMAC automatically computes the values of several commonly used quantities before calling a user-written servo algorithm each cycle. The following automatically computed elements are of particular use. All are “double” format floating-point values. Motor[x].DesPos Net desired position (trajectory, master, compensation) Motor[x].DesVel Net desired velocity (DesPosnew – DesPosold) Motor[x].ActPos Outer loop net actual position (measured, compensation, backlash) Motor[x].ActPos2 Inner loop net actual position (measured, compensation) Motor[x].PosError Following error (DesPos – ActPos) Motor[x].ActVel Inner loop net actual velocity (ActPos2new – ActPos2old)" When in the schedule of real-time tasks that happen relating to the servo do these values get calculated? I presume that it is just before that particular user-servo is called (ie after the previous motor's PID calculations are complete) - is this correct? I presume that it would also be after a compensation table is calculated, if this precedes this loop? On a related matter, is it possible to have a user-servo that pre-processes some data for compensation or feedback purposes and then calls one of the standard servo PIDs? If so, would these automatic values be calculated incorrectly for the called PID? If this is a sensible strategy - is there any example code available? Thanks.
  5. Can anyone tell me which variable is displayed in the position window - or from which the displayed position is derived and how? I can't find this documented anywhere. It's certainly not Motor[x].Pos or Motor[x].ActPos. Thanks
  6. I am in the process of converting from Turbo to PowerPMAC. In my old UMAC software I had to set Ixx17 to a rather arbitrary large value (above the actual capability of the motor) to enable a LINEAR mode motion program to run correctly with a short move time (so that the move time was not automatically extended and the motor velocity consequently reduced). In PowerPMAC, is it necessary to set both Motor[x].InvAmax and InvDmax to suitable values to prevent this issue - or is it sufficient to just set Dmax? I don't think that the manual makes this clear. Thanks Steve
×
×
  • Create New...