Welcome, Guest. Please login or register.
Did you miss your activation email?
February 08, 2012, 11:03:02 AM
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
| |-+  Kawasaki Robots
| | |-+  Just a programming fool
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] 2 Print
Author Topic: Just a programming fool  (Read 4838 times)
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« on: October 09, 2009, 02:49:48 AM »

I have been trying to get my UX150 with AD controller to program ANYTHING
It was welding in a ford factory and with with the help of Roboperson we can move around in teach and execute some wild pre existing Ford programs. However when I use the Kawasaki AS language manual and teach pendant to create a simple 4 movement block step program The robot makes the slightest servo noise and does not move. I can see on the screen the 4 steps very quickly cycling from 1 to 4
My program looks like this example:
1   HERE  P1
2   HERE  P2
3   HERE  P3
4   HERE  P4
Which look nothing like the steps in the working Ford programs
I get the feeling that I am missing some instructions like a speed command or something Any Thoughts ?
Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #1 on: October 12, 2009, 03:31:27 PM »

in as language you must tell the robot what type of move to use on each variable name ex:

LMOVE    is a linear move
JMOVE is a joint move
CMOVE is a circular move

This is how your program should look

1  Lmove P1
2  Lmove P2
3  Lmove P3
4  Lmove P4


Also you can set the speed for the moves to occur at. Ex to move all points at a speed of 250 mm/s

1 speed 250mm/s always
2 Lmove P1
3 Lmove P2
4 Lmove P3
5 Lmove P4

good luck I hoppe this is what you were looking for.

Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #2 on: October 12, 2009, 03:36:48 PM »

 also here is another problem you may have: in as language HERE command means to save your variable location to the current robot position.

ex. if your type HERE P1 at the command prompt you will save the current robots position to the P1 variable.

your program most likely as it is written is just saving the current robot position to all of your variable P1 P2 P3 and P4 to the same position, there fore your robot servos come on and the robot does not move due to all the points being in the same position. Your program is just telling it to save position data to your points and not to actually move anywhere.

Tommy
Logged
Pindog
Guest
« Reply #3 on: October 14, 2009, 02:17:55 PM »

Why not just use the teach pendant and record moves?  I know a lot of people want to use AS-Language for everything, but for a simple basic motion program, its way overkill.

Just jog the robot to where you want your points to be, and enable, record.

I may have the names of the actual buttons slightly off since it has been several years since I have worked on an AD series controller, but it will definitely be close.

The AD, I miss that little keyboard.
Logged
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« Reply #4 on: October 16, 2009, 02:50:23 AM »

Thank you both for replying.
The first 2 responses from tdevine77 to my problem were kind of helpful
I was able to get the robot to move under a program for the first time However the movments were not what I expected
In regards to the post from pindog It seems that using teach would be easiest but I dont know how to set up a program that these recorded teach points could be stored to
Also how do I set various speeds to each movement
Is there a better manual than the one from the Kawasaki site ?

regardless I thank both of you very much for your help

Tony P
Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #5 on: October 16, 2009, 06:53:02 AM »

Here is some info about the speed command that also pertains to the accuracy, accel and decel commands. any time one of these commands is entered into a program if it is followed by a ALWAYS statement then the speed will process each step at that speed until it encounters another speed command. here is an example.

1 Speed 100mm/s always
2 lmove point1
3 lmove point2

In the above example point1 and point2 will move at a speed of 100mm/s.

example #2

1 speed 100mm/s always
2 lmove point1
3 lmove point2
4 speed 50mm/s
5 lmove point3
6 lmove point4

In the above example point1 and point2 will move at a speed of 100mm/s, point3 will move at a speed of 50mm/s, and point4 will move at a speed of 100mm/s. Now you may ask why does point4 move at a speed of 100mm/s and NOT 50 mm/s, The answer to this is because the 50mm/s command was not followed by the ALWAYS statement, therefore only point3 was processed at a speed of 50mm/s and then the speed went back to the ALWAYS speed of 100mm/s.

Note: If the 50mm/s speed was followed by the ALWAYS command then all speed commands after that command would run at 50mm/s until the processor processed a different speed change again.

Now for your question of assigning a different speed to each point.

1 speed 200mm/s
2 lmove point1
3 speed 150mm/s
4 lmove point2
5 speed 100mm/s
6 lmove point3


Now here is some more info you might like on the controller speed command.
not only can you assign speed movement in mm/s, but you can also assign speed as a percentage of overall robot capable speed.

ex.

1 speed 100 always
2 lmove point 1
3 lmove point 2
4 lmove speed 50
5 lmove point 3


Now to get even deeper. (I may be over doing it a bit) If you go to your main status screen, In the top right hand corner side you will see a REPEAT statement followed by a number. This REPEAT number can be set from 1 to 100 %, This is the controllers repeat spead, What is this repeat speed for? Well let me tell ya, The repeat speed is the controllers main speed command and is related to all the programs in the controller. If the repeat speed is set to 100% then all program speed statements will run at 100%.

Example.
Repeat speed is set to 100%, so point1 will run at 100% speed which is 200mm/s

1 speed 200mm/s
2 lmove point1

Now if I change the controllers repeat speed to say 50%, now the variable point1 will only move at 100mm/s, which is 50% of the controllers overall speed.
I love using this command after I have retaught robot points or executing a new program. because instead of going through and reducing all the speeds to do a safety run, I can simply turn down the repeat speed and watch the robot move slowly, then I can slowly ramp up the speed a little at a time until I i am sure everything looks good and the robot is not going to crash into anything due to a mistake I may have made.

So now if you don't already know, you are probally wondering how do I change the repeat speed.

Go to the user prompt or keyboard
at the prompt type in the SPEED command followed by a space then the desired speed. followed by the enter key to accept the change.
Ex.

>Speed 50                         this will set the speed to 50% and should indicate on the status screen

another way to enter this cammand is using its command shortcut
Ex.

>SP 50

I hope this helps Tommy D
Logged
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« Reply #6 on: October 16, 2009, 09:32:47 PM »

Good Scott !!!!!

Tom what a wealth of information !  where on earth did you learn all of this ?
I can't wait to try these commands.
I am still not sure how to set up programming from the teach pendant.
That is to say what needs to be done prior to jogging the bot into position and pressing RECORD
I have tried various things using the AS manual  but nothing happens there are no detectable changes in the displays.

Thank you for all of your great advice

Any thoughts or recommended reading ?
Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #7 on: October 17, 2009, 06:39:43 AM »

If you would like I have a microsoft accel spread sheet that I have wrote up that has virtually all of the kawasaki keyboard command listed along with thier functions. I can not get it to you until sometime late next week, But if you give me your E-Mail then I would be more than happy to send you a copy one day.

In kawasaki language a taught point is actually called a "variable" this variables name only contains data for the stored position. This stored position data is stored as X Y Z O A T, You can think of X Y Z as a positon on a cartesian cordinate chart. The O A T are actual joint angles ( I think this is correct) and all this position data is saved for all 6 axis of the robot inside of the "variable". That is why when you write a program in AS language or Block language you must tell the robot what type of move (Lmove, Jmove etc..) to execute while advancing to the variables taught position. also a variable name can not have spaces in it, and I don't think it can start with a number but i am not sure.


I love teaching in AS language, Because just about anything that you can do with the teach pendant (Except for jogging the robot around) you can do with a command on the user keyboard screen prompt.

I do not know where you are in your programming but Lets pretend that I am going to set up a new program from scratch, The following is how I would do this.

I want a program  that will trace the outline of a cardboard boxes 4 corners. After the forth corner I would like the robot to return to the first corner and stop.
I want this program to run at a speed of 25% and the point accuracy to be set to 20mm, Accuracy means that the robot will not continue to the next step in the program until the robot has reached the taught variables position by at least 20mm or less.

1. On paper create your program as a list of steps. here is an example that you can try on your robot.

step#    Command                 Variable               Description
1            SPEED 25 ALWAYS                                This will set the speed of all variables to 25%
2            ACCU 20 ALWAYS                                 This will set the accuracy of the robot to 20mm for all taught points.
3            LMOVE                      corner1                Variable named corner1 will perform a linear straight line move.
4            LMOVE                      corner2                Variable named corner2 will perform a linear straight line move.
5            LMOVE                      corner3                Variable named corner3 will perform a linear straight line move.
6            LMOVE                      corner4                Variable named corner4 will perform a linear straight line move.
7            LMOVE                      corner1                Variable named corner1 will perform a linear straight line move.


Now lets create this program using only the User screen keyboard commands at the user prompt.

First how to create a program using AS language commands. We are going to use the "Edit" command or "ED" for short. The edit command will get us into edit mode which allows us to create, modify or delete program and program steps.

I want my program to be called "thebox"  Notice no spaces in the program name.

At the user prompt type as below.

>ED thebox

now press enter key, you have now created a program called "thebox" and you are still in edit mode. you will now see the first step listed. I think this is how it will look, I can not really remember. but you will start typing in your program after typing each steps information press the enter key and you will automatically index to the next step to enter its data.
1
?  "enter your text here" "then press the enter key"

When you are finished entering all of your program steps we need to exit out of the "EDIT" mode so we type in the command "E" (this stands for exit editor mode) and press the enter key to execute the command line. it will lo0k like this.

8
? E                    "then press the enter key, If all of your programming is correct then you should be entering the "E" command on the step 8 line.

Now you have created your first program we need to look at this program and make sure it looks correct. so 1st lets look at the robots directory to see what programs exist.

at the prompt type in the "DIR" command and press enter key. this should give you a list of all program names saved in the controller.
ex.
>DIR         "followed by pressing the enter key"

If your screen has more to display at the bottom that you can not see the press the space bar to scroll down further. or press enter to get back to the command prompt.

there should be a list of all the programs or only your program name "thebox", If your program name is displayed then you have created a program.

Now we want to go back and look at our programs contents to make sure we typed it in correctly. so we will use the "LIST" command. this will allow us to see all of our program steps in order, plus some other data.
at the prompt type in the LIST command followed by a space and then the program name that you wish to look at.

>LIST thebox      "followed by the enter key to execute the command entered at the prompt"

Your steps should look like this if entered correctly.

1 SPEED 25 ALWAYS
2 ACCU 20 ALWAYS
3 LMOVE corner1
4 LMOVE corner2
5 LMOVE corner3
6 LMOVE corner4
7 LMOVE corner1

IF your program looks correct then hit the enter key to get back to the user prompt if not already there.


Now we have designed and programmed our program but there is still one thing missing. we need to assign our variables some location data.

To do this take your teach pendant and place it in teach mode and teach your robot to the 1st corner of your box (This is easier if you actually have a box on the floor but you can use an imaginary box) (Also it may be easier to move to each corner of the box in the base teaching mode (If you know how to get there)

once you are at your 1st box corner, go to the keyboard once again and we are going to use the "HERE" command. I like to use the here command to save my variables positions sometimes. At the prompt type the following.
>HERE corner1              "followed by the enter key, the here command will save the robots 6 axis current position data to the variable named corner1"

Next move your robot to the 2nd corner of the box. again use the HERE command when you have the robot where you want it.
>HERE corner2        "followed by the enter key again"

Next move your robot to the 3rd corner of the box.
>HERE corner3

Move robot to the final corner number 4
>HERE corner4

Now we have told the robot the positional data to each of our variables.

Now you can check step your program (in teach mode) to make sure everything looks good.

Now when you exit out of teach mode you can also execute your program from the keyboard (you can not have any external hold conditions)
To do this we are going to use the "EXECUTE" command or its shortcut command "EX".

At the command prompt type in the following. Now may be a good time to turn down your repeat speed using the SPEED command due to this being the first time the program has ran. >SP 20

>EX thebox  "followed by the enter key"

Now if the robot is set up correctly and you have motor power the program should execute and move to all the steps and stop when it gets to the end of it.

Here is a little something extra on the "EXECUTE" command. If you want to execute your program more than just 1 cycle you can follow up the command with a number say 3, and the robot will execute our program 3 times and then stop.
>EX thebox, 3                  "followed by the enter key"

Good luck and let me know how this goes.

Tommy D









Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #8 on: October 17, 2009, 06:58:54 AM »

Me again, I just thought of somethng eles. If your robot was used as a welder its continuous path system switch may not be activated or on. The continuous path system switch will allow the robot to make smooth transitions from point to point without stoping. To turn this system switch on you can access it from the aux function 75 I think. To get there from the keyboard promp just type in >AUX " followed by the enter key" This should take you to the auxillary selection screen.
Also if it is a AD controller you should be able to select the keyboard fuction key for AUX to get there. The continuous path switch is labled as "CP" make sure to set it to on. Also it would be a good idea to document all of these in case you play with these setting to see what they do and get them out of whack. To save your program insert a disk into the side of the screen (Left side i think) and type in "SAVE" followed by a name with no spaces.
Ex.
>SAVE myfirstpg         "followed by the enter key" It will save the controller data, programs and just everything.

To load a program from disk

>LOAD myfirspg


to look what is on a floppy disk

>FDIR             
Logged
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« Reply #9 on: October 19, 2009, 07:59:39 PM »

Hey Tom,

I have been into AUX several times I will go in and check for this CP setting. I suspect that something is amiss since the robot moves in ways that I do not expect

I also have 2 backup disks 1 original Ford and 1 made after we got the unit on line and zeroed

My Email is:  tonyph2@nwpaperbox.com

Tom, thank you again for all of your help. I will review the previous post today. again it looks like a treasure trove of Data !
Logged
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« Reply #10 on: October 19, 2009, 08:04:03 PM »

FYI: I have the actual keyboard also. From what I gather this is a nice but not necessary thing
Logged
roboperson
Jr. Member
**
Offline Offline

Posts: 82


« Reply #11 on: October 20, 2009, 05:04:46 AM »

Tdevine77 gives some good advice!  Forf standard is CP is on. Continuous Path (CP) allowes the controller to plan the path of motion before it moves. This allowes the contoller to look ahead 3 steps to plan the best path. In theory, your movements sould be smoother. The main way it would mess with movement is if it calculated the path beteen linear or joint movements as it looked forward, but in general should not cause issues. It just plans the path. Can you please define does not move as expected? That's actually a broad statement. Linear to joint move? Vise versa? CP? Speed? Accuracy? There are several veriables that effect your movments.
Logged
tdevine77
Jr. Member
**
Offline Offline

Gender: Male
Posts: 57



« Reply #12 on: October 20, 2009, 06:04:40 AM »

In my opinion the key board is necessary, There is a lot that can be done and executed from the keyboard that you can not due from the pendant. For example viewing your program your whole program, On the pendant you can only view a few steps at a time. Also if you learn how to use the keyboard commands then not only can you just program the AD controller but you can also program C and up. All commands are pretty much the same on all controllers. Also editing programs using the keyboard is a lot faster than using the pendant(adding, deleting, moving data around). If you are new to programming I would learn keyboard commands first then work your way into the pendant. But the pendant is easy to use also. The pendant does make programming in block language easier.
Logged
Mrsymloc
Newbie
*
Offline Offline

Posts: 36


« Reply #13 on: October 21, 2009, 02:28:55 AM »

Hello Tom,

What an exciting 24 hours !!  Using your last 3 posts I have written 3 new programs that all work, Many thanks !!!
The next thing I will delve into is programming INPUTS and OUTPUTS and various program edits.
I haven't really used the display on the teach pendant but as things start to work I can see what's being displayed and draw some conclusions.
I would really like to have the XLS spreadsheet when you get a chance. I left my Email on a prior post.

Also hat's off again to Roboperson. He was instrumental in getting hardware issues on this bot resolved.
And to you Tom, I am very grateful for all the help you have provided I must conclude that you are a very fast typist

Best regards Tony Phillips
Logged
MIYAM
Jr. Member
**
Offline Offline

Posts: 54


« Reply #14 on: October 21, 2009, 08:02:51 PM »

hi tdevine77 im new using kawasaki robots and i try to program your example but i have a problem with my teach pendant when i want to move the robot it only goes in one direction it cant go back what can i do?Huh?
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!