In this scenario, I am trying to program it to depalletize a bottle, move it to a position, then palletize it back into its original position before continuing to depallet the bottles.
Is this possible to program? If so, could anyone give me a little guidance?
It’s not a “built-in” feature like other stuff, so you will have to do some extra programming.
I can see two ways to achieve this:
By editing the palletizing counter (pallet_cnt as far as I remember) to a lower number with an Assignment command and then executing the palletize function again (either by loop or skipping the rest of the code with an If).
Then you will need an If or Switch command in the ToolActions to switch between picking and delivering by looking at another variable.
Use two Pallet functions. One to pick up and one to put back. And then synchronize the pallet counters (Pallet_1_Cnt := Pallet_Cnt).
You can just put programming in between the two pallet functions, yeah. It sounds to me like you should experiment some with using If-commands and variables to control sequences.
Like set a variable to True, if some conditions are met and then letting that variable control whether some commands within an If-command are executed or not.
You could create two Position variables Above_Pick & Pick_Pos.
then when in the depalletizing function use a get_actual_tcp_pose and store the positions in these Position variables.
then you simply need to go to these positions to place them back into the pallet where they came from.
saves on having depalletizing and palletizing functions and simplifes you program.
You create your pallet and pick the bottle. Than you place it to where ever you need it to be and then move to the TAP and Aproach points in the same reference systeme and link the points.
This above example worked great for me in a dual spindle lathe loading program, I actually kept track of 2 previous positions with a second position variable above the suggested line since 2 parts would be in the lathe. This made my part return to table code ridiculously easy compared to the massive amount of code I needed to find all the positions on the initial depalletize.