Jump to content
OMRON Forums

JayL

Members
  • Posts

    54
  • Joined

  • Last visited

Posts posted by JayL

  1. hi,

     

    you might need someone to look into your kinematics for this kind of details.

    we don't really know how you did your iteration, and we don't know how to troubleshoot it since we don't know the details.

    inverse kinematics will always use the next command to calculate next motor positions.

    we are not sure what the goal is to have KinPosAxis values other than present axis position values.

  2. Not really sure what you want to achieve.

    if you just want to add display on NC interface, then please change the content of PowerPmacNC.ini file and save.

    in that file, you need to change AxisLabels and MotorNumbers to match your axis names.

     

    Transformation matrices are usually used with G code with variable values, but not axis values.

    it seems to be a 5-axis system but it's not clear how it works.

    Please tell more about the details you want to achieve.

  3. Hi,

     

    if only power on position is the concern, then you should be able to do it in a startup/poweron PLC.

    read all 4 encoders and assemble the position through SerialEncDataA and SerialEncDataB registers.

    average these 4 readings and put it in a register.

    point Motor[x].pAbspos to that register, and make sure you set up Motor[x].AbsPosFormat and Motor[x].AbsPosSf properly.

    issue HMZ online command or HOMEZ program command, and the absolute position will be read.

  4. PMATCH is needed in Power PMAC as well.

    the logic of PMATCH is the same between Turbo and Power PMAC.

    We don't have a bit in Power PMAC to turn on and off kinematics.

    it's only controlled by motor axis defintion i.e. like #1->I

  5. Hi,

     

    if you want fixed frequency for sending and receiving packets, then you should not use background program.

    Please refer to Power PMAC User Manual, Writing C Functions and Programs in Power PMAC.

    we have several different task levels you can choose: User-Written Phase routine, Servo routine, or Real-Time interrupt C PLC Routine.

    These routines are running at user-defined frequencies.

  6. Hi,

     

    In Acc84E manual, there are 2 types of clock setting regarding EnDat.

    one is without additional clock switch, and the other one is with additional clock switch.

    the additional clock switch is referring to HEIDENHAIN EnDat EIB series.

    EIB serial switch usually has up to 16MKhz clock frequency, and that is why we have 2 tables of common serial clock frequency settings.

    The table without switch box is in the range from 250 Khz to 2 Mhz.

    The table with switch box is in the range from 4.16 Mhz to 12.5 Mhz.

  7. Hi Louv,

     

    the code in previous post is in Power PMAC format , not Turbo.

    Please change the transformation matrix setting as below, and ignore Gather.Enable command, which is for Power PMAC only.

    Also, command tsel -1 is not for Turbo. Please use tsel 0 instead.

     

     

    TSEL 1 ; Select Matrix 1

    TINIT; initialize Matrix 1

    Q40=1.5 Q41=-0.5 Q42=0 ; Variables for first row

    Q43=-0.5 Q44=1.5 Q45=0 ; Variables for second row

    Q46=0 Q47=0 Q48=1 ; Variables for third row

    AROT 40 ; Assign these values to the rotation portion

  8. Hi Louv,

     

    the idea of previous post did not work out as I expected.

    I apologize for that.

    In order to do any 3D ellipse in 3D space, the idea is to stretch a 3D circle.

    So, you have to find the correct transformation matrix to stretch the circle.

    The idea is to find correct eigenvectors and eigenvalues, construct the transformation matrix, and then use the transformation.

     

    the example I made below is drawing a circle, start from [0, 0, 0], and the circle center is at [1, 1, 0]

    after drawing a circle, it is stretched in [-1, 1, 0] direction with scale of 2.

     

    the eigenvectors and eigenvalues I choose are:

     

    Lambda1 = 1, with V1=[-1/sqrt(2), -1/sqrt(2), 0], short-axis, from center to starting point

    Lambda2 = 2, with V2=[-1/sqrt(2), +1/sqrt(2), 0], long-axis, from center to long-axis vertex point

    Lambda3 = 1, with V3=[0, 0, 1], normal direction, NORMAL vector direction

     

    let V=[V1, V2, V3], D=3x3 matrix with diagonal elements Lambda1, 2, 3

     

    M = V*D*V'

     

    with these, you can construct a transformation matrix:

    [ 1.5 -0.5 0]

    M = [ -0.5 1.5 0]

    [ 0 0 1]

    this is associated with XYZ axes.

     

    so, with the following program, an ellipse can be drawn:

     

    //=========

     

    &1

     

    #1->1000X

    #2->1000Y

    #3->1000Z

     

    global Tdet = 0

     

    open prog ellipse_test01

     

     

    Tdet = tinit(1);

    Tdata[1].Diag[6] = 1.5;

    Tdata[1].Diag[7] = 1.5;

    Tdata[1].Diag[8] = 1;

    Tdata[1].xyz[0] = -0.5;

    Tdata[1].xyz[1] = 0;

    Tdata[1].xyz[2] = -0.5;

    Tdata[1].xyz[3] = 0;

    Tdata[1].xyz[4] = 0;

    Tdata[1].xyz[5] = 0;

     

    abs

    linear

    TA 0 TS 50 TD 0

    F 5

     

    X 0 Y 0

    dwell 1000

     

    normal K-1

    abs

    dwell 0

    Gather.Enable=2

     

    dwell 0

    tsel -1

    circle1

    I 1 J 1

    dwell 0

     

    tsel 1

    circle1

    I 1 J 1

     

    tsel -1

     

    dwell 0

    Gather.Enable=0

    dwell 0

     

    close

     

    //=========

    ellipse.png.e6d455d5ee34d42d7cf4a12b244f9b8a.png

  9. Hi Lovu,

     

    NO, PMAC can't draw an ellipse directly.

     

    However, if you manipulate your axis scaling, then you should be able to "stretch" a circle to ellipse.

    the way to achieve this is, figuring out correct scale on each axis and then implement the scaling in transformation matrix.

    to do this:

    1. You need to calculate unit NORMAL vector XYZ direction component length. let's say they are Lx Ly Lz, and Lx^2+Ly^2+Lz^2 = 1

    2. you need to define your ellipse's "long-axis" vector, and this will be the direction you want to stretch the circle. and of course, this vector has to be normal to NORMAL vector of the circle.

    3. get XYZ direction components of this long-axis vector, let's say it's [Ax, Ay, Az]. and then you find the scaling between each direction. X-axis direction scaling will be Sx=Ax/Lx, and so on

    4. Put these 3 values in transformation matrix. This part I won't explain here. Please see Turbo PMAC User Manual, Axis Transformation Matrices section.

    5. In motion program, go to the short-axis position of your ellipse, and then to TSELn command, which will use transformation n to do the following move.

    6. pmatch is the next command. This is to make sure that the axis position calculation is correct from current motor position after the scaling provided in matrix n. at this point, you should not see a position jump because the short-axis direction should have a unit scaling.

    7. draw the circle with circle command.

    8. when it finishes, do command TSEL0 to deselect the transformation.

     

    Although we haven't tried it, this should work.

  10. another solution for this is to do jog until trigger.

    and in jog until trigger move, the post trigger move is not limited by 2^24 number.

    let's assume that your home flag is in the negative direction, and home offset is 10,000,000

    In a PLC, you can send a command #1j=-9000000000^10000000

    so basically this will send motor 1 to negative direction, and after hitting a trigger, it will come back to position 10,000,000

    of course in the PLC you need to monitor motor in-position bit and velocity-zero bit to make sure that the motor is at position.

    and then you can do HMZ.

  11. one solution would be jogging the motor to a position you would like to be HOME position, and issue HMZ command at that position.

    this requires a PLC to handle the logic.

    Basically this PLC will do Home Offset manually with HMZ command.

    but you have to make sure the tuning of the motor is solid, so you can get in position within the tolerance.

  12. We are having 4 EtherCAT drives and 2 EtherCAT encoders.

    So, I guess 8 axes license should be OK.

    Virtual axes for User Servo and fantom axes should not matter, isnt' it?

     

    Thanks a lot.

     

     

    EtherCAT encoders are just I/Os, so those do not count for EtherCAT axes.

  13. Hi,

     

    the license you mentioned in previous post is EtherCAT license, correct?

    In an UMAC rack, you can put many axis cards, like Acc24E2As, if you have enough slots.

    There is no license related to these axes.

     

    The license is usually for EtherCAT drives.

    If you have an 8-axis license, then you can connect up to 8 EtherCAT drives.

     

    PMAC can control EtherCAT drives and other axes through axis cards at the same time.

    total number of axes can go up to 256.

    So, the question to you would be, will you use more than 8 EtherCAT drives?

    if not, then 8-axis license should be enough for you.

  14. Closed-loop mode is not related to which axis card you use.

    All the axis card can do closed-loop.

    As for stepper motor with encoder, it will usually vibrate when holding position because the encoder counts usually does not match step numbers in one revolution.

    we suggest that you increase your in-position band, Ixx28. It might help.

    I would think you are already using closed-loop mode because you mentioned I7mn0 = 3 or 7.

    However, with stepper motors, we recommend to use internal step feedback, and encoder is just for position verifying.

     

    We would like to know about this UMAC rack, such as how many slots, what cards are in this rack, etc.

    Also, we would like to know the failure because if Acc24E2S is overheating, it should not output anything, and we rarely see this kind of failure with Acc24E2S.

  15. what is the environment temperature for this Acc24S?

    the spec for Acc24E2S to work properly is between 0C to 45C.

    if the Acc24E2S is not working within this range of temperature, then we might have to take those cards back and check them.

    However, you should provide good air flow for UMAC to make sure that the temperature is within this range.

  16. Please try to open IDE with "No Device" and see if IDE is operating properly.

    The support we can provide is the connection between IDE and actual Power PMAC hardware.

    as mentioned earlier, VM is out side our support scope.

     

    Still, you should be able to open IDE with No Device option without any problem.

    Please let us know how that goes

  17. it should be in prog 1000

     

    G-Codes

    To handle machine-tool-style G-codes, which provide direct access to part programs created by

    CAD/CAM programs, Turbo PMAC treats a Gnn statement as CALL 1000.nn000. The following

    values on the line (e.g. X1000) can be treated as parameters to be passed, as for a canned cycle, or the

    subprogram can execute without arguments, return, and execute the rest of the line (as for a modal Gcode).

    The machine tool designer writes Program 1000 to implement the G-codes as he wishes, allowing

    customization and enhancements. Delta Tau provides a sample file implementing all of the standard Gcodes.

    M, S, T, and D codes are similarly implemented.

×
×
  • Create New...