Try to change both languages to english.
Posts by Alexandru
-
-
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.
-
The infeed line has to detect the box type. If the boxes have different measurement, you can check with 2 sensors to detect the box type. Then this information is transfered to the robot.
-
In the PLC check the converted name to match with the device name name from robot
(Aux --- 8. Signal Allocation --- 7. PROFINET set (slave port))
-
You can also use something like this:
HERE .a
.$message = $ENCODE(/L, INT(DX(.a))) ; X
.$message = $ENCODE(/L, INT(DY(.a))) ; Y
..$message = $ENCODE(/L, INT(DZ(.a))) + ; Z
.$message = $ENCODE(/L, INT(DEXT(.a, 4))) ; O
.$message = $ENCODE(/L, INT(DEXT(.a, 5))) ; A
.$message = $ENCODE(/L, INT(DEXT(.a, 6))) ; T
and for sending on TCP/IP maybe create a string with this kind of structure:
$tcp.message = "<Message ID" + $ENCODE(/L, LEN(.$message)) + .$message +">" it depends how you want to create your message. -
You can create a TCP/IP with the PLC and send directly with a telegram the real value.
-
Take the backup from the robot and search for those parameters:
ZSIGSPEC, ZSIGSPEC2, RMTOUT960, RMTIN960.
-
The error codes can be found in the troubleshooting manual.
-
you can do this box checking without an interrupt function.
-
Te pot ajuta eu daca mai este valabil.
-
Try to use 4GB or 8GB FAT32 USB drive.
-
You want to know when a certain signal will be on? If so, maybe this sample code might help you.
You need a background program to scan all the time for the trigger.
m_flag = FALSE
loop:
IF SIG(signal_number) AND m_flag = FALSE THEN
m_flag = TRUE
$event = $DATE(1)+" "+$TIME+"
PRINT $event
END
IF SIG(-signal_number) THEN
m_flag = FALSE
END
GOTO loop