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!

Click_Here_button.png

New Software Release

Our latest release, Simio 11, is here!

dadom09

Members
  • Content Count

    30
  • Joined

  • Last visited

Posts posted by dadom09


  1. Hi.


    I wanted to ask if there is any simple way to select ONE out of couple of alternative destinations specified in a data table?

    I.e. I have the machines grouped into three manufacturing cells, lets say ProductType A can be produced on machines 1 OR 2 OR 3 within Cell1. Input nodes of each cell are specified in the NodeList. I want to route the entity to one of these 3 machines based on this ResourceState(idle).


    Any ideas? Detailed description along with the base model can be found in this topic http://www.simio.com/forums/viewtopic.php?f=6&t=1765


  2. Thank you for suggestions. In the attached model, the state I am trying to work with is called S_TotalInventoryLevel, im sorry for the mistaken name given.

    Tomorrow morning I will try to implement one of the given by you solutions and to create a simple model illustrating what I want to achieve.


    - The first solution with Monitor seems to be fine, however I want to check availability of ordered material when the DueDate is reached and TIMER event has triggered the process Moreover the TreshHold Value for each order is different.

    - Second solution - I can create an event i.e. E_OrderFinished and fire it when the entity exits the workstation(addon process) which has already finished processing that specific order. However the amount has not been added into TotalInventoryLevel because it happens when the entity enters the SINK2. I am not sure if that is going to work, but I will give it a shot.

     

    This problem has been solved by using the second solution with a little modification - the event E_orderFinished is fired when entity enters a SINK and the DECISION about having units on stock or not is evaluated again.


    The second problem I have is regarding the Change Dependent setup. I have an operation attribute set to be ModelEntity.S_CurrentToolType. This state is assigned with a proper value when entity exits a source. When it arrives to the workstation(it is the very first order) it seems like operation attribute has been evaluated to be THE SAME even though there has been no operation performed before on this workstation. In such a case, shouldnt the Operation Attribute be set to its default value (0.0) and therfore the first entity arriving which has a different than 0.0 value for ModelEntity.S_CurrentToolType should specify a setup time to be as in the SETUP TIME IF DIFFERENT?


  3. What I am trying to do is to model the inventory of finished goods. So whenever an entity(material) enters Sink2 the TotalFGI state is incremented by the amount of unites produced by a specific workstation.

    In the datatable called ArrivalTable there is a DueDate column which specifies the shipment to the customer. I have used a Timer element to fire an event each time the DueDate is reached. That event triggers a process called ShipOrder. Now I want to see if specified by the purchase order amount(ArrivalTable.OrderVolume) is available or not - if yes - decrease the TotalFGI by that amount, if not - thats the problem now. What to do? I have tried to delay token by 24h and loop it back to decide step which checks if amount is available but that leaded me to having inventory level on MINUS.

    I dont know how should I formulate the logic in a case token goes on the FALSE exit on the DECIDE step...


    In a simple words:

    I have orders, which needs to be produced, each of them has a DueDate. The order, when arrives to sink, should increment the TotalInventoryState by the produced amount. When duedate is reached(specified in table) i need to see if quantity is available and decrease the TotalInventoryState by the ordered amount. Some of this orders are late(arrives to inventory after a DueDate) and that creates me a problem.


  4. Thank you Dave. I have already checked the suggested by you SimBit, according to explained by me situation and purpose, monitor does not help me at all.

    Regarding the second answer - I tried using CurrentToolType as operation atribute however it cannot compare it due to the fact, that toolType is a string state. when I use ConvertToReal it still has problems reading OperationAttribute expression.


    Any help please? I can see the model has been downloaded couple of times but there's only one helpful answer...

    I cannot find the way to work around it.


  5. Adam, once again many thanks to you! I feel embarassed because the problem you pointed and the unit of setuptime were the problems and I was already pulling the hair out of my head trying a find a cause of this problem.

    I've got another two questions I'd like to ask about if may I:


    1) I am trying to model inventory level of finished goods. I modeled it by having a Timer element, which fires an event when a duedate is reached. There is a process triggered by the timer event, which checks by DECIDE step whether the specific quantity is available or not. If yes, I am reducing the TotalInventoryLevel state by assign step. If not...here is the problem. I have tried using a delay step and looping it back to DECIDE step, however that leads me to having TotalInventory level on MINUS...

    Any idea how could I Work around it?

    2) I performed grouping of machines based on the tooltype because one Tool can produce multiple products and can be attached to machine A or B or C etc. The setup time depends on the Tool used for producing specific product. If the product is produced by using the same Tool there is no setup(so i dont increment setup number and the setuptime is 0). I created two states, one for ModelEntity called CurrentToolType and one for a Workstation called LastToolUsed. CurrentToolType is assigned when entity enters the Workstation, LastToolUsed gets the value of CurrentToolType while Workstation performs teringdown activity.

    I've tried using DECIDE step in SettingUpAddonProcess checking if the CurrentToolType==LastToolUsed and then using EndActivityStep, however it doesnt Work well.

    Can I use for this purpose ChangeDependent SetupTimeType? If yes, how should I define Operation Atribute?


    Thank you in advance for any help.


  6. Hello everybody.


    As I have already mentioned in previous topics where I was asking for some help I am writing my master thesis project by using Simio as a tool.

    I am investigating a possibility of cellular manufactruing system implementation based on existing in the real-life system. I have gathered deterministic data from the company and I am using it as an input data to my model.

    When I am testing the logic of my model everything is working as it supposed to. However, the results which I am obtaining from single run in interactive mode are different from the results I get in the experiment.

    Could anybody please take a look at the model and see why does it happen this way?

    I am trying to keep a track on the following indicators:

    - TotalWIP

    - TotalInventory of FinishedGoods

    - Setups number

    - vehicle movement number

    - operator movement number


    What I am trying to achieve is to see if grouping machines according to tools required for production of specific product will reduce the mentioned above indicators.

    Attached is the AS-IS model. I highly appreciate all the comments/ideas/corrections.


    Best regards,

    Dariusz

    AS-ISv4.spfx


  7. Hello everybody,


    Is there any way to collect state statistics for each candidate from population of i.e. vehicles without sub-classing this object?

    I have i.e. v1ehicle with a population of 8, I want to have the number of movements for each of this 8 forklifts. Can I do it without subclassing vehicle object or making 8 seperate state statistics elements?


    Thanks in advance.


  8. I have dealt with this problems. Regarding deadlocks - two travelers passing through the same node(i.e. BasicNode) in a different directions are getting into a deadlock and get blocked.

    However, as I need to count only the movement numbers i have set transporters to run in a free space.


    Another problem which I encountered and I really count on any help is:

    As I explained previously, I want the worker to be seized each time the batch of products is finished by the workstation. I succeded to seize the workers, however, one machine sometimes is seizing more than one worker and I have the situation where 3 workers are at machine X, in reality the required work can be done by only ONE operator. How can I define the seize step to Seize one worker only?


    Best regards


  9. Thank you for the explanation.

    I forgot to mention that this treshhold value should be incremented by 2 each time the batch is produced but when it finishes the last batch it should be reseted back to 2. I have tried using following syntax - Math.If(MonitorBatchesProduced.CurrentThresholdValue ==Press.ProcessingActivity.BatchesRequiredFor(PlantEntity), 0, MonitorBatchesProduced.CurrentThresholdValue +2 ) but it results with following error:


    How can I overcome that issue? Search step before this assignment?

    Ps. How can I deal with transfer deadlock situations?

    error.thumb.PNG.7db96d77229384cdf6f18ea50f534af7.PNG


  10. Do you mean to create enumeration property?


    I think I have managed to do that. Thank you so much for your help!


    Ps. How can I define a search expression to search the list of transporters and find a free transporter? I have tried with Candidate.Object.Is.MyVehicle (subclassed object MyVehicle) but it always finds me the same Vehicle - MyVehicle1. I want that search to find MyVehicle2 when MyVehicle1 is currently transporting something. This is because I want to assign the number of moves from A to B and B to A and now I am getting this value assigned only for MyVehicle1


    Additionaly - how can I make monitor to trigger a process each time my state value is incremented by 2? Discrete change triggers the process each time the value changes, treshhold value triggers the process ONCE when the value crosses current treshhold.

    I want i.e to trigger a process every time the machine produces X batches(i am keeping a track on batches produced by a state value). How can I do that?


    Best regards

    Dariusz


  11. Hello,


    Is there any efficient and easy way to seize a worker from the main model into a main model?

    I have my main model which is the entire plant and a sub-model which has only machinery objects. The sub-model is placed into the main model and I want to seize an available worker which is placed in the main model every time the batch on my workstation(within submodel) has been proccessed.

    Could you please give me any tips how can I overcome this issue?


    best regards,

    Dariusz


  12. Thank you gocken! Your help has been exteremly useful! I appreciate it a lot.

    I have solved batching in a slightly different way.

    However I am having other difficulties.

    I.e. the orders which are being processed are parked at the node. I want to unpark them and send to Sink1 as soon as produced materials corresponding to that order enters Sink2 and collect statistics.

    Additionally, also while entering Sink2 I want to increse QualityAvailable state by the Volume produced, however while assigning this state simio sends me an error that ''simio referenced definition type XXX does not match executing type XYZ. Is it beacuse of the tokens or what?

    I am attaching the printscreen of my model to visualize the described above situation.

    model.thumb.png.adb52d6d412c1670056956b8c838ec47.png


  13. thank you. I understood the concept also from the printscreens you added. The problem is that I need to track operator movements and this batched entities are waiting to be moved from output at stacker to a container by the operator...should I use then create step and create amount of OrderVolume/BatchSize?

    I am completely lost...


    edit:

    Problem solved.


  14. Thank you. I have tried using the approach with the materials element. I've used ''auto-create'' as suggested so it has created material elements for me.

    However my concern is regarding batching. How can i batch ''produced'' units if they dont exist as entities but as materials. You mention about workstation and BOM structure but BOM is very simple...it takes a part of material and by a single press hit a specific amount of products is created. In such a case I dont think there is a sense in creating BOM.

    In the press logic I want to use steps ''consume'' and ''produce'' instead of create, but that will produce me specific(OrderVolume) amount of ProductType while consuming a MaterialType. How then can I batch these materials?


  15. Adam, Gocken, thank you for your input. I have been trying to approach it in a different way so it doesnt create that many entities. However, I couldn't keep a track on the amount of specific goods produced. The model is not entirely finished this is why there might be some empty "decision" steps and worker behaving in a strange way.


    Any suggestion of how can I keep a track on the goods manufactured and their amount without creating 800k of entities?


    Let me first explain you the aim. I am working on my final thesis project, where I took a real system under the study. Now I am creating the AS-IS model, which will be the base for further optimization. I want to investigate a potential of implementing cellular manufacturing system. The goal is to see if it's possible to reduce working time, setup times, inventory level and improve on-time delivery.

    There are 37 workstation where each of them has a stacker machine assigned(for batching of product units into specified by batchsize property groups). Product type depends on the tool(approx. 200 different tools) used in the machine(I want to use a resource to represent a tool however I haven't implemented it yet).

    Taking into consideration that I'd like to have an overview on the ProductType and its amount produced, as well as specific material utilization for goods manufacturing I have therefore decided to follow this approach. I have been trying to assign a ProductType value into the string state but that was resulting with an error. I want to run simulation for entire year based on the actual orders.


    Looking forward for any suggestions.


    Best regards,

    Dariusz.


  16. Hello everobody,


    I've encountered a following problem with running simulation in Simio. I am in a testing phase of just the logic of my model, however during a simulation run for 5h and limitations of 4-5 orderes created I get an message saying that number of tokens exceeded 100k, when i continuee simulation it goes on until 98% where it completely stops, simio doesnt respond and the only solution is to restart the software.


    I include a model as an attachement. Maybe somebody would be able to find out where is the problem.

    Thanks in advance for any help.

    NewLogicModel v4 MAIN.spfx


  17. Of course I encountered another problem...

    I am trying to use reference group properties and I am already about to lose my mind because of it. Could anybody please take a look at my model(attached) and tell me how can I create MACHINE+Stacker as a seperate model, which will be using data table from the main model and will be placed within the main model.


    Edit:


    I've solved that problem.


  18. Once again thank you for your replay. It's a very helpful input. However I dont understand couple of things.

    I am already using tables for my model. Please look at the example:



    So I want my system to do the following.


    OrderSource create an Order Entity(ArrivalTable.PO) based on ArrivalTable.StartDate, as soon as it gets to the sink it fires the RealseOrder event. Triggered by this event MaterialSource will create a coresponding material entity(MaterialTable.MatType), which will be transported to the Server(ArrivalTable.WorkStation). Server will create entities(add-on process with create step) in a quantity corresponding to ArrivalTable.Volume and ModelEntityType corresponding to ArrivalTable.ProductType(string). Each processed unit will arrive to a server which will batch units to specified quantity. Batched units will be waiting for an operator to pack them and place into container(server?). When container is full it's picked up by a vehicle and transported to inventory.


    I have most of it already modeled. However I am having problems with assigning correct rows. I've added RowNumber real state for ModelEntity and I've tried to assign it on MaterialSource on the StateAssignment Source property but something still doesnt work.

    What am I doing wrong?


    Edit:


    I have solved the problem with a RowNumber assignment. Thanks a lot for help, finally it creates a volume corresponding to correct row in a table.

    Now I am struggling with entity.type(i created new string state variable) problem. When I am trying to do as you have explained Im getting en error saying "Error assigning state variable ModelEntity.Type

    . Data type mismatch, state is string type but the new value to be assigned is of type NUMBER"


    I used assign step ModelEntity.Type to be changed to Model.Entity.Type == MyTable.ProductType and i get that error even though ProductType column is a string property...

    Untitled.png.6e7a70e9e6005adae255573c2a43b471.png


  19. Thank you for your help. I find it very helpful!

    I've read somewhere on the forum about auto row setting property of a table but I couldnt find it. Would that work out if anything like that exists? If yes, where can I find it?


    Another question - if I have around 500 different product types - what will be the best solution to have the system recording a specific product name(string) taken from a table so I can keep a track on the amount of specific products manufactured? I want to avoid creating approx. 500 different entities....

×
×
  • Create New...