Possibility to "terminate" a Move instruction using an input signal

Options
Hello,

I was wondering if there's a way to terminate a Move instruction when a boolean signal input raises to 1 instead of with a zonedata. I try to explain it better:
I would like that the robot terminates the move instruction (let's refert to this as "MoveJ_1") and so looks at the following instructions not when it reaches the defined zone, but when an input has value = 1; so if there's a following move instruction ("MoveJ_2"), it starts a "rounded" movement to the next point when input is 1.

I also explain why I need this: MoveJ_1 is the last instruction of a mission, with MoveJ_1 the robot reaches the Home position and enters the "wait for a new mission" state. Here, if requested from a PLC, it'll start a new mission (whose first instruction is MoveJ_2); but the mission can start only if the robot has the signal "RobotInHomePos" = 1, which is connected to a joint world zone (of the home position). And I would like MoveJ_2 to be a rounded motion. 
I know I can use some box or sphere world zone for the home position, but to have a rounded motion I should tune the dimension of the world zone with the defined zone for MoveJ_1 (and also the speed of the robot affects this tuning and it can be variable).

I don't think it's possible to do what I want, but maybe you have some other good ideas.

Thank you!

Comments

  • mandolas
    Options
    Hi...

    I don't know if I understood correctly, but you could use ... 
    MoveJ\Conc MoveJ_1,v1000,z200,tool0;
    WaitUntil di=1;
    Thus, if 'di' is set to 1 and the robot is in the movement zone, the next instruction will be executed. Otherwise, the robot continues until it completes the movement.
    Maybe it will help.
  • Hi, first of all thank you for your answer!
    Actually I thought to that but I'm not sure is helpful for me: I think this could work only if "di" becomes = 1 before that the robot reaches the zone z200, in this case the trjectory will be rounded; if it happens later, I think that the robot will go straight to the point (MoveJ_1) as if it is a fine point or anyway the trajectory will not be rounded...am I right?
  • lemster68
    Options
    In the case that the di is not on upon arrival it will generate a corner path failure.  It happens all the time.  It is not a fault which stops the robot, it is merely a message written to the logs.  And, yes, if the di is on, it will round the path.
    Lee Justice
  • mandolas
    mandolas
    edited December 2023
    Options
    Hi, first of all thank you for your answer!
    Actually I thought to that but I'm not sure is helpful for me: I think this could work only if "di" becomes = 1 before that the robot reaches the zone z200, in this case the trjectory will be rounded; if it happens later, I think that the robot will go straight to the point (MoveJ_1) as if it is a fine point or anyway the trajectory will not be rounded...am I right?
    Yes, that's correct, but isn't the goal to make sure the signal is active to start the new movement?
    If the robot arrives at the zone and the signal is active then it has rounded the movement, otherwise it will obviously stop at the end of it.
    However, at any time within the zone where the signal is 1, the trajectory is changed, that is, this can happen at 200 mm, 100 mm, 20 mm or it will happen at MoveJ_1, depending on the moment in which the signal is active.
  • mandolas said:
    Hi, first of all thank you for your answer!
    Actually I thought to that but I'm not sure is helpful for me: I think this could work only if "di" becomes = 1 before that the robot reaches the zone z200, in this case the trjectory will be rounded; if it happens later, I think that the robot will go straight to the point (MoveJ_1) as if it is a fine point or anyway the trajectory will not be rounded...am I right?
    Yes, that's correct, but isn't the goal to make sure the signal is active to start the new movement?
    If the robot arrives at the zone and the signal is active then it has rounded the movement, otherwise it will obviously stop at the end of it.
    However, at any time within the zone where the signal is 1, the trajectory is changed, that is, this can happen at 200 mm, 100 mm, 20 mm or it will happen at MoveJ_1, depending on the moment in which the signal is active.
    Yes, the goal is to start the new movement when signal is 1, but I'd like a rounded movement even if di raises to 1 when the robot is at a distance < 200 mm from MoveJ_1. Defining a zone 200, I think that if di raises to 1 at 50 mm (for example) the robot will first reach MoveJ_1 as if it is a fine point and then goes to MoveJ_2, so it does a sharp trajectory (after generating a corner path failure, as @lemster68 said)
  • mandolas
    mandolas
    edited December 2023
    Options
    Hi...
    Rounding is done as the area allows. There is a response time, so that the robot understands what is happening.
    \Conc must handle the 'corner path failure' and as soon as the signal changes to 1, it executes the next instruction.
    If at the moment the signal rises to 1 the zone is smaller than 50 mm, the rounded movement will not be visibly perceived, but it will be possible to see that the robot does not stop, as if it were a fine movement. Speed and acceleration also influence this.
    If the movement zone is not 'fine' the precision of the robot will not be either, so if in your case the robot is still 'stopping' it may not be for this reason.