Adding position registers with different configurations or turn counts

  • What is the result of adding two positions registers that have different turn counts or different configurations? can this even be done?


    I have a machine tending program with many pick locations. I am using one position register for the current pick position, and every time a part is picked, I add a x and y offset (via additional PR's) to the "current_pick_position" PR that the program goes to for every pick. (i.e.- I programmed what I believe to be my own palletizing function).


    Originally I had a bunch of limit errors that were confusing, and I just ignored them by using L moves instead of J (to avoid dealing with turn counts) to move above the pick point.


    Now that I have finally begun to understand how turn counts work, I am going back to the J moves, and seemingly need to create conditional statements which change the turn count of the "current_pick_position" PR based on what pick spot is up next. It would be great if I could accomplish this via addition of PR's.


    Any help or other suggestions would be greatly appreciated! Sadly purchasing the palletizing option is not feasible.

  • AD
  • You probably should just be using L moves. Joint moves are not usually the right choice for a bunch of calculated offsets. Joint moves are for moving to general start/end positions or different work areas. L moves are best for doing the actual work.


    Instead of adding PRs together, just modify the individual elements (x,y,z) as needed.

  • You probably should just be using L moves. Joint moves are not usually the right choice for a bunch of calculated offsets. Joint moves are for moving to general start/end positions or different work areas. L moves are best for doing the actual work.


    Instead of adding PRs together, just modify the individual elements (x,y,z) as needed.

    Ok, I was J moving to above the pick position, L moving down to position, gripping, L move above, And then J again to the machine fixture.


    How do you mean modifying individual xyz?

    An example of the way I'm doing it now:



    PR[12:Pick_Pos]=[0,0,0]

    (above would be the position that was just picked, and now the code below indexes the PR to the next position)

    PR[13:x_offset]=[25,0,0]

    PR[14:y_offset]=[0,50,0]


    PR[12:Pick_Pos]=PR[12]+PR[13:x_offset]

    PR[12:Pick_Pos]=PR[12]+PR[14:y_offset]


    Result is now PR[12]=[25,50,0]

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now