An option, that allows to control signals/subprograms more precisely along a programmed path.
Posts by bidzej
-
-
Besides that, mMemory capacity is also higher, and generally the whole MAIN has beed reworked (+ the CPU card + memory card).
The TP is competely new and faster.
Some speeding up of different functions has also been made (like improving Path Switch resolution from 8 to 2 ms).So on one hand nothing revolutionary, but on the other - a great improvement in some areas.
-
...or you could use separate Karel program, that would be called by the TP-program only to execute a routine of another Karel program, using the code provided by inusO (just 1 line of code).
-
Thanks for the response DaveP, but that would be the same thing as using the inc command of a point, which is what I would like to avoid if I can.
of course it won't be the same thing, because Fanuc has a different programming language than ABB, which offers different possibilities and requires different attitude to solve the same problems. DaveP gave you a solution to the problem - you have to use PR (or PRs), get the current position (JPos or LPos) and operate on appropriate coordinates.
You could create a macro (or macros), which would move the given axis (fixed, or selected by an argument) to a given position. In that way, it would be even easier to use it later in the programs - just one line, like for example:- you could create a MoveRailAbs macro to a move rail axis to an absolute position (-200mm in the example below):
MoveRailAbs(-200)- you could create a MoveAxIncJ to move a selected axis (6 in the example below) in Joint by a given amount (30 deg in the example):
MoveAxIncJ(6,30)Motion speed ad other parameters could be set directly in the macro, in a register (or registers) or as a separate argument. You are basically only limited by your imagination and skill. This would be also doable:
IndAMove(GP, axis, joint/linear, speed, acceleration, fine/cnt, cnt_value), where:
GP = motion group
axis = selected axis
joint/linera = selection
speed = obvious, might be always given in [%], assuming that you do some scaling for linear motion
acceleration = obvious
fine/cnt = selection
cnt_value = value of the cnt parameter if selectedthen a call of the macro could look like this:
IndAMove(1,7,1,100,50,1,1)
-
Using a little bit of Karel could also make it possible to save the exact time of the last E-stop usage.
Can also be done with BG-Logic, but then you have to save the time to R or SR, where anyone can see and change it (if not secured by means of password protection). -
We still don't know how about the UTOOL orientation. What happens, when you jog the robot with +/- J6/rotZ key in TOOL coordinate system? does the torch rotate about the center axis of the gas nozzle?
-
the first thing you need is the iPendant Customisation Manual mentioned above...
-
There is a good explanation of this issue somewhere on this forum - search for it
This is what I've found in the manual (R-30iA/iB):
QuoteGET_REG(register_no, real_flag, int_value, real_value, status)
Input/Output Parameters:
[in] register_no :INTEGER
[out] real_flag :BOOLEAN
[out] int_value :INTEGER
[out] real_value :REAL
[out] status :INTEGER
%ENVIRONMENT Group :REGOPE
Details:
• register_no specifies the register to get.
• real_flag is set to TRUE and real_value to the register content if the specified register has a real
value. Otherwise, real_flag is set to FALSE and int_value is set to the contents of the register.
• status explains the status of the attempted operation. If not equal to 0, then an error occurred.So, to avoid such problems, you can do the following:
1. after using GET_REG, evaluate the real_flag to check if the value read from the register is REAL or INTEGER (with an IF).
2. if real_flag is false, read the int_value and convert it to REAL, saving it to your RVALUE. I don't see a built-in which can be directly used for int-to-real conversion, so I would try adding 0.0 to int_value... -
1. declare a new REAL variable (let's name it value)
2. before your SET_VAR: read the register (GET_REG built-in? don't remember the built-in names and don't have the manual at hand atm.), saving it to value
3. change you SET_VAR to:SET_VAR(entry, '*SYSTEM*', '$DPM_SCH[1].$GRP[1].$OFS[1].$INI_OFS', value, STATUS)
The program will now read the register and save it to the variable (as REAL), and then use this variable to set the system variable that you wish.
EDIT: to make it neater, I would also add some evaluation of STATUS - at least a check against a non-zero value.
-
Look for a file named usrhmifl.stm (containing standard TP-HMI screen) and other .stm files - they're basically html code using some ActiveX controls designed by Fanuc to access different elements in the controller (like registers or IOs).
The easiest way to change them is via FrontPage / SharePoint Designer 2003, but you have to have these ActiveX controls installed on your PC (they come as a standard with RoboGuide, but can also be separately obtained from Fanuc I think) -
Looks like an improper UTOOL definition. make sure that the Z axis is parallel to the wire and going "up" (with the reference point on the tip of the wire).
After changing the UTOOL, you'll most likely need to reteach all programs. -
As far as I remember, the configuration is stored in system variables with names startig with $AWE...
So I guess it's gonna be in SYSVARS.SV - which is not good news, as much more things are placed in this file. -
Try increasing stack size in the properties of the programs that cause the problem. Stop the robot, abort all programs by FCTN - Abort all programs, then press SELECT, move the cursor to the proper name, press F3 - DETAIL (or another F-key with this description) and then double the stack size of the program. Restart the robot and check if the problem is gone.
-
is there any kind of signal monitoring on the machine?
Do you see ANY DIs on the robot? Any LEDs on the robot's IO modules? -
As far as I rememeber, FAPT-Ladder loads the program to a "temporary memory area", where the currently executed code is, but which is overwritten on restart with the stored files. What the backup procedure does is copying the new file to that "storage". Without the procedure, your new PMC program gets overwritten with the stored version on controller's restart, which can lead to some nasty surprises.
The procedure is not necessary in the R-30iB.To load the ladder.pmc file manually, I would try going to controlled-start and then loading it using LOAD option in the File menu, or possibly copying it to FR:/ - or another internal memory of the controller, can't rememeber which one at the moment (haven't worked with a Fanuc robot in quite a long time ), I recommend you try to find the "storage area" first.
Try that and let me know if it worked. -
PM me, I can help you out a bit.
-
a single robot can work with multiple SNPX connections - but you need to adjust a system variable to allow it. Unfortunately i don't remember the name at the moment, look for $SNPX_CFG or something similar.
-
It won't be that easy.
If the application is not complicated, it would be easier to just write your own macros and maybe some bg-logic or Karel to make the robot work with a welding machine. -
Check this out: https://www.robot-forum.com/ro…orum/robot-control-by-pc/
Also, post some photos of your robot setup - we'll be able to recognize the model, which would help in finding (or at least identifying) manuals and other documentation. -
You mean starting the PMC program or what?
Have you set the correct IPs in the FAPT Ladder? It's not normal that it doesn't want to connect. Also, when using FAPT Ladder with the R-30iA, don't forget to "backup" the new PMC program with a dedicated function in the software (TP's E-Stop must also be pressed for that purpose).