TIVDM2 Sortation System, Tray Allocation 1
Tray allocation for a sortation system
Real-time versionIteration III
TI-VDM2 Projectby
José Antonio Esparzaand
Kim Bjerge
Today’s presentation
• Status
• Deployment models (UML)
• Update on real-time model (VDM)
• Optimized real-time model (VDM)
TIVDM2 Sortation System, Tray Allocation 2
Status for RT model
• RT model now working but very slow
• Feeding items based on time• Changed sorter environment to convert time units to ms• Fixed problem reading logrt by removing calls to static’s• Induction separation implemented with a busy wait
• Optimized RT model fast but not able to fill sorter
• Changed design to minimize interaction between CPU´s• Separated Induction and InductionController• Found that objects allocated in TrayAllocator is deployed on vCPU
TIVDM2 Sortation System, Tray Allocation 3
Object diagram concurrent version
TIVDM2 Sortation System, Tray Allocation 4
class ObjectModel
«thread»:SorterEnv ironment
«thread»:InductionController
:TimeStamp :World
«thread»:TrayStep
:SC
«thread»:InductionController
«thread»:InductionController
«thread»:TrayAllocator
#1 Deployment RT
TIVDM2 Sortation System, Tray Allocation 5
deployment DeploymentVDM
«execution environment»cpu1
TrayAllocator
«execution environment»cpu2
«execution environment»cpu3
«execution environment»cpu4
bus1 bus2 bus3
InductionController1 InductionController2 InductionController3
#2 Deployment RT
TIVDM2 Sortation System, Tray Allocation 6
deployment DeploymentVDM2
bus1bus2
InductionController4InductionController2InductionController3
TrayAllocator
«execution environment»cpu1
InductionController1
«execution environment»cpu2
«execution environment»cpu3
#1 Deployment VDM Architecture overview
TIVDM2 Sortation System, Tray Allocation 7
#1 Deployment RT version of SC – system
TIVDM2 Sortation System, Tray Allocation 8
RT version of TrayAllocator periodic thread
TIVDM2 Sortation System, Tray Allocation 9
RT version of InductionController thread
TIVDM2 Sortation System, Tray Allocation 10
RT version of SorterEnviroment thread
TIVDM2 Sortation System, Tray Allocation 11
Async operation FeedItem in InductionController
TIVDM2 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---------------------------------------------Specified throughput [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 : 0Number of tray steps : 23 Number of inducted items : 19 Calculated throughput[items/hour]: 9913 ---------------------------------------------- **** Sorter is not full ****----------------------------------------------new World().Run() = ()
TIVDM2 Sortation System, Tray Allocation 13
Optimized RT versionAnalyses• Slow RT version due to heavy interaction between CPUs• Log files shows lots of traffic - operation callsSolution• Minimized the number of calls between TrayAllocator
InductionController (IC) - RequestTray (IC -> TA)• Separated InductionController into 2 classes• Priority handling moved to TrayAllocator• Use of icid to synchronize TrayAllocator and IC• Creating objects on TrayAllocator - CPU• Periodic thread on TrayAllocator reduced from 30000 to
6000 VDM time units TIVDM2 Sortation System, Tray Allocation 14
Original sequential class diagrams
TIVDM2 Sortation System, Tray Allocation 15
InductionController CPU1
TIVDM2 Sortation System, Tray Allocation 16
Environment vCPU
TIVDM2 Sortation System, Tray Allocation 17
Fixed Trays allocated on vCPU
Demonstration of optimized RT model
DEMO
TIVDM2 Sortation System, Tray Allocation 18