Jump to content
OMRON Forums

paddax

Members
  • Posts

    44
  • Joined

  • Last visited

Posts posted by paddax

  1. Can you write to Mxx30? Or does it stay latched?

     

    We don't use the standard M variable definition and I don't have the manuals to hand.

     

    If your referfing to Motor or Coord status register, then yes it stays latched. Actively writing to the register does not clear it.

  2. We are using a Turbo UMAC and Macro to connect to a set of Copley drives. When performing a move until trigger the system works most of the time, however occasionally the trigger is missed and the axis continues until the target position.

     

    Move until trigger command is as follows

    X(M140)^0Y(M141)^0Z(M142)^0
    

     

    I can't get any further with this problem as the entire process is controlled in the protocol between the UMAC and the Copley drives.

  3. This brings up a question. You say you have used Turbo Pmac. The Power Pmac works the same as Turbo Pmac. How did you solve this on Turbo Pmac?

     

    That's interesting, the code on the Turbo did not use the Q command it only used the S command and it performed as I would have expected. As I write this I'm feeling obliged to go and check the Turbo code.....

     

    The Turbo code never issued a Q command

  4. That's not the answer I'm looking for.

     

    I'm currently investigating the possibility of moving our CNC machine to the Power PMAC. We currently use the Turbo UMAC and have used the PMAC, PMAC2 and Galil. Our company also use Heidenhain, Siemens and Fanuc controllers. In every case the user could select single block and reasonably expect the machine to finish the current move and stop.

     

    There is absolutely no way that I could sell this behaviour to my company or my customers.

     

    I'm hoping that among the plethora of options their is something that can make the system act in a more sane manner.

  5. While running a simple program

     

    while(1 == 1) {

    X10 F100

    x-10

    }

     

    Issuing an S command with Coord[x].NoBlend=1 finishes the execution of the current line and then runs the next line.

     

    Issuing an S command with Coord[x].NoBlend=0 finishes the execution of the current line and then runs 2 subsequent lines.

     

    I would expect a motion controller to pause the program at the end of the current line providing your not already passed the point where deceleration can occur.

     

    Have I got something wrong?

  6. I'm assuming I have something wrong here but here are my conclusions.

     

    Given the following motion program running in a simple #1->1000X coordinate system.

     

    open prog 1

    linear

    F1000

    X1

    X2

    X3

    X3

    X3

    close

    When this program is run at the point the system hits the second X3 the program aborts with RunTimeError.

     

    It appears that programming the same position twice while Coord[x].NoBlend=0 (the default condition) causes the error.

     

    Changing the program to the following allowed the program to run

     

    open prog 1

    linear

    F1000

    X1

    X2

    X3

    X3.00000001

    X3.00000002

    close

     

    It appears any closer to coincidence of two sequencial moves causes a RunTimeError.

     

    Addendum

    An incremental move of 0 causes the same problem.

  7. Is there a gpascii method for getting and setting IData, DData etc as a block rather than issuing single commands.

     

    As an example if I have 10,000 IData elements, to read or write all of them appears to be 10,000 discrete communications and this is going to take a long time (probably about 10 seconds).

     

    There are methods for obtaining values for a number of contiguous P,M,Q etc variables e.g. P1..4, but I can't see any method for setting a set of contiguous variables e.g. P1..4=1,2,3,4

     

    I just realised that's actually two questions, I hope you don't mind

  8. I'm developing a PC application that drives the ppmac via the rotary buffer, it is a valid state for my application to completely run out of commands in the rotary buffer. Previously the Turbo pmac would stay in cycle and wait for further commands, however the Power Pmac drops out of cycle in this condition. Is this the expected behaviour?

     

    You can start a program with b0r with no contents in the buffer and the program will run when you add contents.

     

    When I say in-cycle I'm referring to Coord[x].ProgActive

  9. I have a power pmac with a very simple configuration

     

    There are 4 axis all configured as inverse kinematic axis

    #1->I

    #2->I

    #3->I

    #4->I

     

    Then the forward and inverse kinematic programs are as follows. Obviously these are just examples that replace the instructions #n->1000x

     

    open forward (0)

    KinAxisUsed = $1C1 // ZXYA

    KinPosAxisX = KinPosMotor1 / 1000

    KinPosAxisY = KinPosMotor2 / 1000

    KinPosAxisZ = KinPosMotor3 / 1000

    KinPosAxisA = KinPosMotor4 / 1000

    close

     

    open inverse (0)

    KinPosMotor1 = KinPosAxisX * 1000

    KinPosMotor2 = KinPosAxisY * 1000

    KinPosMotor3 = KinPosAxisZ * 1000

    KinPosMotor4 = KinPosAxisA * 1000

    close

     

    My problem is once the above is downloaded I can't get the Coord[0].Csolve to set. I have tried setting Csolve for each of the axes in the coordinate system but this has not effect on the Coord[0].Csolve

     

    A more serious problem is that even though Csolve is false I'm still able to run a program in this coordinate system using the defined kinematics. The manual is very clear that this is not possible. Obviously I want the program to run and this is what its doing, its just my own software which is written against the manual is telling me cycle start is not permitted.

×
×
  • Create New...