It is better to have a sliding approach point not to hit the other boxes from the pallet, the sliding point is based on your palletising pattern.
Thank you so much, Alexandru. This will help me
It is better to have a sliding approach point not to hit the other boxes from the pallet, the sliding point is based on your palletising pattern.
Thank you so much, Alexandru. This will help me
Read post #17, I have told you already.
Thank you so much, Sir, you are very kind
you should never have a CALL back to the CALLER in your CALLED subroutine.
is there any way I can jump back to the mainprogram()?
It is a good example, but not commonly used by programmers
What is the common practice for palletizing is it hard coded? like teaching all the positions. for e.g
teach all four positions of the box. how can I achieve the same without using the FOR/END loop?
What I am trying to do here:
On the single infeed line when boxA is at pickup point and 1054 bit is high; it calls testpallet1() program and The robot picks up BoxA and palletize on palletA j(bit 1054 is low) jumps out to mainprogram().
Now bit 1055 is high because boxB is at pickup point; it calls testpallet2 () program and palletize it on PalletB ( bit 1055 is low)
(Here bits are controlled by PLC so that the robot knows which box is at pickup point.)
Whats actually happening: is that when the 1054 bit is high it will call the testpallet1 () and after completing few steps in the program it will give me an error that "the program is still in use" cannot jump to another program.
;This is my Main program
.Program mainprogram()
1 x = BITS(1054,2)
2 IF x<0 GOTO 10
3 CASE x OF
4 VALUE 1:
5 CALL TestPallet1
6 VALUE 2:
7 CALL TestPallet2
8 ANY :
9 PRINT "NO BOX AT PICKUP POINT"
10 END
11 GOTO 20
12 10 PRINT "BITS ARE OFF"
13 20 LMOVE boxhome
;TestPallet1 and TestPallet2 are similar program; which I am using to pallete Box1 and Box2
.Program testPallet2()
1 JMOVE boxhome
2 ACCURACY 1 ALWAYS
3 rowmax = 1
4 xshift = 100
5 colmax = 1
6 yshift = 120
7 POINT pallet2 = start7
8 FOR col = 0 TO colmax STEP 1
9 FOR row = 0 TO rowmax
10 POINT pallet2 = SHIFT(start7 BY yshift*col,xshift*row)
11 LMOVE pickp112
12 JMOVE place1
13 JMOVE place2
14 LMOVE place3
15 LMOVE pallet2
16 SIGNAL -4
17 LDEPART 100
18 LMOVE place3
19 JMOVE place2
20 JMOVE place1
21 LMOVE boxhome
22 BREAK
23 IF SIG(-1055) THEN
24 CALL mainprogram
25 END
26 END
Display More
Object-oriented programming does not exist in AS language . I tried running another IF loop in the FOR loop; the robot did not accept that.
Although I am using CASE statement I can still not achieve the desired result. The current program I have with CASE statement will execute prod.no=1, when it completes all four boxes it will return to the main program. When the next bit is high it will execute prod.no=2.
Is this because I am using FOR loop? How can I run FOR loop doing one box at a time from prod.no1 and prod.no2
prgm prod.no1 ()
FOR row to rowmax step 1
POINT PUT = START
POINT PUT= SHIFT( start by row*rowmax
Robot Moves
HOME
CASE is a cleaner version of using several IF statements.
With an exception of the CASE stateGment is scanned once as opposed to polling through the IF's.
Got it
Simple example usage of the above for a product selection would be:
Thank you for the example
Have a look in the AS Manual for the following commands:
CASE
BITS
Yes, I was planning to use CASE statement but also wanted to try IF else
Ah ok, so some product is being placed rotated around a plane to place vertical on one pallet and on the other pallet you will be placing in the same plane as the pickup plane.
That makes sense now....
Yes Sir
Thank you so much for replying
You've already mentioned a sensor to select between pallets and a case statement, so you've answered your own question.
How do I ensure that the robot is palletising in the right order- In the code, the Robot is counting the box.
What am I missing in this code?
SWAIT (2005) ;For box and Pallet are ready or in position.
100
HOME; Make sure robot is in HOME postion.
If SIG (2001) Then GOTO 10
IF SIG (2002) Then GOTO 20
IF SIG (2003) Then GOTO 30
GOTO 100
10
Call PROGM1; Here Progm1 will palletize box A on pallet A
GOTO 100
20
Call PROGM2; Here Progm2 will palletize Box B on Pallet B
GOTO 100
30
call HOMEROUTINE
GOTO 100
END
END
END
Display More
Doesn't make any sense to me, can you elaborate, maybe provide a sketch/model drawing?
The robot is receiving the box A and B from a single infeed line-
The robot picks up box A and palletizes on the pallet A - One pallet has four rectangular boxes- (attached pic)
Robot Picks up box B and palletizes on pallet B.- One pallet has four rectangular box
Hi,
I am working on a program where I have a single infeed line and the robot is palletizing at two different positions.
I am planning to use a sensor which tells me about the product eg if sensor A is high (line 1) if sensor B is high (line 2)
Also, Planning to use a switch case in the program (e.g. CASE OF VALUE OF).
What is the common practice for programming for two different palletizing styles? (four boxes on a pallet1 (vertical)-, Pallet2 (horizontal))- (6 size box for each pallet)
I want to make sure the right product goes into the correct pallet. What safety precautions one can take? Programming-wise, (e.g. different products on different pallets).
Thank you in advance
Kawasaki BX series - E02 controller
Thank you so much,Kwakisaki for this kind gesture .
I am using Licensed version 1.8.4
I am starting this project from scratch, I used the handling project guide, and I thought that I could start with AS language (Using Manual) but it's kind of confusing because I don't have much knowledge about K-roset. I have received Basic Kawasaki E controller training (from Kawasaki robotics).
I have created the layout using stl files, but was unable to create krprj tool file, I tried adding obstacles into the null tool but it didn't work. I want to use my own tool, is their any way I can create tool krprj file?
Next, I followed the Handling project guide and created a program but I am getting an error" abnormal step 5" and it has a question mark at the beginning of the command line. I tried changing it to tool coordinate, or JMOVE from LMOVE but it's giving me the same error. (the question can be seen in the teach pendent).
I am looking at the error code, but there is not solution in the manual.
Thank you so much, I really appreciate your help
Hi Kwakisaki, I appreciate your response.
I am not able to create a new thread. can you help me how can I create a new thread?
Thank you
Hello,
I am new to Robotics, and currently, I am working on Kawasaki BX 300L,
I have a few questions, I don't know what I am doing wrong, Can anyone help?
1)The Robot Joints have turned pink, and red what does that mean?
2) I am not able to load the tool file (STL) to the robot, for now, I am using a pre-loaded tool from the library.
3) when I type HERE command it gives me this error message?
"
Illegal input data.
X[mm] Y[mm] Z[mm] O[deg] A[deg] T[deg]
1140.816 1228.208 1168.053 47.113 90.000 -90.000
Change? (If not, Press RETURN only.)
"