
gocken
Members-
Posts
369 -
Joined
-
Last visited
-
Days Won
32
Content Type
Profiles
Forums
Events
Gallery
Downloads
Everything posted by gocken
-
Right click on conveyor click "change ending note" and left click on whichever node you want.
-
Varying Path Length and Moving Servers
gocken replied to DavidMann's topic in SI General Discussions
You can place some enough transfer nodes at different distances and directions (In freespace it will be hard to stop modelentity object and seize the server object. This can be quite challenging task). Then you can randomly send the modelentities to one of these transfer nodes (This is for sending entities some vector away from the source). Then, define an entered add-on process trigger for each transfer nodes and place a move step onto this add-on process. In resource movement request of this step define object type specific (or from list), object name any server (or from list you set), and destination node as the transfer node itself. Then, you can try seize step to or transfer step to send the entity onto server object. You have to try some options. -
I've include my suggestion in the model attached. I assigned low priorities to each vehicle types. Then, select vehicles according to these priorities. It seems it works? SmallModel.spfx
-
I do not know the details but if it is appropriate set "must simultaneously batch" property as true under the batching logic section. Then, add a "Release Batch Early Triggers" and set "Trigger Type" as "Event Based" and "Triggering Event Name" as Timer1.Event. Then, define Timer element and trigger it at exactly 9:00 AM.
-
You should use data tables for creating such a large number of modelentities. You can populate your data table by binding it to an excel file or a database etc.. Then, examine the "Inventory Replenish" related simbits for how to increase and decrease inventory levels of each part. You can determine specific inventory replenishment policy accordingly as well.
-
First rank the vehicles accoding to your preference in your node list (My vehicle first then the standard vehicles). Then, setting "reservation method" as "reserve closest" and "selection goal" as "preffered order" and "selection condition" as "Candidate.Vehicle.ResourceState!=1" will work for you.
-
Can you limit the amount of entities in the simulation?
gocken replied to jush198's topic in SI General Discussions
Drag and drop an ModelEntity into the facility layout. Then, select ModelEntity and see "Maximum number in system limit" property under "Population" section of properties window. Set this property as how many entities you desire throughout the simulation run. -
In fact everthing is ok except you did not placed the subclassed sink objects (mysink type objects) into the facility layout. Probably you forgot to drag them from the project library (at the left bottom window) to the facility layout. I attached the fixed version of the same file. Do not hesitate for asking more. cutoff.spfx
-
Hi Nadere, I assume that in "Data" tab you have defined a data table. Select "Data" tab. From "Schema" ribbon insert a "State" type data column from by selecting "Property" dropdown list. Now, you should be able to include "Sink.StaNumberEntered" state variable. Do not hesitate for asking more.
-
In the attached model, entities are dispatched according to some "Mysink" objects' inputbuffer entered cutoff values (predetermined values). I intentionally put these cutoff values values in the table to show how you can use state variables inside a table. Also, I intentionally place some steps seperately to increase understandability of the model. Due to having limited time I did not test the model. You can fine tune the model and develop it in a more compact manner. Time In System considering cutoff values.spfx
-
A sample is attached. Time In System.spfx
-
First, you should define a "NodeReferenceState" on ModelEntity. After finding the appropriate sink to send use "set node" step to assign the found sink's input node as the destination node of the entity (ModelEntity.NodeReferenceState=input@sinkx). Then, do not use transfer step. Instead, set the entity destination type property of source object as specific and also set node name property as ModelEntity.NodeReferenceState. By this way each entity will find its own way via the links you defined.
-
No, it seems your add-on process is working correctly. How do you transfer the entities to the sink? It seems there is not time advancement between creation and disposing the entities.
-
place a delay step with a constant time (for example 5 minutes) in the same add-on process and examine the results?
-
Search member in batch with lowest value for state variable
gocken replied to Christa's topic in SI General Discussions
After being sure that you have at least one member entity (you can check this by using a decide step or an auxiliary expression within the search step). Then, set search steps match condition property as "Math.Min(xxx.NumberOfRollContainers)". And, place an assign step at "found" branch of search step. At this step you can change its value. -
You can define "NodeInstanceProperty"s or a "NodeListProperty" on modelentity. If you define "NodeInstanceProperty"s on modelentity you should assign entity's sequence seperately in upper level model by assining particular sequences to each "NodeInstanceProperty". If you define a "NodeListProperty" on model entity you should assign the a list of sequences (which is previously known and exist in upper level model) to this "NodeListProperty". It seems you should define "NodeInstanceProperty"s and select appropriate servers dynamically and assign them to each "NodeInstanceProperty".
-
You can sum the "NumberOfRollContainers" whenever a member entity enters the combiner object by using "on member entering" property under "state assignments" section. Then, set this total to the "TotalRollContainers" state variable of the parent objet by using "before exiting" property of combiner object.
-
You can predetermine the length of a timeslot then the number of timeslots. By multiplying length of the timeslot with the number of timeslots you can calculate the total simulation time. At the beginning of each timeslot you can trigger a process by using a timer element for performing any task within that timeslot. Note that, you should set the iterval lenth of the timer element to the legth of each timeslot.
-
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.
-
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
-
Trying to calculate carbon emissions from truck entities
gocken replied to TweeMansLeger's topic in SI General Discussions
The best way to collect such an statistic which belongs to modelentity's is to assign it to a model state variable. You should determine when to collect them appropriately. In your case it seems you have just two points to collect this statistic. 1) when it arrives its destination(s) (total loaded delivery distance) 2) before destroying it (total loaded and unloaded delivery distance). AttachedLabel (2).spfx -
There may be some calculation errors in your model. Pls compare the attached model's results with yours. Apoteksimulering (1).spfx
-
Define incoming patients' admission to hospital dates as a "DateTime" Property in your table. And set "Arrival Mode" of Source object as "Arrival Table". Then, set arrival Time Property as "DateTime" property you defined. This will provide creating entities according to their admission to hospital times.
-
For data tables approach examine the model: https://drive.google.com/file/d/1evwTU-ggxEVCrrksClctNoHhMakEhi4V/view?usp=sharing