Showing results for 
Search instead for 
Do you mean 
Reply
Solved! Go to solution

CYCLE800 ERROR - calculateIKSAngles

[ Edited ]

Hello everyone!

I was creating a ISV of a milling machine with angle heads. I create all kinematic as the samples provided ( i using nx 8.5.1.3. 

But, when i simulate the cycle800, i face the following error:

 

61182.


I investigate the problem and inside the cycle800 i found the line and the logic where the problem occour:

 

 

IF ISVAR("$P_TCNUM")
     _TCMD=$P_TCNUM
ENDIF
    _TCI=1
WHILE ($TC_CARR34[_TCI]<>_TC)
    _TCI=_TCI+1
IF (_TCI>_TCMD) GOTOF _ERR2
ENDWHILE

 

but, i received the results

00:01:20.30 Message: $TC_CARR34[_TCI]: SEMPUCO
00:01:20.30 Message:  $P_TCNUM : 0
00:01:20.30 Message:  _TC : SEMPUCO
00:01:20.30 Message:  _TCI : 2
00:01:20.30 Message:  _TCMD : 0

 

The problem is the variable P_TCNUM, which have the 0 number (according to the sinumerik documentation, this is the umber of available orientable tool carriers in the channel. 

 then, i put the variable in the ini file 

 

$P_TCNUM = 10

 

and  the error 61182 was solved, but now, i face the following messages

 

00:01:20.30 Unspecified error when executing method 'calculateIKSAngles'.
00:01:20.30 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed.
00:01:20.30 Unspecified error when executing method 'GMe_SwivelingCalculateAngles'.
00:01:20.30 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed.

 

What is the main reason to receive this message?  

I wait a feedback friends.

With best regards

Marco Silva

13 REPLIES
Solution
Solution
Accepted by topic author marcoarsilva
‎03-28-2017 10:14 AM

Re: CYCLE800 ERROR - calculateIKSAngles

[ Edited ]

Hi Marco,

 

1.) as far as I see is the 61182 error independent of the IKS error.

2.) the method "GMe_SwivelingCalculateAngles" was introduced after NX853. This could be the reason for the error. We recommend to use the CCF files from the current used NX version. 

3.) The IKS error comes when either the wrong chain is used or there is no possible solution with the given target vector (programmed angles) 

 

Thomas

Re: CYCLE800 ERROR - calculateIKSAngles

Hi @thomasfeind, thanks for your advice.

I changed the version of software, and then, i work with 11.0.1. Smiley Wink


But, i face a problem, i believe that you help me.

 

I was found this lot of messages 

 


00:00:51.340 Specified kinematics chain Z-X-Y+C does not exist.
00:00:51.340 Method calculateIKSAngles was called with an invalid argument type. (Line: 1386, Program: M_FRA, Channel: MAIN)
00:00:51.340 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed. (Line: 1386, Program: M_FRA, C
hannel: MAIN)
00:00:51.340 Unspecified error when executing method 'GMe_SwivelingCalculateAngles'. (Line: 1386, Program: M_FRA, Channel: MAIN)
00:00:51.340 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed. (Line: 1386, Program: M_FRA, C
hannel: MAIN)

 

Principally that in bold letters.

Do you imagine why? 

Follow a image of my system

error.JPG

 

 

;;; ---------------------SEMPUCO
$TC_CARR1[2]=0.0
$TC_CARR2[2]=0
$TC_CARR3[2]=-700.00
$TC_CARR4[2]=0
$TC_CARR5[2]=0
$TC_CARR6[2]=0.0
N70 $TC_CARR7[2]=0 ;x component of rotary axis v1
N80 $TC_CARR8[2]=0 ;y component of rotary axis v1
N90 $TC_CARR9[2]=1 ;z component of rotary axis v1
N100 $TC_CARR10[2]=-1 ;x component of rotary axis v2
N110 $TC_CARR11[2]=0 ;y component of rotary axis v2
N120 $TC_CARR12[2]=0 ;z component of rotary axis v2
$TC_CARR13[2]=0
$TC_CARR14[2]=0
$TC_CARR15[2]=0
$TC_CARR16[2]=0
$TC_CARR17[2]=0
$TC_CARR18[2]=0
$TC_CARR19[2]=0
$TC_CARR20[2]=0
$TC_CARR21[2]=(X)
$TC_CARR22[2]=(X)
N230 $TC_CARR23[2]="T" ;kinematic type
N240 $TC_CARR24[2]=0 ;Offset of rotary axis v1
N250 $TC_CARR25[2]=0 ;Offset of rotary axis v2
$TC_CARR26[2]=0
$TC_CARR27[2]=0
$TC_CARR28[2]=0
$TC_CARR29[2]=0
N300 $TC_CARR30[2]=-360 ;software minimum limit of rotary axes v1
N310 $TC_CARR31[2]=-360 ;software minimum limit of rotary axes v2
N320 $TC_CARR32[2]=360 ;software maximum limit of rotary axes v1
N330 $TC_CARR33[2]=360 ;software maximum limit of rotary axes v2
N340 $TC_CARR34[2]="SEMPUCO" ;tool holder name
N350 $TC_CARR35[2]="C" ;Axis name 1
N360 $TC_CARR36[2]="A" ;Axis name 2
N370 $TC_CARR37[2]= 201000000 ;501005223 ;Identifier
$TC_CARR38[2]=0
$TC_CARR39[2]=0
N400 $TC_CARR40[2]=0 ;Z axis retract value

 

 


M17

Solution
Solution
Accepted by topic author marcoarsilva
‎03-29-2017 10:39 AM

Re: CYCLE800 ERROR - calculateIKSAngles

Yes I know why this happens... it´s pretty simple. As the message says the current active chain does not exist ;-) Thats the short answer

 

Now let me explain some more with detailled background information.

 

I guess you call the cycle800 with the tool holder parameter "SEMPUCO". It seems that there are 2 toolcarrier datasets available. The one for the machine without the head and the other (as shown in the screenshot) for the machine+head kinematic. 

 

When TCARR command is called within cycle800 with its toolcarrier number, this number (which corresponds with the index in tool carrier dataset) will be passed to method GMe_GetActiveChainName. The current active chain name will be set depending on this number and stored in variable GV_strSwivelingChainName. This variable is later used from CSE functions calculateIKSLinears and calculateIKSAngles.

 

Shown below is the implementation from SIM16 sample machine.

 

2017-03-28 17_10_20-XML Notepad - C__Users_feind_AppData_Local_Temp_re_md_tp_1490713243126.xml.jpg

 

As you can see number 2 returns "Z-X-Y+C" as chain name. What is inside your error message This chain name is not available in your kinematic model. 

 

What needs to be done from you:

Customize the method GMe_GetActiveChainName depending on toolcarrier index and the entered chain names in machine and head. In your screenshot I see "DEFAULT" as chain name for the head. I recommend to use chain names which are indicating the compenent. If the machine also has "DEFAULT" as chain name then Nr2. in method must return "DEFAULT+DEFAULT". This is ok but not clear which subchains are added.

What about "MARCO+SILVA"? ;-)

 

Thomas

Re: CYCLE800 ERROR - calculateIKSAngles

Hello @thomasfeind, you ever time precise with your words. Thanks.

This step are solved, but i was facing another problem. 

 

problem solved!problem solved!

  I follow the sample from sim_16_mill_headchange, but, yet i've been  facing this problem:

 

I mount the head, mount the tool, and with the  correct kinematic configured ( i believe), this error occour:

 

00:00:51.340 Method calculateIKSAngles was called with an invalid argument type. (Line: 1290, Program: M_FRA, Channel: Main)
00:00:51.340 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed. (Line: 1290, Program: M_FRA, Channel: Main)
00:00:51.340 Unspecified error when executing method 'GMe_SwivelingCalculateAngles'. (Line: 1290, Program: M_FRA, Channel: Main)
00:00:51.340 Command error! An assign command for the variable 'LV_structAngles' couldn't be executed. (Line: 1290, Program: M_FRA, Channel: Main)

 

But, this error occour in this line of cycle800 (1290):

 

1284 M_FRA:
1285 CASE _G17_18_19 OF 2 GOTOF _Y18 3 GOTOF _X19 DEFAULT GOTOF _Z17
1286 _Y18: CUT2DF TCOFRY TCARR=_TCI
1287 GOTOF M_FRE
1288 _X19: CUT2DF TCOFRX TCARR=_TCI
1289 GOTOF M_FRE
1290 _Z17: CUT2DF TCOFR TCARR=_TCI

 

I orient the angle correctly in the carr.def

 

;;; ---------------------SEMPUCO
$TC_CARR1[2]=0.0
$TC_CARR2[2]=0
$TC_CARR3[2]=0.00
$TC_CARR4[2]=0
$TC_CARR5[2]=0
$TC_CARR6[2]=0.0
$TC_CARR7[2]=0 ;x component of rotary axis v1
$TC_CARR8[2]=0 ;y component of rotary axis v1
$TC_CARR9[2]=1 ;z component of rotary axis v1
$TC_CARR10[2]=1 ;x component of rotary axis v2
$TC_CARR11[2]=0 ;y component of rotary axis v2
$TC_CARR12[2]=0 ;z component of rotary axis v2
$TC_CARR13[2]=0
$TC_CARR14[2]=0
$TC_CARR15[2]=0
$TC_CARR16[2]=0
$TC_CARR17[2]=0
$TC_CARR18[2]=0
$TC_CARR19[2]=0
$TC_CARR20[2]=0
$TC_CARR21[2]=(X)
$TC_CARR22[2]=(X)
$TC_CARR23[2]="T" ;kinematic type
$TC_CARR24[2]=0 ;Offset of rotary axis v1
$TC_CARR25[2]=0 ;Offset of rotary axis v2
$TC_CARR26[2]=0
$TC_CARR27[2]=0
$TC_CARR28[2]=1
$TC_CARR29[2]=0
$TC_CARR30[2]=-360 ;software minimum limit of rotary axes v1
$TC_CARR31[2]=-360 ;software minimum limit of rotary axes v2
$TC_CARR32[2]=360 ;software maximum limit of rotary axes v1
$TC_CARR33[2]=360 ;software maximum limit of rotary axes v2
$TC_CARR34[2]="SEMPUCO" ;tool holder name
$TC_CARR35[2]="C" ;Axis name 1
$TC_CARR36[2]="A" ;Axis name 2
$TC_CARR37[2]= 201000000 ;501005223 ;Identifier
$TC_CARR38[2]=0
$TC_CARR39[2]=0
$TC_CARR40[2]=0 ;Z axis retract value
N410 $TC_CARR41[2]=0
N420 $TC_CARR42[2]=0
N430 $TC_CARR43[2]=0
N440 $TC_CARR44[2]=0
N450 $TC_CARR45[2]=0
N460 $TC_CARR46[2]=0
N550 $TC_CARR55[2]=0
N560 $TC_CARR56[2]=0
N570 $TC_CARR57[2]=0
N580 $TC_CARR58[2]=0
N590 $TC_CARR59[2]=0
N600 $TC_CARR60[2]=0
N640 $TC_CARR64[2]=0
N650 $TC_CARR65[2]=0

M17

 

but yet don't work. 

Do you have an advice to give me? 

Re: CYCLE800 ERROR - calculateIKSAngles

[ Edited ]

Hi Marco,

I see you make a good progress :-)

Your kinematic chain definition in kinematic model is faulty. The inverse kinematic solver (IKS - which is called with calculcateIKSLinears/Angles) works with max 5 chain elements ,3 linear +2 rotary axes.

Figure out which axes of the machine and the head are involved in 5 axis transformations (Cycle800/TRAORI). I don´t have enough information about your current machine configuration but as far as I see the head chain (SEMPUCO) needs a chain which includes the X-Y-Z axis only.

If the head works also with other machine axes including cycle800 you need an additonal tcarr dataset and a additional kinematic chain.

Thomas

Re: CYCLE800 ERROR - calculateIKSAngles

[ Edited ]

Hello @thomasfeind, thanks for more one advice.

i verify, and follow 2 images.

 

 

 

"DEFAULT" chain with B axis"DEFAULT" chain with B axis"DEFAULT+SEMPUCO" with abc rotary axis"DEFAULT+SEMPUCO" with abc rotary axis

How you can see, my "DEFAULT" chain have 3 (X/Y/Z)+1 axis (B), and i work in the chain "SEMPUCO" with more 2 axis (C/A). 

 

 

According you told me, i believe that i need to remove B axis of "DEFAULT" chain. I'll try do this..Do you think this action as a good idea?  Do you recomend use a device to "B" TABLE too? 

 

-----***-----***-----**----

update:

ANSWER: Yeahh! i removed the "B" axis and the cycle works, except by this message.

 

00:00:51.340 No possible solution for rotary axis due to axis limit (Line: 1290, Program: M_FRA, Channel: Main)

 

 I'm work in this, but, if you have some advice about this error, it's good.

 

 

Solution
Solution
Accepted by topic author marcoarsilva
‎04-03-2017 11:27 AM

Re: CYCLE800 ERROR - calculateIKSAngles

Check and if necessary align the axis limits in head axes regarding the the axis limits in TCARR dataset.

 

Thomas

Re: CYCLE800 ERROR - calculateIKSAngles

Hey @thomasfeind, everything are ok now.
Thanks friend

WBR

Marco Antonio R Silva
Siemens PG SU Brazil

Re: CYCLE800 ERROR - calculateIKSAngles

Great! Thanks for your feedback!

Learn online





Solution Information