Jump to content

Search the Community

Showing results for 'Run initialization'.

  • 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

Found 13 results

  1. Hi all! I am simulating a facility with nearly 40 servers, each one starting with some entities in the input node at initialization and having a different capacity. Each server has a 0 input buffer capacity. My entity creation is currently set to having an interarrival time to be 4.33 weeks (1 month) with a random number of entities created. Currently, it runs 24/7 and does not care about the time, but I want to incorporate that. How can I make it so that the entities arrive once a month, let's say the first Monday, at 8am? How can I make it so the servers are only processing between 8am and 4pm Monday - Friday? The work schedule doesn't seem to work for me, but I could be doing it wrong, since I have a 0 input buffer, which I can't change as it's part of my routing logic for overflow. I would be happy with using timers or a process logic if someone can explain it to me. Ideally, the entities only arrive when it's during the working time, and the entities remaining after 4pm are just put on hold until 8am the next day. Thanks in advance!
  2. I would like to refer to the BicycleAssembly Simio Simbit as I'm using it as a reference to set up my own model. As I set the Initialization step of my model, I read the Orders table row by row, using a global variable called CurrentRowNumber. However, when an order entity is created, I would like to keep track of the row in the Orders table that entity is created from with a model-entity level state variable. However, I'm not sure how to do. I cannot just assign the value of this ModelEntity.State = GlobalCurrentRowNumber as the GlobalCurrentRowNumber continuously changes as the simulation runs. May I have some suggestion as to how to do so? Thank you
  3. Hi jord41, Simio loads the bound tables once during the initialization in the Simio tables. Data access requires a lot of computing time. (More for writing as reading). I see that you only have 1 column of integer values. My recommendation is that you do not import the table into a Simio table. It's best to create an integer or real state of type vector. Then you use e.g. the Read-Step or the ExcelRead-Step. In conjunction with a timer or the sample example loop of GFurtado you can load the data at intervals. I think that this could be a solution. At least that's how I would do it if I had to work with real-time data. Normally, such real-time data is written to a SQL database by a PLC or something like that. Then you can use the SQL steps anytime in Simio. Best regards Pascal
  4. There are several ways. One very efficient way to to simply hard code the row number for each object. So if Server7 happened to be a type of machine2 (in row 2) its process time expression could be machineProperties[2].ProcessingTime. A bit more difficult is to use a custom server (call it myServer) that has a myRow state. On initialization each myServer would search the table to find its row and store that in its myRow state. Then, its process time expression would be machineProperties[myRow].ProcessingTime.
  5. Hello everyone, This question has probably been answered before but i could not find any post making mention. I would like to know if it is possible to edit the position (x, y, z) of a given object via some kind of procedure or using some state to govern these values. Specifically, we would like to assign specific coordinates to nodes in a graph (so we know for example all links are scaled correctly with their size) and we would like to get the positions of the nodes from an external data source (Excel, .txt files). We would only touch these values at the beginning of the simulation (as initialization). thanks
  6. If you want to change the capacity of the server at Initialization, create a control property and reference this control value on the Capacity property of each Server. If you want to change the server capacity during the run Assign the variable ServerName.CurrentCapacity the new value. If all workers are always working at the same server, you may want to just batch the orders together then seize the correct number workers (actually, you wouldn't even need to increase the number workers). If one of the above solutions does not help, please attach a model to clarify what you are trying to do.
  7. Hi, I think the model is using the table to generate entities and assign processing times. In the data table there are couple of rows with PO_Sequence value of 0 and associated processing times with these rows is also 0. So the model is creating all those entities on initialization and all of those entities have an associated processing time of 0. If you increase the maximum number of entities then you can observe that entities are being created and processed based on the table. Thanks,
  8. Hi, It's the first time I'm working with the flow library. My question relates to configuring a flow of two liquids that come from a single source, but may be of two kinds (different densities). I would like to have one table, describing the properties of the entities, and another table, having one field as a model type, and another one as the weight limit in the flow sequence. So, basically Table1: --Entity--- ---Density (kg/cubic meter)--- ... some other props TypeA 5000 TypeB 10000 Table2: RowNumber (not a field, just for sequence) --Entity--- ---Amount (cubic meters)--- 1 TypeA 10000 2 TypeA 20000 3 TypeB 30000 4 TypeB 25000 5 TypeA 10000 6 TypeB 12000 7 TypeB 10000 I need to make pauses between the sequential flows of different (or the same) liquids, in the order presented in 2nd table, but I believe, I'll figure out how to achieve this. The question is - how do I configure the source? I need to reference both tables, since I need to limit certain values by weight in the source, but have input in volume. I also have some other entity properties that I would need to access further in the simulation. They are in Table1, which is the descriptive table, not the one used for initializing the flow source. What I tried to do - is 1. Specified the entity type as a referenced property from the Initialization table (Table2) 2. I created the RunInitialized trigger for the flow source to SetRow to number 1 (I will further increment the rownumber - if there is a better solution, please advise) 3. I tried to limit MaximumVolume by accessing another table - and here I'm stuck. I need to lookup Table1, but not by id (integer), but by the entity type. So, the lookup table seems not to fit here. Please advise of this design, how do I lookup in a Table1, when I have an entity of known type.
  9. It is hard to troubleshoot a model without knowing the system under study and what you are trying to do. That being said, there a couple of things that jump out at me. First, I would recommend testing your logic with a trivial data set, so that you can see what is happening. For example, did you know that you are creating two material source trigger events with the first order? The worker parks itself at output@Source1 on initialization. When the order creation logic starts and a purchase order is released, the worker transfers from the parking station, into the node, and on to free space. That triggers the “ReleaseMaterial” process, which starts the next material release ahead of its scheduled time. Also, the arrivals table is not sorted in date order. That is not a problem for Simio, but it is a problem for your auto-increment logic on the Material Source. For example, the first order actually occurs at 6:01:46 (PO 122137) which is at line 21 in the arrivals table. However, the materials source points that created entity at row 1, so the wrong volume and wrong entity type are created. Again, I would start testing your logic with a very simple data set to see if the model is behaving the way you expect. However, before you go down that route I might suggest re-visiting your conceptual model and model approach. The approach you have started here relies on the creation of more than 800,000,000 entities over the model run . As a sanity check, the default max number of entities (which can be overwritten) is 2500. Creating that many entities (and associated tokens) will require a large amount of computing resources. Even if you verify the model is behaving the way you intend, I can pretty much guarantee you will have performance issues with the current approach. Once you have decided on a tractable approach and have started modeling, there are several built-in tools to help with verification and validation: the trace window and the profile window. Both of these can be used to figure out what is happening in the model—the profile window is particularly helpful for identifying model performance issues. -Adam
  10. The property design of the Flow Library Tank object, for user simplicity, assumes either a flow contents unit type of 'Volume' or 'Weight'. The tank's initial capacity, as well as the tank level mark locations, are then specified in either volume or weight units. The tank was designed this way under the assumption that normally a user has a tank capacity (and level marks) specified in either volume or weight. Not both and not with two distinct volume and weight capacity constraints at the same time. If an advanced user wants to model a Flow Library Tank object with both volume and weight capacity limits, that of course is still possible. Simply assign the TankName.FlowContainer.CurrentVolumeCapacity and/or TankName.FlowContainer.CurrentWeightCapacity state variables using an Assign step in process logic (perhaps in run initialization logic or can be dynamically during the run at any time). All the Flow Library Tank's properties are doing is on run initialization setting one of those capacity constraints to the specified value and then the other capacity constraint to 'Infinity'. But you can re-assign both capacity constraints to your own values in logic if you want. Using those provided state variables.
  11. Hello all, I’m having a tough time modeling a dynamic routing priority situation. I have entity instances that I would like to route to one of N servers. I currently have node lists that I use to route out of a transfer node per entity instance (actually, I have a list property defined on my entity, and the transfer node’s repeat group references ModelEntity.NodeListProperty). This seems to work well, but now I would like to embellish the model so that the priority can change on a given date. I already have logic to detect the date change—my question is how can I reference a new node list for each entity instance? Potentially complicating the issue: I have an additional requirement that the routing priorities be tied to an Excel input file. Lists cannot be bound to data (a lacking feature, in my mind), so my node lists are actually references to table cells that hold nodes. For example, NodeList1 = I am flexible on the table structure required to meet the new feature of changing to a different set of nodes. I tried using a state variable to point to a different set of rows in the table (i.e. NodeList1 = ; IntState increments on each priority change). However, it appears that the list property gets initialized for the entity population on model initialization (makes sense) instead of when the entity gets created. Also, there is not an option for a list reference state variable. I also considered having multiple list properties on each entity… but how do I dynamically change the node list property on the transfer node’s routing group? So, any thoughts? Thanks! DynamicRoutingPriority.spfx
  12. Arrays can be dynamically sized to match a table (on initialization). Or you can use Storages (an element) which is essentially a dynamic array of objects. But lets keep this thread on topic.
  13. Simple approach: Take advantage of the fact that each model has an OnRunInitialized process that is called at the start of each run. --Create a table that contains all your initialization data. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the OnRunInitialized process to search that table, create the entity(s), initialize the entity, and transfer it to the correct location. Look at the Simio Example (not SimBit) named RPsixample for an example of this approach applied to a simple scheduling model. More comprehensive approach: Take advantage of the fact that each object has an On Initialized add-in process that is called at the start of each run. --Create a table that contains all your initialization data identified by object instance. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the On Initialized process to search that table for a matching object instance, create the entity(s), initialize the entity, and transfer it to the correct location. This can also set object characteristics as well, such as status, capacity, failure data, learning curve, … While this could be used by simply specifying the add-on process in each object instance, it is even more powerful if you create a custom object that includes a custom object-specific initialization process.
×
×
  • Create New...