Hi, I am currently trying to model a warehouse and shipping process using SimEvents. For shipping, I want all items that belong to the same order grouped together. Think of it like putting all items in an order on a EUR-pallet or in a larger box. The amount items in one order could vary which means I need to find a way group different amount of entities together based on orders. I have been looking at the Entity Batch Creator but that block only allows fixed batch sizes which would not work for me. I have also been thinking about using the Composite Entity Creator to combine items with an order and put the combined entities in a store awaiting shipping. However, when I want an order to be loaded onto a truck I need a varying amount of entities moved from the store to the truck at the same time since that is how a fork lift loading a EUR-pallet from the warehouse onto a truck would work in real life. To my knowledge, there is no way of varying the capacity of an Entity Server which leaves me with the same problem as with the batch creator. Is there a way to dynamically group entities together in Simulink/SimEvents?
Kshitij Singh answered .
2025-11-20
function [Events, Ship] = ShipEntry (Ship) % When a ship arrives in Storage2 Event1 = obj.eventiterate (Storage1, Ship); % iterate over Storage1 according to OrderIterate method below Event2 = obj.eventForward (); % then forward the ship to the output Events = [Event1, Event2]; % list of evnet actions end function [Events, Ship, Next] = OrderIterate (Ship) % when iterating over the storage Ship.data.Product1 = entity.data.Product1; % assign the order value to the ship Events = obj.eventDestroy (); % destroy the Order entity in the queue Next = true; % do this unconditionally for all of the orders in storage 1 end
Note that I only mentioned the important parts.