openTCS/opentcs-commadapter-vda5050

order send bug

Closed this issue · 6 comments

Affected version

da9ed93

Steps to reproduce

1.send a task to agv;
2. agv got something wrong in the middle of route, and restart in the initial point;
3. cancel last task, start a new one

Expected behaviour

agv recieve a new order form mq

Actual behaviour

controller never send order to agv again unless restart the kernel software.

Additional information

swltr commented

@vincentknw Please provide some more information here:

  1. What does "cancel last task, start a new one" mean? Do you withdraw a transport order, then create a new one? If not, please explain. If yes:
    a. Do you withdraw the transport order forcibly or regularly? What is the transport order's state after you withdraw it?
    b. Is the new transport order assigned to the vehicle in openTCS, or is it still in state DISPATCHABLE?
  2. What is the state message that the vehicle sends when it does not get the new order?

@vincentknw Please provide some more information here:

  1. What does "cancel last task, start a new one" mean? Do you withdraw a transport order, then create a new one? If not, please explain. If yes:
    a. Do you withdraw the transport order forcibly or regularly? What is the transport order's state after you withdraw it?
    b. Is the new transport order assigned to the vehicle in openTCS, or is it still in state DISPATCHABLE?
  2. What is the state message that the vehicle sends when it does not get the new order?

i found the problem

  1. send an order to agv, agv stucked in the action at last;
  2. the i restart the program, and controller is waiting for a action state;
  3. then i withdraw the order by operation desk, task state FAILED,then send a new order to agv;
  4. controller is keeping send cancel task instant action to agv, but agv cannot find the id,and ignore the action(never reply action state),so controller never send new order again。
swltr commented
  1. controller is keeping send cancel task instant action to agv, but agv cannot find the id,and ignore the action(never reply action state),so controller never send new order again

I do not know which ID you mean here - a cancelOrder action does not carry any parameters like an ID.

However, what you describe is intended behaviour. Please see the section about the instantActions topic. The vehicle needs to confirm that it has receive the cancelOrder in its actionStates list. As long as it doesn't do that, the openTCS driver will repeat the cancelOrder message.

Does this resolve the issue?

order cancel request contains order id , first i search the order by id, if connot find one ,i ignored the request. thanks for your reply, that really helped.

swltr commented

Maybe there is a misunderstanding here: The cancelOrder that is specified for VDA5050 1.1 and 2.0 does not contain any order ID or any other parameters. It only contains an action ID, which is something the vehicle side can never know in advance, though.

Maybe there is a misunderstanding here: The cancelOrder that is specified for VDA5050 1.1 and 2.0 does not contain any order ID or any other parameters. It only contains an action ID, which is something the vehicle side can never know in advance, though.

fine, i thought its cancled order id .thanks for correct my understanding.