Posts by panic mode
-
-
Got a reply from Kuka UK about the price for the training courses, Standard Training Courses consist of 11 lessons which price at 1650 GBP ~1220 GBP this is for KRC2, all lessos add up to 16670GBP for all KRC2's lessons....and KRC4 all lessons add up to 7820 GBP.there is variety of courses, and they are not same. you need to get better breakdown of the course list including coverage and targeted audience.
for example there are:
operator courses,
programmer courses,
electrical servicing,
mechanical servicing,
system integrator course etc.there is no point in taking all of them (for example both operator and programmer courses it would be waste of time and money). operators will not be able to follow programmers courses, so their courses are about getting practical (move, jog, home robot, reset or select program) and get enough of repetition. people interested in programmer courses are supposed to already come with solid knowledge of programming and just whip through many concepts because they are either too simple (like things taught to operators) or already known (variables, loops, statements, arrays, branching, interrupts etc.) so it is just matter of getting used to doing what they already do - but now use it on a robot. servicing is meant for kuka service techs and some maintenance guys (usually from large plants with many robots so they are frequently working with robots).
-
-
1. what is the KSS version you have there?
2. are you asking what a dialog is, how to use it or something else?dialog is basically a type of message where question is asked by program and answered by user. answers are provided by pressing button (up to 7 possible). you can specify text on each button. of course pressing different button gives different value so you can tell which one was pressed.
there are different ways to do this. the long way was used in the past (long = 15 to 30 lines of code) but then MsgLib was introduced. MsgLib allows simple messages and dialogs to be created in just one line of code.
if you are building on example posted by Fogeur, you may for example in the Palletize() program replace line
with something like
Code
Display MoreLoop if ((Length<=3) or (Breath<=4) or (Height<=6)) then ; looks like pallet is incomplete show_dialog() ; ... ask user to choose Continue or Restart if gnUserDialogAnswer==2 then ; user selected Restart, so re-initialize variables Length = 1 Breadth = 1 Height = 1 endif endif Pallet() endloop
and of course, you would need to write the dialog code, for example
Code
Display MoreDEF user_dialog() decl krlmsg_t msg decl krlmsgpar_t msgpar[3] decl krlmsgopt_t msgopt decl krlmsgdlgsk_t softkey[7] decl int nHandle msg.modul[]="User" msg.nr=666 msg.msg_txt[]="Last pallet is not complete. How to proceed?" softkey[1]={sk_type #value, sk_txt[] "Continue"} softkey[2]={sk_type #value, sk_txt[] "Restart"} softkey[3]={sk_type #empty, sk_txt[] " "} softkey[4]={sk_type #empty, sk_txt[] " "} softkey[5]={sk_type #empty, sk_txt[] " "} softkey[6]={sk_type #empty, sk_txt[] " "} softkey[7]={sk_type #empty, sk_txt[] " "} msgopt.vl_stop=true ; stop advance run pointer msgopt.clear_p_reset=true ; close dialog if program was reset or closed msgopt.log_to_DB=true ; log dialog to database nHandle=set_krldlg(msg,msgpar[],softkey[],msgopt) gnUserDialogAnswer=0 wait for not exists_krldlg(nHandle,gnUserDialogAnswer) END
and the $config.dat will need something like
-
when posting some code, it is a good idea to wrap it into code tag (select part of the message that is code, then click on "#" icon).
code posted by knowledgesharing has some errors but those will be easily find those when start debugging. for example he used '==' for assignment and comparison, double equal is used only for comparison. also your GLOBAL keyword is in wrong place, program names do't match etc.
things i mainly see problem with are:
1. never set tool and base
2. did declare one point as a reference (DECL POS droppoint) but it is not used anywhere in your program. all drop positions should be tied to this position.
3. only open gripper (in several places), but never close it. it looks like product magically appears in the gripper and then robot places it on a pallet. there is no motion to a pick position.
4. program is building structure in space but there are no nested loops. number of loops must match number of dimensions (in this case should be three, not just two).
5. not using any approach point on a way to and from pallet position.
code posted by Forgeur is a good example.
also if i was concerned about resuming operation, i would consider what would be the practial resume options for the application. for example i would say it is enough to provide choice to resume (half finished pallet) or restart (from scratch).
so at the begin of the program i would check if previous run was complete or not. if not complete, i would display dialog asking user to choose between resume and restart. if requested option is restart, i would just initialize Length, Breadth and Height to 1 (if resuming, do nothing). -
I would teach one point and compute all other positions based on dimensions of product
-
just tried loop ....and jump out... using GOTO .... and it works. -
-
just tried loop and jump out using GOTO rather than EXIT (gets out of ONE loop) or RETURN (gets out of sub or program) and it works.
-
I don't see why not... if I find some time, I will try it out.
-
Hi,
Has anyone installed a kuka robot in their back garden garage?.If I plan to setup a workshop in my garage is it possible to have 400V 3 phase in that garage room?Depends where you live. In North America households normally get single phase (2x120VAC). In Europe, many get 3-phase and the voltage is already correct.
-
any reason to use GOTO?
you can just use
IF... THEN
ELSE
ENDIF
-
ANSWER[1] = {A 0, B 90, C -90, G false, J true}
ANSWER[2] = {B 0, H false}
ANSWER[2].A = 0
ANSWER[2].C = -90
ANSWER[2].G = false -
you need to declare variable before you can use it. there are different places where variables can be declared and this will determine scope - local or global. if you want convenience of monitoring variable and being able to access it from other programs, you will want it to be global.
simplest way to make variable global is to declare it in $config.dat, preferably under USER section.
the other easy way is to make own data list:
- login as expert
- create a new program such as myGlobals, note: make sure to select Expert module (creates SRC and DAT files)
- delete SRC file as it is no longer needed (this way you can open it later on when not Expert)
- declare your variables (unlike declaring them in $config.dat, here you need to use keyword GLOBAL)example:
CodeDECL GLOBAL BOOL myFlag = false DECL GLOBAL BOOL cylExtended = false DECL GLOBAL INT myCounter = 0 DECL GLOBAL REAL offeset = 50.0 ; mm
you may also omit initialization ( "= value" part) if you like. this way value will not be retained when you reboot. if initialized here, then value will be stored and you can check it out later on. you can still choose if you want to clear or initialize them on program start (normally in the INI section of a program).
-
took all 5 seconds or so to google it:
http://www.kuka-robotics.com/united_kingdom/en/support/college/ -
yes, of course...
what exactly is your spindle? -
I use various VirtualBox machines for many years and never had a problems with ANY app. (have not tried OrangeEdit on it yet but will in a day or so when I return home).
-
actually I made mistake, I replied without reading the question (sorry, it was late...)
what I described was using analog input to control robot speed.
what you ask is how to use robot to control speed of a VFD.
this means you would want Wago analog output so instead of ANIN, it will be ANOUT
and you have to send value to ANOUT1 for example. -
I am not aware of one (always on a lookout though).
do you have specific errors in mind? -
if you want to use analog signal to control the robot speed, you need Wago analog input card.
your images (although blurry) show that switches 1,3 and 8 are on Wago bus coupler.
this means the coupler is configured as device node 5 communicating at 500kbps.therefore in C:\KRC\ROBOTER\INIT\DEVNET.INI you need
and in C:\KRC\ROBOTER\INIT\IOSYS.INI you need to enable MFC DeviceNet driver by removing semicolon in front of DEVNET=2,dnInit,dn2drv.o
then scroll down and under
[DEVNET]enter something like this (assuming it is a 4ch. analog input card):
Code[DEVNET] ANIN1=5,0,16,2,cal32767 ANIN2=5,2,16,2,cal32767 ANIN3=5,4,16,2,cal32767 ANIN4=5,6,16,2,cal32767
then in SPS.SUB inside LOOP/ENDLOOP map scaled analog input to $OV_PRO, something like
$OV_PRO=100*ANIN1of course, first thing is to get Wago wired up correctly and powered up.