why you would need to send a number soo high? The range of 32 bit is +- 3.4*10^38.
Posts by Alexandru
-
-
you can create a background program and monitor the robot in auto mode. If the robot moved in manual mode and the operator wants to start again, the robot can not have cycle start active, this is how i would do it to prevent any collision if the robot moved in manual.
-
try to reduce the upper limit point and create a point using ULIMIT function.
Then you can check if the JT4 angle of the desired location is > ulimit JT4 (-360degrees) or < ulimit JT4 (360 degrees)
-
Please take care about ACCEL and DECEL.
-
Is not mandatory to restart the program if, the robot dropped the box. You might have 2 options:
1. The robot can continue the motions (for example there is no enough vacuum level and the box is still in the gripper, the operator placed the box in the gripper)
2. The robot can pick another box (in this case, just make the program in such a way that the robot is able to go back at picking position)
-
what you want to send on TCP/IP?
-
You shouldnt, i use normal SIGNAL for gripper functions.
-
maybe this can help you:
IF SWITCH(TEACH_LOCK) THEN
button enable
ELSE
button disable
END
You can use SWITCH function and check for robot status (POWER, RGSO, RUN, STP_ONCE....)
-
What you would like to test with the PLC? Usually there are only handshake signals.
-
I wouldn't buy an old robot if it doesn't have all the components (for example teach pendant) and make sure if still able to run. Maybe you would spend more money on spare components.
You can share the pictures of the robot.
-
Try to change both languages to english.
-
QTOOL ON is using the TOOL for BLOCK programming, when i get a new robot I set the option to OFF. Also is good in the AS program to have this option OFF just in case somebody put it ON. QTOOL OFF is the command in the AS program.
-
.PROGRAM main
instructions....
CALL Test (r.variable)
.....
instructions
If you change the variable value and call test program, the parameter has that value
-
Try to check the 1st and 2nd language from the robot.
-
you can use TIMER or UTIMER function to scan the signals. For example:
IF SIG(9) OR SIG(10) OR SIG(11) OR SIG(12) THEN
SIGNAL 2001
END
IF SIG(-9) AND SIG(-10) AND SIG(-11) AND SIG(-12) THEN
SIGNAL-2001
END
TIMER 7 = 0
WHILE SIG(2001) THEN
IF TIMER(7) > 20 THEN
SIGNAL -9,-10,-11,-12,-2001
END
END
-
Can you please share the code you tested?
-
I was in the same situation, wanted that nobody would save or modify the programs without password, but i did not find any solution for this.
Although, you can have a background program which remain at the same IF page if you dont set a certain/variable password to unblock the IF page.
-
You can use an autostart program that scans which button is pressed and prime the program.
.PROGRAM autostart.pc
loop:
IF SIG(button1) == TRUE THEN
MC prime program1
END
IF SIG(button2) == TRUE THEN
MC prime program2
END
TWAIT 0.1
GOTO loop
.END
or just having an autostart that scans which button is pressed and in the main program it will call the program.
.PROGRAM autostart.pc
SIGNAL - 2001
SIGNAL -2002
loop:
IF SIG(button1) == TRUE THEN
SIGNAL 2001
END
IF SIG(button2) == TRUE THEN
SIGNAL 2002
END
TWAIT 0.1
GOTO loop
.END
.PROGRAM main
main:
IF SIG(2001) == TRUE THEN
CALL program1
END
IF SIG(2002) == TRUE THEN
CALL program2
END
GOTO main
.END
-
the interface panel code can be found in the robot backup at the section
.INTER_PANEL_D
.END
For example a pilot lamp code would like this this:
12,1,""," PICK 1 ","","",10,15,4,2,1073,0
What error code do you have when you try to load?
-
One example without FOR it will be with CASE function:
Code
Display MoreCASE boxA OF VALUE 0: POINT place1 = SHIFT(place BY 0,0,level1*height) POINT slide1 = place1 VALUE 1: DECOMPOSE a[1] = place POINT place1 = TRANS(a[1]+577,a[2]-10,a[3]+(level1*height),a[4]-180,a[5],a[6]) POINT slide1 = SHIFT(place1 BY 80,0,80) VALUE 2: POINT place1 = SHIFT(place BY 0,385,level1*height) POINT slide1 = SHIFT(depunere1 BY 0,80,80) VALUE 3: DECOMPOSE a[1] = place POINT place1 = TRANS(a[1]+585,a[2]+385,a[3]+(level1*height),a[4]-180,a[5],a[6]) POINT slide1 = SHIFT(place1 BY 80,80,80) ANY : END ///// DO OTHER STUFF, MOTION INSTRUCTIONS .... boxA = boxA + 1 IF boxA == 4 THEN Pallet ready boxA = 0 END
if you have to turn the box at a certain angle you can decompose the original taught point and shift the 4th axis.
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.