DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.

Hello DOF experts!

I have a large program that I want to be adaptable to handle a series of 6 different part numbers for an abrasive material removal process.  The current program has approximately 60 variables which include Booleans, integers and poses that will vary based on the part.  While I could do all this in the main program (and will if I have to) the current polyscope view has over 1000 lines and locating what I need with scrolling is becoming a bit cumbersome.

Part type/size detection is handled through magnetic proximity sensors in the tooling which presents the parts to the robot.  The desired program flow is as seen below, but with additional "if Prox =" or Switch use cases and an else if nothing is detected. 

To test, I tried creating a simple main program called z_var_load to pull in a second program z_var_list with the variable assignments and then calling that subprocedure.  While this works for an initial load at incorporation of the subprocedure (aside from hitting cancel for duplicate variables many times), it will not update again if I change the file being referenced.  Of course if I check the "Keep SubProgram updated" box it will write from the main program back to the secondary, but not the other way around.  Is this behavior expected or is there a simple way to have it reload the subprocedure program every time we load the main program that I'm missing?  I really don't need the entire contents of the subprogram to display in the main program, which I know can be hidden with the check box. 

For reference, I'm currently running Polyscope
We're using a UR10, Robotiq 140mm gripper and FT300 torque cell.

In summary - is there any easy way to load large subsets of variables based on inputs to the main program from a separate file or program that is maintained from that set of secondary files?  Am I best off just the fit it all the switch cases in the main program and not attempt another method?

Any insight is appreciated, thanks!