Mshift instead of parallel shifting?

  • Hello everyone!


    I work with a 6DOF motoman arm attached to a 3DOF gantry system. The controller is DX100 type.
    The robot does a repetitive welding task on same paths parallel to each other with a fix distance. I usually program it by making a sequence, copy and pasted it, than parallel shift, and so on, so on. There is a lot of shifting. I tried once, to use the MShift option, but if an error occurred, like arc start failure, or shielding gas emptied, in playback mode it tried to resume to the original positions.
    This is problematic, because during the welding, the torch has to go between workpieces, and it crashed one of the workpieces.
    Is there any way to solve this problem?
    Thanks!


    EDIT:


    I found the following description in the manual under the MShift function:


    "If any of the following operations are performed after executing a parallel shift instruction, the shift function is cancelled.
    • Job editing operation (changing, deleting, adding)• Cursor position change (step, line, etc.) in the job• Job copy, job name change• Registering a new job, deleting a job, or modifying a selected job
    • Restart after the alarm occurs"


    So basically, is there a way around this?


    Thanks!


    Sent from my iPhone using Tapatalk

  • I'm not sure you fully understand what the MSHIFT command does. The MSHIFT command takes the difference between 2 P variables and stores the result in a 3rd P variable. For example:


    MSHIFT PX001 BF PX002 PX003
    stores the difference between P002 and P003 in P001 in Base Frame.


    For the actual shift to take place, you would still need to use the SFTON command, as in the example below:


    MSHIFT PX001 BF PX002 PX003
    SFTON P001 BF


    Hope this helps!

  • Thanks for the reply, you are right, my description was not clear. With mshift, I want to calculate the difference, and shift with that distance continuously multiple times.
    The problem is that if an error occurred, the shift is cancelled. I would like to know if there is a way around, or some expert programming practice to continue the shift operation after an alarm, maybe counting, making sub-programs, etc.


    I'm not an expert motoman programmer for sure, but it's always important to improve the skills. :smiling_face:


    Thanks!


    EDIT: I can't rename the thread, maybe someone with appropriate rights could rename the thread for me to "Continue shift operations after an alarm". Thanks a lot.



    Sent from my iPhone using Tapatalk

  • if it was only robot you could use the relative job function and just calculate the uframe of the the new distance.
    with gantry system you will need to make programming using porsition and base variables. you can write a more advance program for easier calculation as also to have Local variables for this. with the DX there is the gets step commnd. with this you can easily save the steps you want in local variables ant then recalculate them and run them

  • Need help please!!!!

    Can anyone tell me if it’s possible to Mshift a XRC Robot ???

    If so does anyone have a PDF file on this

    Thanks in advance

  • Need help please!!!!

    Can anyone tell me if it’s possible to Mshift a XRC Robot ???

    If so does anyone have a PDF file on this

    Thanks in advance

    Yes, it is in the INFORM LIST under SHIFT. You also need to be in at least STANDARD Language Level.


    The MSHIFT command takes the difference between 2 P variables and stores the result in a 3rd P variable. For example:


    MSHIFT PX001 BF PX002 PX003


    Stores the difference between P002 and P003 in P001 in Base, Robot, Tool, or User Frame. Which ever you decide when you write the instruction. You don't have to store the result in a 3rd position variable unless you want.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

Advertising from our partners