1 / 12

Real-Time Tray Allocation for Sortation Systems: Iteration III Insights

This presentation delves into the real-time model updates and concurrent behavior of the Tray Allocation system within sorting frameworks. It highlights the deployment of threads, CPU synchronization strategies, and addresses issues faced in the latest version. Key discussions focus on induction rates, deployment alternatives, and error handling, emphasizing a practical understanding of the system's operation and performance. The findings reveal significant insights into throughput, tray management, and item processing affected by real-time constraints.

agalia
Télécharger la présentation

Real-Time Tray Allocation for Sortation Systems: Iteration III Insights

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tray allocation for a sortation systemReal-time versionIteration III TI-VDM2 Project by José Antonio Esparza and Kim Bjerge Sortation System, TrayAllocation

  2. Today’spresentation • Status on real-time model • Updateonconcurrent model behavior (UML) • Updateon real-time model (VDM) Sortation System, Tray Allocation

  3. Status for RT model • Thread’s deployed to CPU’s • CPU for each induction • TrayAllocator on a central CPU controller • Removed TimeStamp and TrayStep • Made periodic thread for TrayAllocator • duration used for induction rate • Version running Issues for next time • How to feed items on based on time? • Alternative deployment one CPU for two InductionControllers • Error reading logrt? • (30 errors encoutered in file) • Why we can’t fill the sorter (19/20)? Sortation System, TrayAllocation

  4. Object diagram concurrent version Sortation System, Tray Allocation

  5. Behavior of concurrent model (Sequence #1) Sortation System, Tray Allocation

  6. Behavior of concurrent model (Sequence part #2) Sortation System, Tray Allocation

  7. RT version of SC – system instance variables cpuIC1 : CPU := new CPU (<FCFS>,1E6); cpuIC2 : CPU := new CPU (<FCFS>,1E6); cpuIC3 : CPU := new CPU (<FP>,1E9); cpuTA4 : CPU := new CPU (<FCFS>,1E6); bus1 : BUS := new BUS (<FCFS>,1E3,{cpuIC1,cpuTA4}); bus2 : BUS := new BUS (<FCFS>,1E3,{cpuIC2,cpuTA4}); bus3 : BUS := new BUS (<FCFS>,1E3,{cpuIC3,cpuTA4}); public static ic1 : InductionController := new InductionController(1); public static ic2 : InductionController := new InductionController(2); public static ic3 : InductionController := new InductionController(3); public static inductionGroup : seq of InductionController := [ic1, ic2, ic3]; public static allocator : TrayAllocator := new TrayAllocator(inductionGroup); operations public SC: () ==> SC SC() == ( cpuIC1.deploy(ic1); cpuIC2.deploy(ic2); cpuIC3.deploy(ic3); cpuTA4.deploy(allocator); ); Sortation System, Tray Allocation

  8. RT version of TrayAllocatorperiodicthread -- Periodic thread operation that simulates the TrayStep TrayStep: () ==> () TrayStep () == ( trayCount := trayCount + 1; IO`print("< " ^ String`NatToStr(trayCount) ^ ">"); CardReader(trayCountmod TrayAllocator`NumOfTrays + 1, <Empty>); -- Induct items for all waiting inductions CheckItemsToInduct(); ); thread -- periodic (20000, 0, 0, 0) (TrayStep); Sortation System, Tray Allocation

  9. RT version of InductionControllerthread -- Permission predicate on Wait operation (Moved from TrayAllocator) per Wait => threadid not in set domallocator.icThreadsWaiting; thread ( while (ItemsToInduct()) do ( -- Request tray allocator to induct item and wait for induction let item = GetFirstItem() in ( allocator.RequestTray(threadid, selfIC, item); Wait(); ); -- In teory this value should be 2x20000 see periodic thread in TrayAllocator duration(30000) WaitInductionRate(); ); ); Sortation System, Tray Allocation

  10. RT version of SorterEnviromentthread whilebusy do ( timeStep := timeStep + 1; for all i in set {1,...,TrayAllocator`NumOfInductions} do ( -- Check for item to feed induction at time step let size = itemLoader.GetItemAtTimeStep(timeStep, i) in if (size > 0) then ( itemId := itemId + 1; IO`print("[ " ^ String`NatToStr(timeStep) ^ "]"); inductionGroup(i).FeedItem(new Item(size, itemId)); ); ); -- Check if simulation is finish if (time >= itemLoader.GetNumTimeSteps()) then busy := false; ); Sortation System, Tray Allocation

  11. Async operation FeedItem in InductionController -- Enviroment feeds a new item on induction async public FeedItem: Item ==> () FeedItem(i) == items := items ^ [i]; sync -- Enviroment and TrayAllocatorthreads mutex (FeedItem); -- Async new mutexneeded! mutex (FeedItem, InductFirstItem); Sortation System, Tray Allocation

  12. Simulation Result *Induction id 1 -> Item id 16 size 100 on tray id 1 *Induction id 3 -> Item id 20 size 300 on tray id 5 < 18 >< 19 >< 20 >< 21 >*Induction id 2 -> Item id 19 size 200 on tray id 7 < 22 >--------------------------------------------- Simulation completed for sorter configuration --------------------------------------------- Specifiedthroughput [items/hour]: 10000 Sorter speed [mm/sec]: 2000 Item max size [mm]: 1500 Item min size [mm]: 100 Tray size [mm]: 600 Number of trays : 20 Number of inductions : 3 Induction rate : 2 Induction separation [trays]: 2 ---------------------------------------------- Number of trays with items : 19 Two tray items on sorter : 0 Number of tray steps : 23 Number of inducted items : 19 Calculatedthroughput[items/hour]: 9913 ---------------------------------------------- **** Sorter is not full **** ---------------------------------------------- new World().Run() = () Sortation System, Tray Allocation

More Related