Jump to content

All Activity

This stream auto-updates

  1. Earlier
  2. Clearpath Robotics is looking to hire a Senior Industrial Simulation Developer at our Canada headquarters, or virtually based out of North America. For more information see posting here
  3. I know it's been a while, but I just came across this question and I'm responding in case this can help someone else. Depending on the problem, modeling nurses as patient capacity might not work; for example, if you need to limit both a nurse's active utilization and the nurse's patient load. Two general approaches exist: Easier: Create two different resources, rename one 'NursesActive' and the other 'NursesPassive.' Set the latter to have n times the capacity of the former, where n is the patient ratio at n:1. Require simultaneous seizure of one of each type of resource when first assigning the patient, and release them separately, re-seizing the former as needed. Harder: Subclass the Resource object and create states to track the patients assigned and a property to define the patient ratio. This approach enables more fine-tuning as necessary.
  4. I used the "DashboardForScheduling" simbit as an example for this case. For the order that is using "FinishedGoodA" material, I want to change the sequence after the welding process is complete if both shape stations are not available. So, I created an alternative sequence table and referenced in the process logic I created. Whenever this happens, I get same type of error message. Do you think this is happening because the normal routing table is referenced at the source object?
  5. Updated version with prime on infeed. Filler won't start until you have enough entities on the infeed conveyor. IndexingPlate - V4.spfx
  6. Rotary filler head object that represents animation of bottles rotating around a cylinder as they get filled. You can use a regular server if animation is not required. This object lets you define the number of filling heads, direction of rotation and rate (Bottles Per Minute), pitch of fillers heads (in degrees) and ReleaseType (Release type represents where the bottle will be released at 180 Degree from the start point or 270 degree). As seen in the picture above, Arrow represents the starting point. Users can also specify if they need fine control over the rotation of the filler heads. If fine control is set to True filler head will pitch by 1 degree. This provides smoother animation.Users will have to make sure the pitch is set correctly in relation to the release type if Fine Movements are set to False. With FineMovements set to False filler heads movement is equal to pitch defined. Users can also specify failure rate in similar way to server or other standard Simio objects. This object has not been extensively tested and it can be further customized to requirements. IndexingPlate - V4.spfx
  7. Hello Everyone, I am new to Simio, and need your help to figure out this. I am using search step to search for certain rows in a table that satisfy my condition. The search step performs as expected. I want to now to retrieve the values of the row associated with the found token. How do I do it? Also, if more than 1 row satisfies my search criteria then does Simio creates found token for each row ? or the information for all the rows in stored in one single token?.
  8. Ok I can do a trace and see what I find. Also, I do have different entity/job types getting processed. In my routing tables, I do have the entities specified in the table. I'm trying to use the "ChooseAlternateSequence" simbit as a reference. Is it possible to do this if you have more than one entity type?
  9. Without seeing the model, I might guess that it is a timing issue - perhaps the SetRow is not executed before the results are used. You might be able to discern that by stepping through the model Trace and Watch window.
  10. I'm trying to do something similar to do this where an order has 4 different routes or paths it can go (My model currently doesn't have paths). I created 3 separate sequence tables and created a process logic depending on if a certain workstation is already processing an order/entity, to go through this sequence. For some reason, whenever it gets to the "set row" step, there is a table reference error mentioning "no entries found" if though in the process step, I specify which row to start the new sequence. What is the reason behind this error?
  11. Hi Fabian, I see two (or more) possible alternatives for solving this. Assuming that the box only receives one type of entity you can: 1. Create a state variable (for example st_CurrentBoxType) and every time an entity enters the combiner you assign the entity type to this state variable. This way, one the box is completed and exits the combiner you will be able to assign it the st_CurrentBoxType. 2. The other way is to execute a search step once the box is full. You can use "ModelEntity.BatchMembers.FirstItem" as match condition to locate the first batched entity, then in the found branch use an assing step to assign the ProdType from the found entity I'm sure there are a lot of ways of doing that... hope this helps saludos
  12. Thank you so much: I tried the same setup but it doesn't work like in your model. It could be another problem that I don't see. Kind regards
  13. kindly refer to the attached model. cheers Model_recordbatchmembersAttributetoParentObject.spfx
  14. Hello everyone: I am modeling a packaging system by means of a combiner. 12 equal members are grouped in a box (parent). Before leaving the respective source, members are assigned a value (0, 1, 2) as a state variable (ESV_P) to distinguish them by product type. I want the box to have the value of the products state variable. For example, if the box contains 12 type 1 products, the box should be assigned with a state variable ESV_B equal to 1. Any suggestions? Best regards.
  15. 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
  16. Perhaps its a little late, but attached is a possible solution to your problem. This started out pretty simple. The problem was how to specify which server is serviced by which resource. One way to do that is a table. But since its changing over time I chose to use a time-indexed table, that is a table that knows about time and returns different data at different times. In this case, each row corresponds to 12 hours and each column specifies the resource needed by the respective server. As they say, "the devil is in the detail" and in this case the "devil" is that the specified resource may change between seize and release (e.g., seize at 11:59, release at 12:05). Simio doesn't like that and all the easy options re-evaluate the resource expression on release and so may try to release the wrong resource. One option would have been to create a custom server, but that seems to be overkill. Here is a somewhat simpler approach: 1) Add an entity state named MyResource and assign it at the last possible moment before use. This value will be used only for release. The assigned value is drawn from the table using an expression like Table1.S1Resource.TimeIndexedValue.Object. Note that the .timeindexedvalue indicates to get the value associated with the current time. And the .object at the end is used to tell Simio to return that value as an object not a number. 2) Use Secondary Resources - Other Resource Seizes to seize the name specified in the table using the same expression above Table1.S1Resource.TimeIndexedValue.Object. 3) Use Secondary Resources - Other Resource Releases to release the resource saved in MyResource. TimeBasedWorkerSelection.spfx
  17. Hi I've got a model where the situation is like this: 1. 3 Worker: W1 W2 W3 2. 3 Server: S1 S2 S3 On Monday (work schedule), W1 will work in S1 in the morning and work in S2 in the afternoon. W2 will work on S2 in the morning and S1 in the afternoon. But on Tuesday, W1 will work in S2 in the morning and S3 in the afternoon. W2 will work in S3 in the morning and S2 in the afternoon. The server properties in the secondary resource are "select from the node list." But since the node list for S1 and S2 contain both W1 and W2, and they both have the same hour of working (4+4), when the S1 server seized the resource on Tuesday morning, instead of W1, W2 got allocated instead( W2 should be in S3). I have tried: 1. Using server selection goal to " smallest distance," but it didn't work since the worker will keep swapping the room every day 2. Giving each worker a new initial value and setting the selection goal to "smallest value," but they still have the issue. 3. Try setting idle action for the worker to stay at the node, but sometimes the worker will go to the wrong destination from the first entity, hence no one working in the other room. (2 worker stay together) Is there any method to realize this idea? Thanks in advance
  18. Hello, I'm having strugles trying to configure the setup for the next process: some entities have a diferent processing time and setup time, before to enter to be processed in the workcenters, the workcenter have to be cleaned. I looked the simbit, "ServerWithSequenceDependenrSetup" but I'm confused with the configuration of the processing task. I dont know why we have two lines and o why only one have associeted the change-over matrix.
  19. That did it! Thank you so much, I have many applications for that logic and have been scratching my head for a while!
  20. Hello there, this is my first post here and I hope someone can help me with my problem. I´m quite new to Simio and working on my first project. I have some "return entities" that are considered "bad" at the end of the production. So they will get collected in a server which is used as a storage and get returned to the factory every 24 hours, to get reworked, if there is capacity left. Now, I want to check if there is capacity left in the destinated server and in best case, reserve the needed capacity before, before I route these entities towards it. After the entity arrived in the server, the reserved capacity should get released again. I couldn´t find a good example here in the forum or via google search, as in the SimBits, how to solve this the correct way. Maybe someone here can give me a tip, how to. Thanks in advance. Aljonator
  21. Hello, can you share the model? I want to do something like that.
  22. Hi, One way to do this is put a Dynamic Selection Rule: Smallest Value First on the Worker, with the value expression of: Candidate.Entity.DirectDistanceTo.Object(Worker). This could work.
  23. hello :), I'm trying to make a model with three servers. Everyone uses different Workers type and have different operation time per entity (no problem in these points). The difficult part is the next, every work center (server) has a different setup and changeover, and both happens without the presence of the entity. I mean the setup of some servers starts when the entity is created, (before the arrival to that server), and after the operation the changeover has to be done, in both cases we need to use or assing a worker. How can I do that?
  24. This helped in some applications, especially use cases where multiple servers are in series and I need the operator to focus on the start or end of the process. Thanks! However, when servers are in parallel the operator tends to run back and forth between them. If I were to assign a higher priority to one line, the worker would focus on that line only. i.e. if he empties the que of parts in the input buffer of Server 1, he goes down to work on only 1 part at Server2 before going right back to Server1. Rather, I'd like for the operator to clear all parts in the que at Server1 before walking down to Server2 and vice-versa. I've tried doing this through process logic however I get stuck trying to evaluate which server the worker is supporting.
  1. Load more activity
  • Create New...