Ahhh I see, ya we were just concerned because I usually check the dat file to double check my values are set and to modify any external axis numbers, etc. And that's when I noticed the velocity numbers were completely different. I should have mentioned when I first posted that the program seems to run properly. Sorry about that.
Posts by deadlyrefuge
-
-
-
-
These are files taken directly from our controller. These files run. Every part of the file was copied and added into this forum post.
As for the questions about "not working" as in I can change the values in the program, but that doesn't change the values in the .dat file. The motion files are created using the move menu options.
As for user level. I have specified that. It was in t1 operating mode. Modules were both opened and edited, as well as then we selected them and edited. Both times produced the same results. And no messages before or after. There were no errors. The only reason I noticed the difference was because I went into the .DAT file and noticed the velocity was different than what we had in the .src file.
Though at the end of the day, we tried running it one more time and it seemed like the program was accurate for speed. Kinda hard to tell other than measuring it out in a linear straight motion though.
But if it is accurate. Why is the .dat file not being updated with the velocity speeds?
-
Hey guys, so I am training a new guy at our company on the use and programming of our Kuka KR16. Our controller is KRC2 and the system is running software version KSS 5.6.54. The problem we are facing is that the when we program the PTP and LIN motions with a velocity. The velocity that we have set in those motion lines is not updated into the .Dat file. I did notice this before with another program I had written but the program was large and I did not have time to troubleshoot. So I just lowered the global speed override to something that was applicable for the job I was doing. The program runs but the speeds are wrong and I can't change them. I have tried using the CHANGE softkey to change the velocity, but that doesn't work. I have tried changing them directly in the .dat and that does change them, but when I use CHANGE on the points in the .src file, it then changes the .dat speeds back to the standard settings for velocity. Which are 100% for PTP, and 2.0 m/s for LIN.
Here is the .src file;
Code
Display MoreDEF HVOF12X12_2( ) INT N ;FOLD INI ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI) ;;FOLD STARTPOS ;$BWDSTART = FALSE ;PDAT_ACT = PDEFAULT ;BAS(#PTP_DAT) ;FDAT_ACT = {TOOL_NO 3,BASE_NO 6,MPBP Square 4 #BASE} ;BAS(#FRAMES) ;;ENDFOLD $ADVANCE = 5 ;FOLD ---- Quickly skip BCO ---- PTP $AXIS_ACT ;ENDFOLD ;FOLD SET DEFAULT SPEED $VEL.CP=0.25 BAS(#VEL_PTP,25) BAS(#TOOL,0) BAS(#BASE,0) ;ENDFOLD $ADVANCE = 5 PTP $AXIS_ACT ; skip BCO quickly $APO.CPTP = 1.000 $APO.CDIS = 1.000 $VEL.CP = .5 ;PROGRAM RUNS OFF OF BASE_DATA[8] WHICH IS A SCRATCH PAD BASE_DATA[4] = {FRAME: X 461.614,Y 1356.136,Z 705.276,A 90.588,B -24.077,C -0.240} ;Part 4 FOR N=1 TO 2 STEP 1;LOOP CYCLE ;FOLD PTP P1 Vel=50 % PDAT1 Tool[3]:HVOF 8 Base[4]:MPBP Square 2;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:50, 7:PDAT1 $BWDSTART=FALSE PDAT_ACT=PPDAT1 FDAT_ACT=FP1 BAS(#PTP_PARAMS,50) PTP XP1 ;ENDFOLD ;FOLD LIN P2 Vel=0.1 m/s CPDAT1 Tool[3]:HVOF 8 Base[4]:MPBP Square 2;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:, 5:0.1, 7:CPDAT1 $BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FP2 BAS(#CP_PARAMS,0.1) LIN XP2 ;ENDFOLD ;FOLD LIN P3 Vel=0.1 m/s CPDAT2 Tool[3]:HVOF 8 Base[4]:MPBP Square 2;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P3, 3:, 5:0.1, 7:CPDAT2 $BWDSTART=FALSE LDAT_ACT=LCPDAT2 FDAT_ACT=FP3 BAS(#CP_PARAMS,0.1) LIN XP3 ;ENDFOLD BASE_DATA[4]=BASE_DATA[4]: {X 0,Y -4,Z 0,A 0,B 0,C 0} ENDFOR END
And here is the .dat file;
Code
Display MoreDEFDAT HVOF12X12_2 ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P EXT BAS (BAS_COMMAND :IN,REAL :IN ) DECL INT SUCCESS ;ENDFOLD (BASISTECH EXT) ;FOLD TOUCHSENS EXT EXT H70 (INT :IN,SRCH_TYP_2 :OUT,E6POS :IN,SRCH_TYP_3 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,INT :IN ) ;ENDFOLD (TOUCHSENS EXT) ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P ;Make here your modifications ;ENDFOLD (USER EXT) ;ENDFOLD (EXTERNAL DECLARATIONS) DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "P4 ",POINT2[] "P4 ",CP_PARAMS[] "CPDAT2 ",PTP_PARAMS[] "PDAT2 ",CONT[] " ",CP_VEL[] "0.1 ",PTP_VEL[] "100 ",SYNC_PARAMS[] "SYNCDAT ",SPL_NAME[] "S0 "} DECL E6POS XP1={X -31.4395409,Y 291.871002,Z -6.14646387,A 131.494705,B 16.4710407,C -178.931305,S 2,T 35,E1 -0.000175781301,E2 -25.0029507,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP1={TOOL_NO 3,BASE_NO 4,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE} DECL PDAT PPDAT1={VEL 100.0,ACC 50.0,APO_DIST 100.0} DECL E6POS XP2={X 339.304413,Y 291.883087,Z -3.75771403,A 131.496094,B 16.4709606,C -178.932404,S 2,T 35,E1 -0.000175781301,E2 -25.0029507,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP2={TOOL_NO 3,BASE_NO 4,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE} DECL LDAT LCPDAT1={VEL 2.0,ACC 50.0,APO_DIST 100.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0} DECL E6POS XP3={X -31.4395409,Y 291.871002,Z -6.14646387,A 131.494705,B 16.4710407,C -178.931305,S 2,T 35,E1 -0.000175781301,E2 -25.0029507,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP3={TOOL_NO 3,BASE_NO 4,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE} DECL LDAT LCPDAT2={VEL 2.0,ACC 50.0,APO_DIST 100.0,APO_FAC 50.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,EXAX_IGN 0} DECL E6POS XP4={X -20.6515598,Y -1076.73401,Z -0.722322822,A 132.113205,B 16.1825409,C -178.4207,S 2,T 11,E1 -0.000175781301,E2 -25.0032997,E3 0.0,E4 0.0,E5 0.0,E6 0.0} DECL FDAT FP4={TOOL_NO 3,BASE_NO 3,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE} DECL PDAT PPDAT2={VEL 100.0,ACC 50.0,APO_DIST 100.0} ENDDAT
As well, we have tried doing all this in multiple user groups; programmer, expert, and administrator. Nothing seems to work.
What am I missing?
-
Ah of course, another typo by me. Soon I'll get better at this and won't have to look like a fool.
-
Okay, I added the msglib to my system. I can't remember where I got it from but I had it on a usb. The program now recognizes the message. And will state the message in the message window, but it doesn't count. Is there a way to make it count. Say "Robot just completed cycle number 1 times" "Robot just completed cycle number 2 times" and so on. Or something like that?
-
Oh sorry I thought I had specified that. Our cabinet is running KSS 5.6.54.
-
So I believe this will work for me. I inputted it into my program as this code
But I get the error that the name is not declared as a subroutine.
I've searched through the expert manual for this but I can't find where it says to declare names as subroutines. What am I missing here.
-
Set a message after each loop is one option.
What would I have to write into my program to set a message after each loop?
-
Hey guys, shifting is now working great, I've been able to make a couple programs successfully. One thing I'm wondering, is that I'm using the integer N for my loop program. Is there anyway to monitor how many loops that integer has counted while I run the program?
-
Wow, I can't believe I did not see that, thanks guys for pointing that out. Ill fix it and I'm sure that will work then.
-
Hey SkyeFire, So I tried out the info that people had given me today, the looping worked for me. Thanks for that. The problem im facing now is that I can not get the shifting to work.
Here is my program I am using to test the shifting;
Code
Display MoreDEF stest( ) INT N ;FOLD INI ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here BASE_DATA[2] = {FRAME: X 2222.546,Y 57.559,Z 1201.456,A 0.0,B 0.0,C O.O} BASE_DATA[3] = {FRAME: X 2222.546,Y 57.559,Z 1201.456,A 0.0,B 0.0,C O.O} ;ENDFOLD (USER INI) ;ENDFOLD (INI) FOR N=1 TO 4 STEP 1 ;FOLD PTP P1 Vel=50 % PDAT1 Tool[3]:HVOF 8 Base[2]:PELTON;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:50, 7:PDAT1 $BWDSTART=FALSE PDAT_ACT=PPDAT1 FDAT_ACT=FP1 BAS(#PTP_PARAMS,50) PTP XP1 ;ENDFOLD ;FOLD PTP P2 Vel=50 % PDAT2 Tool[3]:HVOF 8 Base[2]:PELTON;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P2, 3:, 5:50, 7:PDAT2 $BWDSTART=FALSE PDAT_ACT=PPDAT2 FDAT_ACT=FP2 BAS(#PTP_PARAMS,50) PTP XP2 ;ENDFOLD ;FOLD PTP P3 Vel=50 % PDAT3 Tool[3]:HVOF 8 Base[2]:PELTON;%{PE}%R 5.6.13,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P3, 3:, 5:50, 7:PDAT3 $BWDSTART=FALSE PDAT_ACT=PPDAT3 FDAT_ACT=FP3 BAS(#PTP_PARAMS,50) PTP XP3 ;ENDFOLD BASE_DATA[3]=BASE_DATA[2]: {X O,Y O,Z 100,A 0,B 0,C 0} ENDFOR END
When I input these lines;
CodeBASE_DATA[2] = {FRAME: X 2222.546,Y 57.559,Z 1201.456,A 0.0,B 0.0,C O.O} BASE_DATA[3] = {FRAME: X 2222.546,Y 57.559,Z 1201.456,A 0.0,B 0.0,C O.O} BASE_DATA[3]=BASE_DATA[2]: {X O,Y O,Z 100,A 0,B 0,C 0}
I get an error on the syntax check. Error 2224 constant expected.
The error is for the 3 lines of code. See the attached photo to get more info on the error. The first line is line 12, then line 14, then line 41 is the last line.
What have I done wrong. Line 12 and 14 are actually copied from another program that works, I have only changed the base number from [1] to [2], and [3].
-
As well, can anyone give me an example of what is required for an expert module? I know there is probably an example on this forum. But I have ran out of time and I need to go out to the shop floor and start programming the job line by line.
-
Hello, so I have an urgent situation. The place I work for recently purchased a used KR16 with a controller running KRC2. We are trying to use this robot for applying a coating to very complex surfaces. Our original plan was to use offline programming through our CAM department. But the software we are using (ROBODK) is not sophisticated enough to write a program for our application. Mostly that it does not have collision avoidance.
SO the responsibility has fallen to me to manually write a program, use 2 lines of linear position movements and then loop those lines and shift.
My experience is with MOTOMAN on older robots and I was able to do roughly the same job with these older motomans. Unfortunately those robots are not ideal for this situation and we had just happened to purchase the KR16. Right now, if I could use the motoman I would, so far the programming seems way more user friendly.
I have done extensive research into programming this KUKA but I have been continually been running into problems.
My first question is, is it possible to do loops and shifts in a regular (non-expert) program? I have been trying to input the following codes with no success;
INT N
;INI
;OTHER NECESSARY PARTS OF THE CODE
FOR N=1 TO 4
;DO SOMETHING
N=N+1
ENDFOR
Whenever I put these in, I get an error message saying (object is not available)
I also haven't figured out how to shift either.
I have tried making an expert module but whenever I input the lines;
DECL INT N
;VELOCITY
;$VEL_AXIS[1]=100
;$VEL_AXIS[2]=100
;$VEL_AXIS[3]=100
;$VEL_AXIS[4]=100
;$VEL_AXIS[5]=100
;$VEL_AXIS[6]=100
;ACCELERATION
;$ACC_AXIS[1]=20
;$ACC_AXIS[2]=20
;$ACC_AXIS[3]=20
;$ACC_AXIS[4]=20
;$ACC_AXIS[5]=20
;$ACC_AXIS[6]=20
It also says those lines of code are (object is not available).
Is it possible to write expert programs faster than having to input each line of code, whenever I try to copy more that 2 lines of code and paste it, it will disappear.
And yes before some of you ask, I have read the read first. I have not taken any training programs(if I could I would, but my workplace will not send us for it right now) as well I do not have time to take anymore training or get better software, this job is due and I need to get it done.
If someone could also give me input on how to shift the robot, that would be great.
I have attached a copy of the program I am using in non expert mode.
-
-
Sorry guys, when I posted this question it had been an extremely busy time at work and I had forgotten I posted it. TSGIR, what board do I connect the external input of the trip dog to? I have looked up the diagrams and I believe I ether found the CN10 connector or the CN11. Unless I am wrong.
I don't know about your device is connected on the robot, if it have digital signal, you can connect to the robot external input, for example you connect it to input 1 in robot, now you can use WAIT instruction.
MOVL VJ=10
MOVL VJ=10
WAIT IN#(1)=ON // waiting to device signal come
MOVL VJ=10
When program receive to WAIT line stay to IN#1 come and after that go to next line.
-
Hey guys, so my company picked up some cheap old ES200's with XRC 2001 controllers. They work fine for what we want to use them for. What I am wondering is if I have a rotating platform with a electronic trip dog on it, is there any way to input the signal from that trip dog to the controller? And then to make the controller wait for that signal before moving to the next programmed position? And what code would I need to input into the program to make it do so?
Thanks.
-
ya I've seen the manuals. So is it actually possibly to do FTP on xrc then? And if so then I do need to go to motoman to get the parameters?
-
he said that xrc controllers could never connect to FTP and that the xif02 board only takes ethernet and converts it to rs232. I think he said that my best bet would be to use the rs232 on the xcp01 board and then buy software from them, I think it was called VDE or something. I can't remember. But that just sounds like he doesn't want to promote FTP because he doesn't gain any money from us then.