Jump to content

Search the Community

Showing results for 'combiner'.

  • 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. I’m representing an empty container deposit, where the containers are stored in different blocks. Gate in trucks arrives to the deposit loaded with containers that have to be unloaded by cranes and stored in the container blocks. In addition, there are gate out trucks that arrive to the deposit to retrieve containers. In the model, the containers are represented as entities, so as the trucks. I use Stations to represent the blocks that store the containers. To understand the logic of container arrival, we have to notice that next to the Station there is a Transfer Node, and when a container enters the Node (through a Transfer step in a Process), is transferred to the Station. To understand the logic of container retrieval, we have to notice that there is a Combiner next to the Station, and when the truck enters the Parent Input Combiner Node, a Process is triggered that searches for the container in the corresponding Station, and then it to the Member Input Combiner. Given that there is one Station for one block of containers, a single Station is used for the arrival and the retrieval of containers. The problem that I have is that in certain occasions, when a container is going to enter a Station, an error occurs and Simio shows this message: “The entity location is in transition state “WaintingToTransferIntoStation” and a new transfer request is invalid”. I don’t understand why this happens, given that in the Node that triggers the Process that executes the Transfer, only a single container enters at a time. Any help is greatly appreciated! Release: 8.136.13569 Model is attached. https://dl.dropboxusercontent.com/u/41163946/ModelPlacillaNewV3.spfx
  2. What about using Combiner object to combine them?
  3. An alternative approach might be using a combiner upstream to the WS to create a fictional entity, let's call it "block", which contains all 3 objects. This way, the workstation process a single entity (the block). All 3 original entities enter and leave the WS at the same time, obviously. Downstream the Ws, you can split the block into its 3 original entities, and it's all done. Meilleures salutations,
  4. Hi, I have different products to be processed on 2 servers and would like to batch 20 units on a pallet using Combiner. I have set a data table with different processing time for the products. Is the server is able to consider the 20 units on the pallet or just the pallet as 1 unit? Thanks.
  5. The Standard Library Source object will always create "Entities Per Arrival" number of entities of "Entity Type". One option is to subclass or copy the Source object and change that behavior. Another option is: --Decrease your interarrival time so they arrive 5x as fast, and set your entities per arrival to 1. --Use a Combiner (or perhaps the object described here: http://www.simio.com/forums/viewtopic.php?f=36&t=1024) to combine 5 entities together to sync them. --Then immediately Separate them so they can flow independently, if that is what you want.
  6. While I'm sure you could do this using vehicles, it sounds like whet you described might be modeled easier by simply having two types of entities: Buses and Passengers. Use the Combiner to let buses pickup passengers and the separator to drop off passengers.
  7. Hi everyone. Is it possible to Combine members and a parent based on more than one state? Can anyone tell me how is this done? If not, what would be the best alternative? Thanks
  8. It depends a lot on your objectives and desired level of detail. --Simplest: Bags are members, passengers are parents, they both show up at a Combiner object. --Better: I might model the carousel as a multi-stop circular conveyor and have entities representing bags come down the conveyer and entities representing customers come to the node to wait for their bags. I would attach an example, but we can only do so in the SI forums, not the public areas (due to spam attacks).
  9. It depends on the details but there exist lots of ways. For example, two simplest approaches from two different point of view: 1) use Combiner/Seperator objects from standart library objects (see related simbits for their use)... 2) Batch/Unbatch steps within processes panel... Also, you can use Vehicle object from standard library (or worker object, whichever you prefer) as if it is a box, and adopt its related properties to your modeling logic. For example, set initial capacity to the number of entities that should be in the box. Also, set its minimum dwell time type property to dwell until full, etc...
  10. Martin - Thank you for the response! I am definitely diving in head first I have figured out how to make the priority properties align but to your point, the Parent Entity won't wait for all Members of that same priority to arrive so as soon as it sees the first, it takes it. Is there a Batch Quantity expression on the Combiner that someone can recommend / or / a combiner property, that will make it wait for the priority to change of the entities in the queue and then take all before that point. or something similar? Thanks! David
  11. David - Glad to see you are getting your hands dirty with Simio. The problem in your model is that you have the Source 2 set to create between 1 and 4 entities per arrival. Your combiner is set to Batch Qty of 4. So if say only 3 entities are created in Source 2, they (and their matching parent) will never pass through the combiner, since they are waiting for the 4th entity. As a solution I would suggest having either the parent (preferred) or the members carry a reference value to how many batch members are expected. Then use that in the Batch Qty field on the combiner, such that the combiner works with any 1, 2, 3, or 4 batch member sizes. Sincerely, Martin
  12. There may be a few different issues going on here- Firstly Ensure you have input and output buffers, there is occasionally some issues with removing buffers from combiners. Secondly you weren't very clear on what you use your Random.Uniform(1, 4) on. If this is how your calculating your priority on each entity, the issue may be that this distribution is returning real numbers (as opposed to integers) and the decimals differences invalidate your matching condition on your combiner. You may want to Math. Floor, Math.Ceiling, Math.Round this distribution to ensure it gives you whole numbers. Your best bet may be to build a simple model explaining what your trying to accomplish and post it here.
  13. Hello All, I have a single Sources that makes 3 different types of parent entities. When these entities exit their first Server through the transfer node, 3 other Sources randomly create Uniform(1,4) of a New type of member entities. I have changed the priority of the member entities, with a on exit add on process, to be equal to the event number of this happening which matches up with the parent Entities with the same priority. With in the Combiner, I have the matching rule of 'Match Members and Parents' and both Member and Parent expressions of 'Entity.Priority'. I am still pretty new to Simio but can someone please help with why this might not be working?? Both types of Entities just build up in their respective input queues at the combiner and never combine. Please help, thanks! David
  14. My objective is to have entities wait on an input node of a combiner for an event. When the event is fired, the corresponding entity to that event enters the Combiner and does something. That's why I think I need an event for each entity, because each entity is supposed to enter the combiner at different times. Yet, sometimes when the event is fired the entity isn't on the input node of the Combiner (the entity is late) and that is why I need to access (on the ModelEntity) the object where the entity is located (object of the Model). At first I had a global event and entities entered the input node one at a time, but that didn't work because there are situations on which the first entity has to wait and another has to go. I hope I have explained myself correctly :/
  15. I don't know your objective, but having a timer on every entity seems like an inefficient approach. How about instead having each entity added to a Storage when it enters an area of interest (like a Combiner) and remove it from that storage when it leaves that area of interest. Then at any point in time you could Search through that Storage queue and do what you like with whatever you find there (pick the first, pick the "best", remove them all, ...).
  16. To my problem I don't care about the coordinates (x,y,z). I want to know if the entity is on a specific object of the main model (e.g. Combiner) when the timer it fired. I'm thinking the best approach would be to use a process on the ModelEntity model (triggered whenever the timer is fired) with a decide step with something like: Get(EntityPosition); Decide(EntityPosition== Model.Combiner); Till now I've tried to use the currentNode function and the location.parent on a ModelEntity process but without success... Any help?
  17. The Member Match Expression is an expression that gets evaluated for each entity in the member input buffer. The combiner will batch all members that evaluate that expression to the same value into a batch size set in the “Batch Quantity” property. So in your case, you would like to construct an expression that will match one each of two types of member entities. We also need to clarify what you mean by entity types. In Simio, you create object definitions that you can then place, or instantiate, in the model’s facility view. A default entity definition called “ModelEntity” is already created for you. If you would like entities with completely different definitions, you must create new object definitions with all the corresponding properties, logic, and states. However, in your case (and many cases) I think you are interested in different instances of the same entity type. So, we can place three entity instances of the object “ModelEntity” in the facility view and name them Entity1, Entity2, and Entity3. Importantly, these entity instances are all the same type of entity… namely, ModelEntities. However, each instance can (and usually will) have different property settings (the most obvious one being the name). Now, we need to find a way to match the member entities. Again, that is done by way of an expression that will evaluate to the same value for the members we want to batch together. I’ll make the assumption that we want to batch one of each member entity in a first in first out (by entity instance) fashion. One way to do so is to create a state variable on the ModelEntity object definition that we can use to count the number of entities created at each source. Then, we can just match member entities that have the same count value. 1. Create the integer state variable in the ModelEntity definition tab. 2. Set the state value to the number of entities produced at each source upon entity creation. In each source that makes member entities, under State Assignments, set ModelEntity.IntegerState1 to Source2.OutputBuffer.NumberExited and Source3.OutputBuffer.NumberExited 3. Batch the entities: Batch Quantity = 2 Matching Rule = Match Members Member Match Expression = ModelEntity.IntegerState1
  18. Hello, I am trying to combine different types of entities (coming from different sources) using a combiner. Layout: 1. One source connected to the parent node of a standard library combiner. 2. Two sources (each with a different entity) connected to the MemberInput of the combiner. I saw the Simbit but I am struggling with the matching logic for this configuration. I tried: - Matching Rule: 'Match Members' - Member Match Expression: ModelEntity.BatchMembers.IndexOfItem( Entity2) && ModelEntity.BatchMembers.IndexOfItem( Entity3) This is a rather simple problem but I would appreciate a quick hint. Larger picture: Assembly of many parts into a product with each part represented as an entity. Thanks, Michael
  19. There are multiple ways to deal with this issue, so I’ll go over my thought process and show you one way that I think will do what you need. You created several object definitions, which is key in Simio’s object oriented paradigm. However, the difficulty comes in interfacing objects with data and processes in the parent model where the objects are instantiated. One indicator that the full object-orientedness is not being used is the creation of multiple processes at the parent model level that do exactly the same thing, only they refer to different object instances in the model. This indicates that either the process is inherent to the object, and so should be included in the object definition or that the process can be generalized at the parent model level and use states/properties of the object instances. Your model has exactly this scenario with the “ChannelCommunication” processes—they are all exactly the same but just pointing at different Channel instances. Your idea of using the API to place the channels is reasonable, but you run into the issue of not being able to create instance-specific processes, as you’ve found. In your case, you make use of a global state array, so I kept the ChannelCommunication logic at the parent level. This allows us to refer to that state array directly. The approach is to reduce all those processes into one process that can take information about each channel instance to update the appropriate state in the array. I noticed you already have a property called “Position” defined on the Channel object, so we have that data available. Now we need a way to run that process from within the Channel object, so I created a process property on the Channel object called "ProcessProperty1". In the Channel’s process “AssignmentToProduct” I added an “Execute” step before “Fire2” with the value of “ProcessProperty1”. Now, in the parent model, we need to delete all but one of the ProcessXX in the ChannelCommunication group—rename that remaining process ChannelCommunicationUpdate for clarity. Next, we need to generalize the values in that assignment step and remove the triggering event name (we are using the execute step in the Channel definition, so we don’t need a specific event to trigger the process anymore). This is a little messy—there might be a better way to do this. My approach is to make use of the location.parent property available on each object. Through trial and error, I found that the object executing the ChannelCommunicationUpdate process is a Product entity in a combiner object in the Channel object. That means we can access the relevant properties on a Channel via the following expression: Product.Location.Parent.Combiner.Location.Parent.Channel Thus on the assignment step the fields become: Row: Math.If(MODE==0,Product.Location.Parent.Combiner.Location.Parent.Channel.Position,Product.Location.Parent.Combiner.Location.Parent.Channel.ProductCreated) Column: Product.Location.Parent.Combiner.Location.Parent.Channel.Position New Value: Math.If(MODE == 0, PlaceOfREF[Product.Location.Parent.Combiner.Location.Parent.Channel.Position, Product.Location.Parent.Combiner.Location.Parent.Channel.Position] + 1, PlaceOfREF[Product.Location.Parent.Combiner.Location.Parent.Channel.ProductCreated, Product.Location.Parent.Combiner.Location.Parent.Channel.Position] + 1) Now, the ProcessProperty1 on each channel instance needs to be set to that ChannelCommunicationUpdate process. For future “builds” of the model, you can either set ProcessProperty1’s default value to be ChannelCommuncationUpdate or set the property value when placing the object. I think that will give you the ability to create an arbitrary number of channel instances via the API and have the logic apply to each instance. Hope it helps -Adam
  20. I appreciate the quick response. The idea is, ideally, to use one single source object which releases hundreds of different types of entities, each with their own corresponding supply distribution. These different entities would then be combined to a few parent entities for further processing (> assembly process). I understand that one source object can be used to release different entities as I would like (e.g. using a product mix table) but I did not find a way to specify interarrival times between the same type of entity (opposed to interarrival times between different random entities). If I understand it correctly, I would instead create hundred+ sources each connected with the corresponding entities and connect all sources with one single combiner. I was not sure if there was a more intelligent way to do this (e.g. import all entities + corresponding distributions into a table). I hope this explanation helps. Thank you.
  21. I can't tell from a picture the details of what this object can or can't do, but one of the nice things about Simio is the ease of building your own objects to perform exactly as you wish. I look forward to seeing your object in the Shared Items forum. (Another implementation of Combiner is already there...)
  22. A suggestion to improve the combiner design. I find if we want to combiner entity from diffrent routes together, it is troublesome, Have you ever think of similar design Extendsim does? (As attached)..
  23. I always fall back to looking at how the real system operates. Exactly who makes the decision on when to allow a small batch and on what information is the decision based. Once you determine that I expect that you can represent that behavior in Simio. For example: Does the last batch member have some sort of indicator on it? Is there only a fixed amount of time that a partial batch will wait to be completed? You could possibly hold the parent just outside the combiner until the last member of its batch is determined, then tell it (the parent) what batch size to use.
  24. I'm trying to use a combiner to batch together items coming down a conveyer. However, for my process, I may end up a product run with a partial batch that I would like to still batch and create a state called "partial." The combiner will then start combining the next product coming down the line using the standard batching setup. I've searched through the simbits and examples and was unable to find anything similar. Does anyone have any experience with how I might set this up? Thanks! Melissa
×
×
  • Create New...