(630) 851-9474

Simcad Pro Training and Tutorials

Categories

Warehouse Pick Simulation

Author: CreateASoft Inc./Friday, October 28, 2016/Categories: Advanced Modeling and Connectivity

Rate this article:
5.0
  • Switch to the Flow Properties tab
    • Go into Model Extensions
      • Select Define Database Connections and New Connection
      • Name it 'Internal' and select Save
      • Select it from the list and check Connect Database to Data Import Tables
    • Go into Internal Data Store
      • Select Manage Sections, create 'Warehouse' and 'PickSequence'
        • For 'PickSequence' add 4 columns:
          • OrderNumber - Integer
          • SKU - String
          • Quantity - Integer
          • PickedYet - Integer
          • Check Store section data in model definition
        • For 'Warehouse' add 3 columns:
          • Location - String
          • SKU - String
          • Quantity - Integer
          • Check Store section data in the model definition
      • Go to the 'Warehouse' table
        • Select Excel Link
        • Browse for the Excel file and select the Warehouse sheet
        • Check Ignore First Row and change To Cell (35,4)
      • Go to the 'PickSequence' table
        • Select Excel Link, browse for the Excel file again and select the PickSequence sheet, check Ignore First Row and change To Cell (35,5)
    • Now go into Additional Properties Definition
      • Switch Parameter to Object and create 4 variables:
        • Obj_OrderNumber - Integer
        • Obj_SKU - String
        • Obj_Quantity - Integer
        • Obj_GoingTo - String
    • Go into Model Extensions
      • Under SimulationStart insert two lines, Line 1 will be a Data Interface Action:
        • Section Name - Warehouse
        • Action Type - Update
        • Field Name – Quantity
        • Update with value - 30
        • Line 2 will also be a Data Interface Action:
        • Section Name - PickSequence
        • Action Type - Update
        • Field Name - PickedYet
        • Update with value - 0
  • Switch back to the Model Build tab
    • Go into Objects and Containment and create a new object: 'Order'
    • Check Display Object Value
      • Scroll down and select 'Obj_SKU' and 'Obj_GoingTo'
  • Create a Start Process, 'Start'
    • Go into Define Object Creation Rules and change to Create based on Work Order. Switch to the Work Order tab and select Excel Import
      • Browse for the Excel file and select the WorkOrder tab, change To Cell (10,15)
      • Check Use first record as Model Start Time
  • Create a Generic Process to be used a Router, 'Route Pick', and connect 'Start' to it
  • Select 'Route Pick'
    • Go into Process Extensions/Event Handling
      • Under ObjectActivated insert two lines
      • Change Line 1 to a DB Interface and edit
        • Database Name - Internal
        • Table Name - PickSequence
        • Command Type - Select From
        • Condition - Where OrderNumber = <%Obj_OrderNumber%> AND PickedYet = 0
        • SKU - Obj_SKU
        • Quantity - Obj_Quantity
      • Change Line 2 to a DB Interface Action and edit:
        • Database Name - Internal
        • Table Name - Warehouse
        • Command Type - Select From
        • Condition - Where SKU = <%Obj_SKU%>
        • Location - Obj_GoingTo
      • Under ObjectNextProcessDefined insert a line and change it to an Expression Action and edit:
        • set NextProcessToStart = Obj_GoingTo
  • Create a new process, 'MOD_Rack'
    • Go into Process Extensions/Event Handling
    • Under ObjectActivated insert two lines
      • Set Line 1 to a DB Interface Action and edit:
        • Database Name - Internal
        • Table Name - Warehouse
        • Command Type - Update Table
        • Condition - Where SKU = '<%Obj_SKU%>'
        • Quantity - Quantity - <%Obj_Quantity%>
      • Set Line 2 to a DB Interface Action and edit:
        • Database Name - Internal
        • Table Name - PickSequence
        • Command Type - Update Table
        • Condition - Where SKU = '<%Obj_SKU%>'
        • PickedYet - 1
    • Switch to under ObjectProcessingCompleted and insert two lines
      • Set Line 1 to a DB Interface Action and edit:
        • Database Name - Internal
        • Table Name - PickSequence
        • Command Type - Select From
        • Condition - Where OrderNumber = <%Obj_OrderNumber%> AND PickedYet = 0
        • SKU - Obj_SKU
        • Quantity - Obj_Quantity
      • Change Line 2 to a DB Interface Action and edit:
        • Database Name - Internal
        • Table Name - Warehouse
        • Command Type - Select From
        • Condition - Where SKU = <%Obj_SKU%>
        • Location - Obj_GoingTo
    • Now go under ObjectNextProcessDefined
      • Insert a line, set to an Expression Action and edit:
        • Set NextProcessToStart = Obj_GoingTo
  • Right click 'MOD_Rack' and select Convert to Base Module, then delete the process
  • Now use the Auto-Create Processes tool to create the 30 racks that will be used for this model
    • Number of Processes - 30
    • Copy Properties from - Mod:MOD_Rack
    • Middle - 'W'
    • Number of Digits - 1
  • Select all 30 racks and select Auto-Create Path, change Path Direction to Left to Right and click Create Path
  • Create an End Process, 'End'
  • Finish the layout by connecting the model together as shown
  • Run the simulation
  • The model runs correctly but a problem will occur when the order is complete, we need to add logic into the racks to tell the order to go to the end when the order is done
  • In the Model Build tab
    • Select Smart Module and click Refresh
    • Edit 'MOD_Rack', go into Process Extensions
      • Under ObjectProcessingCompleted insert three lines
      • First of which will be a Condition Action and edit:
        • GetProcessName(ModelID, ProcessID) == Obj_GoingTo
      • Next will be an Expression Action:
        • Set Obj_GoingTo = 'End'
      • Lastly another Condition Action:
        • Switch to END IF
  • Run the simulation again and watch as the values on the objects update and show 'End' when they are done
  • To run one order at a time let’s set a Resource to pick each order, go into Resources and Shifts.
    • Create 'Worker' and set to '1', click Add
  • Now select all connections lines from 'Route Pick' to 'End' and go into Resource Constraints
    • Set 'Worker' to 1 and check both Enable and Hold Resources
    • Also go into Speed/Distance/Capacity
      • Check both Speed based on Units/Sec and Enable Auto-Distance calculation
  • Go back into the Smart Module
    • Edit 'MOD_Rack', in the Resource Constraints
      • Set 'Worker' to 1 and check both Enable and Hold Resources
  • Run the simulation a final time and slow it down to see the changes on the object values as the order is completed step by step
  • Tutorial involves linking Simcad Pro with an excel sheet; CLICK the link to DOWNLOAD the Excel Sheet.

 

 

Number of views (8988)/Comments (0)

Tags:

Theme picker