Jump to content
OMRON Forums

JayL

Members
  • Posts

    54
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

JayL's Achievements

Contributor

Contributor (5/14)

  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In
  • First Post

Recent Badges

0

Reputation

  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 //=========
  9. CORRECTION : step 1,2,3: it really should be just one step, and the scaling is not from the scale between NORMAL and long-axis vector. The scaling should be directly from [sx, Sy, Sz] = [Ax, Ay, Az]
  10. 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.
  11. Please send an email to Tech Support (Support@deltatau.com) requesting the info. We are working on putting a documentation together for preliminary setup
  12. Hi, as you read in the manual, there is no way around it. commands in separate lines will execute separately. could you be more specific about what you want to achieve ? We may be able to find another solution for you.
  13. 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.
  14. 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.
  15. Hi, Acc28E is a 16-bit ADC card, so there are only inputs for Acc-28E, and there is no output. The voltage input range can be +/-10V
×
×
  • Create New...