Hi!
In AL 5.5, I could use a schedule (with scheduleTable) to set the capacity (active time) of a delay. I think this is
useful when the process is not continous and instead is depening of actual working hours.
Example: En entity enters the delay object and will be delayed for say 50 timeunits (effective working hours). But if I
simulate that the workforce only works 8 hours a day. Then I want to 'delay'/halt the delay after 8 timeunits and
activate the delay object again next day. How can I do this in AL 6? I can not find the schedule object nor make a
connection between a timetable/schedule and the delay object.
If I use resources (in combination with service object) with changes in capacity from a function table, the resources
will not be inactive until they have been released. So they finish they job first (all 50 timeunits) before capacity can
be decreased. Is the only way to preempty the entity from service object, release the resource and then loop it into the
serive again (last in que or with priority).
Another question. In AL 5.5 I could select que type to LIFO (last in - first out). I can not see that this is possible
in AL6.
I think AL 5.5 is better than AL6 in many cases. For example, much better possibilities to inspect model in runtime
(Model Root object in AL 5.5 is perfect but I can not find the same in AL6).
BR
Rickard Lindqwister
Victor Gleim — 11.01.08
to Rickard:
Yes, there is no Schedule block in AnyLogic 6. However, you could make a Delay block work as if it had a schedule. For
that you should use Event elements blocking the Delay block (or rather, the Hold block before it) after every work day
and unblock it at the start of work day.
A Queue block has only LIFO queue type in AnyLogic 6 now.
We are constantly improving AnyLogic 6, so you could expect that these features and many others will be added to
AnyLogic 6 functionality in the near future.
Rickard Lindqwister — 15.01.08
Thanks!
But still, I can not "hold" the entities already inside the delay to the next day and then start the delay
again and finish the remaining work.
Example:
Entity A enter the delay at 8 AM day 1. It will be delayed for 12 working hours. At 4 PM, the workers go home. Until
then they have been working for 8 hours on entity A.
In this case I want the delay to stop running and continue again at 8 AM the next day. Then the workers finish the work
(the remaining 4 hours), so entity A leave the delay at 12 AM the second day.
It is possible to makes this happening if I fire a event at 4 PM and in some way increase the delaytime for entity A
with 16 hours (between 4 PM day 1 and 8 PM day 2). But this solution is not so nice. Can I even change the delaytime
when the entity is already in the delay?
Serge — 16.01.08
Hi Rickard! AnyLogic is really flexible tool. But definitely all the cases cannot be captured by the standard enterprise
library blocks. AnyLogic allows user to create custom blocks and connect them with the enterprise library blocks. The
logic you have described can be implemented using basic element of AnyLogic modeling language: events, statecharts,
action charts, probably, some Java code. Thus you may develop your own block which will implement the delay with actual
working hours. If you are subscribed for AnyLogic software support services you may also ask XJ support team for help in
the implementation.