All Activity
- Today
-
David Parker joined the community
- Yesterday
-
mathani joined the community
- Last week
-
Aidan Wood joined the community
-
OGCDH joined the community
- Earlier
-
HyunHoLee joined the community
-
Stefan Brenner joined the community
-
Anita A started following Please subscribe to forums of interest!
-
You can set the display name property of the modelentity under advanced options to the state variable you have defined so it will show that variable of the entity in the Gannt chart and trace.
-
Select distinct from a table using python scripting
jzhou replied to deod's topic in SI General Discussions
Nice -
I tried proceeding with the method suggested by deod, but when I checked the resource plan in the Planning tab, the naming did not appear correctly. I’m sorry to bother you, but would it be possible to take a look at a sample file if you have one available?
-
deod started following Select distinct from a table using python scripting
-
A very simple approach to do something like select distinct in SQL to return number of distinct entries. For ex. in the following table i want to find how many kitchens are currently being used for Marinara. I was able to extend the pandas example for the new python feature to search through the table and return number of kitchens being used for Marinara. 'PandasSelectDistinct' step lets users define the columns to filter and conditions for filtering. Users also need to define 'GroupList' , column to group by and 'DistinctList' column to count distinct entries. For ex. in this scenario table is filtered on Processed==false and KitchenAssigned == true. Group by ItemName and distinct by Kitchen. Entity triggering the process is 'Marinara' step will return 2. This method can be extended to return actual kitchens being used as well. To define filter conditions use 'Column Name1' == 'Value', 'Column Name2'=='Value'.....etc. I am using model/script from Pands Date Frame from Table on git hub.SelectDistinctFromTable.spfx I have not tested the model extensively. Just a starting point for something I wanted to do for a long time.
-
You can define custom state on entity and use it to name entities. You can use state assignments on source to assign. Every time a new entity is created, increment a model state variable and assign it to custom state on entity.
-
I also checked the OnEntityArrival Process of the Source, but since there is no Step related to entity naming, I could not find a solution.
-
Hello, I created a simple model where a Source generates an Entity that immediately goes to a Sink. When I checked the Trace, I noticed that in Source1.OnEntityArrival, the entity was created with the name DefaultEntity.7. Why does the numbering start from 7 instead of 0 or 1? I know that entity naming can be defined through a Table, but since my model generates more than 230,400 entities, it is very cumbersome to create names one by one. Without using a Table, is there a way to automatically name the entities as EntityName.0 or EntityName.1? Thank you. Trace On entity arrival Process
-
Rework logic add on process issue
ViniciusF replied to m.soomar1255's topic in SI General Discussions
You have to take some care though. Is it possible that entities rework more than once? If it is, the solution above is fine. If it is not you would need to take some care on how you setup your link weights. -
Rework logic add on process issue
ow121912 replied to m.soomar1255's topic in SI General Discussions
Example.spfxHere is the sample file -
Rework logic add on process issue
ow121912 replied to m.soomar1255's topic in SI General Discussions
Hello. To address the issue you mentioned, I recommend the following approach: Create a state in the ModelEntity to store information about defects. In the Facility view, create one Source, one Server, and one Sink, then connect each object with Paths. Additionally, create a Path from the Server’s Output to its Input. Set the Path weight from the Server’s Output to the Sink to 90, and set the Path weight from the Server’s Output back to the Server’s Input to 10. Set the Server’s Output Outbound Link Rule to By Link Weight. Add a Process to the Path that goes from the Server’s Output back to the Input. Configure it so that when the entity enters the Path, the state you set earlier will be updated to 1. Set the Server’s Processing Time to vary depending on the state by using a Math.If expression: Math.If(ModelEntity.variable == 1, Random.Triangular(3,4,5), Random.Exponential(10)) -
jzhou started following How to pause model time and resume on an external signal?
-
Hello, I have a question about controlling model time during execution. Goal At certain decision points, I need to pause the entire model clock (not just a single token/process), wait for an external signal, apply updates, and then resume at the same simulation time. The intended sequence is: Pause simulation time at a decision epoch Wait for an external signal Apply updates inside the model Resume with no time elapsing during the wait Questions Is there a built-in Step or pattern that halts model time (i.e., the whole event calendar) until a condition/external signal is met? If not, what is the recommended approach to enforce a synchronous pause/resume without allowing any other events to fire? Is there an API to single-step (e.g., “run next event”) or “run to time T” so that an external controller can deterministically gate progress? For a custom UserExtension Step, is it supported/safe to block until a signal arrives, or is there a recommended non-blocking pattern that still guarantees no time advance? If a global pause is the only supported pattern, what is the correct way to wire this into model logic so that resume occurs immediately when the signal arrives? Any pointers, examples, or documentation references would be greatly appreciated. Many thanks in advance.
-
Providing wages independent of what the worker is doing.
ow121912 replied to ow121912's topic in SI General Discussions
It seems the approach I had in mind was much more complicated than necessary. Thanks to your suggestion, I was able to resolve the issue. After applying your method, it worked seamlessly in my model. Thank you very much for your help. -
Hello, Iam working on multi product mix Manufacturing system simulation I want to add rework logic on the server for incorporating 10% rectification of jobs which are failed in quality standard to make realistic production environment in simulation. Please help me that how i add , add on process to sent back 10% jobs on same server but rework processing time should be different from initial process time. After rework i want to send job on next server for further process. Suppose. First process time is Exponential(10) But rework time is triangular(3,4,5) Please help me to add on process this logic.
-
WD0001 started following How to use SetRow on a RepeatGroup?
-
I can't upload my model, so I'll describe it. I have a custom object named "Turntable", with the property "RotationTime". The turntable is used in both my top-level model, and inside a submodel. In the top-level model, I have a DataTable named "TurntableData", with the columns: EquipmentNumber (String) <Key Column> RotationTime (Real) I am passing both columns into my submodel's "TurntableData" RepeatGroup. In the top-level model, my turntable's OnRunInitialized process contains the following SetRow node: However, in the submodel I'll need a different approach, since a RepeatGroup doesn't have a key column. This is the Turntable_OnRunInitialized process in my submodel: At first, it seems to work. It sets the correct RotationTime for each turntable at the beginning of the simulation. However, as soon as an entity tries to enter the turntable, it gives me this error.
-
Commercial Runtime Professional license is available for purchase.
-
Providing wages independent of what the worker is doing.
ViniciusF replied to ow121912's topic in SI General Discussions
You could improve this with a monitor inside a subclassed vehicle verifying the ResourceState change and executing a process to add the wages aswell. But for now, I think the solution above is fine. -
Providing wages independent of what the worker is doing.
ViniciusF replied to ow121912's topic in SI General Discussions
That can be exponentially harder if: the vehicles have different wages between them; rates differ from day to day. Considering the simple case where the vehicles have the same wage rate and all days have the same wage rate (but rates changing during certain hours), I would suggest you: Create a table with the a column for each state of the vehicle (idle, busy.. etc) and 24 lines (one for each hour of the day). You can create only one column if the wages are the same for all states. Considering the first case, it will be something like: Create a Process On Run Initialized. Search through the vehicles populations. Put a delay of how often you want to verify its state and an assign that will add the wage to a variable that you want based on the current ResourceState, like: DateTime.Hour returns the hour of the day. At the beginning of the day it returns 0, and will add 1 for each hour. Since in Simio tables starts on row one, I had to add one. Here I was verifying every 5 minutes, so I had to divide the value by 12. (60min/12) = 5min. You could verify it more often to be more precise also, but you will have to divide the value accordingly. You don't need many decides to verify the current ResourceState, just skip the assignment if it is not the right ResourceState. -
Providing wages independent of what the worker is doing.
ow121912 replied to ow121912's topic in SI General Discussions
Thank you very much for your response, Vinicius. Thanks to your reply, I was able to confirm once again that my assumptions were correct. For now, I have designed my model’s logic to minimize pickups as much as possible, which allowed me to create a simulation that matches the expected values. However, this is only a temporary measure, and since it could cause problems later, I think it would be better to revise the model according to your suggestion. That said, in my current model, the vehicle’s travel speed has been implemented to match the real-world model, so changing the vehicle speed is not feasible. Therefore, I tried to implement the method you suggested using the Process approach. However, while doing so, I encountered a problem: in my model, according to the day pattern, the wage rate during certain hours should be 1.5 times higher than the regular wage. I realized that implementing this wage adjustment is not easy with your proposed process. Could I get your advice on how to address this part? Once again, thank you very much for your response. -
Providing wages independent of what the worker is doing.
ViniciusF replied to ow121912's topic in SI General Discussions
You are correct. When they are moving to pickup the cost is not considered. Easy way to verify is to change the velocity of the vehicle to a really high value. You'll get the 1440 as expected. I would probably not use Costs directly. Instead, I would create a Process on Run Ending. Search through the population of vehicles and save the values accordingly, like: vehicle.resourcestate.TotalTime(0)*2 -> would give you 2 USD per hour on a given state, in this case state 0 (idle). vehicle.resourcestate.TotalTime(1)*2 -> would give you 2 USD per hour on a given state, in this case state 1 (busy). If you need to see these values separated, you would need a matrix to save these values depending on the number of the vehicles. Or, you subclass the vehicle and create a vector where each element of the vector would save each cost. Else, you just keep adding to a variable for each vehicle on the system. There is probably another way manipulating the cost inside the process of the vehicles, or using a monitor verifying resourcestates changes on a subclassed vehicle. -
Hello, I would like to pay workers a fixed wage regardless of their current state. In my model, each worker performs both Transporter and Resource roles, so I have set the Transport Cost Rate, Idle Cost Rate, and Usage Cost Rate all to USD 1 per minute. However, after running the simulation for 1 day (1,440 minutes), I found that some workers were not charged $1,440 as expected, but a different amount. After investigating the issue, I believe this is because the time a worker spends moving to a pickup location in response to a transport request from another server is not counted in any of the cost categories. In this situation, is there a way to configure the model so that the worker's wage is calculated based on their total presence time in the simulation, regardless of whether they are idle, transporting, or busy? Thank you in advance for your help.
-
Update number of Worker dynamically within the run
jzhou replied to MohammedM's topic in SI General Discussions
Worker has an assignable state variable to control its availability. Assign Worker1[1].CurrentCapacity=1 Assign Worker1[1].CurrentCapacity=0 -
Hello everyone, hope you are having a great day, i have a simple yet challenging problem. i am using Worker from the standard library. i want to change the number of workers dynamically each 8 hours based on a formula. on Resource it can be done easily using current capacity feature, in workers it does not exist. Also, when adding a schedule in the value, I cannot change the number greater than 1, meaning on the schedule, I can either say he's on shift or off shift. meaning if the initial population was 5, then they would go off shift together to 0. what i want is to change the number from 5 to 4 to 6. like that. i couldn't find a way to do that. your help is much appreciate it. Thank you
-
Import data in a column marked as a foreing key
millej6 replied to Marilou Dallaire's topic in SI General Discussions
UPDATE ON THE PROBLEM: Trailing spaces in ProdCenterID are ignored when imported from a CSV file but not when imported from SQL view/Stored procedure. The foreign key was created on data with trailing spaces coming from SQL data. Note: I suspect trailing spaces come from SQL CHAR(N) data format. Data should be converted/cleaned in view/Stored procedure to avoid problems in the model. -
vsilvers started following SI Sprint Releases
-
GSanchez started following SI Sprint Releases
-
Jonathan JRA started following Please subscribe to forums of interest!
-
Annika changed their profile photo
-
I would like to use the Data Connector Configuration feature in Simio desktop version in the Simio portal - is this possible? I have the following 3 configurations set up in a Data Connector: I created a binding for each configuration using the data connector. However, when I upload the .spfx file to the portal, only one of the configurations from the CrusherCongestion data connector is bound to the table in the model - BaseCase (refer to the image below taken from the portal): Additionally, if I'm in the portal, I can only refer to a single CSV per table for all scenarios: It does look like you can choose the configuration in the scenarios (fourth image) - but I'm not sure how to get it to work. Thanks!
