Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!



  • Content Count

  • Joined

  • Last visited

  • Days Won


gdrake last won the day on May 10

gdrake had the most liked content!

Community Reputation

1 Neutral


About gdrake

  • Rank
    Senior Application Engineer
  • Birthday February 10


Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. If you had RPS Edition, there is a Task Log that is automatically provided and logs all the task start and stop times. I believe Output Tables approach as illustrated by that mentioned SimBit is also an RPS Edition feature. Since you are constrained to Design Edition functionality, Maybe try looking at the ExcelReadWrite SimBit and see if you can write your start and end times to your own Excel file, the Write step executed by the 'Starting Task' and 'Finished Task' add-processes for a task as mentioned by Adam above.
  2. To answer your question specifically with regards to the MultiEchelonSupplyChain example, the OnReplenishOrder process that you see in the process logic of the data table driven example is automatically executed by the Inventory elements when the inventory detects the need to replenish. Go to Definitions -> Elements and click on the Inventory elements and you will see where that process is being referenced. The ShippingReceivingLogic process is being executed when an entity enters any of the BasicNodes placed in the Facility View. For example, click on the DistributionCenter node and in the Add-On Processes -> Entered property you will see the name of that process befiling referenced. The TryFulfillOrder process is executed by the OnCustomerOrder process using an Execute step, which is in term triggered by a customer order arrival. Note that If you are trying to figure out where the name of a process is being referenced, you might go to Project Home in the ribbon UI and go to the Search window. And then search for the name of the process in the model, and it will show you the locations where it is being referenced.
  3. A Routing Group element will automatically check its route request queue and try to assign destinations to waiting entities whenever: 1) A new entity executes a Route step and is inserted into the route request queue. 2) Space at a possible destination becomes available. A question would be what is the purpose of checking an entity that cannot be assigned a destination. Is that check required only if the entity cannot be immediately assigned a destination upon execution of the Route step? If so, after an entity is inserted into the route request queue, you might execute Delay: Math.Epsilon in a separate process to come back and check whether the entity is still waiting in the route request queue after that Epsilon delay time, and if so, then take whatever action is required.
  4. This was a bug in the software that has now been fixed. The fix will be available in the posted Sprint 166 build. Once that build is available and you update your Simio software, then you will see the attached model 'AWModel v7.spfx' run to completion without any errors. Apology for any delay in your modeling efforts.
  5. After taking a quick look at the attached model, this may be a bug in the software. Will have to investigate further and if is a bug then will make a fix. Will post again when have more information.
  6. You might try taking a look at the installed SimBit ' VehicleFleetManagement'. Although the simple problem illustrated in that example is somewhat different than your problem, it shows an alternative modeling technique whereby the destination management of vehicles is being controlled by external process logic rather than the default behavior of the vehicles themselves. So some external 'fleet management' controller logic is triggered whenever certain relevant events occur and tells a vehicle to go here, then there, then here, etc.
  7. Add a 'NumberArrivals' data column to the data table that is defining the arrival schedule. For example, define your arrival schedule table like this: SomeArrivalTableName ArrivalTime NumberArrivals 8:00 am 5 8:30 am 5 9:00 am 10 9:30 am 8 etc. Then on the Source object, specify the Arrival Mode as 'Arrival Table'. Specify the Arrival Time Property as 'SomeArrivalTableName.ArrivalTime'. Specify the Arrival Events Per Time Slot as 'SomeArrivalTableName.NumberArrivals'. Note that you can also easily add columns in the data table as well for the Arrival Time Deviation and No-Show Probabilities, and then map those columns to the corresponding properties in the Source. For example, if the Arrival No-Show Probability actually differs depending on the day of week or period in the day.
  8. You can dynamically assign the 'HomeNode' state variable of a vehicle or worker object (e.g., ASSIGN: Vehicle1[1].HomeNode = BasicNode1 or ASSIGN: Vehicle.HomeNode = BasicNode1 if the vehicle of interest is associated with the token executing the Assign step). The 'Initial Node (Home)' property is simply the initial value assigned to that node reference state variable of the vehicle or worker. I'll have the property description of that 'Initial Node' property updated to make sure to note the state variable that can be dynamically assigned to change the home node location.
  9. Adam, just a note that for a task sequence, based on your feedback on the Forum we have prioritized an enhancement that will allow you to use either the sequence numbering scheme that we currently support or an 'Immediate Predecessors' field to define task precedence. For your network diagrams, seems like you will be more comfortable going with the Immediate Predecessors field approach and for each task just listing out the predecessor numbers.
  10. Adam, just a note that for a task sequence, based on your feedback on the Forum we have prioritized an enhancement that will allow you to use either the sequence numbering scheme that we currently support or an 'Immediate Predecessors' field to define task precedence. For your network diagrams, seems like you will be more comfortable going with the Immediate Predecessors field approach and for each task just listing out the predecessor numbers.
  11. Go to the entity instance placed in the model and check the Population -> Initial Number In System property. Sounds like that property probably has a value of '1'. So that 1 entity is being initially created and then your Create step is creating 5 more.
  12. The Operation & Activity constructs are only supported for entities located inside a fixed processing location such as an object modeling a 'Workstation'. While an entity is traveling on a TimePath, you can execute some process (using an Execute step) or a task sequence (using Task Sequences and StartTasks step).
  13. Adam, yep, the sequence numbers that Glen posted above will do that second flow diagram that you mentioned. Task1 = 10 'Task1' must be finished first before any other task may be started because its primary number of '10' is smaller than any other primary number in the sequence. Task2 = 20.1.1 Task3 = 20.1.2 Task4 = 20.2 Once 'Task1' is finished, you can start all of the tasks with primary numbers of '20' in parallel. Task5 = 30.1.1 You can start 'Task5' once 'Task2' is finished, because it is a higher operation number of '30' that is on the same exact task substream. In other words you can do a 30.1.1 after 20.1.1 is finished. Task6 = 30.1 You can start 'Task6' once 'Task2' and 'Task3' are finished. Because then you will have finished all the tasks with sequence numbers starting with '20.1' (finished all tasks with lower primary numbers that are part of the 'XX.1' substream including any nested substreams). Task7 = 40 This task has the highest primary number so can be started once all other tasks have finished. ---- As I said in my first post, the task sequencing number scheme that we provide is very flexible and should be able to handle any flow diagram that you come up with. And the approach is particularly friendly if tasks are being defined using a table data approach. Some time down the road, hopefully we'll get a chance to provide a visual flow chart editor that just auto-enters task sequence numbers in for you. Until then, once you get the hang of how the numbering scheme works with a few examples, hopefully not too difficult to pick up. I think the basic rules of the task sequence numbering scheme are also described in the help documentation.
  14. Here is a sequence numbering scheme to do the above task flow chart that you pasted. the task sequence numbering scheme that we support is very flexible and very friendly for defining a task sequence in a data table, and you can do as many nested task substreams as you like, but I agree that it can take a moment for how the numbering scheme works to click. At some point, agree it will be nice if we can provide a visual drawing tool to draw the sequence and the sequence numbers are entered automatically. But hopefully once you understand how to number your first flow diagram above, then won't be too difficult to do any of your other task flow charts that you have. Task1 = 10 Task2 = 20.1 Task3 = 20.2 Task4 = 20.3 The above says do Task1 first, then do Task2 (task substream '1'), Task3 (task substream '2'), and Task4 (task substream '3') in parallel. Task5 = 30.1.1 Task6 = 30.1.2 That says to do Task5 and Task6 when Task2 is finished. Basically, to do a nested task substream, a task numbered 30.1.2 is saying 'nested task substream '2' of task substream '1'). Task7 = 40 (you won't do this task until all tasks are finished - is the last task)
  15. 1) Add a state variable to you model that is the switch control variable. For example, add an integer state variable named 'MySwitchControlVar'. 2) Specify the variable that you created as the Switch Control Variable on the Flow Node. 3) On each of the possible outbound links that can be chosen, in the Selection Weight expression for the link enter an expression like 'MySwitchControlVar==1' which would say for that particular outbound link, send flow to that link if the switch control variable has a value of '1'. 4) Add your own state assignment logic to assign that switch control variable a new value whenever you want to 'switch over' to sending flow to a different outbound link from the flow node. There may be a SimBit (a small example) installed with Simio that illustrates the approach. The description text of the Switch Control Variable property also provides some of the same information that I provided above.
  • Create New...