FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
FlexSim 2021 Beta is available. (Updated 19 November 2020) To get the beta, log in to your account at www.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space. Release Notes Added a Model Parameter Table tool. Added a Performance Measure Table tool. Added an Empirical Distribution tool. Added a Web Page tool. Upgraded html views from WebKit to Chromium Embedded Framework. Added a Map FlexScript API. Added a JSON FlexScript API. Added Object.getProperty() and Object.setProperty() methods to the Object FlexScript API. Moved dashboard properties windows into the context sensitive Properties window. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. The Experimenter and Optimizer now use Model Parameter and Performance Measure Tables. Existing experiments and optimizations are no longer compatible and are discarded by the model upgrade process. Fixed the PowerPoint.Presentation.create() and PowerPoint.Presentation.open() method syntax. Due to Chromium's multi-process architecture, the FlexScript command callwebscriptmethod() and JavaScript function fireFlexsimEvent() are now asynchronous and do not return values directly. To get the return value of fireFlexsimEvent(), you can now pass a callback function as the last parameter: fireFlexsimEvent("myEvent", param1, param2, function(result) { alert("result: " + result); }); AStar Added a Strict Diagonals setting to make travelers travel better around corners. Conveyor Added a Mass Flow Conveyor. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Removed Conveyor Types. People Added a Remove Statistically Only checkbox to the Remove Person activity. Updated the Statistics Properties panel to display HC states.
View full article
This article borrows from @jordan.johnson's original guide for deploying a distributed experiment/optimization with Amazon. Distributed Terminology Please be familiar with the terminology related to experiments and optimizations. Replication - a distinct model run. We'll use this term below for both replications (experimenter) and solutions (optimizer). Instance - a system, whether virtual or bare-metal, local or remote, meeting FlexSim's recommended requirements, and used for running distributed replications. Main PC - the system from which the user configures and initiates the distributed experiment or optimization. The Cloud - a shorthand term for remote servers/systems hosted in a data center, sometimes by a 3rd party such as Amazon, Microsoft, Google, or others. Background Concepts In discussing distributed experiments or optimization, you should start with a good understanding of both the Experimenter and the Optimizer. Please read and understand this user manual entry which includes explanations of key concepts that will be important as you continue. Other user manual articles provide additional guidance on configuring your own experiments or optimizations. Search the online user manual and this community if you have additional questions regarding experiments or optimizations, as needed. Using the experimenter requires a FlexSim license. The optimizer requires a license for the OptQuest add-on. Please contact your local distributor for more information or to request a test license for FlexSim and/or OptQuest. What are distributed experiments or optimizations? Experiments or optimizations can create dozens, hundreds, or even thousands of distinct model runs (or replications) to test various scenarios, build confidence intervals of the results, or zero-in on an optimal solution. A distributed experiment or optimization takes those individual model runs and assigns them (distributes them) to run across a group of computers. If you needed to run 1000 replications, and you have 4 computers available, each computer could run 250 replications, getting your results 4 times faster. When should you distribute? Using distributed replications can significantly reduce the required time to run an experiment if: The single-run time for your model is high (a couple minutes or more) You anticipate running a high number of replications If the time per replication is short, then the increased communication overhead may outweigh the benefit of using distributed replications. The communication overhead increases because all distributed replications still report results to a single FlexSim process on the Main PC, and that communication occurs over the network (local instances) or internet (remote instances), rather than on a single computer. If an experiment or optimization completes in an acceptable amount of time, you may not need to use distributed replications. Financial Costs 3rd party cloud providers such as Amazon, Microsoft, Google, and others, charge for their services. Your cost is usually based on the hardware you provision for your Windows instances, and the length of time those instances are live. Typically you only run your instances when running your experiment or optimization, and cancel or decommission your instances when your replications are complete. In this way you minimize the cost of your distributed experiment or optimization. The costs and process of decommissioning your provisioned instances differ based on which 3rd party cloud provider you use. You may have access to local computing resources that could be configured for use in your FlexSim experiments or optimizations. In this case you may avoid additional costs relating to 3rd party cloud providers by using your own on-premises computers. Licensing for distributed Windows instances Windows instances used solely for distributed replications DO NOT need an individual FlexSim license. Only the FlexSim installation on the Main PC must be licensed. System requirements for distributed Windows instances Graphics A Windows instance should meet or exceed FlexSim's recommended requirements. However, because replications run as background processes without graphics, they need not meet the graphics requirements and do not need hardware accelerated graphics. CPU An instance can run as many concurrent replications as it has CPU cores. If, for example, an instance has 32 CPU cores, it can run 32 replications of your model simultaneously. RAM For this example of a 32-CPU Windows instance, if you want FlexSim to run 32 replications simultaneously - one on each core - then the instance must also have enough RAM to handle 32 concurrent model runs. On your Main PC, use Windows Task Manager to watch a single model run's RAM usage to determine its peak RAM utilization. If your model's RAM utilization peaks at 3GB throughout the course of a model run, you should make sure your 32-CPU system has at least 32*3 = 96GB of RAM for replications alone, along with a good ~10% more for additional overhead used for the Webserver and the statistics gathering and reporting from all the replications (this number could be more or less, depending on the model's stats gathering). In addition, you must account for your system's baseline RAM utilization - how much RAM it uses just to run the operating system and all its background processes. You can find this baseline by checking the Task Manager at a moment when you're not running any simulations. Add all these together to see how much RAM would be necessary to run a replication on each core of the instance. If your instance doesn't have enough RAM to handle that many simultaneous replications, you'll need to limit the number of CPUs FlexSim will use when configuring your Cloud Computing settings from the Main PC. Disk Disk space is usually not an issue. However, if you are using the Store Data on Hard Drive option in the Statistics Collector, you will need to be sure that there is enough disk space to run the model to completion on the hard drive, multiplied by the number of cores. The amount of disk space on each instance may affect the total cost of using a 3rd party cloud provider. More information See the related sections in the article Recommended System Requirements for a more in-depth discussion of system components such as CPU and RAM, and how they relate to running your simulations and experiments. Provisioning distributed Windows instances The process of provisioning 3rd party cloud instances for running distributed FlexSim replications will differ from provider to provider. FlexSim has guides for the following cloud providers: Amazon Web Services Wherever you decide to host your instances, the important part is that eventually you end up with a group of Windows instances, each with a unique IPv4 address accessible from the Main PC. A custom Windows image Your 3rd party cloud provider probably allows you to save a custom Windows image that can include software and settings that you need for each Windows instance. Doing this once for a custom Windows image saves you time when starting new instances - each instance will start with the software and settings preconfigured for your purpose. On your custom image, do the following Download and install FlexSim. Use the same version of FlexSim as is licensed on the Main PC. Remember, you DO NOT need to activate a license. Run FlexSim. This creates a directory that is needed later. After FlexSim finishes its first start, close FlexSim. Download and install the FlexSim Webserver for your installed version of FlexSim. Edit the Webserver's configuration file appropriately for your situation. Default location is here: "C:\Program Files (x86)\FlexSim Web Server\flexsim webserver configuration.txt" Start the FlexSim Webserver from your Windows Start menu, or manually from the default location here: "C:\Program Files (x86)\FlexSim Web Server\flexsimserver.bat". The Webserver will download necessary files the first time it is run. Close the Webserver after it has completed its initial startup. Allow both FlexSim and node.js through the Windows Firewall. To do so, use Windows' Allow an App through the Windows Firewall tool. You will need to browse for both FlexSim and Node.js. Example locations (exact locations may vary by version): C:\Program Files\FlexSim 2023\program\flexsim.exe C:\Program Files\nodejs\node.exe If you are not familiar with the FlexSim Webserver, please review its documentation and test it out on a local machine to understand what it does, its configuration options, etc. If you cannot configure a custom Windows image, you will need to do the above on each instance individually. Initialize instances Launch your instances. On each instance, do the following: Log in to the instance with Remote Desktop or some other solution. Start the FlexSim Webserver from your Windows Start menu, or manually from the default location here: "C:\Program Files (x86)\FlexSim Web Server\flexsimserver.bat". Note the instance's IPv4 address. Once all instances are running the Webserver, you are ready to configure a distributed experiment or optimization from the Main PC. Author's Note: There is probably a way to make it so that when instances start up, they automatically run the Webserver, so that you don't have to manually connect to each one. I welcome any suggestions or steps for how to make that happen. Configuring a distributed experiment or optimization Once you have a list of running instances available, launch FlexSim on the Main PC. Open the experimenter interface from FlexSim's Main Menu > Statistics > Experimenter. Configure your experiment. As part of your configuration, under the Advanced tab, select the option to Use Distributed CPUs. Press the button to Configure Cloud Nodes. This will open the Global Preferences' Environment tab. Enter the IP addresses of your instances into FlexSim. Enter the port numbers you configured in their FlexSim Webservers. If your instances will max out RAM before CPUs, enter a CPU count representing the maximum number of concurrent replications your instance can handle. For more information on using remote computers for Experiment Jobs, see Running Jobs on the Cloud for more information.
View full article
Run FlexSim "in the cloud"? Instead of provisioning a desktop or laptop PC that meets FlexSim's recommended system requirements, you may prefer for your FlexSim users to use a thin client PC which connects to a more powerful back end system that actually runs FlexSim. FlexSim does not test our products in such environments, so your user experience may vary. Meet the system requirements It is important that the remote system meet or exceed FlexSim's recommended system requirements. Usually for CPU and RAM that is not a problem. In the past, the biggest hurdle was typically graphics. Does the remote machine support hardware accelerated graphics, and support streaming those graphics to the thin client where the user is actually sitting? If the graphics are not accelerated, or if accelerated graphics can't be streamed to the user, then the system doesn't meet FlexSim's requirements and you may have a bad user experience. In the past In the past, provisioning such a system to meet FlexSim's requirements was quite a specialized combination of hardware and software. Even today not every cloud provider has the infrastructure to stream accelerated graphics. Our anecdotal experience is that such set ups are becoming more common among 3rd party cloud providers. Going forward Major players now seem to have mainstream support for hardware accelerated graphics: https://aws.amazon.com/ec2/elastic-graphics/ https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes-gpu https://cloud.google.com/gpu/ As mentioned above, FlexSim is not targeted to these environments and the software is not tested in these environments, so your mileage may vary. Conclusion With more and more cloud providers enabling hardware accelerated graphics, there is a chance that FlexSim could work well on a cloud-based platform. If you have tried running FlexSim remotely using one of these or another cloud provider, we'd love to hear your experience. Please comment below to let us know about your setup, what worked, and what didn't.
View full article
FlexSim 2017 Update 2 Beta is available. (updated 22 August 2017) To get the beta, log in to your account at www.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space. Release Notes Reorganized the User Manual and updated its formatting. Added more topics, tutorials, and reference pages to the User Manual. Added new Statistics Collector and Calculated Table tools. Added new generic charts for plotting statistics gathered with Statistics Collectors and Calculated Tables. Updated the pin to dashboard buttons to create and use Statistics Collectors instead of the legacy charts. Added a Variant constructor and assignment operator to Vec3 and Color classes. Added functionality for copying dashboard charts as images, and pasting images into dashboards. Added new interfaces to FlexScript, such as Math, Group, and DateTime. Added toNum() and fromNum() methods to the string class. Added a setState() method to the Object class that will work correctly with listening to state changes. Improved handling of read-only model files. Keyboard shortcuts (Ctrl+PageUp and Ctrl+PageDown) and additional enhancements for switching tabs. Added the ability to have null values in a bundle. Added the ability to make kinematics exclude incline rotation when managing rotations. Improved the parenthesis and quote autocomplete functionality. Added autocomplete for curly and square brackets. Added a new print() command to write to the output console more easily. Added support for instanced meshes. Updated the animation system so a single shape can have multiple animators from different shape files. Changed the assimp 3D importer so that it can extract and load embedded textures. Added support for using specular maps and gloss maps. Added support for FlexScript dot syntax in SQL queries. Added the capability to specify a warmup time in the interactive model run. Added options for following objects with the view. Improved MTBF/MTTR state listening to use less events and be more precise. Updated the Network Navigator to work for an object that is inside a container that is connected to the network. Fixed a bug with global variable highlighting and autocomplete. Fixed an issue with destroying a TE on a network when it blocks space on the network. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Fixed a bug with min() and max() when using distribution functions. Previously, getting the number of columns in a Global Table using Table.numCols or gettablecols() returned 0 when the number of rows was 0. Column headers and data types are preserved even when there is no row data. These commands now return the number of columns. Changed operators to not change their incline rotation when traveling on inclines. This will change location calculations if you have advanced logic based on internal operator locations. NodeListArrays like Object.outObjects can no longer be implicitly cast to an Array. Use the toArray() method instead. Fixed a bug with animations drawing their first frame instead of their last frame at times beyond the endtime. Added a special rule for ambient color {0, 0, 0} to not use the ambient color. This change will make shapes with ambient {0,0,0} to appear brighter. Change the ambient color to a dark gray, such as {1,1,1} if you want them to remain dark. Fixed a bug in the shader that dulled specular highlights with the diffuse texture. This may change how shapes look; they may appear shinier now. Added the IS NULL and IS NOT NULL clauses to SQL. Math and comparison operators on null values now return NULL. FlexSim's SQL execution engine is now more in line with the SQL ANSI standard regarding null values. Specifically, if you do comparisons or math operations on elements that have null values, this will return null values. This is different than in FlexScript, where a null value acts like 0 in math operations. Also, null values will be ignored in aggregation functions like AVG(). An option to use legacy SQL nulls was added to Model Settings to preserve backwards compatibility. Upgraded models will automatically enable this option, but new models will default to using the SQL ANSI standard for nulls. Added support for more SQL query operators, such as the case-when-then-else-end operator and window functions. This adds many new keywords to SQL, meaning that if you used these as column names in older queries, they will create syntax errors in the query parser in this version. To fix this, put square brackets [] around the column name. Changed accessing dynamic label properties to use evaluate() instead of value. For example, consider the following code sample: Variant value = current.MyLabel; In 17.1 and previous, this code was the same as: Variant value = current.labels["MyLabel"].value; In 17.2 we changed it so that this code is now the same as: Variant value = current.labels["MyLabel"].evaluate(); The difference is in how FlexScript-toggled node values are retrieved. In 17.1 and previous, current.MyLabel would have just given the text that is the FlexScript code. In 17.2, retrieving current.MyLabel will actually evaluate the FlexScript as code. This is consistent with how table values are accessed. If you have old code that explicitly tried to get the code text with current.MyLabel, you will need to update that code in 17.2 to use current.labels["MyLabel"].value. Process Flow Added a Material Consumption and Replenishment template. Added functionality for pasting images into Process Flow views. Conveyor Added a Gap-Optimizing Merge Controller Process Flow template. Added instanced rendering to improve Render Mode performance. Changed Render Mode to be enabled by default. Added new visual options for conveyors. Improved run speed performance of the Conveyor Module. AGV Added unload-to-empty capability to the AGV Process Flow template. AStar Added a bridge element to the AStar network. Added functionality for collision avoidance. Improved heat maps for analyzing AStar traffic. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Changed the path finding algorithm for the AStar navigator. When you tell an AStar traveler to travel to an object, now it will behave more like the default navigator. It will calculate a "threshold radius" around the object, based on the object's size. Then it will only travel to the edge of that radius. This makes it work better especially for loading/unloading to/from rack objects. The travel operation won't commit as much to traveling to the center of the object,because that can be left to the load/unload operation, which determines exactly where in the rack to pick/place the item. However, this change does affect how older models work because it changes the routes that travelers take.
View full article
Você tem dúvidas sobre o que é, ou como funciona o recurso List? Este Tutorial vai apresentar uma visão geral do recurso e fazer um rápido exemplo. Acesse o link : https://youtu.be/P7wGuQ7UKuQ Você pode entrar nesses outros tutoriais em português que apresentam outros exemplos da utilização do recurso: 1) https://answers.flexsim.com/articles/39239/tutorial-em-portugues-como-direcionar-os-itens-usa-3.html 2) https://answers.flexsim.com/articles/39233/tutorial-em-portugues-como-utilizar-o-recurso-list-1.html
View full article
Verify Connectivity   Issues with client-server licensing can often be traced to communication issues that prevent the client PC and server from communicating. The first step is to verify whether the client PC can connect to the license server over the licensing ports.   Even if you successfully establish connectivity, remember that server configuration or license issues can also keep a client PC from becoming licensed. See our Troubleshooting Tips article for guidance.   Basic connectivity (ping test)   On the client PC, click the Start button or press the Windows key, then type “cmd” into the search box in the Start menu, and press Enter. Windows will search for and open the Command Prompt.   From the command prompt, enter ping [server name or IP address]. For example, if your license server has a local IP address of 10.0.0.135, then type on the command line ping 10.0.0.135.   If you are referencing your license server by name in FlexSim software’s License Activation interface, use the same fully qualified domain name here instead of the IP address:     If your client PC receives a response from your license server, then the server is visible across the network, by name or IP address, from the client PC.   Advanced connectivity - ports test   If you can pass the ping test the next step is to see if the required ports are open for communication. There are a couple of methods you can use to test if your client PC can connect to your license server over the ports specified in the .lic file.   PowerShell Test-NetConnection   From Windows PowerShell, enter Test-NetConnection [server name or IP address] -Port [port number]. For example, if your license server has a local IP address of 10.0.0.135, and is hosting FlexSim licensing over our default ports 26914 and 56914, you should run the following two commands:   Test-NetConnection 10.0.0.135 -Port 26914 Test-NetConnection 10.0.0.135 -Port 56914   If both of these commands include in their response TcpTestSucceeded : True, then the required connectivity is available. Test-NetConnection documentation   Telnet   Check out our tutorial video at https://flexs.im/telnet that guides you through the basic steps of enabling telnet on your client PC, then using it to test port connections from a client PC to your license server.   Double check your configurations   If you can't establish a ping connection or a port connection, use the suggestions below to double-check your settings. Or perhaps you passed the connection verification checks but FlexSim Software is still not getting licensed? These connectivity tips may reveal the solution:   CLIENT PC SETTINGS - You may have a typo or otherwise have misconfigured the settings that point your client PC to the license server. Double check that your settings are entered using the correct format (single-user client PC, multi-user client PC).   PORT & ADDRESS - Double check the port number and server address/name used in activating licenses on your client PC. Make the port number specified is the number in use for your license service. Our default port number is 26914 but enter your custom port number if you set your own.   SERVER FIREWALL - Did you add the required exceptions to your license server’s firewall (lmtools, lmadmin)? To any other network appliances and firewalls (lmtools, lmadmin)?   Connectivity suggestions   You've triple-checked your client PC settings. You've set firewall exceptions. The port test still shows that you can't connect from the client PC to the server. What can you do?   These aren't fixes, but they can help you narrow the source of the problem so that you can find a solution.   CHECK THE LICENSE SERVER - Maybe your license server isn't actually serving your licenses. You can install the FlexSim simulation software locally on your license server, then using the port you specified (default is 26914) and the local IP address 127.0.0.1, you can point your local FlexSim installation to the local license server to see if your license server can license itself. If it can't, check out these license-server troubleshooting tips (where you'll also read about this local test troubleshooting method).   DISABLE FIREWALLS (temporarily as a test) - A connection issue could be caused by a firewall configuration problem on the client PC, on the license server, or on some network appliance in between. One at a time, disable intervening firewalls on the client PC, the license server, and appliances in-between, as applicable. With each disabled firewall, retest connectivity. If connectivity is established after disabling a firewall, work on that firewall's configuration, then reenable it. Test again. Repeat for each firewall until a connection between client and server can be established.   DISABLE ANTI-VIRUS (temporarily as a test) - Some anti-virus solutions will block application communications. Disable anti-virus software on the client PC. If nothing changes, also disable anti-virus on the server. If this fixes the issue, work with your IT administrator to modify your anti-virus settings. Remember to reactivate your anti-virus software after this experiment.   ASK YOUR FRIENDLY NEIGHBORHOOD ADMIN - Your network may have settings, topology, filtering, etc. that affect the client PC’s ability to communicate with the license server. Work with your network administrator to make sure the client PC can communicate with the license server across your network using both port numbers - for the licensing service and the vendor daemon. See default and custom port numbers.
View full article
Background   The method for licensing a single-user client PC saves client PC license settings to the Windows profile data of the signed in user, so license settings are saved on a per-user basis.   In cases where the exact number or identity of PC users is not predetermined, such as in a university computer lab, it is impractical to license users individually in this manner. Another use-case for this method is when FlexSim Software is automatically pushed or deployed to client PCs. Having the licensing as part of the deployment is useful.   For this mult-user method we'll use a license file on the client PC to license FlexSim software generally for any user of the PC.   Use a license file   Create a plaintext license file   On the client PC create a plaintext license file named flexsim.lic with the following 2 lines (exclude any line numbers):   SERVER 127.0.0.1 ANY 26914 USE_SERVER   If your Windows settings do not show file extensions, it is possible that your flexsim.lic license file is actually named flexsim.lic.txt, which will not work. Be sure to show file extensions and make sure your license file ends with the .lic file extension. The actual name of the file is not important (it could be helloWorld.lic, for instance), but it needs to end in .lic.   Modify   On the client PC, modify your new license file with the following changes:   On line 1 change "127.0.0.1" to the IP address or fully qualified domain name of your license server. If you modified your license server with custom port numbers, on line 1 replace the default port 26914 with your custom port number.   Install   With FlexSim software installed on a client PC, your new license file should be copied into FlexSim’s installation directory in the following location:   C:\Program Files\FlexSim <version>\program\   Your exact folder path could differ based on custom installation locations or FlexSim version, but it should be placed into FlexSim’s program\ folder.   Multiple license servers?   If your FlexSim licenses/seats are spread across multiple license servers, you can configure your client software to try to pull a license from any of your multiple license servers. Simply create a new license file for each possible license server and save each to the same program\ folder. In this scenario, in your program\ folder you would have multiple license files listed, like this:   flexsim1.lic flexsim2.lic flexsim3.lic etc. Each license file should reference a different license server and its port number.   Next   Check out the next article to learn how to verify that your client PC is licensed, and what to do if it isn't: License Server - Verify client PC licensing.  
View full article
Sometimes things don't work out the way you thought they would. Usually, at least with license servers, it just means that you missed a step, or there is some issue that wasn't considered. Below we'll outline some things you should check:   Server configuration   - Check the service   Is the FlexSim_License service you created using LMTOOLS up and running? When you created and configured your licensing service, did you check the log file? Look for any errors or issues in the log. Troubleshoot the service if necessary.   - Local test   You can rule out configuration issues by installing FlexSim locally on your license server. Configure the local FlexSim installation using the port you specified (default is 26914) and the local IP address 127.0.0.1, to point your local FlexSim installation to the local license server to see if your license server can license itself.   - Connectivity problems   If your local test works, then your client PC licensing issues may actually stem from connectivity problems. In that case, check out our article Client/Server connectivity.   - Check, check again   Double check that your server is configured properly. When viewing your license service’s log file, you should see indications of ports in use, features being served, etc. (lmtools, lmadmin). If no features are listed, or port numbers are different than what was expected, please revisit the configuration guide (lmtools, lmadmin). Carefully read and execute each step of the instructions to make sure that you have properly configured your license server.   Overzealous anti-virus   Some anti-virus solutions prevent unrecognized services from running or accessing necessary functionality. If a local test (above) works, you may only need to test disabling anti-virus solutions on the client PC. Or if you're trying to get the license service to run on the server, you may need to test there also. Remember to reactivate your anti-virus software after this experiment.   Version or product mismatch   Your actual license, activated to your server using flexsimserveractutil.exe (online, manual), must be for a FlexSim version the same or greater than the software’s version number.   Your license is also for a specific product (FlexSim vs FlexSim Healthcare vs FlexTerm, etc.).   See the article FlexSim Version Numbering, for more information regarding FlexSim versioning and how it relates to licensing.   Seats all in use   If your FlexSim client software is not obtaining a license from the server, it’s possible that all seats are already in use on other client PCs. Check the log files (lmtools, lmadmin) to determine where your seats are currently in use.
View full article
You've installed, configured, and started your license server. FlexSim is installed and your client PCs are set to get a license from your license server. How can you tell if they're communicating and licensing properly? You can check both the client PC and the license server to make sure that licensing is happening: Client PC Within FlexSim software on the client PC, go to the main menu, Help > About FlexSim. The popup should indicate the activated license type. Test licensed features to see if they work. Check the article FlexSim Feature Limitations by License Type to see what features should be available given your license type (Enterprise, Educational, Student, Runtime). For instance, the Experimenter feature should be available to each of those license types. License Server In lmtools logs (Config Services > View Log…), you should see that a seat is in use. (See How do I read/analyze my vendor daemon logs? What do the various lines mean?). In lmadmin logs you should see that a seat is in use. If your client PC is not getting licensed and/or your license server logs don't indicate communication with a client PC, check the license server troubleshooting steps.
View full article
"switch by case" is a stucture in many programming languages. It is a availbale in Flexscript. A case must be a number for a switch by case structure in Flexscript. A decide activity can switch even to string value cases. All you need is to rename the connector from a decision activity to a following activity. process_flow_by_case.fsm
View full article
Background   Often a client PC is used by a single user who should have access to change license settings.   This method saves licensing settings to the user’s Windows profile. In this manner licensing is saved on a per-user basis and should be completed in advance for each FlexSim user on this client PC.   In some situations it is better to license the PC once for any user who might log in. This can be the case for a university computer lab, for instance. If your situation would be better served by licensing the software one time for all users of the PC, please check out our guide to license a mult-user client PC.   Configure Licensing   To license an individual Windows user, do the following while logged into Windows as that user:   Open FlexSim software on the client PC by right clicking the program icon and choosing Run as Administrator. You won't normally need to start FlexSim under elevated privileges, but sometimes licensing the PC for the first time requires it. Go to the software’s main menu and select Help > License Activation. Navigate to the License Server tab. Check Use concurrent licensing. Enter the License Server Address using the form port@host, where host is an IP address or fully qualified domain name (FQDN). For example, if your license server is reachable via the FQDN licenseserver.mycompany.com: If you used FlexSim’s default license service port number, enter 26914@licenseserver.mycompany.com. If you specified a custom port, use that number instead. For example, if you entered 27500 as your custom port number, you should enter 27500@licenseserver.mycompany.com. Click Apply Configuration.   Multiple license servers?   If your FlexSim licenses/seats are spread across multiple license servers, you can configure your client software to try to pull a license from any of your multiple license servers. Simply enter all available license server options, separated using a semi-colon, like this:   26914@lic.server.one;27001@lic.server.two;27009@lic.server.three   Here is an example image:   The software will attempt to contact each license server in turn until it obtains a seat or has attempted all license servers and failed.   In the example above, lic.server.one and lic.server.two are fully qualified domain names to properly configured license servers, with lmgrd serving on ports 26914 and 27001 respectively. You could also use an IP address instead of a FQDN.   Next   Check out the next article to learn how to verify that your client PC is licensed, and what to do if it isn't: License Server - Verify client PC licensing.
View full article
You should have already completed all preceding steps found in the article Hosting your FlexSim licenses with lmtools, including all those under the headings "Preparation and Prerequisites" and "Activate licenses to your license server". Your license server will communicate with client PCs using two executables, the lmgrd.exe licensing service and the flexsim.exe vendor daemon.   This article shows how to add exceptions for these applications through Windows Firewall. If you have additional firewalls or network appliances that need to be configured, please check the section Port Considerations at the end of this article.   Allow an app through Windows Firewall Port Considerations   Allow an app through Windows Firewall   Windows Firewall allows you to specify certain applications that will be allowed through different network types. If you're not sure about firewalls and networking, be sure to contact someone in your organization that administers these things.   You will need administrator privileges on your license server to add firewall exceptions.   Open the Allowed apps interface   Click the Start button or press the Windows key, then type Firewall into the search box. Choose the option to Allow an app through Windows Firewall.     If you don't see that option, you can choose the option Windows Defender Firewall at the top of the search results. This will open the Windows Defender Firewall topic the Control Panel. There you can choose Allow an app or feature through Windows Defender Firewall in the side panel:     Add a firewall exception for lmgrd.exe   In the Allowed apps window, click the Change Settings button, then the Allow another app… button.     In the Add an app window that opens, click the Browse… button. Navigate to extracted license server downloads. Double click lmgrd.exe to choose the file.     Click the Network types… button.   Check the boxes for the various network types that the firewall should allow. We recommend allowing your FlexNet licensing to communicate across all network types, but contact your server or network administrators if you're not sure.     Click Okay to close the Choose Network Types window.   Back on the Add an app window, click the Add button.   Add a firewall exception for flexsim.exe   Repeat the steps above for flexsim.exe:   Click the Allow another app… button. Browse… to your extracted license server downloads. Select flexsim.exe. Click Network types… and choose the appropriate networks to allow access to lmgrd.exe. These should be set to the same settings chosen for lmgrd.exe, and you can usually allow all network types - domain, private, and public. Click the Add button. Click OK to close the Control Panel window.   Port considerations   You may need to allow communication through other firewalls or network appliances, depending on your network topology and specific licensing plans for how and from where client PCs will connect to the license server. Usually for such firewalls or devices you will configure inbound and outbound port exceptions to allow your license server communications to pass through.   A FlexSim license server has its ports defined in a flexsim.lic license file, specified when you configured your FlexSim_Licensing service.   Our default ports are as follows:   lmgrd.exe - licensing service - port 26914 - TCP flexsim.exe - vendor daemon - port 56914 - TCP   There is a chance you specified custom your port numbers. If you're not sure you can check your flexsim.lic license file. Read more about FlexSim's license file and default vs custom port numbers in our article FlexSim's license file.
View full article
This model is a proof-of-concept example for combining FlexSim's GIS features with the power of mixed integer programming in python. The model simulates a distribution network of 'factories' (red icons) and 'warehouses' (blue icons). The factories produce the product you are selling, and then distribute the product to various warehouses in the network. Every day, each warehouse generates a random demand for the product. Once demand from each warehouse is known, the 'demand dispatcher' must determine which factory should produce and ship how much of the product to each warehouse, fulfilling all warehouses' demands at minimum total cost. Each factory has a maximum daily capacity of production and a per-unit cost of production. In addition, shipping costs must be taken into account from each factory to each warehouse. Given these factors and constraints, the problem of optimal dispatching boils down to the well-known min cost flow problem in optimization. I've created a simple python script that uses cvxpy to solve this min cost flow problem as a mixed integer program. The MIP is not exactly the same as the standard min cost flow problem, since total factory capacity may be more than total warehouse demand, and I'm using integer instead of continuous variables. Nevertheless, it is sufficient to demonstrate the capability. The Warehouse process flow generates daily demand for each warehouse and pushes it to a shared Demand list. The DemandDispatcher then pulls demand from the list, and marshals capacity, demand, and cost data into parameters that can be passed to python. Then it evaluates getMinCostFlow label on the process flow, passing those parameters in. The label is configured to connect to the getMinCostFlow function defined in the MinCostFlow.py module. This function formulates the MIP with cvxpy, solves the program, and then returns the optimal shipping quantities for each factory-warehouse pair, returning control back to FlexSim. Once the shipping quantities have been resolved, the DemandDispatcher process flow creates and labels 'Trucks' that are sent to each warehouse. Note that this travel mechanism is purely for animation purposes, letting you visualize how much product is being sent from factories to warehouses each day. Potential additions to this model could use inventory management strategies, simulating randomized lead times, etc. I've added several dashboards that show the cumulative average breakout for each warehouse of which factories supply that warehouse, as well as the cumulative average breakout for each factory of which warehouses that factory supplies. I've also added costing measures for the warehouses and factories. Some interesting insights that can be gleaned from this model are how shipping vs. production costs affect the balance of which factories will ship to which warehouses. For example, if your shipping costs are low relative to your production costs, then the min cost flow algorithm will push production to factories that are the lowest cost to produce, even if they are far away from the destination warehouse. High production cost factories are consequently relegated to little if any production. However, if shipping costs are high, the algorithm will localize production to the factories nearest their respective warehouses. In order to run this model, you need python properly configured, including: Install one of these python versions: 3.7, 3.8, 3.9, 3.10 Install the cvxpy and cvxopt packages: python -m pip install cvxpy cvxopt Make sure the python directory is part of your PATH environment variable Configure your Global Preferences (the Code tab) to use the associated python version. This model was built in FlexSim 22.1. MinCostFlow.zip
View full article
A license file? What's that? License not included Default port numbers Custom port numbers Automatic port numbers Resolving port conflicts A license file? What's that?   When you set up a license server to host your FlexSim licenses, you'll configure settings for a FlexNet licensing service (lmtools, lmadmin). Some settings are specified in a plain text file ending in the .lic file extension.   You'll find FlexSim's license file, flexsim.lic, alongside the other downloaded license server materials (lmtools, lmadmin). The license file is just plain text. You can open it and examine its contents using your favorite text editor (Notepad, Notepad++, VSCode, etc.).   If you've used FlexNet licensing before, you know that often a .lic license file contains license codes and hashes that authenticate a product license on a computer system. However, this isn't the case for FlexSim.   License not included   FlexSim's license file doesn't contain any license information. Instead FlexSim licenses are held in FlexNet's Trusted Storage. That's why every customer downloads an identical license file alongside all our other license server materials.   FlexSim's flexsim.lic license file is a bootstrapper that tells FlexNet's licensing service to find FlexSim's license information in Trusted Storage, and to specify port numbers that will be used for serving the licenses.   Here are the complete contents of FlexSim's default flexsim.lic license file:   SERVER this_host ANY 26914 VENDOR flexsim port=56914 USE_SERVER FEATURE serverfeature flexsim 1.000 permanent uncounted HOSTID=ANY \ SIGN="05CB 6F61 116D 06E3 A08D CAFB FC5C BEF3 DF53 BDC6 AF68 \ 060C 27B8 9968 CB94 0515 2BE7 E30C 2FAF C0D6 1D77 CCEB 878E \ 2D67 1434 0E3F 6BA5 1FDA BD35 F98D"   Default port numbers   You can see on lines 1 and 2 above where we've defined FlexSim's default license server port numbers:   26914 (lmgrd.exe - the licensing service. Client PCs specify this port on the license server.) 56914 (flexsim.exe - the vendor daemon)   Custom port numbers   While we recommend using FlexSim's default port numbers, you can edit your flexsim.lic file to specify your own custom port numbers. Simply replace the default port numbers in your plain text license file with any valid, available port numbers you wish to use.   Automatic port numbers   Also not recommended - you can also remove the port numbers (and the “port=”) from the flexsim.lic file to allow the FlexNet Licensing Service to auto-assign port numbers, like this:   SERVER this_host ANY VENDOR flexsim USE_SERVER FEATURE serverfeature flexsim 1.000 permanent uncounted HOSTID=ANY \ SIGN="05CB 6F61 116D 06E3 A08D CAFB FC5C BEF3 DF53 BDC6 AF68 \ 060C 27B8 9968 CB94 0515 2BE7 E30C 2FAF C0D6 1D77 CCEB 878E \ 2D67 1434 0E3F 6BA5 1FDA BD35 F98D"   We don't recommend auto-assigned port numbers since the FlexNet Licensing Service could auto-assign new, different port numbers any time the licensing service is restarted (such as when your server restarts to install Windows updates, etc.).   Port numbers that change regularly can make it more difficult to maintain the firewall exceptions or other network settings needed for your license server to communicate properly with client PCs.   Resolving port conflicts   If your licensing service has trouble starting or properly hosting licenses, or if other licensing services fail after starting your FlexSim licensing service, you could have a port conflict.   You could try specifying your own custom ports as described above. This is a good solution if you know what port numbers are in use with existing services and can choose unused port numbers. After changing the port numbers defined in your flexsim.lic license file, restart your FlexSim_Licensing service.   If you’re not sure what port numbers to try, you could allow FlexNet to auto-assign port numbers itself – it tries to find and use free ports, though it isn’t foolproof. After modifying your flexsim.lic license file to allow automatically chosen port numbers, restart your FlexSim_License service. Then check the log file (lmtools, lmadmin) to see what ports were auto assigned.   If everything works, we suggest that you take the port numbers automatically assigned by FlexNet and hardcode them into your license file. This way you can maintain static exceptions more easily in your firewall. Be sure to configure your client PCs to use the new license service port number.  
View full article
One of the new features in FlexSim 2018 Update 2 is the ability to use distributed CPUs for the Experimenter or Optimizer. Those cores can exist on any machine that meets the following requirements: The machine is accessible by IPv4 address The machine has FlexSim installed The machine is running the FlexSim Webserver (version 18.2.0 or later) on port 80 The machine meets hardware requirements to support running the specified number of simultaneous replications. This article describes how to use Amazon Web Services to create remote machines that meet the above requirements. Using AWS, you can launch and connect to as many servers as you want, and pay only for the time used on those instances. Anticipated Use Case Using distributed CPUs can significantly reduce the required time to run an experiment if: The time to run a single replication is high (a couple minutes or more) The number of replications to run is high If the time per replication is short, then the increased communication overhead may outweigh the benefit of using distributed CPUs. The communication overhead increases because all CPUs still report results to a single FlexSim process, and that communication occurs over the internet, rather than on a single machine. If an Experiment or Optimization completes in an acceptable amount of time, you may not need to use distributed CPUs. Financial Costs Amazon charges for its services. Costs for running instances (and transferring data out of them) are found here : https://aws.amazon.com/ec2/pricing/on-demand/ Costs for storing data (including AMIs) are found here: https://aws.amazon.com/ebs/pricing/ These instructions include steps to create an AMI, which will likely cost around $1 per month at current rates. It also includes steps for launching high-performance instances, which have an hourly cost. Suitable instances can be as cheap as $0.50 per hour. Note that there are also charges for transferring data from an instance to another computer. Step 0: Complete an EC2 Tutorial If you are not already familiar with EC2 instances, you should complete the following tutorial: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html Step 1: Create a Security Group You will need to create a security group with the following rules: Allow HTTP traffic on port 80. This allows incoming connections to the FlexSim Webserver. You can choose which inbound IP addresses to accept. You should make this as strict as possible. The strictest setting is to only allow incoming connections from the current IP address. Allow TCP traffic on ports 9000-9200. This is a Custom TCP rule. Note that you can make this range smaller, if all machines that use this Security Group have fewer than 200 cores. For example, if the biggest machine launched with this Security group has 72 cores, you would only need ports 9000-9072 in this rule. Allow RDP traffic on the default RDP port. This allows you to connect to the instance using remote desktop. Name the Security Group something that shows that this group is related to running FlexSim instances, and add a description if you want. Here is an example Security Group that works, but allows all TCP traffic, and so should only be used for testing purposes: Step 2: Create a Custom Amazon Machine Image (AMI) You will need to create a custom AMI. A custom AMI allows you to launch an instance that has the software you need already installed. To create one, follow these steps: Download the FlexSim installer and the Webserver installer. If your upload speed is slow, you can skip this step. Launch the cheapest instance available, with the Windows 2016 Server Base image. There are probably free-tier instances available in the list Connect to that Instance with Remote Desktop Copy (or download, if upload speed is slow) the FlexSim installer to the remote machine, and run it to install FlexSim. You do NOT need to activate a license. Run FlexSim. This creates a directory that is needed later. Then close FlexSim. Copy (or download, if your upload speed is slow) the Webserver installer to the remote machine, and run it to install the webserver. If using the 2018 Update 2 Beta, be sure to change the Webserver configuration file accordingly. Run the Webserver. It will download a bunch of files the first time it is run. Allow both FlexSim and node.js through the Windows Firewall. To do so, use the Allow an App through the Windows Firewall tool. You will need to browse for both FlexSim and Node.js. Both are in the ProgramFiles directory. Disconnect the Remote Desktop session Go to the list of Instances in the AWS Console From the Actions menu, select Image, then select Create Image: Add a name and description. Click the Create Image button On the next dialog, click the View Pending link, or navigate to the list of AMIs: Once the image becomes Available, terminate the running instance. Step 3: Launching Usable Instances Before running an Experiment or Optimization, you need to be sure that all remote instances you will use are current running. To launch and initialize these instances, follow these steps: In the EC2 Console, choose Launch Instance Select the AMI you created, from the list of My AMIs Choose the Instance Type and quantity Set the Security Group to use the Security Group you created Launch the instance Once each instance is initialized, connect to each one with Remote Desktop. Note that when you launch an instance with a given Key File, the password for each instance will be the password associated with that Key File, so you only need to decrypt the file once. Start the FlexSim Webserver in each instance Once all instances are running the Webserver, you are ready to run an Experiment or Optimization. Author's Note: There is probably a way to make it so that when instances start up, they automatically run the Webserver, so that you don't have to manually connect to each one. I welcome any suggestions or steps for how to make that happen. Step 4: Using the Instances in FlexSim Once you have a list of running instances available, you just need to input their IP Addresses into FlexSim, on the Advanced tab of the Experimenter: Once you have input this information, you just need to click the Experiment or Optimize button. FlexSim will then use the remote CPUs for running replications. Considerations Spot Pricing Amazon offers two pricing models: On Demand and Spot Pricing. FlexSim recommends On Demand instances. Spot instances can be significantly cheaper, but they can also be shut down by Amazon and given to an On Demand user at any time, if On Demand requests exceed the number of available machines. FlexSim does not try to recover from this kind of error, and it may lead to unexpected behavior. CPU Count, RAM, and Disk Space When you pick an instance type, be sure to understand how much ram you will need. If a model requires 4 GB of RAM while running, and you use an instance with 128 cores, be sure that the instance has at least 512 GB of RAM, or don't use all 128 cores. Disk space is usually not an issue. However, if you are using the Store Data on Hard Drive option in the Statistics Collector, you will need to be sure that there is enough disk space to run the model to completion on the hard drive, multiplied by the number of cores. The amount of disk space on each instance also affects the total cost of using this service.
View full article
Greetings, I would like to share my latest FlexSim creation with the community, HUGE thank you to the flexsim overlords for creating such an awsome software https://youtu.be/WyfNS6vfLZE. G
View full article
FlexSim 2018 Update 2 Beta is available. (Updated 26 July 2018) To get the beta, log in to your account at www.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space. Release Notes Added an interface for running experiments and optimizations on the cloud. Added a mechanism for adding new charts as experimenter performance measures. Added a Sankey Diagram to the dashboard charts. Added a Milestone Collector statistics tool and chart templates. Added a way to customize how objects draw their 3D shape meshes. Added {} syntax to specify FlexScript expressions in SQL queries. Added a Down Behavior tool that can be used by Time Tables and MTBF MTTR objects. Added a message() method to the Object class to replace sendmessage() and senddelayedmessage(). Added a varchar bundle field type for variable-length strings. Added status bar updates to the table view. Updated the bar and pie charts with more options and data formats. Added duration settings to the gantt chart. Added new task sequence classes to the FlexScript API. Added a getCategoryName() method to the TrackedVariable class. Added getEntryFromValue() and reevaluateBackOrders() methods to the List class. Added padStart() and padEnd() methods to the string class. Added an option to sort back orders independent of entries when reevaluating back orders. Added an option to configure a list to always leave its entries on the list. Added events to the Statistics Collector. Added options for sorting rows in statistics collectors. Added dot syntax label access to List.BackOrder. Added a backOrder keyword that is available in a list back order queue strategy. Added a new overload to List.pull() that takes both an array and a query. Updated user library functionality to better handle conveyor types and containers. Updated Move into Highlighted code to preserve global position and rotation. Improved sampler options in various places. Improved drop-down options with label values in several places. Updated the Ctrl+W keyboard shortcut so it correctly closes the window that has keyboard focus. Updated the query() command to re-throw exceptions. Fixed a bug with updating bundle indexes when using certain commands. Fixed a performance bug with pasting into bundle tables. Fixed a window docking bug. Fixed a bug with the robot not drawing collision spheres or its stopped indicator. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Changed Variant math operations on non-numbers to throw exceptions. Updated the Source to automatically attach task executer flowitems to the DefaultNavigator. Updated dumpquery() to use bundle varchar fields. Fixed an issue with the Z-axis being inverted for screen-locked shapes in perspective 3D views. Process Flow Added stop() and resume() methods to the Token class. Updated global shared assets so they now have a separate global block instance. Updated Edit Mode so you can no longer move activities when it is off. Added a check box to quick properties to turn off all trace histories. Updated Wait for Event to handle listening to arrays of objects. Updated Pull from List so you can use it with a Resource shared asset. Updated the Resource so you can point it at a global List or a List shared asset. Added a way to sample shared assets in certain fields. Updated the naming convention for Resource object copies. Added an error message when trying to rename a shared asset the same name as another. Improved the performance of the Wait for Event activity. People Updated the multi-location to allow people to enter without an available sub-location. Conveyor Added a max count slug building property to the conveyor type. Added a catch condition to the power and free functionality to customize whether a given dog will actually catch an item. Added the capability to reverse conveyors under certain conditions. Changed the roller skew kinematics to be based on item travel distance instead of time. Changed the conveyor's belt repeat distance to sync to the adjusted dog interval. Fixed a bug with decision points snapping to grid when added with a conveyor from a user library. AGV Updated path transfers to prioritize their requests. Fixed an issue with accumulating path allocations causing AGVs to get stuck. Fixed various issues with AGVs having different deceleration values. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Improvements to AGV proximity detection on accumulating paths. Emulation Fixed Modbus polling for changes. Fixed the Modbus panels in the Variable shared asset so they show the associated object now.
View full article
You should have already completed all preceding steps found in the article Hosting your FlexSim licenses with lmtools, including all those under the headings "Preparation and Prerequisites" and "Activate licenses to your license server". At this point you're ready to install, configure, and start the service that will serve your FlexSim licenses.   Create the service Configure service permissions Start the service Check the service status Troubleshooting problems with the service   Create the service   We'll use lmtools to create your new licensing service.   On your license server, in your extracted download folder of FlexSim license server materials, right-click lmtools.exe and choose Run as administrator. Go to the Config Services tab. Create a new licensing service by typing FlexSim_License into the Service Name input field. The Service Name field looks like a dropdown selector, but you can click in it to type a new name. Use the 3 Browse buttons to specify the paths to files (lmgrd.exe, flexsim.lic, log.log) that are also included with the FlexSim license server materials. Check the boxes for Use Services and Start Server at Power Up. Press the Save Service button in the upper right. Confirm the save by choosing Yes. You may receive an error message regarding "Windows preferred path". This is normal and this message can be safely ignored.   Configure service permissions   Your new FlexSim_License service needs permissions set to function properly.   Click the Windows Start button or press the Windows key, then type “Services” into the search box in the Start menu, and press Enter. Windows will search for and open Windows Services Manager. Find FlexSim_License in the list of services. If it is missing from the list, see the section Troubleshooting the licensing service below. Open the FlexSim_License service’s Properties window by double-clicking its name. Go to the Log On tab. Choose the option to Log on as: Local System account. Press OK to close the FlexSim_License Properties window.   Start the service   While still in Windows Services Manager, use the Start link to start your new FlexSim_License service.     You should see a status bar showing the startup progress. The service usually starts in under a minute.   If there are any errors or other problems with starting the service, skip to the section Troubleshooting problems with the service.   Check the service status   After the service is started, head back to lmtools to check the log. You can view the service log from the Config Services tab, press the View Log... button, located toward the lower right of the Config Services panel.   You should find the following information in your log file:     lmgrd.exe is listening on port 26914. This is the port the licensing service will use when listening for client PC communication. The bootstrap license file flexsim.lic was found and loaded. (This is not a license file specific to you and does not contain your license info. FlexSim licenses use Trusted Storage and licenses are activated to your license server using flexsimserveractutil.exe). The flexsim.opt Options file was found and loaded. A list of product features activated in your server's Trusted Storage. Your feature set may differ somewhat from this example, depending on your license and product, but you should see several of the features above. 900 seconds is the minimum timeout allowed by FlexNet, and we configure our installation to use this minimum value using the options file. The flexsim.exe vendor daemon is using port 56914.   To close the log, press the Close Log button, toward the lower right of the Config Services panel in lmtools.   Troubleshooting problems with the service   Did everything work? If not, perhaps you have one of these issues:   The FlexSim_License service is not listed as an installed service in Windows’ services. The FlexSim_License service does not start manually. The FlexSim_License service does not start up automatically when the computer restarts.   If any of these apply to you, please check the following:   You ran lmtools as a user with admin rights, and right clicked the program to choose Run as Administrator. On the Config Services tab, you checked the boxes Use Services and Start Server at Power Up. There isn’t already a process running or service installed named FlexSim_License. lmgrd.exe, flexsim.exe, and all other files downloaded together with them are in the same folder, and in a file path that does not contain any folder named “FlexSim” (case insensitive). The FlexSim_License service must run as an account with proper permissions. It’s possible that the Local System Account setting specified in Configure service permissions above does not have adequate permissions, and you will need to specify the service to run under a different account. Work with your server administrator or IT department to determine an account with the proper permissions to run your license service. You could have a port conflict, where one or both of the ports specified in your flexsim.lic license file are in use by another service on your license server. Check the section Resolving port conflicts. Some anti-virus solutions prevent unrecognized services from running or accessing necessary functionality. If your license service won't start, try temporarily disabling any anti-virus solution installed on your license server. If this fixes the issue, work with your IT administrator to modify your anti-virus settings. Remember to reactivate your anti-virus software after this experiment.  
View full article
Modeling LWBS patients is tricky business and can cause exception errors under certain circumstances if not done correctly. The problems usually arise due to patients who exit the model early while there are pending requests queued up in the model for future activities on the patient. The attached model demonstrates the current best practice for safely modeling LWBS patients without the possibility of generating unwanted errors. The modeling technique is very simply. Use the On Entry trigger of the waiting room object(s) to send a delayed message to itself in X minutes, where X is a sample time from an "impatience curve" representing the amount of time a typical patient is willing to wait before they strongly consider leaving. In the On Message trigger of the waiting room object(s), I have written a code snippet that you will want to copy and modify to suit your own modeling requirement. The code snippet in the example model checks to make sure the patient is still in the waiting room waiting for an exam room at the end of the "impatience time" when the message trigger fires. Then I roll the dice using a bernoulli distribution to decide whether or not to have the patient actually leave. The code snippet shows a different probability for each of two patient types (PCI's) and then a default probability of 50 percent for anyone else. Not only does this modeling approach avoid undesirable exception errors, but it is also more accurate and definitely more efficient than using the Quick Properties fields in the Patient Condition panel of a waiting room which requires repetitive function calls every so many minutes throughout the model run!
View full article
FlexSim 2022 Update 2 Beta is now available. (Updated July 18) FlexSim 22.2.0 Release Notes To get the beta, log in to your account at https://account.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. The More Versions button does not appear when logged in as a guest account. Subsequently the beta is available only to licensed accounts and accounts that have a license shared with them. Learn more about downloading the best version of FlexSim for your license here. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space.
View full article
Top Contributors