Jump to content

dsturrock

Simio Employee
  • Posts

    1,654
  • Joined

  • Last visited

  • Days Won

    53

Posts posted by dsturrock

  1. Simio does not have a distribution for a time series, but there are other ways:

    For example, let's say you are assigning length, but that average length increases by 1 inch each hour. You could use an expression like:

    Random.Triangular(12+TimeNow, 16+TimeNow, 20+Timenow)

    which at time 0 would give you a mode of 16, gradually increasing to a mode of 17 after 1 hour and to 26 after 10 hours.


    If it is not a linear increase, you could put values in a table and at successive times read from a different row in the table:

    Random.Normal(MyTable[CurrentIndex].CurrentMean,5)


    Or you could use a lookup table and put time and value pairs in the lookup table:

    Random.Normal(MyLookupTable[TimeNow]

  2. If you know WHEN you want entities to arrive in addition to WHAT (e.g. PartA at time 1.5, PartB at time 1.8, ...) then put that data in an Arrivals table (a normal table that has an arrival time column) and use the Source Arrival Mode of Arrival Table.


    If instead you want random arrival times with specified parts, use an approach like found in SelectEntityTypeFromTable but use a sequential row number instead of the RandomRow function.

  3. Assuming that you are using the word submodel to represent an independently defined object (say WorkCenter) that will be placed in another object (say Plant). In your WorkCenter, every time you reference a resource that is not defined within the scope of WorkCenter, you must define it as a Referenced Property (right click on the property name).

    In general, you would set the value of that property when the instance of WorkCenter is placed in Plant, so you are "passing in" the name of the object.

    If you KNOW the object name ahead of time, then you may get away with a trick... when you define the Referenced Property, give it a default value of the object defined in the parent (Plant) object. This will display as an error in the WorkCenter object, but that error will be resolved when WorkCenter is placed in Plant which contains the object.

     

    UsingObjectDefinedInParentObject.spfx

  4. You made this a bit too complicated.

    I just used a resource (Resource1) who's capacity (1) represents the number of trucks allowed in that zone - I seize before it can enter the zone and release just before it leaves.

    That might be enough, but since you also want to hold that truck until all its pallets are processed, I added a Wait just before the release. Every time a pallet leaves it triggers this wait to check the condition. When the last pallet has left, the Wait is cleared and the release is allowed.

    No custom events are needed.

    wait.spfx

  5. There are lots of early adopters doing this (or starting to do it) because Simio is ideally suited for SmartFactory operations. Here's a short summary from a WSC presentation.

     

    The Smart Factory is referred to as the 4th industrial revolution:

    --Mechanization and power to reduce reliance on humans.

    --Mass production, assembly lines, and electricity to improve production efficiency.

    --Computers and automation to control individual machines and help plan production.

    --Cyber-physical systems where:

    ----components are fully connected,

    ----monitored, and interfaced to a virtual model of the system

    ----predict and improve the performance of the system.


    The Industry 4.0 initiative is driven by four key design principles.

    --Interoperability: machines, devices, sensors, and people connect and communicate with each other via the Internet of Things (IoT).

    --Information transparency: real time sensors connected to the virtual factory model provides system-wide visibility of the factory status.

    --Decision support systems solve urgent problems on short notice (e.g. rescheduling after a machine breakdown).

    --Decentralized decisions: System components perform many tasks as autonomously (e.g. machines that self-diagnose problems and request repair.


    The interconnected components of the Smart Factory automatically record detailed performance data that can be stored and analyzed to fine tune and improve the system performance. Data analytics can be applied to this information to discover and communicate meaningful data patterns and trends. Although data analytics applied to past data is useful, the real power comes from connecting the real-time component data to the virtual model of the factory. The model can then be used to project forward in time and reveal and address problems and issues in the production plan before they occur in the real system.

  6. The Extras Library has now become a formal part of the product, e.g. it is automatically installed and loaded. Postings here prior to 2021 may reference older or obsolete versions of the library.

     

    The Extras Library contains:

    --a simplified and easier to use version of our Cranes library

    --an Elevator object for modeling a multi-floor single elevator or bank of elevators.

    --Lift Truck with a lifting mechanism that travels to a specified height

    --Rack object to store entities at customizable heights

    --Multi-axis Robot object that picks and places with automatic path calculation

    We are anxious to hear your feedback on using the Extras library.

  7. Ever want to track statistics periodically, like by hour, shift, day, or week? I created this pair of objects for a customer about a year ago, then forgot to do anything with it. Perhaps others will find this to be useful.


    The solution is two objects, one for states and one for tallies, that allow you to flexibly designate periodic statistics on any interval, can skip periods (like off shift times), provides an optional plot, and provides the choice of logging or output file.


    I frankly don't recall how complete this was when I left it, but I'm sharing it in the hopes that others can benefit from this work and possibly even complete/improve it and reshare with others.

    Capture.PNG.f2654259eaf5baa50953047e9727e53d.PNG

    Enjoy! :)

    PeriodStatisticObjects.spfx

  8. If you want a solution to a problem, it is best to post your questions inside Simio Insiders where we can post files with the response.


    I tried what I think you are doing and it worked fine for me, aside from the fact that the expression you used creates 1 arrival per event between 6-11am, 2 arrivals any time after that (because 10:59:59 has an hour that is still <= 10).


    I used your expression in the Entities Per Arrival property, created entities hourly on the half hour, and it produced 1 entity at a time until 11:30, when it produced 2.

  9. They are similar statistics except that the first statistic looks at the resource state as it changes over time ... successive "busy" states with no state change between them (e.g. there is no idle time) are considered to be a single busy state. For the second statistic each entity is recorded separately.


    For example, if you have a model that creates exactly 2 entities at time zero and has exactly one minute of processing time, then

    [Resource] > Resource State > TimeProcessing will have a single observation of 2 minutes

    and

    Processing > Holding Time > Time In Station will have two observations of 1 minute each.

  10. In my model, one of the servers has working shift from 10am to 10pm. I would like the server works 1 more hour (from 10pm-11pm) if there is an entity in the server inputbuffer queue. Could you please give me a hint how to check the server inputbuffer queue for a specific time (10pm-11pm every day)?

    One approach is to put logic in the "Off Shift" add-on process logic that would check to see if the queue has contents, and if so, set the server capacity back to 1. The you would need to wait an hour (probably Execute another process) and reset capacity to 0.

     

    Also, I would like to have the detail results of my model for each entity based on the time for each server or node in excel because I run the model for a long time. Could you please let me know is there any option in SIMIO to provide the detail information in excel?

    If the pivot table already contains what you want, then use the Export button to export to Execl.

    If not, call the ExcelWrite step from a process at the right time to write out all the information you need.

  11. Can the Cranes object in the Extras library be sub-classed in the same manner as the Bridge and Underhung cranes? I am running into issues with 3-crane deadlocks in the Cranes object which is why I was looking for something else which could be sub-classed and modified.
    Yes they can. But perhaps you won't need to -- the Cranes in the Extras library do a much better job avoiding deadlocks.
  12. I would consider what would happen in the real system, and then model that.


    Assuming in your described situation that the order quantity (5) is not enough to bring to the desired reorder point (32), I would think the real system would:

    1) Immediately place enough orders to achieve or exceed the minimum reorder point (e.g. place at least 2 orders of 5). That would be done with a Decide before placing the order(s)

    -or-

    2) Place an order and when that is received, Decide if I have met the reorder point. If not, immediately place another order. Repeat.

  13. The "brute force" way is to set up 32 controls (16 half hour sessions x 2 positions) and let OptQuest vary those controls to seek optimum. To do this you would manually create 32 properties and then manually type those property names into the value field for each half hour of a day pattern.


    A more elegant, but time consuming, way might be to come up with some strategies for varying the workers (e.g. you probably would not vary from 1 to 5, then back to 1, in 3 consecutive periods) and them optimize which strategy is best.

×
×
  • Create New...