Jump to content

Search the Community

Showing results for 'processing contents'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Well, I seem to have made some progress. I realized I was trying to sort the contents of the station incorrectly. When I started using the "Contents Ranking Rule" the entities in the storage queue lined up correctly. I then found that I could assign a string Element Reference Element state variable "ElRef" to TestStation.Contents.ItemAtIndex(CycleCounter ) where TestStation is the name of my station with a storage queue. This returns a reference to the entity at wherever the cycle counter is at for example, it might find "entity.27" for the current reference. This is where I get a bit confused. I was able to then search the storage queue for TestStation.Contents.ItemAtIndex( CycleCounter)==ElRef. This is the only way I could figure out how to access the existing state values of the entity with reference "entity.27" or whatever as it would be guaranteed to exit the found branch. From that point I believe I can test the states of the found entity to see if it is a good fit to enter the system. If not I can increment the CycleCounter if there are more to check in the prioritized storage queue. My sense is this "should work". But it does not seem as efficient as one might like. I am curious if there might be a more direct way to access the entity's attributes without the search step. Thanks, Jim
  2. Try using ModelEntity.BatchMembers in your processing time expression. I believe it'll work.
  3. Does anyone know how to utilize the memberinput@"combiner" in a process? I tried a process "UnitIdentity" with a decision step "MemberInput@PalletLoad==H1BUnit" to set a real state "UnitTypeID" and a ModelEntity.Picture so I can utilize the link weights further downstream. I placed this in the Processing Add-On for the combiner. I have attached the file. It feels so close to a resolution and any help would be appreciated! Best regards, Alex APS Design 2.spfx
  4. As an update to this, I think I have (at least so far) found something which provides the desired behaviour and will detail below for others. I used the SimBit 'SelectServerWithShortestLine' as a reference. I created a Node list with the inputs nodes at each Sink listed. I created an integer Property to hold the variable which represents the maximum number entities that can go to a sink (e.g. MaxContainerCapacity). On the feeding TransferNode I changed the 'Entity Destination Type' to 'Select from List' and selected the list created in Step 1. Change 'Selection Goal' to 'Smallest Value' and set the 'Selection Expression' to Candidate.Node.AssociatedStationLoad, which accounts for everything en route, in the queue and processing at a node. Therefore, the select goal is to minimise this station load. I set the selection condition to (Candidate.Node.AssociatedStationLoad + Candidate.Sink.InputBuffer.NumberExited) < MaxContainerCapacity. Which is saying only select the Node found in Step 4 if the sum of the station load and the number of entities that have 'exited' the Sink are less than the MaxContainerCapacity.
  5. To acess a state variable of an entity that is being processed at a server (let's call it Server1) you should type the following into the label, assuming there is only a single entity at the server: Server1.Processing.Contents.FirstItem.ModelEntity.Name Mind that you will get a warning if you run with such expression in a label, because you will be at times trying to reference an entity at an empty station. Then, you should expand the expression to: Math.if(Server1.Processing.Contents.NumberWaiting != 0, Server1.Processing.Contents.FirstItem.ModelEntity.Name, "")
  6. Hi Tom, thanks for your help! I've found a solution on my own in the meantime (probably not as sophisticated as yours but it works well). I additionally modelled a small version of the lift itself and created a wait process. The triggering event is "vehicle exits Node X". I used the process for my servers ("after processing"). So whenever a chair exits the node, the gates will open. This is actually quite close to reality where the gate opening interval is not fixed but depends on the speed of the lift and the point in time when an empty chair arrives. All the best, Nico
  7. Hello and thanks for reading, I'm building a model that should replicate how vessels are handled within a port area. Within this area, there are multiple Terminals (servers) and ships (entities) that have to visit any number of terminals. Their processing times at each server vary. With their sequences predefined, I have managed to model this accurately, based on a first come first serve or another dispatching rule. I'd like to implement a dynamic sequence. 1) How can I model a certain degree of freedom in their sequences - e.g. a vessel is free to choose between sequence XABZ or XBAZ, depending on the queue size at A or B at the time of leaving X? However, in reality, these vessels enter the system, draft a sequence that is suitable for their loading plan, and then try to reserve serving times at the various terminals. I have tried wrapping my head around ways to model this, but can't seem to think of a way how. I could create a large amount of state variables for each server, that denotes whether or not a certain slot has been reserved, but that is not suitable for running long simulations. I read on this forum post that I could perhaps use a storage element, and store the reservations in there. How would I go about saving reservation-related information? Should I store that on the barge entity or in the terminal's reservation storage? How should I go about modelling timeslots in itself? 2) How can I model 'future' reservations of entities at the various servers? Finally, if this functions properly, and entities can request reservations at the various servers, I would like to have the servers compare all the requests at a certain cutoff time, and for all the doubly requested slots have it allocate the reservation based on the entities' characteristics. 3) Would I have to store the reservation data on both the entity and the server side for them to both make calculations with them, or is it enough to have them all on the server side, and denote whether they have been accepted with e.g. a boolean property? My apologies for the long post. Do not hesitate to ask for more information. Kind regards, Tom
  8. Every station comes with three events: .Exited, .Entered and .CapacityChanged. So the triggering event of an entity finishing processing in a server is Server.Processing.Exited.
  9. Because we assign the speed of path 3 and 5 to PathXXX.Contents.NumberWaiting at assign3 step of process 1 which is triggered whenever an entity enters node A. As I said in my previous post this expression may not serve your purposes. This is only for illustrative purposes. Here the message is you can increase all existing entities' speed (but all of them at the same time) on path 3 and path 5 whenever the process1 is triggered. Also, you can trigger process 1 by using monitor elements (which seems more suitable for your purposes). For example, using a monitor element you can track the number of entities on each path seperately and whenever this value crosses some treshold value (got congested) you can trigger process1 using monitor element. Note that in your attached model status labels shows how many enitities exist on each path. At the end, change the assignment expression of assign3 step of process1 accordingly.
  10. Simio offers user-defined work schedules in the Data tab. The SimBit ServerFollowsCapacitySchedule or others related to work schedules could be helpful. You can define a Pattern Based Work Schedule, to account for the shifts you described, and modify Server Properties like OffShiftRule (under Secondary Resources) to 'Finish Work Already Started' or 'Suspend Processing' depending on what makes sense for your Model. Adam 
  11. As far as I know you can not accelerate the speed of an entity on any link? you should use tricky solutions to overcome this difficulty. One of the trick is setting the speed of entities to infinity right after entering node a. then changing the desired speed of path 3 and path 5 to some meaningful values. In the attached model this trick is applied. Note that the assigned values (i.e., Path3.Contents.NumberWaiting) should be replaced by any reasonable values. This assignment is only for illustrative puposes. Note that by this way we made the speed of modelentities limitless but at the same time we limit their speed with the speed of paths. you can do any other tricks as well... One of them maybe changing the type of the modelentities right after entering path 3 and path 5 (say path3_modelentities and path5_modelentities) by creating a copy of the associatedobject. Be sure to destroy the original one. And then whenever you need to increase their speed you should search their population by a search step and then assign appropriate speeds to them individually. These are the ones that come to my mind at the moment, but you can find some better methods by pondering. EntitySpeed4_me.spfx
  12. Check my attached model. The entities have random movement speed and paths Allow Passing property are set to False. So slower entities will naturally create a traffic congestion. You could also try to solve this in a more algebraic manner, by setting ModelEntity.DesiredSpeed or Path.DesiredSpeed based on the Path.Contents state. Traffic.spfx
  13. Hello All, I am new to Simio and trying out a simulation of an aircraft component assembly shop. I am using Sequence table for my jobs routing and processing scenarios which is - Source -> Set A (4 servers) -> Set B (7 servers) -> Set C (5 servers) -> Set D (2 servers) -> Sink Here each Set denotes similar workbenches to any of which a job can be routed based on utilization and availability at that point of time. So for routing job based on above criteria from Source, I created sequence table with 'Node list property' (which is list of input nodes on 4 servers of Set A) instead of 'SequenceDestination Property' as required by Sequence table. I want to replicate the sequencing from Source -> Set A -> Set B and so on. But want simio to pick the server of these sets based on my criterion. Unfortunately it is not working as I assume Sequence table need to have specific node as SequenceDestination. I am not sure if I am doing it right or what is correct and way to do it. I will highly appreciate any suggestions to make this happen in Simio. Thank you. -Mohmed
  14. Example: - Entity 1 has a processing time of 40 seconds in "Rohee" and 1 second in "Street Food". - Entity 2 has a processing time of 1 second in "Rohee" and 40 seconds in "Street Food". If Entity 1 enters before to the server "Rohee", I need that Entity 2 waits in "Rohee" until Entity 1 finish his processing time, and then, can move on to the next server. Thank you!
  15. I have created two real states for each entity and depending on the probability based, assigned to each entity a different processing time. I guess that this should work, but now I realized that I have another problem. Before the two servers that I mentioned in the post, I have another server with a lower processing time. It is supposed that Server 2 and Server 1, that have a larger processing time, should create a bottleneck, and I want that all the queue stays in the input buffer of that Server (let's say Server 0). The problem is that the entities that finishes at Server 0, go directly to the server 1, although I specified that the output buffer of the Server 0 is 0, the path capacity is 1, and the input buffer of Server 1 is 0. I even can appreciate how some entities that arrive to the Server 0, if this server is busy, skips that server and pass directly to the next one. How it is possible? I want to create the queue in the Server 0, and then move to the other ones when they are empty, always following a FIFO rule. Thank you so much.
  16. Hi, I want to have a source that creates entities according to a date. But also, I want each entity to carry some information like Code, Processing Time and Type. It is possible to do that? And After, how I can use the information that each entity carry? For example, Each entity has their own processing time (according to the table), how I can use that procesing time in a server? Thanks for your help!!!
  17. Hi all!, would you help me with this? I want to do a discrete simulation of the current situation in a Hospital in the inpatient unit. I have the data of one year of patients, (over 18,000 people) and I want to use that data in the simulation. That would make more easy to model the server processing times, while we will use the real server times and sequences that each patient had, instead to use probabilities and distributions for the sequence and server times respectively. So, I created a table where each row represent a patient with a sequence (which bed he was assigned due to his level of acuity) and the time that he spent in that bed before he was dispatched. The are more times involve, but we can focus in those parameters to have it more simple. So, the table have the patient name (entity) ,bed (sequence) and Length of Stay in the bed (server processing time). I don't know if is possible that when I create each entity, I can assign, based on that table, the sequence and the server processing time for each patient. How I can do that? Thanks for your time and help
  18. Hi, For selecting a available resource from a list of resource you can use a selection expression like 'Candidate.Resource.Capacity.Remaining' and and set the Selection goal to 'Largest Value'. What this will do is, it will give priority to a Resource with highest available capacity ( in this case 1) indicating that a resource is available for seize and seize the available resource. You can use a state variable to track the number of entities that enter the server. Whenever an entity enters the 'Input Buffer' of the server, assign the number of entities present in the buffer and the processing station to a state variable ( Using Server.InputBuffer.Contents+Server.Processing.Contents) and when the entity is leaving the server, decrement the value of the variable by 1. Use a state statistic element to keep time persistent statistic on the state variable. Use Statestatistic in the experiment response to report maximum and average number of entities. If you share this same state and statestatistic across multiple servers, then you will see statistics about ALL the servers.
  19. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! Thanks, Hristiyan
  20. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! This is a repost of the thread from the public forum to allow file attachments. Thanks, Hristiyan
  21. Tricky problem. If you had posted this in a Simio Insiders forum instead of the public forum I could have replied with a model and figures. I would probably take the opposite approach - instead of adding additional "fake" machines, I would consider representing each workcell as a single server that makes use of associated resources for metrology, CNC, and airblast. I'd use Task Sequences to do the sequential processing of each part, then use the associated Loopback feature of Task Sequences to start over with the subsequent parts. There are a number of SimBits demonstrating task sequences. Unfortunately the only one demonstrating loopback (ServerUsingTaskSequencesWithDataTables_Loopback) uses data tables (which complicates things) but you might get the idea. Or you could do a similar approach with process logic steps. If you repost this in Simio Insiders you might get more help.
  22. Hi, In the on-failed event of the server, Search the contents of the processing queue, in the found step place a release step in order to release the applicable server. Directly after that place a destroy step to delete the entity, otherwise you can transfer it back to the start. Hope this helps...
  23. I'm simulating a workflow, now between two servers, there's a delay between them, we could understand it as some out-of-control waiting time or simply travel time between 2 servers. I don't know how to set this travel time perfectly. I tried set 'path' speed, but I don't think it setting that can make the time randomly… because in my situation, the delay processing time can be random. I can add another server called 'delay/travel machine' to solve this problem perfectly, but it just looks ugly and weird… So I'm wondering if there's a better solution for this?
  24. Hi All, It's been a while since I have last used Simio and I have an issue that I think should be simple. I have two entities running on a production line, one gets processed by a server and the second entity type moves through the same server almost like a conveyor with no processing. I can work around this by adding another conveyor around the server, but in real life the product does flow through this server and eats at it's capacity. Is there anyway to set up different processing times for multiple entity types on a server? Thanks, Brendan
  25. 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.
×
×
  • Create New...