Jump to content
OMRON Forums

maslick

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by maslick

  1. If you put them in a while loop, you have to make sure that the position and velocity updates are synchronized properly. In other words, and for each move, the new positions and velocities have to be sent before the end of the previous move. This allows PMAC to blend them together, otherwise it will stop the axes. An axis can not be stationary in one location while trying to achieve a constant (non-zero) velocity.

     

    I suggest programming the entire contour explicitly in-line, i.e. 50 lines.

     

    Hey Richard!

     

    The axes velocities (X,Y,Z,A,B,C) have to be constant in my case and are set by the user.

    Do you mean something like (using abstract syntax notation):

     

    while(1)
    {
      (Xcurrent+dX):Xvel (Ycurrent+dY):Yvel (Zcurrent+dZ):Zvel (Acurrent+dA):Avel (Bcurrent+dB):Bvel (Ccurrent+dC):Cvel 
      if (CurrentPos==(CommandedPos-deltaPos)) 
         {
             X:0 Y:0 Z:0
             break
         }
    }
    

  2. Hello!

     

    I would like to control the hexapod platform using PVT mode. We have already implemented a system using LINEAR mode. Now, I have added into the inverse kinematics routine the computation of the motors' velocities.

     

    Here is a piece of a motion program I have written so far:

     

    close 
    #include "macro_constants_def.pmc" 
    open prog 1		; open buffer for program entry 
    
    clear					; erase existing contents of buffer
    &1
    
    
    PVT200
    ;Move absolute
    ABS
    
    
    
    ;Transform from uRad to deg.
    
    UCSPoseA=UCSPoseAuRad/TouRad
    UCSPoseB=UCSPoseBuRad/TouRad
    UCSPoseC=UCSPoseCuRad/TouRad
    
    X(UCSPoseX):(XVel)Y(UCSPoseY):(YVel)Z(UCSPoseZ):(ZVel)A(UCSPoseA):(AVel)B(UCSPoseB):(BVel)C(UCSPoseC):(CVel)
    
    

     

    The only thing is that I use only one "X:(Vx)Y:(Vy):Z:..." statement. When I have to slice my entire move (contour) into pieces, so like the move will consist of 50 little jogs.

    How can I implement this? By putting it in a loop? Or is there a better way?

     

    Thanks in advance!

     

     

    --

    Best regards,

     

     

    Pavel Maslov, MS

    Controls Engineer at Pulsed power Lab

    Efremov Institute for Electro-Physical Apparatus

    St. Petersburg, Russia

     

    Mobile: +7 (951) 672 22 19

    Landline: +7 (812) 461 01 01

×
×
  • Create New...