Welcome, Guest. Please login or register.
Did you miss your activation email?
May 23, 2012, 08:00:15 PM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  KUKA Robot Forum (Moderators: Werner Hampel, Martin H, SkyeFire)
| | |-+  Touch Sense with Fronius TPS 5000 problem
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] 2 Print
Author Topic: Touch Sense with Fronius TPS 5000 problem  (Read 2671 times)
jaymansanders
Guest
« on: January 14, 2009, 03:44:21 PM »

Hello!

We have KRC1, Fronius TPS 5000 (Devicenet operates the welding parameters).
Physical output in KRC1 for "touch Sense" activation is address output 93. This activates approximately a 56V voltage to the welding wire. We activated this output and measured the voltage from wire-workpiece. Everything works OK. Also when we put this output 93 TRUE, a text "touch" shows in the Fronius panel. Although, in the text field of KRC1 a message "INTERRUPT 3 NOT DEFINED) shows every time we only put output 93 TRUE/FALSE.

Physical input in KRC1 for "Arc Stable" activation is address input 81 (We understand that Fronius should send this input information to KRC1, when the welding wire has touched the workpiece.

We have tried this TouchSense search function in T1,T2 and automatic (external). It doesn´t work. If our Touch Sense software would work properly, we would believe that the same output 93 should activate automatically when approaching the workpiece. This output doesn´t activate. When the robot makes the search routine, there comes a message "no workpiece found".

Here is an extract from the TOUCHSENSE GLOBALS (in Config.dat)

INT FG_TOUCH=6
INT TOUCH_OUT=999 (IN THE MANUAL THIS IS 1 NOT 999???WHAT DOES THIS VARIABLE DO?)
INT DOUBLE_TOUCH=0
INT TOUCH_ACTIVE=1 ;CONFIGURATION
INT TOUCH_RED=100 (IN THE MANUAL THIS IS 10 NOT 100???WHAT DOES THIS VARIABLE DO?)
INT OV_PRO_OLD=100
INT ADV_OLD=3

BOOL H70_OPTION=TRUE

Also is this correct:

DECL CTRL_TOUCH_O TOUCH_O[93] (Is this correct to put the "output 93" here, we understood this is the array index number?)
TOUCH_0[1]={OUT_NR 999,INI FALSE,NAME_NAT[] "1.TOUCH -SPANNUNG"} (manual says that the physical output for the disconnection of the Touch voltage must be entered here)
TOUCH_0[2]={OUT_NR 999,INI FALSE,NAME_NAT[] "2.TOUCH -SPANNUNG"}(When we change
TOUCH_0[3]={OUT_NR 999,INI FALSE,NAME_NAT[] "3.TOUCH -SPANNUNG"}
TOUCH_0[4]={OUT_NR 999,INI FALSE,NAME_NAT[] "4.TOUCH -SPANNUNG"}

DECL CTRL_TOUCH_I TOUCH_I[81] (Is this correct to put the "input 81" here, we understood this is the array index number?)
TOUCH_0[1]={OUT_NR 1,INI FALSE,NAME_NAT[] "1.TOUCH -EINGANG"} (manual says that the input ("rapid gaging") for the input Touch voltage feedback must be edited here)
TOUCH_0[2]={OUT_NR 1,INI FALSE,NAME_NAT[] "2.TOUCH -EINGANG"}
TOUCH_0[3]={OUT_NR 1,INI FALSE,NAME_NAT[] "3.TOUCH -EINGANG"}
TOUCH_0[4]={OUT_NR 1,INI FALSE,NAME_NAT[] "4.TOUCH -EINGANG"}

Please help if you have the TouchSense function operating properly.
Logged
jaymansanders
Guest
« Reply #1 on: January 15, 2009, 01:54:06 PM »

HI!

Now I placed the "OUT_NR 93" instead of "OUT_NR 999". I also plased the correct array [4] in both of the declarations. In fact this didn´t affect anything. I suppose that it doesn´t matter if we "declare" more lines than we actually use?

INT TOUCH_OUT=93 (was 1 or 999) (This variable saves what ever we have in "OUT_NR 999".

Now the function starts with the robot OK in the TouchSense search command. For example the "touch" text comes to the Fronius panel. Also when I MONITOR (I/O-inputs) the "Touch"-input (81) it comes active, when the wire touches the workpiece. Still the Robot says the workpiece was not found.

If we place the "IN_NR 81" to the TouchSense globals in congid.dat code it looks like TOUCH_1[1]={IN_NR 81,NAME_NAT[] "1. TOUCH-EINGANG"}. When we try to run the TouchSense program we get a message "Array index inadmissible" Huh?

If someone has the TouchSense working, I would greatly appreciate if you could copy/paste these variables for us from "TouchSense GLOBALS in config.dat". Everyone who has KRC1, these should be included in your software for free. Also if you don´t have the TouchSense working, only the code will help us  a lot.

Thank you!
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #2 on: January 15, 2009, 04:21:49 PM »

Your robot's TochSense package looks like it still has the factory default #s for Inputs and Outputs set.  These have to be set to match the I/O hardware of your specific setup.

Somewhere in the Touchsense routines, you will probably find  lines that looks like this:  $OUT[TOUCH_OUT]=TRUE.  Structuring programs this way allows KUKA to create these programs without knowing your hardware I/O setup in advance.  Instead, you just set a few variables to represent the $IN and $OUT numbers of your signals, and the program should run.

In your first post, you refer to TOUCH_0, but in your second post you refer to TOUCH_1.  TOUCH_0 is an array variable.  If TOUCH_1 is not, or is not declared with sufficient size, your array index could be incorrect.  Or, if your array index is 0, this could also cause that error.
Basically, if the variable is declared like this:
DECL CTRL_TOUCH_O TOUCH_O[93]
It declares TOUCH_O as an array variable of type CTRL_TOUCH_O (which would be defined elsewhere in the dat file), with 93 elements.  If you try to access TOUCH_O[0] or TOUCH_O[94], you will get the array index error.  Any value between 1 and 93 would be acceptable.

Logged
jaymansanders
Guest
« Reply #3 on: January 15, 2009, 06:22:00 PM »

Greetings!

Thank you SkyeFire for the quick response. The variable TOUCH_1 was wrongly typed. It was TOUCH_I (Like in Input).

Now my config.dat TouchSense globals are like below. When I run the search routine the first part seems to work OK. A voltage is set between welding wire + workpiece. When the welding wire touches the workpiece the program doesn´t notice the contact.

The Input 81 activates when welding wire touches the workpiece. I have checked this from Monitor I/O digital input 81. The information that the contact has been made is not returning to the program correctly (input 81). There is a variable INT TOUCH_OUT=1. When we have a configuration like below after running the TouchSense search function the variable has changed to INT TOUCH_OUT=93

DECL CTRL_TOUCH_O TOUCH_O[4]
TOUCH_0[1]={OUT_NR 93,INI FALSE,NAME_NAT[] "1.TOUCH -SPANNUNG"}
TOUCH_0[2]={OUT_NR 93,INI FALSE,NAME_NAT[] "2.TOUCH -SPANNUNG"}
TOUCH_0[3]={OUT_NR 93,INI FALSE,NAME_NAT[] "3.TOUCH -SPANNUNG"}
TOUCH_0[4]={OUT_NR 93,INI FALSE,NAME_NAT[] "4.TOUCH -SPANNUNG"}

In my opinion when I replace below the "IN_NR 1" with "IN_NR 81" everything should work fine. If I correctly interpret the manual, it demands this type of changes. Unfortunately, when I do this the message "Array index inadmissible" appears.

DECL CTRL_TOUCH_I TOUCH_I[4]
TOUCH_I[1]={IN_NR 1,INI FALSE,NAME_NAT[] "1.TOUCH -EINGANG"}
TOUCH_I[2]={IN_NR 1,INI FALSE,NAME_NAT[] "2.TOUCH -EINGANG"}
TOUCH_I[3]={IN_NR 1,INI FALSE,NAME_NAT[] "3.TOUCH -EINGANG"}
TOUCH_I[4]={IN_NR 1,INI FALSE,NAME_NAT[] "4.TOUCH -EINGANG"}

What is the problem with the variables, if I cannot change the "IN_NR 1" to "IN_NR 81"?
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #4 on: January 15, 2009, 10:05:37 PM »

Unfortunately, I'm not familiar with TouchSense specifically.  Your approach looks as if it should work, though.

If the ONLY change you make is from "IN_NR 1" to "IN_NR 81" there should not be an array index problem.  TOUCH_I is an array variable with an array size of four.  Each index or TOUCH_I is a "Structure" type variable that contains several sub-variables.  IN_NR is an INT-type variable, not an array variable.  To get at an individual sub-variable would require an array index for TOUCH_I and the designation of the sub-variable, like this:  TOUCH_I[3].IN_NR, which would be different from TOUCH_I[1].IN_NR, even if the variables were the same value.

My best guess is that, somewhere in the TouchSense software, there is a line of code using TOUCH_I[1].IN_NR as an array index, like this:  variable_name[Touch_I[1].In_NR].  Nested variables, sort of. 

In order to get much further, you're going to need to find the line(s) of code where this fault is occurring, and dig into them.  Maybe post them here.  Perhaps variable_name needs a larger array initialization. 

You'll probably want to use a text-search tool like Grep to search the entire /R1 directory of a backup for occurrences of TOUCH_I[1].IN_NR, and for variable_name (whatever that turns out to be).  If you locate the original DECL of variable_name, and find it's initial array size is smaller than 81, try increasing it to 81 or 82.
Logged
gastonbuab
Newbie
*
Offline Offline

Posts: 8


« Reply #5 on: October 24, 2011, 07:29:10 PM »

Can you send the manual of touchsense?

gastonbua@hotmail.com

Thanks.-
Logged
dcrobo
Newbie
*
Offline Offline

Gender: Male
Posts: 20



« Reply #6 on: October 25, 2011, 09:33:11 AM »

i have krc2 with tps4000

config file is attached for reference
Logged

:)keep thinking keep smiling
gastonbuab
Newbie
*
Offline Offline

Posts: 8


« Reply #7 on: December 23, 2011, 06:04:31 PM »

How and where connect the very fast input for this?
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #8 on: December 23, 2011, 08:24:40 PM »

The high-speed inputs connect to the X33 connector, which is an optional connector that can be added to the cover panel of the RDW box at the base of the robot (near the X31 connector).  The X33 connector is a square, 7-pin socket.

If you do not have the X33 connector, you will need to buy the option kit from KUKA.
Logged
lleo
Newbie
*
Offline Offline

Gender: Male
Posts: 34


« Reply #9 on: December 28, 2011, 02:26:00 AM »

You will need the fast measurment adapter for each of the RDC's you have in your system.  for setup the easest way is under configure/ Touch Sense.


Logged
HERNAN LOPEZ R
Newbie
*
Offline Offline

Gender: Male
Posts: 40


ROBOTS AND WELDING MACHINE


« Reply #10 on: December 30, 2011, 07:39:36 PM »

HELLO
 these are the manuals of touch sense

 regards
Logged

ING. HERNAN LOPEZ
Loonwed
Newbie
*
Offline Offline

Gender: Female
Posts: 44


seeker


« Reply #11 on: January 03, 2012, 07:46:39 AM »

It is possible to do connection to fast inputs without X33. The pins on RDC and fast inputs are there. Just near the X31 there is metal plug, screw it out and you will get a hole where you can install your own connector.
If I remember correctly there are 7 pins, 1-5 are inputs, 6 and 7 are + & -, or something in this way. It should be on electric diagram of RDC.
Logged

There are no impossibles, there are only possibles waiting to be found.
Daniel
Full Member
***
Offline Offline

Gender: Male
Posts: 124



« Reply #12 on: January 31, 2012, 12:18:57 PM »

Hello jaymansanders,
If you have some progress with TouchSense
I am interested to put that system into operation
Regards

Logged
Daniel
Full Member
***
Offline Offline

Gender: Male
Posts: 124



« Reply #13 on: May 01, 2012, 03:20:27 PM »

Hello all.
I have the same problem as jaymansanders.
Robot Kuka KR125 ,controller KR C2,Fronius TPS4000
We have active function TouchSens works,all look fine.
Fronius active out 1 when wire touch workpice.

TOUCH_I[1]={IN_NR 1,INI FALSE,NAME_NAT[] "1.TOUCH -EINGANG"}

That is input 1 from high-speed inputs

How change to see input 1 from DeviceNet comunication?

Regards,
Daniel

« Last Edit: May 01, 2012, 04:14:42 PM by Daniel » Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #14 on: May 01, 2012, 04:02:36 PM »

I'm not sure if TouchSense is set up to use inputs other than the high-speed inputs.  You'll certainly lose some accuracy due to the extra delays involved in using DevNet.  That will probably require you to move more slowly during your touch motion.

I'm not familiar enough with TouchSense's inner workings to give explicit instructions, but I would start by tracking down everywhere $MEAS_PULSE is used in the robot.  I'm going to guess that the value stored in TOUCH_I[1].IN_NR is used to index the $MEAS_PULSE[ ] input array, which is how the Fast Measurement inputs are accessed.  If TouchSense is written to be able to switch between $MEAS_PULSE and normal IOSYS inputs, then there might be an option switch buried in the system to allow you to select "normal" inputs.

If there is no such option inside TouchSense, then the only other option I see offhand would be to modify the TouchSense .SRC files to access $IN rather than $MEAS_PULSE.  But obviously this could have some unanticipated side effects.
Logged
Pages: [1] 2 Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!