Jump to content

Search the Community

Showing results for 'be part of the forum'.

  • 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

Found 11 results

  1. I was inspired by the VehicleX3 (vehicle with operator) that was shared on this forum. I would like to use this type of VehicleX3 with an operator who is a worker to simulate a process where the operator is required to take breaks after certain periods of activity. To implement this logic, I think it would be helpful to have Reliability Logic for the worker object in Simio. This doesn't seem to be part of the standard library so I tried to create my own subclass version of Worker with the Reliability Logic "copied" from the Resource object. My attempt to implement this custom object seems to work as long as the custom worker object doesn't "move". If the custom worker object moves, I get the Runtime error "Possible infinite loop detected in process logic". Any assistance in getting the logic working properly, or pointing me to an existing custom worker object that has Reliability Logic incorporated would be greatly appreciated. I'm attaching my small example model to illustrate the error when the worker (P1) is required to move to the Dest1 server as a required secondary resource for processing. WorkerWithFailuresExample.spfx
  2. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! This is a repost of the thread from the public forum to allow file attachments. Thanks, Hristiyan
  3. Tricky problem. If you had posted this in a Simio Insiders forum instead of the public forum I could have replied with a model and figures. I would probably take the opposite approach - instead of adding additional "fake" machines, I would consider representing each workcell as a single server that makes use of associated resources for metrology, CNC, and airblast. I'd use Task Sequences to do the sequential processing of each part, then use the associated Loopback feature of Task Sequences to start over with the subsequent parts. There are a number of SimBits demonstrating task sequences. Unfortunately the only one demonstrating loopback (ServerUsingTaskSequencesWithDataTables_Loopback) uses data tables (which complicates things) but you might get the idea. Or you could do a similar approach with process logic steps. If you repost this in Simio Insiders you might get more help.
  4. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! Thanks, Hristiyan
  5. Dear all, I have searched for quite a while in the public part of this forum, but I could not find the solution of my problem even though there were some similar issues. I have four servers and a worker who is required as secondary resource for each of them. The worker switches and is doing fine so far. However, for my optimization problem, I need to simulate the amount of workers that are necessary to ensure smooth operations. Therefore, I would like to change the capacity of each server to 2 for 2 workers or to 3 to simulate 3 workers, etc. Sadly, the capacity of the server is not changing in the simulation even though the data are entered. Is there a solution to increase the capacity of servers with a worker as secondary resource so that always several entities are processed when the simulated worker arrives? Thank you very much for your support. Greetings from Hamburg, Armin
  6. Hi all, I'm a new user to Simio and am having to give myself a crash course in the software, so please bear with me. I posted this in the material handling forum but have realized that this is probably a better question for the SI Objects forum. My project is a manufacturing facility that involves product being created, processed, and finished in tooling, which is transported between process steps by transporter vehicles. My team is attempting to determine the need for additional tooling and transporters in this facility, and so material handling and resources are the main focus area of the project. Can entities seize resources across multiple workstations? IE, an entity (product) would seize a resource (tooling) out of the Source, and continue seizing that same resource as it travels through several workstations, and then release the resource as the entity enters the Sink? In our facility, the product is supported in tooling as it undergoes multiple operations at different workstations, and we need a way to model the tooling utilization. The transporters can come and go freely while the part/product & tooling combination are in process at each workstation. Is it possible to model this in Simio? Or reasoning behind using the objects the way we are is so that we can track utilization of the tooling and transporters to determine at what production rate they cross the 100% utilization rate threshold. Thanks in advance.
  7. Because of spammers, we don't allow files to be posted to this public forum. You should really move this discussion to the Simio Insiders part of the forum. I have the same SimBit redone using a FreeSpace approach - I'll try to email it to you.
  8. Hi, It's my fourth topic in this forum within the last several days... This would be much more general. Are there any books on the market with the deep coverage of the flow library? Like a reference book with some examples would be just great. I checked the preview of 'Simio and Simulation: Modeling, Analysis, Applications', looks like it covers only Standard Library (well, with some advanced techniques, but on discrete simulation). 'Rapid Modeling Solutions: Introduction to Simulation and Simio' also focuses on introduction to discrete part of Simio. I managed to achieve certain progress on very simple models with flow library, but wonder whether there is a more detailed coverage?
  9. Dear Simio Forum Members, how would one define a robot/population of robots with a set of instructions: - pick up a part (from sink) - go to a "suitable" station ("suitable" is defined according to the minimum number of robots with parts in a queue waiting in front of the station, time of travel, waiting time and operation time.) - if there are already more robots in front of a station, choose an alternative one - wait in front of a station for the part to finish - pick up the finished part and continue to the next station/sink (according to list of stations) There are partial solutions within SimBits but I am still having difficulties to define these parameters. So, for now I would like to accomplish that one robot picks up the part and with that becomes the dedicated transporter around the system for that part - meaning it also waits in front of the station/server. And during this waiting, other robots are also picking up the parts and going to designated stations. If the station is occupied, goes in a queue holding the part. Any guidelines in finding a solution would be appreciated. Best Regards, Damir TU Vienna, Austria
  10. This fixed the outstanding bug where writing in an experiment would dump all csv files in the simulation root directory, ignoring the relative directories you specify in the file path in the file element. The fix was trivial, and I am sure I have raised it several times both on this forum. I made the fix a few months ago, and have kept meaning to post it here (if indeed I have not already). The problem with unofficial fixes is that it is another moving part to update, keep track of, and adds to installation complexity. I have lost previous fixes twice (due to fresh re-installs). Essentially "fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);" was the culprit. I changed the "_writerFileName" directive from using the above variable to: _writerFileName = "fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension;" I could do something neater (as the current output will have a ".csv" in the middle of the name), but did not spend any time on this. It would be appreciated if this was fixed and applied to the official write block (even if as a toggleable option), as due to the over-zealous licensing terms, the DLL will not load on an unlicensed client... meaning I have to choose between having the bug fixed and not dumping hundreds of thousands of CSV files in my simulation root... or causing clients considerable inconvenience by writing hundreds of thousands of CSV files into their simulation root. Here is the relevant code extract in the file element: if (String.IsNullOrEmpty(fileName) == false) { string fileRoot = null; string fileDirectoryName = null; string fileNameWithoutExtension = null; string fileExtension = null; try { fileRoot = System.IO.Path.GetPathRoot(fileName); fileDirectoryName = System.IO.Path.GetDirectoryName(fileName); fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName); fileExtension = System.IO.Path.GetExtension(fileName); } catch (ArgumentException e) { data.ExecutionContext.ExecutionInformation.ReportError(String.Format("Failed to create runtime file element. Message: {0}", e.Message)); } string simioProjectFolder = _data.ExecutionContext.ExecutionInformation.ProjectFolder; string simioExperimentName = _data.ExecutionContext.ExecutionInformation.ExperimentName; string simioScenarioName = _data.ExecutionContext.ExecutionInformation.ScenarioName; string simioReplicationNumber = _data.ExecutionContext.ExecutionInformation.ReplicationNumber.ToString(); if (String.IsNullOrEmpty(fileDirectoryName) || String.IsNullOrEmpty(fileRoot)) { fileDirectoryName = simioProjectFolder; fileName = fileDirectoryName + "\\" + fileName; } _readerFileName = fileName; if (String.IsNullOrEmpty(simioExperimentName)) _writerFileName = fileName; else _writerFileName = fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension; } Using relative file paths worked at one stage, and was later broken. Below are two threads with work around un-offical dlls that probably implement the fix nicer. 10/07/2012 - http://www.simio.com/forums/viewtopic.php?f=19&t=829 07/12/2012 - http://www.simio.com/forums/viewtopic.php?f=20&t=987 TextFileReadWrite_compiled.zip TextFileReadWrite_source.zip
  11. I've created a tool which makes my life a bit easier when trying to code Design Add-Ins for Simio and I thought that I would share it with everyone else. Disclaimer: I'm an engineer that is mostly self-taught when it comes to programming so it may not work (all I know is that it works on my pc ). Also I know that it isn't the prettiest piece of software either. What the tool does is allow you to try c# code directly within Simio and evaluate the results. If you have ever used a dynamic programming language like Matlab or Mathematica then it will be familiar to you. Its like the command window in Matlab where you can enter commands without compiling. Its called a REPL (Read-Eval-Print-Loop). more info here: http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop The code uses the Microsoft Roslyn Compiler API. more info here: http://en.wikipedia.org/wiki/Microsoft_Roslyn If you want to play around with the source code then you will probably need to install the Roslyn CTP. Download here: http://msdn.microsoft.com/en-gb/roslyn. I created the solution using Visual Studio 2012 and I believe that the roslyn compiler only works with VS 2012 at the moment. How to install: 1) Copy the SimioREPL folder from the zip file into either: C:\Program Files\Simio\UserExtensions or c:\Program Files (x86)\Simio\UserExtensions 2) The folder structure should be ..\Simio\UserExtensions\SimioREPL How to get started: 1) Create a new model in simio. 2) Select SimioREPL from the Select Add-In drop Menu (Project Home Ribbon) 3) Click "Insert Initializing Code" button. This inserts some code to get the whole thing going. You may need to change the directory of the dlls loaded if you are not using a 64-bit machine (delete the x86 part from the path). 4) Press the Execute button to evaluate the code. 5) You can now start playing with the interactive coding environment The bottom textbox displays the results from each execution loop. If no return values are given then it will display just the execution count. How to use (here is an example of how to use the tool): Enter c# code just like in a normal program, for example: int x = 10; You can find out the current value of a variable by entering its name without the ending semi-colon, for example: x or x*2 + 10 -3 This will display the value in the output text box at the bottom of the window. I've added the ability to use Write() and WriteLine(), just like in a console application. for example: WriteLine(object.ObjectName); If the code is invalid then the Exception message will be displayed in the results text box, and the input code will remain. If the code is valid then the input code is cleared. The context object is already defined. Use context as you normally would. Some example code Walkthrough: Add some objects to the model IIntelligentObjects intelligentObjects = context.ActiveModel.Facility.IntelligentObjects; IFixedObject sourceObject = intelligentObjects.CreateObject("Source", new FacilityLocation(-5, 0, -5)) as IFixedObject; IFixedObject serverObject = intelligentObjects.CreateObject("Server", new FacilityLocation(0, 0, 0)) as IFixedObject; IFixedObject sinkObject = intelligentObjects.CreateObject("Sink", new FacilityLocation(5, 0, 5)) as IFixedObject; ILinkObject path1 = intelligentObjects.CreateLink("Path",sourceObject.Nodes[0],serverObject.Nodes[0],null) as ILinkObject; ILinkObject path2 = intelligentObjects.CreateLink("Path",serverObject.Nodes[1],sinkObject.Nodes[0],null) as ILinkObject; [Execute] Move the source object intelligentObjects["Source1"].Location = new FacilityLocation(-4.5, 0, -2); [Execute] List all the nodes on the server object foreach(var node in serverObject.Nodes) { WriteLine(node); } [Execute] List all the objects in the model foreach(var ob in intelligentObjects) { WriteLine(ob.ObjectName); } [Execute] ---------- Hopefully you find this useful. If you improve the tool using the Source Code given then could you please repost the source code here in this forum topic. I'm sure that there are many things that can be improved by a proper programmer. What it really needs is intellisense . SimioREPL Source.zip SimioREPL UserExtension.zip
×
×
  • Create New...