Having fun with my first FANUC robot, I think it's a 7.7VRC version from the backup (I had to install that virtual controller into Roboguide to be able to import the backup from the real robot).
INTRODUCTION (to give mode background you can skip it and go directly to the question at the bottom)
The application I am doing is quite simple, it only must pick a piece from a pallet and then place it into a belt.
My plan is:
- Create a program for each part.
- At the beginning of that program, I store the specific data in the working Registers (distance between parts on the pallet...).
- I want to store the points needed to produce the parts into the main program.
- I will have two pallets, each with its own User Frame.
- I will have 2 points for each vacuum cup: one point to pick the first part in the pallet 1 and the other point to pick the first part in the pallet 2.
- I will have 1 point for each vacuum cup to place the parts on a belt.
- Then, my program should call a function (I know... another program) that would do all the common work, that program should use P, P... defined in the main part program.
- Prog1 has 6 points defined P,P...P.
- Prog1 initializes the work parameters for that model.
- Prog1 calls ProgLogic that will have to move the robot to different positions P,P... and offset positions from those points. (ProgLogic will do the same work always, only adapting the offsets...).
- That should leave me with short part programs that define the work variables and the 6 important points (pick the first part with both vacuum clamps from the first pallet (P and P), pick the first part with both vacuum clamps from the second pallet (P and P) and placing the parts in the unloading belt with both vacuum cups (P and P).
My problem currently is that when in ProgLogic I execute this line:
On the teachpendant I see:
If I look at the error log I can see:
Clearly, I am doing something wrong.
Could you share how you would do this?
Is it something as easy as a semicolon or something like that? or is a more complicated thing and I can't separate the logic from the points? (how can I get more information about the error itself?)
My initial idea is to avoid repeating code in each model to ease the future maintenance.
How can I use points declared in my selected program in a sub-program?
Do I have to use PRs for that?
I would prefer the point directly to be able to adjust the point while working (pause and adjust of course...).
My idea is to create a program that initializes Registers I will use to work (like a recipe for each part model) and that stores the working points and then all the separation from the working points and the offsets to move through the different pallet positions should be automatically done in a separated logic program, all this to keep the future maintenance easier.
How would you do that?
Thank you in advance for your time and help!