Jump to content
OMRON Forums

jackvoxel8.com

Members
  • Posts

    32
  • Joined

  • Last visited

Posts posted by jackvoxel8.com

  1. Look up Motor[x].pMasterEnc in the software reference.

     

    I think it will do what you want.

     

    Hi Dave, thanks for the response. I will experiment with pMasterEnc and see how it works. It seems simpler than my CamTable solution posted above.

     

    Do you know if it has a "slew" option similar to the CamTable so the motion isn't sudden? I couldnt seem to find a reference to anything like that in the docs.

  2. CamTables are nice for this type of things since they can control the rate at which correction gets applied to the target axis. In this case a zero degree cam table would work.

     

    Hi Jeff, thank for the response. I was experimenting yesterday and figured out that CamTables do work as I hoped. What do you mean by "zero degree" though? I've pasted my working code below (on the fly updates are achieved by adjusting PosBias), is there anything I can do to simplify it or do I need to define all those options?

     

    CamTable Definition:

     

    CamTable[0].Source = 0

    CamTable[0].Nx = 1

    CamTable[0].X0 = 0

    CamTable[0].SlewX0 = 10

    CamTable[0].Dx = 1

    CamTable[0].Target = 3

    CamTable[0].PosSf = 1

    CamTable[0].PosBias = 0

    CamTable[0].SlewPosOffset = 0.1

    CamTable[0].DacEnable = 0

    CamTable[0].PosData[0] = 0

    CamTable[0].PosData[1] = 0

     

    Sys.CamEnable = 1

  3. I am using a Power PMAC controller to drive my CNC machine, which has standard cartesian X, Y, Z axes.

     

    Is there any way to adjust the position of the Z axes on the fly while a motion program is running? (in a similar manner to how you can adjust the feedrate on the fly with a feedrate override) Ideally these adjustments would happen ASAP but also follow any accel limits I have set for the axes.

     

    I currently have some software that allows my machine operator to enter an offset and that offset is pushed to the controller and stored in a register.

     

    For example, lets say I have this simple motion program:

     

    G1 Z1

    G1 X0 Y0

    G1 X10

    G1 Y10

    G1 X0

    G1 Y0

     

    The above program should trace a square at Z=1. Now lets say that in the middle of the program executing an operator puts 0.5 into the register. I would like the Z axes to move to Z=1.5 (ASAP while still respecting accel limits) and then finish the rest of the square at Z=1.5. Any subsequent moves will retain this offset (i.e., a move to Z=5 will end up at Z=5.5) until the register is reset back to 0.

     

    Is this behavior achievable? If so I'd love some pointers on accomplishing this.

  4. Thanks for the reply vinceb

     

    Your code it working for me. Previously it just wouldnt work at all. Sometimes it would hang and othertimes it would immediately send the HomeCompleted message.

     

    Instead of using the timer to wait for motion to start, would the following line of code work? Using the timers feels fragile.

     

    while (Motor[1].HomeInProgress == 0) { }

  5. Hi All, I am currently trying to get the "Home" button in PMAC-NC to work. I can currently home motors 1, 2, and 3 from the terminal in the PowerPMAC IDE with the #1..3hm command. The PPMAC source that ships with the NC code comes with a stubbed program that integrators should modify. Here is how I modified it:

     

    open plc HomePlc

    Ldata.coord = 1

     

    if (CommandReg == UI_Home)

    {

    CommandReg = UI_None

     

    abort;

    enable;

     

    // Integrator should insert custom homing script here.

    home 3

    home 1,2

    homez 5,6,7,8

     

    // Acknowledge HMI homing process is complete.

    send1 "HomeCompleted"

    }

    close

     

    Any help would be appreciated.

×
×
  • Create New...