Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!


New Software Release

Our latest release, Simio 11, is here!


Popular Content

Showing content with the highest reputation since 06/25/2018 in all areas

  1. 2 points
    We have an opportunity for an intermediate to advanced modeller to join us for both a Simio and Operational related role. Relocation to Australia/New Zealand is a prerequisite with Visa sponsorship provided. Please note that a minimum contract duration will be in play. Should you be interested, please pm me, or send your resume with contact details to mark@masterschedulingsolutions.com All conversations will be treated as confidential. Mark
  2. 2 points
    Thank you .. this is amazing stuff. By the way, is it possible to import and export Process step as well?
  3. 2 points
    Thanks for visiting our Simio User's Forum. This forum has been created to: 1) Share information about Simio, 2) Provide a way for users to communicate with each other and with us, and 3) Provide a mechanism for us to to hear your ideas so we can make the best product possible. Guests If you are Guest (visiting without having registered), you are welcome to browse all our public forums, but we request that you first join our Simio Insiders group before you view the private areas or can post on any areas. Simio Insiders I encourage you to become more involved as a Simio Insider. Insiders will have full access to browse and post in an extended set of forums available just for you. You will find more information on this in Why Become a Simio Insider. There is one more category of membership that is a little harder to achieve. Simio Team Members (employees) are identified as such when we post so you know that we are providing the straight scoop. (This is not to imply by any means that we are always right ) Finally, if you have any other questions about how the forum works, I encourage you to consult the "FAQ" item from the main Forums menu (top center). Again, welcome to the forum. I am always anxious to hear your feedback (positive or negative) and any ideas on how we can improve this forum or our products. Email me anytime using dsturrock at simio.com
  4. 1 point
    Hello Pascal! Thank you so much for your reply! I tried the method you proposed this weekend and it worked quite well! It fixes the issue with updating the table too! So I'd like to thank you and @GFurtado for your replies! Without your help I'm sure I wouldn't have being able to fix this! Have a great day! Best to both! George
  5. 1 point
    Hi George, I know the normal ways, to create an entity from a table are: 1) Use a timer with the date/time table for a trigger for a own process or 2) A source with the arrival table option. If you want to create entities, maybe you can make a loop process like GFurtado with an Read-Step/Excel-Step and then you can use the Create-Step of Simio. Then you can check with an Decide-Step "TimeNow >= value" for example and create your Entity. With this option you can use FastForward too. With an lower delay time it is near the real time. Maybe this could be a solution for your problem. Because, then you dont need a third party tool to click on import. I checked the Simio API and I dont find something about a trigger for the Simio buttons or a button click event, what we can use for the problem. It would be nice, if there is an API to "use" the button click processes. For example, to import one or all tables again. Maybe a professional Simio API developer know more and can write here. Have a nice day! Best regards Pascal
  6. 1 point
    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
  7. 1 point
    At some point I would start looking for a SCADA system, write it in Python or anything outside Simio. A Simio Engineer would be better suited to help you, but I still believe you could build this inside Simio (maybe through an API?). I manage to build a very ugly version of this that kinda works. It's not real real-time, because I still need to click on the manual import button (I don't know how to help you with this). I set my source's Arrival Mode to On Event; Create a process with a Decide step that checks if the table received a new value: If it received a new value, trigger SourceEvent; If it didn't, check again a second later. As I said, it's not very elegant, but I hope it inspires you to find the right solution.
  8. 1 point
    Updating the data mid-run isn't a good simulation practice, unless you're building some gimmicky application. But I manage to work this out with this little guy in the Table Ribbon. Have you tried it yet?
  9. 1 point
    I am trying to look for entities, of certain types, in a queue of a server to transfer them to a server. I am using the following: Collection type: QueueState Queue State name: Server1.AllocationQueue Search Type: Forward Match condition: ModelEntity.EntityType.Is.productA || ModelEntity.EntityType.Is.productB Search Expression: EMPTY. I know for a fact that the queue does contain entities of types ProductA and ProductB but the search step cannot find them. What am I missing here? Thanks!
  10. 1 point
    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
  11. 1 point
    place a delay step with a constant time (for example 5 minutes) in the same add-on process and examine the results?
  12. 1 point
    OutputBuffer is 0, ModelEntity balked due to being blocked into Source.Output Buffer.
  13. 1 point
    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.
  14. 1 point
    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
  15. 1 point
    Check the server property Ranking Rule. This property determines the order entities are processed. Look at the attached model. I assign the Entity.Priority when it cames out of the sources and set my server to rank entities based on the Entity.Priority expression. I hope it helps. EntityPriority.spfx
  16. 1 point
    Actually I want to include input parameters in there as well.... Thought about writing some process logic to read through a table on run initialized, but I can't use a state for the rows to specifically look at for the starting/ending index for table value input parameters.
  17. 1 point
    Hi all, I met some questions in building the model. It seems a very general quesiton but I didn't find any solution from internet... I'm building a general workflow model. I want to decide the quantity of a server to optimize the workflow. I want to use experiments or optquest to get the 'best' number for each server. If I set the capacity type as Fixed, then I can set the initial capacity as ''referenced property'', then I can use this as control in experiments/optquest. However, I have a work schedule for each server now which means I couldn't set the capacity type as Fixed. And then I couldn't set capacity as ''referenced property''. I don't know how to control this capacity in my experiments/optquest. I know I can change the 'value'(which means the capacity) in workschedule table. But I can not change this number flexible in experiments... Or I don't know how to set this value as ''referenced property'' . Is there anyone who could help me with this? Thanks a lot!
  18. 1 point
    Maybe you could create several property of type 'Interger' and reference them in the value row..like below... and in the experiments you should be able to see them as controls to optimizer. Best regards/Jeff Zhou
  19. 1 point
    You need to re-assign the x and z coords of the node during run time (i.e. Node.Location.X and Node.Location.Z).... Best way to do this is with a table with an object reference property.....
  20. 1 point
    Heya, At the moment, I got a model in which trucks are following each other, and able to catch-up...till they reach a certain distance between each other. When they reach the desired distance I managed to set the same speed by using the following assign step: ModelEntity.Movement.Rate, new value: ModelEntity.NextEntityAheadOnLink.Movement.Rate. But whenever the entity ahead leaves the links, I obvioulsy get an error. So I would like to know how I let this entity check if there's any Entity ahead? Thanks in advance :).
  21. 1 point
    why do you use source? In Workstation 1_exited step you can just increase the currentrownumber by one using an assign step and use a create step just after this assign step, set its properties using any table (and also currentrownumber state variable). and transfer this entity to the appropriate place. you do not need to use source step?
  22. 1 point
    examine AddAndRemoveServerCapacity simbit. you will find a similar logic but you have to extend the logic by including worker object.
  23. 1 point
    a! You may refer to Simbits ‘serverusingtasksequcencewithdatatables_sequencedenpendentSetups
  24. 1 point
    If the entity is created (similar to the Bicycle Assembly example in Simio) using an arrival table where the arrival time is specified in the table, the entity will automatically be assigned the associated row in that table. To assign a row reference to an entity without such logic, you would have to have the entity enter an add-on process when it is created and then use the SetRow step to assign the entity an associated row in a given table. The GlobalCurrentRowNumber you mention above could be used as the RowNumber assigned for the entity within the SetRow step, provided there were no conflicts with relational tables.
  25. 1 point
    for your kind reference Model-Example3 Setup.spfx
  26. 1 point
    After testing a simple rectangle, I see that I can apparently only stretch textures on something like a box? Is this due to the UVW map of an object?
  27. 1 point
    Stations or storage queues....stick the base of the robot in a station or a storage queue that is situated inside the subclassed transporter....
  28. 1 point
    I have taken a glance at your model. At first look your timer element needs to be revised and you should not change the capacity a resource via a user-defined state variable. Use resource.currentcapacity state variable. I have revised your model and it looks like working. Due to having no more time I could not deeply analysed. see attached file. Resource.spfx
  29. 1 point
    Hi Team, Good morning, I have a question that I need support. On my simulation under Planning tab then Entity workflow I see the Orders that I created, but also some other items that I don't know where those came from. that is using resources. for example, I highlight on the picture attached on red color. OrderWIP01 is waiting for the grinder [1] on the finish1_1, when I looked for it, I saw that is on Phx4.89. What is that Phx4.89? Phx4 is one of the names of the entities. but why does appear as entity and not as a Order? At the moment I looking for why to increase the output, as the simulation is giving me 17 unit per shift, but engineering said that it should be around 20. I want to make sure the simulation is done correctly. Thanks in advance. Regards, Htatton Arm-boom-draft-R1-test-092718-Test-Scheduled-3tacking.spfx
  30. 1 point
    You asked for "a way to start/stop timers on a specific entity without creating a bunch of different events". As I understand it, Enable is just a switch that stops/starts the Timer clock. It has nothing to do with triggering events and does not require any events. So if you set a timer to fire in 60 minutes, then after 10 minutes disable the timer, the timer should fire its event 50 minutes after it is enabled.
  31. 1 point
    Is there a way to start/stop timers on a specific entity without creating a bunch of different events? The potential problem I see is that the reset timer event is general and would require a bunch of individual events.
  32. 1 point
    Simio B2MML data tables and importing are compatible with the standard. It is my understanding that it is common that adopting companies will customize the data to their own needs, just as we have done by example within Simio. B2MML consists of a set of XML schemas that implement the data models in the ISA-95 standard. Companies may use B2MML to integrate business systems such as ERP and supply chain management systems with manufacturing systems such as control systems and manufacturing execution systems. The actual standard is an XML implementation of the ANSI/ISA-95 (IEC/ISO 62264) Enterprise-Control System Integration Standard. Searching on them will yield more information. The e-book Planning and Scheduling with Simio that is included on the Support Ribbon, explains more about B2MML.
  33. 1 point
    I have changed the logic of the server 2's add-on process you included and add an additional search condition to output@server1. Also, delete all others. It seems it works like you want. see how it is? if there are any other issues do not hesitate to ask further pls. RoutingProblem_Myway.spfx
  34. 1 point
    I think "TheCombinersName.MemberInputBuffer.Contents.AverageTimeWaiting" is the expression you are looking for. -Adam
  35. 1 point
    So I see what you are trying to achieve, and your approach can be moddelled yet you will need to really know what you are doing if you want to start transferring entities in and out of queue's, as well as adjusting capacity of vehicles to circumvent default routing logic. Alternatively, I would set the Retailer capacities back to one and treat an entity as a shipment from the warehouse to a retailer. I would also look at add a material element to the transporter and each server and utilize Simio's produce and consume functionality to drive variation in supply and demand. This will allow you to utilize the base functionality of the transporters, without dabbling in capacitative resource allocation, unless you fully understand the intricacies of the inner workings of a transporter. Task Sequences embedded within the servers should allow you to easily accomplish your objective (basis production and consumption of material), without needing to utilize process logic and corresponding Produce and Consume Blocks. Hope this Helps.
  36. 1 point
    You need to search the queue when the server goes off shift (Search Block_Queue), and Transfer the Students back to the Decision making node (Transfer Block -> Make Sure its the last block in the process). That is the easiest fix, other than setting the input buffers to zero.
  37. 1 point
    Personally I would use the search block set to search the entity population opposed to the find block. It should also be noted that the Exclusion Expression is evaluated at the start of runtime (if I am not mistaken) hence if this is false, the block will default to false for the entire runtime. Hope this helps.
  38. 1 point
  39. 1 point
    Hello everyone, I kindly request your help, i would like to change my software version, from 32 to 64 bits. Do i need to uninstall my SIMIO software? I want to do this because with my actual version some of my models do not run. I highly appreciate your comments on this. Greetings!!!
  40. 1 point
    In the install directory, there is a executable called Simio64.exe. that is the 64 bit simio, you can create a shortcut to this..thanks.. No need to uninstall anything.
  41. 1 point
    Visit us at Booth #29!
  42. 1 point
    Not sure what cost you want to monitor. For example ,you accmulated various cost elements to a server, you can separate them like below... Server1.CapitalCost Server1.Capacity.UsageCostCharged Server1.Capacity.IdleCost etc... Best regards/Jeff http://www.simio-china.com
  43. 1 point
    Interesting. But what does that mean in terms of being able to collect the cumulative "cost" at any point in time or by any specific resource through the use of a state? Is that just not possible?
  44. 1 point
    I just reposted what was previously there.
  45. 1 point
  46. 1 point
    MultiFailureServer.spfx [/img] in response to the above thread: http://www.simio.com/forums/viewtopic.php?f=1&p=9187#p9187
  47. 1 point
    This script will combine output files from Experiments that use the Write Step. It will average the cells across all selected sheets, and is designed to work with .CSVs that are the same shape. In R Studio, the code needs to be ran as "source" y = 1 x = 1 fileIterate = 1 readline(prompt="Press Enter To Select Files: ") fileSave <- choose.files(default = "", caption = "Select files", multi = TRUE, filters = Filters, index = nrow(Filters)) readline(prompt="Press Enter To Select Output Folder: ") outputFolder <- choose.dir(default = "", caption = "Select folder") fileName <- readline(prompt="Enter Output File Name: ") buildFile <- read.csv(fileSave[fileIterate], header = TRUE, sep = ",") fileIterate = fileIterate + 1 while(fileIterate <= length(fileSave)) { holderFile <- read.csv(fileSave[fileIterate], header = TRUE, sep = ",") while( y <= ncol(buildFile)){ while(x <= nrow(buildFile)){ buildFile[x,y] <- mean(holderFile[x,y],buildFile[x,y]) x = x + 1; } y = y +1; x = 1; } x = 1 y = 1 fileIterate = fileIterate + 1 } fileName <- paste(fileName, ".csv") outputTheFile <- paste(outputFolder, fileName,sep = "\\") write.csv(buildFile, file = outputTheFile)
  48. 1 point
    Please see attached. AWModel v7.spfx
  49. 1 point
    I always wanted an easy way to make my models look tidy. One of our developers created this add-in which can align and evenly distribute nodes or objects added to a list. I think usage is pretty easy and will help in building models with many nodes etc. Feel free to use it as a early christmas gift from LOGIO. SimioAlignAddon (2).rar Would be nice if someone in SIMIO will integrate the code into standart product in future, so we can just select multiple objects and align with rightclick. Petr
  50. 1 point
    Is there a easier/better way to add links to networks besides right clicking and selecting "add to network"? There is almost 200 different networks in the model and it is very time consuming to add links to the networks, even when using multiple selections. Is there any process logic one can use to "assign" a link to a network using tables for instance? Any help would be appreciated.
  • Create New...