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!

Click_Here_button.png

New Software Release

Our latest release, Simio 11, is here!

CWatson

Members
  • Content Count

    308
  • Joined

  • Last visited

  • Days Won

    1

CWatson last won the day on November 20 2018

CWatson had the most liked content!

Community Reputation

1 Neutral

3 Followers

About CWatson

  • Rank
    Senior Application Engineer

Converted

Recent Profile Visitors

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

  1. Within a Server, Combiner or Separator object, you can specify the Process Type as 'Task Sequence' allowing you then to define any number of Processing Tasks for that Server, Combiner or Separator. The processing tasks can be serial or parallel tasks. By using parallel tasks, for example, with a different worker (nurse, PA, Doctor) required for each parallel task, the tasks are done independently, but can be done at the same time. Parallel tasks can be specified using the same Sequence Number (see Task Sequence and Task Sequence - Processing Tasks sections of Simio help). So, for example, you can have the processing tasks within a Server all have a sequence number of 10 (meaning parallel). One of them requires a Nurse for X time units, another requires a PA for Y time units and the other a Doctor for Z time units). The patient doesn't leave the Server until all 3 tasks are completed. However, if the Nurse is available to do his/her task, they will start. Likewise for the others. And the workers can move on to other tasks at other Servers (patient areas) as well when they are done.
  2. In Sprint 191 +, you can right click on the existing path and select Change Starting Node or Change Ending Node to leave the drawn path, but change the starting or ending locations.
  3. Without seeing the model, its likely that you are selecting the parallel machine using a probability in the Selection Weight of the path from Source to one of the 4 parallel servers, or using a Random selection rule to select from the list of parallel servers. In the Planning tab, typically when we see all jobs sent to the first of multiple parallel machines, this is why. When running the 'Create Plan', Simio will run everything with expected values (distributions, etc.) INCLUDING any routing logic (selection weights / random selection rule). If this isn't the case, please attach a copy of your model as additional information for us to review.
  4. The worker, by requirement, has a capacity of 1. The initial number in system (population) of the worker can be set to greater than 1, meaning you will get a number of capacity 1 workers to be used independently. For example, if you have FirstShiftWorker, you can specify the Initial Number In System (under Population grouping of properties) to 'X', let's say '4'. You will then have a FirstShiftWorker[1], FirstShiftWorker[2], FirstShiftWorker[3] and FirstShiftWorker[4], each with independent statistics/ location/ tasks, etc. This worker can then be referenced in a Server with multiple capacity and each worker will be seized separately when required.
  5. You can still use your various 'lists' of servers in SetA, SetB, etc.). You still will need a Sequence table with the Sequence Destination property column. This tells Simio within the Sequence table the destination to route. So, within your Facility window, add a TRANSFERNODE before each 'set' of areas, let's say named SetA, SetB, SetC, SetD. Then, within the TransferNode, use the 'Select From List' for Entity Destination Type property and specify the appropriate list (SetAList, etc.). Then, within the Sequence table, route to the TRANSFERNODE that uses the particular list - so in the above, you would have within your Sequence table, SetA, SetB, SetC, SetD and Input@Sink. Within each of your Server's output nodes, specify Entity Destination Type as 'By Sequence'. You may wish to look at the example named SchedulingDiscretePartProduction to see the layout of the nodes within each section and the Routings table used (this is a much larger example, but the concept of the nodes, the sequence table and in that case a RoutingDestinations table (which is like a node list in Lists) is basically the same.
  6. Check to make sure you are connected to the internet. Based on typing in Dallas, TX and selecting OK, you should get the pull down list of other alternatives as well (or type in a specific street address). What Simio sprint version are you currently using? The below is what appears for me when using Dallas, TX (after I first went there, then typed in location again, got the following pull down list).
  7. You could put the two (or more) separator input nodes on a list and then at the Server output node, select from the list of separators - then you could use the Selection Condition property to select between those that are actually available, using either a table value or something like 'Candidate.Node.AssociatedStation.Capacity' expression checking the status of the separator capacity (if offshift).
  8. Within each of the Source objects, you would specify (within the output node of the Source) that a worker is required to transport the entity(s) to the next node. The decision making of the worker is then handled by the worker itself. The worker has several decision making options - first of all, for transporting, the worker has Transport Logic properties, one of which is the Task Selection Strategy property, which can be set to First In Queue, Largest/Smallest Distance or Largest/Smallest Priority. In addition to that, under the Worker's Add-On Process Triggers properties, you have the Evaluating Transport Request process that can be used to accept or reject any transport request. You can add custom logic, a distribution, etc. within a Decide step in that called process and simply then accept (Token.ReturnValue == True) or reject (Token.ReturnValue == False) a request (which is the first in the allocation queue, as ranked as noted above). You can use the requesting entity location within the decision logic as well.
  9. Please either attach a copy of the model you are referring to with this post or send the model with description of problem to support@simio.com. Thank you.
  10. You can do this in several different ways. If you simply have 2 entity types, an easy way to do it would be with a Math.If statement within the Processing Time property. For example, Math.If(Is.Red, 2, 4) - given you had 2+ entity types, the ones that have the entity name 'Red' would process for 2 minutes (or time units specified), all others would process for 4 minutes (time units). You can have multiple Math.If statements (Is.Red,2, Is.Green,4, Is.Blue, 5, 6), for example. Of course, you can use more complex values than 2, 4, 5 for processing times. A more flexible way would be to store the information within a table. That is, have a data table that includes the names of all the entity types in an Object Reference type (Entity) property. Then, within that column, set the Auto-set Table Row Reference property to 'True'. This way, when an entity of a given type is created, it has a reference to the row associated with its name automatically. Then, have another column of type expression (so you can specify a distribution, etc.) which includes the server processing times for each entity type. Then, within the Server, reference TableName.ServerProcessingTimeName as the processing time.
  11. If the entity has a SetRow assigning the row to 1 in TableA, then toget to column1 (you already have a pointer to row1 via the SetRow assignment) - you would simply say TableA.ColumnName. Simio will know that it should use row1.
  12. You may wish to have a table listing each of the servers in the assembly line. Then, within the Object column (specifying the name of the server), set the Auto-set Table Row Reference property (under Advanced Options for an Object Property) to 'True'. This will automatically set the row reference to the row associated with the server in the assembly line. Then, you can have MTTF and MTTR columns that you refer to for each server and simply reference the table/column, such as ServerTable.MTTF or ServerTable.MTTR within the server's themselves.
  13. You cannot control the entity id number yourself, that's internally controlled. However, you can use a model state variable / model entity state variable to do something similar with your own count, based on the entities generated. When an entity is created, simply assign the model state variable == model state variable + 1. Then assign ModelEntity state variable to the model state variable.
  14. You could use a vector to store the entity locations - you'd have to first give each entity a unique entry into the vector - thus the first entity into the system would use vector[1], etc.. This would only be a reasonable option if the number of entities (trucks) are fixed at a max reasonable number (10, 100, etc.) so the vector could be sized. Efficiency-wise, you may wish to update the entity locations at nodes, as opposed to every x seconds. If you update every x time units, you would need to first use the Search step to search the entities, getting a token for each entity. The vectors can be updated using the entity index into the vector (perhaps store as modelentity.priority if not using priority for any other reason). ModelEntity.Location.X can be used to access the entity location. There is a SimBit titled FindAMinimumState value which describes how to use the Find step with a vector variable. Another option would be to use an output table (depending on your Simio license version) to store/update information on the entity/location. If you have a base model that you have problems running and can share here, please do. Otherwise, send a base model to support@simio.com.
  15. CWatson

    tagging Entity

    Yes, let's say your entity is created using an Orders table, where the entity has a 'row' in the table associated with it (with arrival time and other data, presumably the customer ID as you mentioned from the excel file). Then, within the ModelEntity object, find the Display Name property (under Advanced Options). The table name/column name can be referenced within the Display Name (and then the Display Name, ModelEntity.DisplayName) referenced from the Dynamic Label Text property - see the SchedulingBicycleAssembly example under Support ribbon, Examples. Then, when the entity moves around the maintenance shop / manufacturing floor, etc., it will be labelled with the information associated with the entity (ID) from the table.
×
×
  • Create New...