Advanced Transporter doesn't travel to desired location

All topics specific to modeling questions in Enterprise Dynamics
Post Reply
Katinka
Posts: 23
Joined: Thursday 14 June, 2012 - 08:42

Advanced Transporter doesn't travel to desired location

Post by Katinka »

Hello,

I'm back again ;)
Yesterday I was watching my model in 2D and I saw something strange happening. Sometimes, when an Advanced Transported picked up a product, this product suddenly disappeared and the transporter became idle?
After performing some checks, it turned out that the product did not disappeared, but somehow normally arrived at the desired endlocation! So, it looks like at times the Advanced Transporter is teleporting products instead of transporting them... ;)
I also set the load time at 45 seconds, and it seems that in these strange cases the transporter needs way less time to perform its task.
Can you explain why this is happening?

I added my model in the attachment. When you put the random seed at 2361, then at about 00:04:00 an Advanced Transporterd called APM 1 'teleports' a product with label inboundnr 11.
I know my model is quite extended already, but I don't think (I hope) it is necessary to understand all things, as the magic only happens in the lower right corner of the model, where green products (inbound pallets) enter the model and must be transported by APMs to a certain storage rack.
However, if something in my model is unclear, I'm glad to explain :)

Thank you in advance,

Katinka

EDIT: My model is too big to attach.. to which emailadress should I send it (if necessary)?
MarvinH
Posts: 93
Joined: Tuesday 25 January, 2011 - 11:07
Contact:

Re: Advanced Transporter doesn't travel to desired location

Post by MarvinH »

Hi Katinka,

I had a look at your model and as you mention, indeed there are two issues:

1) Loading time shorter than 45 seconds;
2) "Teleporting" products.

Considering the first issue, I found the following:

When a APM finished unloading at one of the racks, the ExitTrigger was executed. In the ExitTrigger, you send the APM to the "dwell-location" to wait until a new order was due, by using the function AdvancedTransport_SetDestination. However, the Advanced Transporter was not designed to be send to a particular destination and having nothing to do when the destination was reached. So what happened in your model (in particular you can try to follow APM1 with the seed value as provided by yourself) was that when the APM reached the "dwell-location" and there was nothing to pick up, it acted as if it had something to place (which was actually not the case). When the "dwell-location" was reached, the unloading time was triggered and after 45 seconds the end of unloading was scheduled. In the meantime, APM1 was triggered to pick up a new product at the inbound. When it was just a couple of seconds at the inbound location, the end of unloading time event (that was triggered at the arrival of the "dwell-location") was due and the transporter was moving the the place location.

I have changed the functionality of the Advanced Transporter in the atom attached to this topic.
Advanced Transporter.atm
New AdvancedTransport
(61.78 KiB) Downloaded 335 times
Considering the second issue, I found the following:

In your model you assign the closest idle APM to a new order in the inbound buffer. The APM is set to idle when it places a product and there is no new product waiting at the inbound. However, especially later in the simulation, it might happen that a new product arrives at the inbound while the APM is still travelling to the "dwell-location"". In case a new product arrives at the inbound, it triggers the closest "idle" APM, which at that time might not actually be at the "dwell-location" but is still travelling. Then the events of the APM are scheduled twice: 1 loop for travelling to the dwell-location and one parallel loop for travelling to the inbound location (which is the updated destination). This causes the events to be triggered twice, which results in the "teleporting" behaviour.

I have fixed your model by destroying the events of the APM that is triggered from the inbound in case it is still travelling (i.e. did not arrive at the "dwell-location").

Please let me know when you have any further questions.

Kind regards,

Marvin
Katinka
Posts: 23
Joined: Thursday 14 June, 2012 - 08:42

Re: Advanced Transporter doesn't travel to desired location

Post by Katinka »

Hello Marvin,

Thanks for all your efforts! I wasn't aware of the fact that it had to do with the way I implemented dwell-locations and not with the way I designed inbound. So I'm sorry you had to 'decipher' a lot of my codes, because my model is quite extended and at times I'm questioning the readability of my codes to others (but fortunately you succeeded ;) ).

I really appreciate your detailed explanation of what was going on. In hindsight, the second part seems quite logical. Of course, I can ‘force’ an APM to be placed on the idle-list, but that does not say anything about its current activity, as it may indeed still be travelling to its idle-location.

I performed a final check by assigning a label to all products leaving the inbound conveyors (on the Exit Trigger of both Non Accumulating Conveyors)

Code: Select all

 Label([TimeOut], i) := time 
as well as a check whenever a product enters the rack (in the function InRack_Entry)

Code: Select all

 If( time - label([TimeOut], atmProduct) < 1,
 msg([Teleport], 2)
 ) 
As it should be impossible that a product reaches its destination within 1 second.
Unfortunately, the error still occurs sometimes. However, it is not a real issue anymore, since it happens only about 5-10 times during a replication and not 100-200 times as before.
I wanted to send you a seed value and an associated time at which it occurs, but the most weirdest thing is that it happens at different moments, even though it's using the same seed value?

Kind regards,
Katinka
Katinka
Posts: 23
Joined: Thursday 14 June, 2012 - 08:42

Re: Advanced Transporter doesn't travel to desired location

Post by Katinka »

I found out that the teleporting-problem occurred at multiple locations: exactly the same thing was happening for outbound pallets. When I added your piece of code also to the statements involved with outbound pallets, all errors disappeared (including the errors related to inbound pallets)! :D

So, everything works well now, and futuristic teleportation has been banned from my warehouse ;)

Katinka
MarvinH
Posts: 93
Joined: Tuesday 25 January, 2011 - 11:07
Contact:

Re: Advanced Transporter doesn't travel to desired location

Post by MarvinH »

Hi Katinka,

Glad to read that your model works.

I implemented the fix only for the inbound pallets at the conveyors, I had no idea whether you used the same functionality somewhere else in your model. Fortunately you were able to propogate these fixes over there as well.

A small remark about reproducability, please refer to Repetitive mode doesn't work. As you are using global variables and tables, please make sure to reset these to the same initial values every run (i.e. OnReset).

Kind regards,

Marvin
Post Reply