Jump to content

Search the Community

Showing results for 'output table functions'.

  • 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

Calendars

  • Simio Calendar

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. Thank you for the quick and detailed response! I see the error I was making with work schedule and have tested it on one server, it seems to work as intended. Since each of my servers have a different capacity, would I need to create a unique work week and unique day type for them all? Or is there a quicker work around? The manual inputs for the date time are a great work around, I'm only modeling for a few years so I don't mind inputting a few dates. What I mean by there being no buffers is that no server can have a queue. I used a list for selecting the destination on the output node of each source (total of 8 ) where it's a hierarchy. It can go to a select number of servers and if all of them are full it goes to a dummy server of infinite capacity that exits the items to an overflow sink.
  2. You want to make the servers have a Capacity Type of Schedule and follow the default Standard Week. If you don't want to give them a lunch break, just change the definition of the Standard Day. Leave the default Off Shift Rule of Suspend Processing. The easiest approach for arrivals is to have a Source with an Interarrival time of 4.33 weeks (or 4 weeks) and an integer random distribution for the Entities Per Arrival. Doing a "first Monday" is possible, but a bit complicated because Simio time does not have the concept of Month because months are of varying size. You could probably specify the initial Time Offset to be early in a month, then maybe make the interarrival time be something like DateTime.DaysInMonth(DateTime.Month(Timenow),DateTime.Year(TimeNow)) which would make the next arrival be exactly one month later (same day of the month). When you say you have no buffers, what do you mean? If an entity arrives when all servers are busy, should it be balked (possibly disposed) or should it wait somewhere like on the server input node, on a path or in the Source output node? If the above arrival approach isn't exact enough, you can put exact arrivals in a data table. The arrival time could be specified at any exact datetime you desire and still have the Entities Per Arrival be a distribution.
  3. Hi I have an entity that is moved through the network via vehicles. The vehicle will drop of the entity at the first server which then gets processed through two servers. I would like to use the vehicle that dropped off the entity at the Input to the first server to be used to pick up the next entity at the output of the second server. Is there a way to save the exact Vehicle that was used and specify that as the Vehicle to use at the second pick up point? Hopefully to a global variable and not to the entity (in my actual model, the entity going in to Server 1 is not the next entity coming out of Server 2). At the moment I am using 'Reserve Closest' as the reservation method at Server 2. I know that is incorrect, but I'm not sure how to setup this up using the other methods. In the attached model, process works for the first entity, but does not for the second entity onwards. Due to other limitations in the model, I need to have the Vehicles to 'Remain in Place' during idle. Thanks in advance for the help. SpecificVehicle.spfx
  4. Hi, there is a simple approach you can use. Use Connectors between the queue server and the desks. At Buffer Logic of the Desks, change the Input Buffer Capacity to 0. Create a List with the Input nodes of the seven Desks. On the Output of the queue server change Entity Destination Type to Select From List and the goal to Smallest Value. Keep the default expression. It should work fine.
  5. In addition - Based on error message, the destination selection step seems to be trying to use a reference table, (used at source output node), despite the particular node list being specified in the routing logic for the node in question, (i.e. Output@QC2 - see below). Thanks again.
  6. Hi there, I'm very much a novice, but currently leveraging the logic in VisitAllServersInAnyOrder simbit to ensure an entity visits an entity is never reworked more than once. I've updated the model entity with required state variables and created a "MyServer" to create the "HasEntityVisited" etc etc. I'm using the "Candidate.MyServer.HasEntityVisited==False" logic for the selection condition in the output node routing logic. However, whenever I run the model I get the error message "Referenced definition type "MyServer" does not match executing type "BasicNode". I've gone over and over the various elements and compared to the working simbit, but can't identify the issue. Any help would be greatly appreciated. Thanks in advance. Garrett
  7. Model.spfx Hello, i am trying to stop the transport time for my entity. The process logic is as follows: hen the entity exits the Source output, the time stamp (MyVehicle.Stamp) is assigned with the value "TimeNow". When the transporter drops the entitys to the servers input the time is stopped (New Value = TimeNow- MyVehicle.Stamp) and simio calculates the transport costs. The error is attached. I get the same error, when i use MyModelEntity instead of MyVehicle. The model name is "Model311" in the attached project "Model". How or where do I have to set the stamp correctly? Thank you!
  8. Thank you for the quick answer! But i get the same error type when using MyModelEntity instead of MyVehicle. Referenced definition type "MyModelEntity" does not match executing type "MyVehicle". In the Transport Logic of the Output@Source1 (Properties), i have the MyVehicle as a transporter. It seems like both of them are executing the add on process trigger...
  9. Hi! I don't think you need to save those times stamps on MyVehicle. I would suggest you to use processes that triggers when the entity leaves the Output Buffer of the source and enters the Input Buffer of the server. To do that, create two process with the corresponding Triggering Event Name: Source1.OutputBuffer.Exited or Server1.InputBuffer.Entered, saving time stamps directly on the MyModelEntity.
  10. I have a multiple combiners into which a single worker provides entities. While the worker is at a specific combiner, I want to check if that combiner's output buffer is full. I'd prefer not to create a separate process for each combiner as I have dozens. How do I code the process so that it is generic and that 1 process can work for any combiner? I'm hoping this is an easy question. Sorry if it's obvious. Thanks for your help.
  11. Hi @jzhou, how would this work if I want to refer to the MemberOutput Node of a separator in an expression? I get lost at the following expression: Entity.Location.Parent.Node.AssociatedObject.Separator.Output.[what comes next?]
  12. Hello River, I downloaded your files. The Gate512 was missing. I removed the information in the "30 Departure.xlxs" file that I can run the model ;-). Generally I understood how it works. Answer to your first question: I think you mean these two ways, right? From the left and from the right. In this case I saw that you used the "Routing Logic" in like all Transfernodes. The Outbound Link Rule is "Shortest Path" and you set the "Node Name" to "Input@Takeoff" Simio is using everytime the shortest link path now. Like in the screenshot below: In my opinion it would be better to set the destination once after the Entity got created in the Source for example :-). There are different ways to do that. In your model I removed all Routing Logic in the Transfernodes and used the Routing Logic only in the Output-TransferNodes of the Sources. In Simio you need only to use one time a SetNode-Step or a Routing-Logic to set the destination of an Entitiy and Simio will follow the paths or travel in the FreeSpace. You can use for example a NodeList with 2 different destinations and this Routing-Logic: With the "Selection Goal" Random Simio will randomly choose the destination from the NodeList. I uploaded you your model with the changes as an example: Problem on the taxiway version 17A.zip What did I changed? 1) I removed the Routing Logic in all TransferNodes. 2) I added new Routing Logic to the TransferNodes of the Output-Node of the Sources. 3) I added a NodeList with 2 new Nodes. 4) In the two new Nodes I used a Nodes-Entered-Process and a Transfer-Step to transfer the Entity to the Input of the Sink. Answer to your second question: You can change the destination of an Entity any time. In the Path (Link) you have a function called "NumberTravelors" for example to get the number of travelors currently on this path. So you can use a Expression like "Path123.NumberTravelors < 2". This can be used to decide if a way is full allready that the other way get selected. Or you can use a Integer-State and count up and down. I would use a Node-Entered-Process in the last possible node with a Decide-Step and two SetNode-Step in this case :-). I hope my answer will help you. When you have any other question, you are welcome! Best regards Pascal
  13. Hi All,

    I have defined the input buffer capacity and output buffer capacity for my servers, If the input buffer of destination server is full the vehicle still picks the entity(from output buffer of previous server) and moves to the destination(next) server and just waits with the entity unless input buffer capacity is available , how can I restrict the forklift from not picking up the entity or should only pick when the next server/destination has input buffer capacity available. any thoughts on this would be helpful.

  14. Hello, I have a model, that's producing parts (Multiple Parts A,B, C,D) with a server, sever works based on a work schedule and off shift days and holidays and the simulation is run for 1 year. Note: processing time for each part is different i need to extract the number of parts produced each month. Also need to determine the monthly efficiency of server , since some months may have holidays. Please provide a solution to get the dat on a monthly basis.
  15. I have attached a simple model using model states to illustrate. I think it should work in a similar fashion using entity states. First, I define the states: Then use those states as Sequence destinations: Until you provide each of those states a value, the Sequence will make no sense and the entity won't know where to go. So on the Source I use an Assign to initialize all the values. This will direct the entity sequentially through Servers 1-4, and then to the Sink: Finally, just to illustrate the technique, on the output node of Server3, I interrupt the normal sequence by Assigning it to instead go to Server5 as its 4th step: If you convert these states to Entity states instead (I was just lazy), I think it should work the same but allow you to selectively override any Sequence Step at any time. UsingStatesInSequences.spfx
  16. Hi all, I made a model of a production line (starting with 2 servers) and I am wondering whether it is possible to change the processing time of the second server based on the actual output of the first server. Theoretically seen the processing time of the server 2 = Speed of server 1 * E , in which E is a fixed formula (connected to server 2) to correct the speed. So if the first server performs according to expectation (without failures) for example 40 the processing speed of the second server is equal to 40*E with a delay of the conveyor time between server 1 and server 2. If the server has failure and thus have a lower output (for example, 30), I want to change the processing time of the second server accordingly to 30*E with a delay of the conveyor time between server 1 and server 2. Does anybody have an idea of how to do the following: How can you monitor the actual output of the first server at each timestep? Is it possible to fix the proposed formula and use it in an add-on process? How can you take the conveyor time delay into account (using a delay step in the add-on process?)? I am quite new to the software so I am not sure whether it is possible to model this in Simio. Thank you in advance!
  17. How can I model where the robot always pick 2 parts and waits until 2 parts are available at output buffer of the server. (Robot is available in extras library). i have multiple servers in the model.
  18. Hello, Server (reflecting the storage/kitting area) in my push model is connected to multiple servers. I have below conditions to fulfill while routing entities from an output node of this server - After every 5 minutes, 1. Scan through the sequenced entities at kitting area (output buffer) 2. Scan through the output destinations to check if they have space available for transfer. 3. Route all the possible parts in sequence from the origin server. Can someone help with advice or any reference model to replicate this scenario in Simio. Thanks in advance. -Mohmed
  19. You need to put the search, release and transfer steps into the Add-on Process Triggers "Parent Entered" of the Combiners. For example, for the "Juntar_secos" combiner, at the "Parent Entered" Addon process, you would search for Slots.Processing.Contents, matching "Candidate.ModelEntity.Id_Del_Pedido == ModelEntity.Id_del_pedido". After that you should use a release step, to release Server "Slots", and a transfer step to transfer what have been found to Output@Slots.
  20. Well, first thing, you don't need your entities to be bouncing between the output and the input of your server like that. If you want to use it as sort of storage, set both the processing time and the capacity to infinity. After that, at the moment that the parent entity enters the combiner "Parent Entered" you could search the queue of your storage using a search step with something like "Server1.Processing.Contents", with the condition of "Candidate.ModelEntity.State == ModelEntity.State", release the server and transfer what have been found to the output. You need to take some care on some situations, like what if the parent entity arrives first at the combiner then the member at the storage? And some care with batching quantities aswell. But I think you can handle it.
  21. Hello Everyone, please can someone help me with this situation? I want to use a Server as a storage place, entities coming out of it go into the MemberInput of a Combiner. I want the number of entities that leave the Server to depend on the state of the entity that will enter the ParentInput of the Combiner. How can I access the state of the parent entity that will enter the combiner from the Output Node of the Server? Thank you very much, Greetings! 14.10.spfx
  22. To model shelves, I am trying to create a series of custom "Shelf" objects (subclass of servers) located in a grid pattern. I used a spreadsheet to automatically calculate the coordinate locations and generate a name (string) for each object based on its position within the grid. With just the Shelf object types in the spreadsheet, can bind the file to my object reference table no problem, import the data, and populate the facility window with my objects. That part works fine! Next, since I have an aisle running between the rows of objects, I wanted to set it up so that the objects all face "inwards", ie. the input and output nodes for the objects are facing the aisle. Originally I thought of rotating the Shelf object, but I ran into 2 issues: first, I discovered that I can't set the Shelf yaw orientation from the table, so that's not going to work. Second, I realized that even when I rotate the Shelf in the facility window, the nodes do not rotate with their parent object. I decided I would leave the Shelf in the same orientation as it is placed, but I would just re-locate the input/output nodes to the opposite edge of the Shelf objects on the far side of the aisle. For this I would need to make sure I can set locations for the input/output nodes in the same object reference table. When I added a row to the object reference table from within Simio (prior to binding to a spreadsheet), a drop down appeared, and I could select the input or output nodes for any object that already existed in the table, and then define the node's location in the cartesian coordinate columns. When creating a node this way, the node location is still relative to the object, ie. I can drag the object in the facility window and the node moves relative to the object, which is perfect. This input/output node creation and relative location definition via table is exactly what I am trying to automate, but this is where I started running into problems. In my spreadsheet I used formulas to generate names for the nodes to match the formatting of the input and output nodes in Simio (ex. "Input@..."/"Output@..."). I also added a formula to assign all input node object types to BasicNodes and all output nodes to TransferNodes and calculate the desired location coordinates for the nodes. The spreadsheet I made has the same format as the table in Simio where I tested manually creating and positioning the nodes. The issue is that when I bind the table and import the spreadsheet data to my model, the node names automatically change and are no longer formatted to reference the parent object. Because of this, these name-changed node objects are created in addition to the input and output nodes that are created for each Shelf object. However, if I remove the binding and add a new row, once again I can find the node name in the drop down list and assign the coordinates manually, and the input/output node that references the parent object will move to where I send it. My question is: how can I set the input/output node locations for the objects when creating objects from a table? There are over 500 Shelf objects in the table so I do not want to locate them manually, but the automated method is not working either. The only idea that I have is to make a new object "Shelf2" and define the external view to have the nodes on the opposite side, but that seems like a less-than-idea solution because then I would have 2 custom objects to update and maintain, that are otherwise identical. I am hoping that I don't have to do this hacky solution but I am interested to see if anyone else has dealt with this and has ideas. Thanks!
  23. 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)
  24. Hi guys, I have searched this topic but cannot get a solution to that: is it possible to remove a certain row from a output table? There is a step called "RemoveRows" which removes all rows in the table. What I would like to have is i set a search step first and use the index i found to locate the row in the output table and delete it. Many thanks! Regards Yutong
  25. Hi, I have a production line with 2 sources. The arrival of entity A in source 1 triggers an arrival of entity B in source 2. Entity A and entity B then enter their respective servers for a processing time. Entity A is processed at table_openings between 10 and 15 minutes with probabilities whereas Entity B is processed at table_MF for 10 minutes. The process type is task sequence. Both Entity join at a combiner. Entity A is the parent and Entity B is the member. Afterwards, the combined entity continue along the production line. I have expected processing times for each task at each server. Before starting a task, a process starts where a state statistic registers the state processing time of the entity. I also put list state to verify the schedule utilization. I have verified visually and the state value for processing time is correct for every station while the simulation is running. What I have observed is that the state statistic average processing time for the servers before the combiner is the expected value, however, all the other stations are 10 minutes off. The simio output has the right processing times for all the stations after the combiner but not for the two stations before the combiner. Moreover, the list state average time busy value are ok for all the stations after the combiner but again the station before the combiner, it gives the total number of minutes it was busy. Also, if i do the average of the state log observation for each station in excel afterwards, I get all the correct processing times. I am guessing it has something to do with the combiner, but I am lost. How can the processing time for table_MF be 10,48 when the processing time is a fixed 10 minutes in the facility window? Why is the list State MF and OP different from all the other list states? Thank you for your help!
×
×
  • Create New...