cancel
Showing results for 
Search instead for 
Did you mean: 

CYCLE800 ignores frame rotation in ISV

Experimenter
Experimenter

Is there a way to use ISV if there is a rotation in the fixture offset?

This machine has a rare AB configuration but we want to program it like it was a AC to make the programs machine indepent. So we need to rotate the frame by 90° which works at the machine but in simultion the result is not correct.

I use the OOTB MCF file, NX Version is 10.0.3 MP13

 

Here is a simple test program and a video how it is executed on the real machine and in simulation:

 

$P_UIFR[1]=CTRANS(X,0,Y,0,Z,0,A,0,B,0)
$P_UIFR[1]=CROT(X,0,Y,90,Z,0)
G54
SUPA G0 Z1000
SUPA G0 X0 Y0 A0 B0
CYCLE800(1,"STC630",0,57,0.,0.,0.,-0.,0.,0.,0.,0.,0.,-1,1.)
G0 X0 Y0 Z500
CYCLE800(1,"STC630",0,57,0.,0.,0.,-0.,-45.,0.,0.,0.,0.,-1,1.)
G0 X0 Y0 Z500
CYCLE800()
SUPA G0 Z1000
SUPA G0 X0 Y0 A0 B0
M30

8 REPLIES

Re: CYCLE800 ignores frame rotation in ISV

Siemens Phenom Siemens Phenom
Siemens Phenom

Hi,

 

please check the axis limits in tool carrier dataset

 

$TC_CARR30[1]=xxx;;;Minimum position of rotary axis v1
$TC_CARR31[1]=xxx ;;;Minimum position of rotary axis v2
$TC_CARR32[1]=xxx ;;;Maximum position of rotary axis v1
$TC_CARR33[1]=xxx ;;;Maximum position of rotary axis v2

 

Thomas

Re: CYCLE800 ignores frame rotation in ISV

Experimenter
Experimenter

Hi Thomas,

 

thanks for the fast answer!

 

Just to clarify, CYCLE800 is simulating correct if there is no frame rotation before.

 

This is the TC_CARR.DEF file:

$TC_CARR1[1]=0
$TC_CARR2[1]=0
$TC_CARR3[1]=0
$TC_CARR4[1]=0
$TC_CARR5[1]=0
$TC_CARR6[1]=0
$TC_CARR7[1]=0                ;;;x component of rotary axis v1
$TC_CARR8[1]=-1               ;;;y component of rotary axis v1
$TC_CARR9[1]=0                ;;;z component of rotary axis v1
$TC_CARR10[1]=-1              ;;;x component of rotary axis v2
$TC_CARR11[1]=0               ;;;y component of rotary axis v2
$TC_CARR12[1]=0              ;;;z component of rotary axis v2
$TC_CARR13[1]=90
$TC_CARR14[1]=337
$TC_CARR15[1]=0       
$TC_CARR16[1]=0
$TC_CARR17[1]=0
$TC_CARR18[1]=0
$TC_CARR19[1]=0
$TC_CARR20[1]=0
$TC_CARR21[1]=(X)
$TC_CARR22[1]=(X)
$TC_CARR23[1]="P"             ;;;Kinematic type T M P
$TC_CARR24[1]=0               ;;;Offset of rotary axis v1
$TC_CARR25[1]=0               ;;;Offset of rotary axis v2
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-20               ;;;Minimum position of rotary axis v1
$TC_CARR31[1]=-9999           ;;;Minimum position of rotary axis v2
$TC_CARR32[1]=90             ;;;Maximum position of rotary axis v1
$TC_CARR33[1]=9999            ;;;Maximum position of rotary axis v2
$TC_CARR34[1]="STC630"        ;;;Toolholder name
$TC_CARR35[1]="B"             ;;;Axis name 1         
$TC_CARR36[1]="A"             ;;;Axis name 2
$TC_CARR37[1]=201003003       ;;;Identifier
$TC_CARR38[1]=0
$TC_CARR39[1]=0
$TC_CARR40[1]=1170               ;;;z axis retract

M17

Machine:

$TC_CARR1[1]=0
$TC_CARR2[1]=0
$TC_CARR3[1]=0
$TC_CARR4[1]=0
$TC_CARR5[1]=0
$TC_CARR6[1]=0
$TC_CARR7[1]=0
$TC_CARR8[1]=-1
$TC_CARR9[1]=0
$TC_CARR10[1]=-1
$TC_CARR11[1]=0
$TC_CARR12[1]=0
$TC_CARR13[1]=45
$TC_CARR14[1]=0
$TC_CARR15[1]=0
$TC_CARR16[1]=0
$TC_CARR17[1]=0
$TC_CARR18[1]=0
$TC_CARR19[1]=0
$TC_CARR20[1]=0
$TC_CARR21[1]=(X)
$TC_CARR22[1]=(X)
$TC_CARR23[1]="P"
$TC_CARR24[1]=0
$TC_CARR25[1]=0
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-20
$TC_CARR31[1]=0
$TC_CARR32[1]=90
$TC_CARR33[1]=360
$TC_CARR34[1]="STC630"
$TC_CARR35[1]="B"
$TC_CARR36[1]="A"
$TC_CARR37[1]=2002
$TC_CARR38[1]=0
$TC_CARR39[1]=0
$TC_CARR40[1]=1170

Changing the A-9999/9999 to 0/360 doesn't make a difference.

 

 

 

Re: CYCLE800 ignores frame rotation in ISV

Siemens Phenom Siemens Phenom
Siemens Phenom

There is a difference between $TC_CARR values for the axis limits and the limits in kinematic model.

Both must match. Maybe this could be the reason.

 

2017-03-29 13_32_21-CYCLE800 ignores frame rotation in ISV - Siemens PLM Community - 399756.jpg

 

If this doesn´t work then please call GTAC.

 

Thomas

Re: CYCLE800 ignores frame rotation in ISV

Experimenter
Experimenter

I have changed the Values to:

TC_CARR.DEF

$TC_CARR1[1]=0
$TC_CARR2[1]=0
$TC_CARR3[1]=0
$TC_CARR4[1]=0
$TC_CARR5[1]=0
$TC_CARR6[1]=0
$TC_CARR7[1]=0                ;;;x component of rotary axis v1
$TC_CARR8[1]=-1               ;;;y component of rotary axis v1
$TC_CARR9[1]=0                ;;;z component of rotary axis v1
$TC_CARR10[1]=-1              ;;;x component of rotary axis v2
$TC_CARR11[1]=0               ;;;y component of rotary axis v2
$TC_CARR12[1]=0              ;;;z component of rotary axis v2
$TC_CARR13[1]=0
$TC_CARR14[1]=0
$TC_CARR15[1]=0       
$TC_CARR16[1]=0
$TC_CARR17[1]=0
$TC_CARR18[1]=0
$TC_CARR19[1]=0
$TC_CARR20[1]=0
$TC_CARR21[1]=(B)
$TC_CARR22[1]=(A)
$TC_CARR23[1]="P"             ;;;Kinematic type T M P
$TC_CARR24[1]=0               ;;;Offset of rotary axis v1
$TC_CARR25[1]=0               ;;;Offset of rotary axis v2
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-20               ;;;Minimum position of rotary axis v1
$TC_CARR31[1]=0           ;;;Minimum position of rotary axis v2
$TC_CARR32[1]=90             ;;;Maximum position of rotary axis v1
$TC_CARR33[1]=360           ;;;Maximum position of rotary axis v2
$TC_CARR34[1]="STC630"        ;;;Toolholder name
$TC_CARR35[1]="B"             ;;;Axis name 1         
$TC_CARR36[1]="A"             ;;;Axis name 2
$TC_CARR37[1]=201003003       ;;;Identifier
$TC_CARR38[1]=0
$TC_CARR39[1]=0
$TC_CARR40[1]=1170               ;;;z axis retract

M17

A.PNGB.PNG

 

The result is still same as in the video.

Re: CYCLE800 ignores frame rotation in ISV

Experimenter
Experimenter

I have done some testing with OOTB sim08 in NX11.0.1 and it looks like there is a general problem with the CYCLE800. The frame gets rotated but the axis doesn't move. Also when changing the rotary offset values

 there is no table rotation. I think i could make a workaround by editing the the CYCLE800.SPF

But how can I edit the .cyc file or use the CYLE800.SPF from the real machine?

offset.PNGXX0.PNGXX90.PNG

 

Re: CYCLE800 ignores frame rotation in ISV

Siemens Phenom Siemens Phenom
Siemens Phenom

Hi,

 

thanks for the detailed description and the screenshots. It´s very helpful to give you a fast answer.

 

As I said please call GTAC if there is something wrong or the simulation does not behave as the real machine.  For legal reason we cannot provide the cycle code as plain text. That´s the reason why it is encrypted as cyc file. If you want to modify something in cylce800 then take the spf file from the real machine controller.

 

I looked into the G54/$P_UIFR implementation and we do not consider a rotation. Only coarse and fine translation. Before change the cycle800 code, what about to use AROT for csys rotation as workaround or a CROT on another frame?

 

What I not fully understand is, why do you need this rotation? 

 

Thanks

Thomas

Re: CYCLE800 ignores frame rotation in ISV

Experimenter
Experimenter

AROT also was my first thought but it didn't work. I will let my reseller file an IR but i want to solve this problem before it's done by SIEMENS in NX 13Smiley Tongue

For now i have a quick fix which could lead to some problems but it's better than no simulation:

  • copied CYCLE800.SPF and TOOLCARR.SPF from controller to subprog dir
  • in CYCLE800.SPF i define a new frame containing the Y90° rotation
  • original:
    DEF FRAME _WPFR, _OLDFR
    modified:
    DEF FRAME _WPFR, _OLDFR,CORRFRAME=CROT(Y,90)
  • add _LOG_ON=0 to turn off logfile creation
  • at the final swieveling frame calculation i add this rotation
    original:
    $P_WPFRAME=$P_WPFRAME:_WPFR
    modified:
    $P_WPFRAME=CROT(Y,CORRFRAME[Y,RT]):$P_WPFRAME:_WPFR

The next step will be to let simulation_ini.tcl calculate the b rotation and output it into to_ini.ini

After this the behavior of TCOFR in CSE needs to be checked which seems to cause the problem. But i can't do this by myself because i don't have a MC license.

 


 

What I not fully understand is, why do you need this rotation? 

 

 

On most milling machines the Z axis is perpendicular to the table but on this machine it's paralell(like a 4ax horizontal without a tombstone) which causes some problems:

You can use programs only on this machine, for other machines MCS needs to be changed and everything has to be recalulated.

It is more likely to make mistakes because everything is rotated. Normally the distance from table to workpiece is the Z offset but on this machine its X. By rotating the fixure offset you can use XYZ like on every other machine.

It is also easier to use probing cycles or position the rotary axes before activating TRAORI 

 

 

Re: CYCLE800 ignores frame rotation in ISV

Siemens Phenom Siemens Phenom
Siemens Phenom
good and fully sufficient solution! Thanks for sharing this!

Learn online





Solution Information