Jump to content

Search the Community

Showing results for 'original token'.

  • 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

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. Within each of the Source objects, you would specify (within the output node of the Source) that a worker is required to transport the entity(s) to the next node. The decision making of the worker is then handled by the worker itself. The worker has several decision making options - first of all, for transporting, the worker has Transport Logic properties, one of which is the Task Selection Strategy property, which can be set to First In Queue, Largest/Smallest Distance or Largest/Smallest Priority. In addition to that, under the Worker's Add-On Process Triggers properties, you have the Evaluating Transport Request process that can be used to accept or reject any transport request. You can add custom logic, a distribution, etc. within a Decide step in that called process and simply then accept (Token.ReturnValue == True) or reject (Token.ReturnValue == False) a request (which is the first in the allocation queue, as ranked as noted above). You can use the requesting entity location within the decision logic as well.
  2. Hello! I'm trying to model an assembly line that has several unit (entity) types run down it. I have a table set up determining processing times for each entity types and that works fine. I tried the same syntax for the Reliability Logic (for both uptime between failures or count between failures and the time to repair) but I keep getting errors saying there is a problem determining the row to use in my table. I've tried different tables and several failure types and I'm stuck. I also tried add-on processes to SetRow via the Token object, but that didn't help. I even tried copying and pasting the exact same syntax I have for the processing time into the reliability logic, and it still gets stuck. Can I not call on table references in my reliability logic? Thanks! Kaylinn
  3. You could use a vector to store the entity locations - you'd have to first give each entity a unique entry into the vector - thus the first entity into the system would use vector[1], etc.. This would only be a reasonable option if the number of entities (trucks) are fixed at a max reasonable number (10, 100, etc.) so the vector could be sized. Efficiency-wise, you may wish to update the entity locations at nodes, as opposed to every x seconds. If you update every x time units, you would need to first use the Search step to search the entities, getting a token for each entity. The vectors can be updated using the entity index into the vector (perhaps store as modelentity.priority if not using priority for any other reason). ModelEntity.Location.X can be used to access the entity location. There is a SimBit titled FindAMinimumState value which describes how to use the Find step with a vector variable. Another option would be to use an output table (depending on your Simio license version) to store/update information on the entity/location. If you have a base model that you have problems running and can share here, please do. Otherwise, send a base model to support@simio.com.
  4. There is no easy way to automatically convert an Arena model into Simio. But more important, you probably wouldn't want to. I am reminded of the early days when Siman was written in FORTRAN and we wanted it to be in C. We ran it through the best automatic FORTRAN to C translator of the day. While it "technically" worked, what we got was a whole bunch of FORTRAN code that was expressed in the C language. It used algorithms and constructs that were inappropriate to C and was extremely hard to read and maintain. We ultimately manually recoded everything into "good" C code. Likewise, Simio has many advanced constructs that are not found in Arena. The modeling approach that you would take with Simio's object orientation, would be very different that you would take with Arena's limited set of procedural modules. So while it is theoretically possible, I would recommend giving no further thought to an automatic translation. Instead I would: go back to the modeling objectives and constraints which guided your Arena model, consider all the things you learned about the system as you developed the Arena model, and consider the trade offs that you had to make in Arena to model your system with enough accuracy. Then I would design a Simio model using all the Simio features available and design the best model to meet your current needs. When complete, I expect that you would find the Simio model to be smaller, more accurate, and easier to use and maintain than the original Arena model.
  5. Hi! I'm sea, making some user-defined selection rule. I wonder that what is the exact meaning of "based on entity ID" in your question. is it same as creation sequence, like order date? I know original value expression was "Candidate.Entity.Priority" in the dynamic selection rule. But I'm not sure that is oriented from arrival sequence at specific buffer.
  6. I'm pretty sure my whole approach is flawed, but I don't see how else to do this. The attached is a very simplified version of what I'm trying to do. In the real problem, I have empty containers that enter a detached queue based on when they are retrieved from customers. I also have workers that need to select (through a fairly complicated process) which of these containers to batch together to enter a filling station. This selection process is complicated because it depends on filling material, pressure, volume, and safety stock of the sku (multiple skus can be combined in same batch provided filling material, pressure, and volume of container match). Anyway, what I'm aiming for is Create a batch When the worker is idle, he will go to a node and search among empty containers in the detached queue to assemble a complete batch. If there aren't enough containers, the worker will wait, idle. As empty containers arrive at the detached queue, they should trigger, somehow, the worker to try to create a batch again. There are new containers now, so maybe a batch is possible. (Preferably, since hundreds of containers could arrive at a time, this trigger would be for all the containers arriving at this specific time, not each container doing a separate trigger.) With the batch, the worker should move to a server, seize it and wait while the containers are filled. Then move to a separator to separate out the batch, moving the containers to full inventory and the worker should go back to try to create another batch. I'm stuck in a couple of places, specifically (so far) . . . I can't seem to get the worker, once batched, to move to the filling station. In fact, the Move block in PickingStation_Entered doesn't even fire. I can't figure out how to get the entity to trigger the worker to reevaluate the batching process. However I try this, the batching process is executed by either the entity's token or a model token. I can't see how to get the worker to be the executing token. Any help or guidance would be appreciated. Model.spfx
  7. i want to find the original object name (without instantiation or population eg. just Ca123) is this possible ? how ? ( from CA123.35357 to just CA123 uising expressions, CA123 belongs to CustomTruck model)
  8. If you have a batched entity (through Batch step or Combiner object), there is only one parent entity and the rest member entities. Thus, one entity exits the parent node, the others exit the member node. If the Separator instead did a Make Copies instead of the Split Batch, you still have the original parent entity (incoming entity) and the member entities (copies). If you need to split the entities in different directions, you should look at having both of those nodes connected to a single node where you then make the decision to go in two different directions.
  9. 1) Depending on how the entity is created in the first place, that assignment may already have been made. So, for example, if the table includes the arrival time and is used as an arrival table within a Source (Arrival Mode is set to 'Arrival Table'), then the entity that is created automatically has a row reference to the arrival table row from which it was created. Alternatively, if you create an entity, you can use the SetRow step to assign it a specific row in a specific table. ** The entity doesn't ever become a token ** Please refer to the Tokens page and the Tokens and Entities page within Simio help for more information. Tokens can be associated with entities (or with a model if a process is triggered by a timer, event, etc.) 2) If the entity has a row reference within a data table, simply referring to the TableName.ColumnName to access the table information is sufficient. This will automatically retrieve the information in the TableName table, ColumnName column at the designated row that the entity has a reference. If the entity doesn't have a reference within that table, Simio will give an error if you attempt to refer to the data in that fashion. Alternatively, you could reference a TableName[RowNumber].ColumnName to specifically reference a given RowNumber. Refer to Data Tables page within Simio help for more information.
  10. Hello, there! I'm quite new to Simio. I saw "SchedulingDiscretePartProduction" example recently and noticed that there was B2MML data schema which was very impressive. So, What i have wondered is whether the data schema in the example is exactly same as B2MML data schema. Or, are there some changes from original schema? In addition, does anybody know where to get some information about B2MML data schema? Thank you. Jay.
  11. you can use a create step for making a copy of your original entity. Also, you can use seperator object for the same purpose. You can look around simbits by using create step or seperator keywords.
  12. I'm new to Simio. I'm trying to split my original entity into two different parts. The goal is to have the entity be separated, with half of them having a different server processing times through the same server.
  13. Hi, You can even use process logic in Evaluating Seize Request AddOn on server. and set Token.ReturnValue=FALSE if the incoming ModelEntity does not fit your criteria..
  14. Hi, I’m using a Process type: Task sequence in my model at Server 1. I’d like to interrupt the server each 12 hours for 4 hours and resume the entity being processed later. I’ve used a Timer and an Interrupt step which work perfectly only when the Process type is Specific time. Therefore, I tried with a token to obtain the Interruption at the server. I made a process (InterruptServer) doing so but I feel like I’m missing some understanding here. I’ve received an error message as you can see in the small model. Anyone knows how to solve this error? Thank’s Flora InterruptSeverAndEntity-ProcessTypeTaskSequence.spfx
  15. Dear Flora, I build a sample model to interrupt a task and afterwards resume that task with the remaining processing time pls kindly find the attched model. thanks! I am not quite understanding your approach, however the error you mentioned is the token is not targeting at Worker, thus the error... InterruptingTaskExample_byJeff2.spfx
  16. First define a real state variable to your modelentity named "livingtime" after its creation. Then make a copy of your modelentity and send the copy of modelentity to a process (maybe called as death_process). Place a delay step and set delay time as modelentity.livingtime. Of course the original one should go its way. Then place a search step and find the original modelenity in the system when the time is up at delay step (while finding the original entity you should set a match condition such as candidate.modelentity.ID==modelentity.ID etc. I am not sure whether the ID's of both entities are same, you should try. If it does not work you should try to match creation times of them (both should be same) or any other user defined state variables or properties). If the search is succesful make necessary controls (i.e., if it owned any resource release them etc.) by placing necessary steps following found branch. You should remove and transfer the found modelentity (it is the original one) to appropriate place. At the end you should place a destroy step following the original branch or even transfer it to appriate place. It depends on your goals.
  17. You cannot hold an token associated with an entity at the SetNode step in a process. The token can be held at a Wait step or Scan step.
  18. Your original problem stated: It seems the best and simplest approach is illustrated in SimBit SelectEntityTypeFromTable . Your table would have 10 rows, one for each entity type. You would add a 2nd column to hold the weight or frequency of selection for each entity type. Set your MaximumArrival on the source to 900 to avoid any overload.
  19. subclass a workstation object, override perform teardown activity process of this subclassed object then at the end of the process steps (before the transfer step) use only one create step then assign the type of the created modelentity to swarf (place an assign step to the end of the created branch of create step and also tie this branch to the transfer step if it is required) and assign the original modelentity type to part (if it is required)... this will ensure that all of the operations (setup, processing and teardown) occur on the single part, and THEN two separate entities are made?
  20. You can use two Create steps within a process to create two different types of entities and simply destroy the original entity when you no longer need it. Assign step can be used to assign information to the new entities that you may wish to transfer from the original entity.
  21. Hello, I have a process Vehicle1_EnteredNode that moves a vehicle and seizes the two workers needed to operate. The two workers work from 8 to 12 and 13 to 17. When they are off the schedule, process AAInterruptCarMove is used to interrupt and release correctly the server and the vehicle. To make the Interrupt process, I’ve checked simbit VehicleStopsWhenServerOffshift. Then, I’ve used process AAInterruptGrutierEtAccrocheur to interrupt and release the two workers. The problem is, the two workers don’t get released. Instead, they go offshiftBusy which I don’t want because while OffshiftBusy, they are considered as being utilized. In that process, I've released the token associated with them but does not work. Any clue for me on how to get them released? I’ve put the model on this link : https://drive.google.com/open?id=1yZSFbqUlreh1v6oyG5Jy7AYzTrTBbBUS Thank you
  22. Yes, in Simio sprint 159, which was published at the end of July, we enhanced the RemoveRows step so that you can remove an active row in an output table, based on the object type specified, such as associated object, token, etc.
  23. What you can do is within the Worker object's 'Evaluating Seize Request' add-on process, create a process. This process will then be called each time the worker is deciding whether to take on the entity seize request being made (if not, it will try again next time worker becomes available). Add the following steps to the process: Add a Decide step with Expression 'Entity.Location.Parent == Server2 && (Server1.InputBuffer.Contents > 0) ' - the Entity.Location.Parent will determine if the requesting entity is at Server2 and if so, if the Server1.InputBuffer has anyone in it - and if so, that means there are higher priority items to be worked on at the Server1. From the True exit of the Decide , add an Assign step to assign the State variable 'Token.ReturnValue' to be the value of 'False' or '0'. This means that the entity request for the worker will be false (for this particular evaluation) - when the queue at Server1 resides, and the evaluation is again done, the token will exit the False exit of the Decide and the entity at Server2 will be able to seize the worker.
  24. What appears to be happening is that both the original token leaving the Original segment and the new token, leaving the Found segment, are both associated with the same Entity and therefore the Transfer Steps are trying to transfer the same entity. This is shown in the Trace when it says which entity it is trying to transfer. Therefore, when the second Transfer step attempts the transfer, it says that it cannot transfer because the entity is already in the middle of being transferred. It is difficult to determine why the process logic is having both tokens transfer the same entity, but the first thing I would suggest that you check is whether or not the Search step is finding the correct entity during it's search. Or if you are using the Entity Type property of the Transfer Step to transfer a specific entity, you might look to make sure you are transferring the correct entity.
  25. Hi Everyone I seem to be having a problem with a search step with a transfer step following depending on whether a match is found. I'm sure this is due top my lack of understanding of tokens - apologies, I'm pretty new to Simio! As I understand it, the Search step creates a new token when the match criteria is found but retains the original token which continues through the process. I think the original token is causing the problem. I guess my question is; is there a way to suppress the original token (or destroy it) once the new token is play? I believe the original is trying to initiate an unwanted transfer step which is clashing with the wanted step, resulting in a runtime error. I've attached the error message which may help. Any help, advice or direction to texts explaining tokens would be very much appreciated. .......Dave
×
×
  • Create New...