Community

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
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.
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?
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.