FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
Introduction Several times per year we release a new feature-version of FlexSim Simulation Software. In order for your PCs to be able to run a licensed version of the upgraded software, you'll need to upgrade your standalone FlexSim license. Licenses with a current maintenance subscription are eligible to be upgraded to the new version. If you don't understand how licensing works for different FlexSim versions, please review our Answers article FlexSim Version Numbering. Overview After installing your new version of FlexSim, there are 3 main steps to upgrading your standalone license: Return the licenses you intend to upgrade Upgrade your licenses Activate the upgraded license Several of these steps have their own fully documented procedures. We'll link you to those resources below. 1. Return the licenses you intend to upgrade The steps to return a standalone license are fully documented. Choose the link below that best matches your needs, depending on whether your PC can connect to the Internet: Standalone - Return - Online Standalone - Return - XML / Offline Be sure to return ALL licenses you wish to upgrade. 2. Upgrade your licenses NOTE: Licenses with expired maintenance will not upgrade. Timed licenses do not upgrade. Only permanent (not timed) licenses under current maintenance can be upgraded. Log in to your FlexSim Account. If you were already logged in to your FlexSim Account, in the top navigation menu hover over your initials icon and choose Reload Account. Now in the top navigation menu, choose Licenses > List. Check that the available seat count is equal to the total. All of a license’s seats should be returned for it to upgrade. Click on the Upgrade Licenses button. If you have several licenses to upgrade and all are owned by or shared with your FlexSim Account, they will all be upgraded at once. Please be patient while the upgrade process works in the background. When the page refreshes, eligible licenses will have a new activation ID for the latest version of the software. Your license code indicates its version at the end of the code to help you know what versions your license will properly activate. Review license code format. You'll be able to use the upgraded license codes in the next step. 3. Activate the upgraded licenses The steps to activate a standalone license are fully documented. Choose the link below that best matches your needs, depending on whether your PC can connect to the Internet: Standalone - Activation - Online Standalone - Activation - XML / Offline If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
16 Dec: Bug fix releases 19.0.8 and 19.2.2 are now available, together with the new FloWorks 2020 release. 18 Oct: Bug fix releases 19.0.7, 19.1.5 and 19.2.1 are now available. 09 Oct: Bug fix releases 19.0.6 and 19.1.4 are now available. The new release FloWorks 19.2.0 is now available for use with FlexSim 2019 Update 2. A bug fix release FloWorks 19.0.5 is available for use with FlexSim 2019 LTS. A bug fix release FloWorks 19.1.3 is available for use with FlexSim 2019 Update 1. FloWorks 2019 introduced some major changes in the way FloWorks works internally. These changes include the following: Flow rates and content are now tracked in the standard statistics variables, requiring us to override fewer FlexSim features. This means, for example, that you can use all of FlexSim's included Statistics Collectors and Chart Templates out-of-the-box. FloWorks now tries to schedule fewer events. This means that models will run faster and debugging your model by stepping through has become much more transparent. This release includes the beta version of the next-generation solver. This solver is particularly suited for networks with many connections, most of which are closed or blocked, or long 'chains' of objects with a single connection in and out. By simplifying the flow network before calculating the flow rates, the solver should become much faster overall. Since this solver is likely to give (valid but) different outcomes, it is not enabled by default - you can test it by enabling the "Optimize networks before solving" option in your Flow Control. The Flow Tank level triggers functionality has been overhauled. For more information, please see the detailed release notes below. All versions of FloWorks can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Please do not hesitate to report any bugs, usability improvements and feature requests to support@talumis.com. Thanks to the active users who have done this in the past weeks, we appreciate your ongoing support in helping us to improve FloWorks! About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV (talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email support@talumis.com. Release notes Changes in FloWorks 19.2.2 (16 December 2019): Bug fix: FlexSim 19.2.4 removed node that was overridden in FloWorks All changes included in version 19.0.8. Changes in FloWorks 19.2.1 (18 October 2019): Bug fix: allow objects to be created when no runtime license present. All changes included in version 19.0.7. Changes in FloWorks 19.2.0 (26 September 2019): Flow pump / valve input and output can be set to balanced rate by % simultaneously. Flow To Item can now buffer additional material before blocking. New segmented flow pipe object. Created new runtime license type. All changes included in version 19.0.5. Changes in FloWorks 19.1.5 (18 October 2019): All changes included in version 19.0.7. Changes in FloWorks 19.0.8 (16 December 2019): Bug fix: Tank level trigger could cause event list to become unsorted. Bug fix: Max. Object Depth setting in FloWorks charts was ignored. Changes in FloWorks 19.0.7 (18 October 2019): Request: Added Waiting for Transport state to Loading Point. Bug fix: Flow Content Histogram was broken. Bug fix: Fixed rounding errors when inflow very close to outflow. Bug fix: Fixed rounding error in tank top/bottom duration calculation. Bug fix: Avoid duplicate event when recalculation requested before Flow Control resets. Backwards Compatibility Note: The following changes may change the way updated models behave. On Full event only available on tank-type objects, no longer on e.g. flow conveyors. Flow Conveyor no longer closes all ports on stop, but only input and output. Flow Conveyor speed is now affected by impact factor set through stop and impact . Flow tank passes set level instead of actual level into trigger code (rounding difference may cause Wait for Event to not match). Input and output trigger also fire in pre-recalculation when amount is reached. Changes in older FloWorks 19.x.x releases Changes in FloWorks 19.1.4 (09 October 2019): Bug fix: Restored objects missing from library and icon grid. Changes in FloWorks 19.1.3 (26 September 2019): All changes included in version 19.0.5. Changes in FloWorks 19.1.2 (19 July 2019): Bug fix: dragging in a shape from a group will no longer create the first shape in the group. All changes included in version 19.0.4. Changes in FloWorks 19.1.0 (30 April 2019): This version is for FlexSim 2019 Update 1. For FlexSim version 19.0.x use FloWorks 19.0.3. Added support for unconstrained flows. All changes included in version 19.0.3 described below. Backwards compatibility note: The following change may change the way updated models behave. Option "Unchanged" removed from "Set flow rate" triggers -- this is now considered as "Unconstrained". Use the "Set maximum input/output rate" option instead of "Set maximum rates" if you only want to change either the input or the output rate. Changes in FloWorks 19.0.6 (09 October 2019): Bug fix: Restored objects missing from library and icon grid. Changes in FloWorks 19.0.5 (26 September 2019): Bug fix: Removed old-style statistics from library, causing several issues like utilization resetting at model end time. Bug fix: FloWorks flow bin items no longer show up in Create Person Process Flow activity (class type changed from Operator to Flow Task Executer). Bug fix: Flow conveyor resume did not correctly close ports. Bug fix: Flow conveyor could get negative content due to rounding error. Bug fix: Flow conveyor stop, impact, resume did not stop content on conveyor when inflow and outflow were zero. Bug fix: Fixed issue when stopping or starting conveyor during Product Change event. Changes in FloWorks 19.0.4 (19 July 2019): Various bug fixes to the Mass Flow Conveyor. Bug fix: Utiliation returns (flow rate)/(max flow rate) at time zero. Bug fix: Solved exception when dragging different object shape into the model. Backwards Compatibility Note: The following change may change the way updated models behave. Bug fix: 'Time until event is 0' exception due to rounding errors fixed. Bug fix: Mixer On Empty event will only fire once (when mixer is actually internally idle). Changes in FloWorks 19.0.3 (30 April 2019): This version is for FlexSim 2019 LTS. For FlexSim 2019 Update 1 use FloWorks 19.1.0. Loading arm state will show Blocked and Starved instead of Idle while transporter is connected. "Pass product downstream" option added to product change trigger of flow processors. Bug fix: Transporters were sometimes positioned incorrectly when entering Loading Point. Bug fix: Flow object states were not updated. Bug fix: Fixed error when calling state() with no arguments. Bug fix: On Entry and On Exit in trigger list of Flow To Item and Item To Flow fixed. Bug fix: "Pass product downstream trigger" threw exception when connected to Flow To Item. Changes in FloWorks 19.0.2 (3 April 2019): For FlexSim 2019 Update 1 beta use FloWorks 19.1.0 (beta). Feature: Flow tank can scale in both directions (elliptical) instead of only using x-size for diameter. Bug fix: Various bug fixes to beta version of new optimizer/solver. Bug fix: Removed "content is larger than max. content" message during reset. Bug fix: Fixed exception in "Pass product downstream" when pipe is not connected to anything. Bug fix: Corrected normals on flow blender and flow splitter shapes. Bug fix: FlowObject.input /output.ports[index] now accepts Variant (e.g. token.Port ) as index and does bounds checking on index . Bug fix: Spheres no longer drawn outside flow pipes shorter than 2 m. Bug fix: Quick Properties only shows a single flow rate for flow pipes; output rate set to input rate on reset. Changes in FloWorks 19.0.1 (8 March 2019): Beta: Flow control can optimize network before solving. (Optimization is disabled by default, can be enabled for models with many (effective) single connections.) Content-holding objects now have On Trigger Level event that allows e.g. Process Flow to wait for a specific level trigger. Optimized event scheduling: obsolete events are removed from the event list instead of ignored. FlowToItem and ItemToFlow added to script so that rates and impact factors can be read and set. Added more shapes for Flow Tank and Mixer. Added "Change product by case" to trigger options. Bug fix: Flow conveyors now have state profile consistent with that of Flow Tank. Bug fix: Product color picker samples colors instead of objects again. Bug fix: Fixed incorrect layers being drawn during filling of Flow Mixer when multiple steps require input from the same port. Bug fix: Fixed incorrect states on Loading Point due to duplicate state_current node. Bug fix: Product field or dropdown will now preserve selected value instead of resetting to current product when switching property tab pages. Bug fix: Flow Task Executer connects itself to default network navigator on creation. Bug fix: Flow statistics now behave correctly under model warmup. User manual: Corrected description of FlowObject.stop() in documentation. User manual: Documented manual loading feature when Loading Points have 0 loading time. Backwards Compatibility Note: The following change may change the way updated models behave. Statistics are now kept in standard FlexSim tracked variables under the stats node. If you use dashboards, you may need to rebuild some charts. You can mostly use the standard FlexSim chart templates, listening to the On Rate Change event or the On Content Change Update (not Change). Tank trigger levels rewritten: Trigger levels are now specified using absolute level instead of percentage. Legacy limitations (max. 20 levels, no duplicate levels, 0% or 100%) have been removed. Separate trigger condition has been added to avoid coding ( if(mode == falling) { ... } ). Modes rising and falling are now called MODE_RISING and MODE_FALLING . Bug fix: Sometimes input and output triggers would not fire if trigger was reached precisely when flow was recalculated. (Mass) flow conveyor now closes input/output when stopped, instead of input/output ports. Loading point continues with next transporter after releasing completed item instead of waiting for it to exit. Bug fix: (Mass) flow conveyor only closed input when stopping; now closes both output and input.
View full article
One of the most powerful features of Process Flow is the ability to easily define a Task Sequence. However, many real-life situations require the coordination of multiple workers and machines to do a single task. This article demonstrates one approach you can use with Process Flow to coordinate multiple Task Executers, or in other words, to create a coordinated task sequence. This article talks about an example model (handoff.fsm). It might be easiest to open that model, watch it run, and perhaps read this article with the model open. The Example Scenario Here is a screenshot of the demo model used in this article: Items enter the system on the left. The yellow operator must carry each item to the queue in the middle, and then wait for the purple operator to arrive. Once the two operators are both at the middle queue, then the yellow operator can unload the box, and the purple operator can take it. After this point, the yellow operator is free to load another item from the left queue. The purple operator takes the item, waits for a while, and then puts the item in the sink on the right. The interesting part of this model is the hand off. The yellow operator must wait for the purple operator, and vice versa. This is the synchronization point, and it requires coordination of both operators. The approach used in this model allows you to add more operators to the yellow side, and more to the purple side. But it still maintains that a yellow operator must wait for a purple operator before unloading the box. The Example Model In addition to to the 3D layout shown previously, there are 5 process flows in the example model. The first is a general flow, and defines the logic for each task. The second is a Task Executor flow, and defines the logic for the yellow operator. The third is also a Task Executor flow, and defines the logic for the purple operator. The remaining two flows are synchronization flows, for synchronizing between the other three flows. Synchronizing on a Task The basic approach in this model uses the Synchronize activity. This activity waits for one token from each incoming connector, before it allows any of the tokens to move on. Here is the Yellow Purple Sync flow (a global Sub Flow) from the example model: The flows for the yellow and purple operators each use the Run Sub Flow activity to send a token to this flow, to their respective start activities (you can use the sampler on the Run Sub Flow activity to sample a specific start activity in a sub flow). This is what allows both the yellow and purple operators to wait for each other. However, it is important that the yellow and purple operators are both doing the same task. In this model, there is a token that represents each item that needs to be moved. Both operators get a reference to this task token. The Synchronize activity is set up to partition by that Task token. That means that a yellow and purple operators must both call this sub flow with the same task token, ensuring that each task has its own synchronization. In the example model, this kind of synchronization happens between operators, and it happens between each task and an operator. Basically, the task must wait for the operator to finish that operator's part. The Task Flow A task token is created every time an item enters the first queue. The tasks flow puts that task on both the Yellow and Purple lists. In both cases, the task token does not wait to be pulled, but keeps itself on the list. Then, the task token waits for a yellow operator to finish with it, and then for the purple operator to finish with it. There is a zone in this flow, but its only purpose it to gather statistics for how long the whole task took. The Yellow and Purple Flows These flows are easiest to understand when viewed side by side: Recall that each task is put on both the Yellow and Purple lists at the exact same model time. The yellow operator waits to get a task (at the Get Task activity). Then the operator travels to the first queue, gets the item, and travels to the second queue. At this point, the yellow operator waits. At the same time, the purple operator is also waiting for the task. The purple operator just has to travel to the second queue before waiting for the yellow. Once the yellow operator arrives, the purple operator also has to wait for the yellow operator to unload the box. On the yellow side, once the purple operator arrives, the yellow operator unloads the box, and then synchronizes with the purple operator, allowing the purple operator to load the box. Summary The purpose of this article is to show one method for synchronizing token in separate flows. That method is as follows: Have a token for each task. As each task executor (or fixed resource) needs to synchronize, they each use a Run Sub Flow activity, putting the token in a specific Start activity. The Sub Flow (a global Sub Flow) has a synchronize activity, that requires a token from each participant for that task before releasing the tokens. This is certainly not the only way to create this model. However, there are some advantages: By forcing the task to synchronize, you can gather stats on how long each phase of the task took, as well as how long the complete task took. You can add more yellow or purple operators by copy/paste. They simply follow their own logic Each set of logic is separated; tasks, yellow operators, and purple operators each have their own flows, making each one much simpler. The exact approach used in the example model will not work exactly as it is for each model. However, you can apply the general principles, and adapt them to your own situation.
View full article
In addition to the animations that are on the Operator and Person flowitem by default, you can easily download and add more animations from Mixamo. Below are the steps to do that. If you want to create new characters with animations, see Bone Animations 1. Download the attached two files: FlexSim_Operator.fbx and FlexSim_F_Operator.fbx. These are the versions of the male and female operator shapes as exported from Mixamo originally, before they were modified and optimized in 3ds Max. 2. Log into your account at https://www.mixamo.com and press the Upload Character button in the Characters section of the site. 3. Drag the FlexSim_Operator.fbx or FlexSim_F_Operator.fbx shape from step 1 onto the window that appears. A progress bar will appear as the shape uploads to Mixamo's server. Once it is finished uploading, press the Next button: 4. On the Animations section of the site, select an animation you want to apply. Adjust the parameters as desired and press the Download button: 5. Select "Without Skin" in the Skin section and press the Download button. This will download just the animation file rather than the animation, the mesh, and the bones. The mesh and bones are already in the software so you only need the animation if you are editing the standard male or female operator shapes. 6. In FlexSim, edit the Animations for an Operator or a Person flowitem: 7. In the Animations and Components window, select Edit Animation Clips: 8. In the Animation Clips window, press the Plus button to add the animation you downloaded in step 5 above. Optionally, you can edit the animation clip's name and press Apply. You can also edit the clip's length or split the animation into multiple clips using this window. 9. Close the Animation Clips window when you are done. 10. In the Animations and Components window, add a new Animation and name it. Then add an Animation Clip to that animation. Then select the clip and set its Animation and Clip values to the animation/clip set in step 8: 11. Now you can use the new animation in your model on this operator or person flowitem.
View full article
Preparation   You will need to be able to transfer plaintext XML license files to and from your offline computer.   Create manual return requests   Open FlexSim Software. In FlexSim's main menu, Go to Help > License Activation. Click the Advanced tab. Go to the Manual Return sub-tab. Each of your activated licenses is listed in the dropdown selector. Select a license you want to return. Click the Generate Request button. You will be prompted to save an XML file. Choose a location and filename to save your XML return request. Repeat for all licenses you wish to return, so that all your XML return request files can be transferred at one time.   Submit your manual return requests   Transfer your XML return requests to a computer with Internet access. From your Internet-connected computer, open a web browser and login to your FlexSim Account. Click the Licenses link in your FlexSim Account's page header. Click the Manual XML link in the submenu. Upload your XML file by dragging it onto the drop zone, or click the drop zone and browse to your XML file. Your uploaded XML request will be processed. Upon completion, you will be prompted to download the XML response. Download the response XML file. Repeat for any licenses you are manually returning, so that all your XML return response files can be transferred back to your offline PC at one time.   Process your manual return responses   Transfer your downloaded XML return responses to the offline computer you are un-licensing. In FlexSim, using the same licensing interface where you generated your request, click the Process Response button. Browse to an XML return response file. FlexSim should give you an indication of successful processing of your return, and your return will be complete. Repeat to process the XML return responses for any other licenses you are manually returning.   If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
Update (22 December 2017): Version 18.0.1 now again allows you to double click in Process Flow to open the activities popup. FloWorks 18.0.0 is now available (18 December 2017). This version of FloWorks is intended for use with FlexSim 2018. In addition, FloWorks 17.2.2 and 17.0.7 have been released, containing bug fixes for FlexSim 2017 Update 2 and FlexSim 2017 (LTS) users, respectively. These will be the final 17.x releases of FloWorks. All versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Please do not hesitate to report any bugs, usability improvements and feature requests to support@talumis.com. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email support@talumis.com. Release notes Changes in FloWorks 18.0.1 Bug fix: FloWorks broke double click in the Process Flow view to open the quick library Changes in FloWorks 18.0.0 Quick Properties panels added. Added three FloWorks tutorials to user manual. Added impact , stop and resume functions on FlowObject . Added FLOW_STATE_* constants for use in stop and optionally impact . Bug fix: In unlicensed version, license info is now correctly shown instead of “Unknown”. All bug fixes in version 17.2.2 and 17.0.7 listed below. Changes in FloWorks 17.2.2 (for FlexSim 2017 Update 2) Bug fix: FlowTank 's isEmpty and isFull return 0 and 1. Bug fix: Statistics collectors pick up content changes by content property setter. Bug fix: Cannot change mixer recipe while running. All bug fixes in version 17.0.7 listed below. Changes in FloWorks 17.0.7 (for FlexSim 2017 LTS) Bug fix: FloWorks objects remove pending events from the list when they are destroyed. Bug fix: Fixed an issue in the LP solver. Bug fix: Minor fix to internal treenode naming on reset. Bug fix: Avoid a rounding issue in utilization calculation. Bug fix: Mixer correctly resets visuals to empty in manual mode. Bug fix: Can start mixer recipe from Reset or On Empty trigger. Bug fix: Fixed reset error when opening model without flow trucks in a FlexSim installation without FloWorks.
View full article
Post a Question Post your bug report as a question if you want a response from us; for example, if you are looking for a workaround or a fix for your model. When creating your question, consider putting it into the Bug Reports space: Post an Idea You can also post it on this forum as an idea. This lets other users in the community vote on the idea and gives us an idea of how much demand there is. This also creates a place where the idea can be discussed by users and developers. Summary Feature requests and bug reports will be monitored by support and development teams. For confirmed bugs, we will create an issue on our development list. The issue will then be discussed by the developers in our next sprint meeting where we will determine when, relative to the other issues, we want to work on it.
View full article
FlexSim 2018 is available. 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 new People module. (Try out the Sample Models.) Added new dashboard chart templates to quickly collect and display statistics. Legacy charts are hidden by default in the Library and can be enabled through Global Preferences. Removed the basic Person flowitem and renamed the TaskExecuterFlowItem to Person. Added functionality to the List's pull method to allow you to pull an object/node directly (without writing SQL). Updated ODA to be compatible with DWG 2018 shapes. Updated Assimp to be compatible with the latest FBX file format. Added a RegExResult class for iterating over the matches in a regular expression. Lists can now use arrays as partition ids. Added a mechanism for automatically setting the reset position of objects after moving them by setting their resetposition variable to 1. Added a By Lazy Interval update mode to the calculated table. Improved calculated table performance by reducing the amount of table updates. Improved statistics collector performance by reducing the number of updates to Always columns. Table views can now be set as read-only using the grayed attribute. Added an Ignore Warmup option to statistics collectors. Updated OptQuest so that it can run more than 10,000 solutions. Added a pick option for restoring default values in the Global Table's On Reset trigger. The Query test field is now a multi-line text box. The Source now adds labels to items before calling the OnCreation trigger. Updated the table selection for the Excel Import/Export. Improved color options in various dashboard charts. Changed the model update dialog to be able to autosave the model with an incremented number. Added many new animations for the operator and the person flowitem. Updated many stochastic pick options to use getstream() as the default stream parameter. Updated the TaskExecuter to connect to the DefaultNavigator when created. Improved the Group UI. Updated the Library view to not change when clicking on the User Manual view. Changed the Tree view's Explore > As Code so that it closes the tree's edit view. Fixed a bug with list initial contents having old values in label fields. Fixed a bug with the statistics collector chart interface checkboxes. Fixed an OnDropWindow exception. Fixed some exceptions in the Table View when viewing an Array that no longer exists. Process Flow Added a Date Time Source activity. Added a Wait for Simultaneous Arrivals Before Entry option to the Zone. Added autocomplete for instanced flow labels (current). Added a zoneistokeninsubset() command. Conveyor Added a Round Robin destination option to the Send Item pick option. AStar Added a visual option to show the travel threshold for objects. Improved the draw performance and fixed the timing of some graphical updates. AGV Fixed a bug with redirecting AGVs at times other than On Pre-Arrival of way points.
View full article
Você tem dúvidas sobre a picklist Values by case? Este Tutorial vai apresentar uma visão geral e fazer um rápido exemplo. Acesse o link : https://youtu.be/d0XVlQlRvmA
View full article
Nesse exemplo nós vamos construir um modelo que usa listas para relações básicas de roteamento de itens. Os itens serão enviados de três filas para um dos quatro processos. Nós vamos usar uma Lista de itens (item list). As filas irão empurrar os itens para a lista e os processos irão puxar os itens da lista e processa-los. Inicialmente, vamos implementar um simples puxado, mas depois iremos experimentar o puxado com restrições e priorizações. Passo 1. Montar Layout Para esse exemplo, criaremos um novo layout. A Figura 1 mostra quais objetos devem estar presentes nesse layout. Observe que NÃO há ligação entre as filas e os processos. Figura 1- Layout exemplo 2 Passo 2. Configurar source Na janela de propriedades do source, em inter-Arrivaltime coloque exponential (0 ,2.5,0). Figura 2- Inserir inter- arrival time 2.Na aba FLOW, em send to port abra a lista de opções e escolha a opção random port. Figura 3- Sent to port 3.Na aba trigger, adicionar uma Oncreation trigger para configurar o tipo e a cor. OnCreation> Data > Set item type and color Figura 4- Configurar tipo e cor Passo 3. Adicionar lists Para adicionar a lógica é preciso criar um item list. Em Toolbox> > Global list> Item list(Figura 5). Figura 5- Adicionar item list Ao clicar em Item list irá abrir janela de propriedades da lista (Figura 6), por agora apenas feche a aba. A sua lista está nomeada como ItemList1. Figura 6- Janela de propriedades Itemlist Não é necessário definir nenhuma das configurações agora. Apenas feche a janela de propriedades. Passo 4. Configurar queue Para configurar a queue para empurrar os itens para a lista, clique sobre cada uma das filas> Aba Flow> Send to port> abra a lista de opções> Escolha use list> Push to item list. CONFIRA se o o nome da lista corresponde ao nome da lista que você criou. Figura 7- Push to item list OBS: Fazer o Passo 4 para (((TODAS))) as filas Passo 5. Configurar Processos Para fazer com que os processos puxem da lista, nós precisamos configurar cada input de processos para todos os 4 processos. Clique em um dos processos, na aba Flow vá na parte de input, marque a opção pull strategy. Na aba de escolha da estratégia >Use list>Pull from item list. Você pode deixar o campo QUERY em branco. E confira se o nome da lista escolhida é o mesmo da lista que você criou no Passo 3. Figura 8- Estratégia puxada Obs: Não esqueça de fazer o passo 5 para todos os processors. Salve seu modelo como Exemplo 2 e ele está pronto para ser executado. Mas antes de fazer isso vamos dar uma olhada no que está na lista. Para verificar se até aqui as coisas estão funcionando da maneira correta. Vamos fazer um test rápido. Nas propriedades do ItemList1, vá na aba General e clique no botão a esquerda “ Back Orders”, sua lista deve estar parecida com a da Figura 9. Mudando apenas os nomes dos processos de acordo como os seus estão nomeados. Figura 9- Janela de pedidos pendentes A Figura 9 representa que os processos começaram a puxar da lista, mas como não há itens que foram empurrados para a lista, eles estão aguardando para poderem puxar e se tornarem fulfilled(preenchidos). Execute o modelo e você perceberá os itens vão entrar nas filas e serão empurrados para a lista (View entries) fazendo com que os pedidos pendentes sejam atendidos e então começam a ser processados. Quando um item é empurrado para a lista e existe pedidos pendentes o item será imediatamente puxado da lista. Dessa forma o pedido pendente irá se tornar Fulfilled e será removido da lista de pedidos pendentes. Eventualmente, todos os processos irão puxar os itens e dessa forma a lista de pedidos pendentes se tornará vazia, já que todos estão em operação. Então a lista de entradas vai crescendo(Figura 10) até que um dos processos termine o processamento e requisite puxar um item da lista. Figura 10- Entradas na lista aguardando serem puxadas Quando os itens são empurrados para a lista, eles são adicionados no fim da lista. Assim se o sistema puxado não utilizar prioridades como parte da sua tomada de decisão, os itens irão ser puxados como FIFO( first-in-first-out), ou seja, seguindo uma ordem de quem chegou primeiro sai primeiro. O mesmo acontece com os pedidos pendentes pendentes. A primeira máquina que ficar disponível irá puxar o primeiro item que entrar na lista. exemplo2.fsm Experimentos Agora vamos experimentar diferentes configurações das operações puxadas. Cenário 1- Filtrar por tipo de item Vamos considerar que um dos processos pode apenas processar o tipo de item 2. Nós podemos vincular essa lógica na simulação utilizando uma simples Query nesse processo. Clique sobre o processo que deseja restringir a entrada ao tipo 2 de item, na janela de propriedades, vá em FLOW > >Pull strategy >em Query digite a restrição WHERE itemtype == 2 (Figura 11). Figura 11- Adicionar query para tipo de item Salve o modelo como Exemplo2_cenario1. Reset seu modelo e execute. exemplo2-cenario1.fsm Cenário 2- Puxar pelo LIFO Vamos supor que agora queremos que todos os processos puxem seguindo a ordem último a chegar primeiro a sair (LIFO) ao invés do padrão FIFO, o que significa que o item mais recentemente adicionado na lista deve ser o primento a ser puxado da lista. Nós podemos criar essa lógica na simulação, implementando uma simples puxada Query. Abra o arquivo do exemplo 2, e salve como exemplo2_cenario2. Para cada um dos 4 processos faça o seguinte: 1)Clique no processo >vá em FLOW > Pull strategy > em Query digite a restrição ORDER BY age ASC (Figura 12). Figura 12- Lógica LIFO Repita 1) para TODOS os processos. Salve o modelo e coloque para executar. exemplo2-cenario2.fsm Use a ferramenta avançada view entry Nessa ferramenta você pode verificar se o seu modelo está rodando de acordo com a lógica planejada. Por exemplo, se você quiser testar o seu query de order by age asc para você ter certeza de o que você quer antes de implementar no modelo. Você pode usar a ferramenta avançada para fazer isso. Execute o modelo até que tenha um número significativo de itens na lista. Nas propriedades do ItemList1, vá na aba General e clique no botão a esquerda “ View entries”. Pressione botão para mostra as ferramentas avançadas (Figura 13). Figura 13- Ferramentas avançadas view entry Agora teste colocar a Query por ORDER BY age ASC e pressione enter (Figura 14). Figura 14- Itens ordenados por tempo Na Figura 14 você pode notar que os itens na lista estão agora reorganizados com as idades ascendentes. A ordem puxada que usa a query order by age asc, vai puxar do topo dessa lista. No caso o primeiro a ser puxado seria o Queue5/Box~3 com itemtype de 3 e age de 0. 18, o último a entrar na fila.
View full article
Neste Tutorial iremos demonstrar em um exemplo como funciona a biblioteca AStar Navigator no FlexSim. O AStar Navigator, também conhecido como A*, é um algoritmo de busca usado para encontrar um caminho entre pontos, e serve para determinarmos o trajeto pelo qual os executores de tarefas podem se movimentar pelo modelo. Esta biblioteca permite que você crie e defina barreiras físicas para a correta movimentação dos executores de tarefas em seu modelo. Nós iremos usar o seguinte modelo para mostrar como o A* Navigator pode ser usado em um modelo simples. astar-example-model.fsm Crie o A* Navigator Primeiro, um objeto AStarNavigator deve ser adicionado ao modelo. Somente um objeto AStarNavigator faz-se necessário e permitido por modelo. Crie um objeto AStarNavigator ao clicar e arrastar da biblioteca para qualquer posição na superfície de simulação em 3D. Conectando os Membros Neste modelo, existe apenas um objeto executador de tarefa (TaskExecuter), no entanto, nós também queremos incluir o Rack como uma barreira. Faça um conexão com o 'A' entre o AStarNavigator e o operador. Isto pode ser feito mantendo a tecla A pressionada e clicando/arrastando do AStarNavigator para o operador, ou do operador para o AStarNavigator (não importando a ordem ou sequência de onde tem que partir a conexão). Um círculo em azul irá aparecer abaixo do operador. Faça uma conexão com o 'A' entre o AStarNavigator e o Rack. Um retângulo em azul irá aparecer abaixo do Rack. Adicione um Source e um Queue próximo ao operador conforme você pode visualizar em outra imagem mais abaixo. Criando Barreiras (Barriers) Junto com o Rack, vamos também criar um par de barreiras para representar paredes ou obstáculos que o operador não pode caminhar através. Clique no ícone do Divider na biblioteca para entrar no modo de criação. Clique em algum lugar ao lado direito do Queue (buffer) para criar um novo Divider. Clique duas vezes mais próximo dos pontos para mostrar a imagem abaixo para finalizar o Divider. Clique com o botão direito do mouse para sair do modo de criação. Adicione os Processors e um Sink conforme imagens abaixo. Faça a conexão deste o Source até o Sink usando a conexão com “A”. Clique sobre o ícone Barrier na biblioteca para entrar no modo de criação. Clique uma vez onde o canto esquerdo inferior do Barrier estará como mostrado abaixo. Clique novamente no canto direito superior para completar a configuração do Barrier. Clique com o botão direito para sair do modo de criação. Coloque o Barrier abaixo do Rack. Execute o Modelo Você pode agora resetar e executar o modelo para ver como será a performance do operador. Lembre-se, se você fizer qualquer mudança nas suas barreiras, o modelo obrigatoriamente deve ser resetado antes de ser executado novamente. Note que o operador encontrou o menor caminho para movimentar-se por cima e por fora do Divider. Embora exista diversas formas de alterar os caminhos do operador (por exemplo, estender ainda mais o tamanho do Divider), nós iremos modificar o caminho percorrido pelo operador, usando o Preferred Path. Crie Preferred Paths Preferred paths não são caminhos “configuráveis”, em vez disso, dará aos nodes associados com o caminho preferido, um peso maior no algoritmo de busca. Isso vai nos afetar, e puxar o operador para o caminho preferido. Clique sobre o ícone Preferred Path na biblioteca para entrar no modo de criação. Crie os dois seguintes Preferred Paths conforme mostrado na imagem abaixo. Preferred paths são unidirecionais e além do mais precisa ser posicionado no layout na ordem correta. Clique com o botão direito do mouse para sair do modo de criação. Execute o Modelo Resete e execute o modelo. Se o seu operador continuar a movimentar para cima e fora do Divider, você pode ou movimentar o Preferred Path ou alterar o Preferred Path weight na janela de propriedades do objeto AStarNavigator. Os Resultados do seu modelo podem variar deste exemplo conforme você posiciona suas barreiras e objetos, o que pode fazer a diferença no cálculo dos caminhos do operador. AStar Navigator Library O AStar é acessado na Biblioteca principal a esquerda: View Menu / Drag-Drop Library Existem 5 tipos de barreiras usada pelo A* Navigator. Estas barreiras modificam a grade usada no algoritmo de busca. Nota: Uma vez que as barreiras são criadas ou modificadas, o modelo precisa ser Resetado para recalcular o node table. Solid Barrier A mais simples das barreiras, a barreira sólida modifica a grade para remover uma área retangular, prevenindo os membros de viajar e (travel members) se movimentarem dentro da barreira. Divider Dividers desconectam os nodes ao longo de seu caminho, prevenindo os travel members de atravessarem o divider. Dividers podem ser modificados na superfície de simulação 3D ao arrastar o ponto final e intermediário. Qualquer número de pontos pode ser adicionado ao divider. One-Way Divider O One-way divider funciona de forma muito similar ao divider, no entanto, travel members são permitidos se movimentarem através do divider na direção das flechas em verde, neste caso, em direção ao topo da página. O one-way dividers pode ser modificado na superfície de simulação em 3D ao arrastar os pontos finais ou intermediários. Qualquer número de pontos podem ser adicionados em um one-way divider. Preferred Path Embora o preferred path não é uma barreira real, ele funciona da mesma forma que as barreiras fazem para modificar a tabela de nodes do A* Navigator. Em vez de modificar os nodes removendo os seus indicadores de direção, o caminho preferencial dá um peso maior a todos os nós associados com o percurso. Este valor de Path Weight pode ser alterado através da janela de propriedades do A * Navigator. O Path Weight tem de ser maior do que 0 e menor que 1, a fim de funcionar adequadamente. Valores acima ou abaixo deste podem causar resultados não intencionais. Os preferred paths podem ser modificados na visualização em 3D, arrastando os pontos do fim ou do meio. Preferred paths são unidirecionais. Qualquer número de pontos pode ser adicionado a um preferred path.
View full article
Neste Tutorial iremos demonstrar como importar um Layout do AutoCad no FlexSim. Desenhos do AutoCAD e outras imagens podem ser usadas como planta baixa para a montagem do modelo de simulação no FlexSim, sendo facilmente importadas usando o Background Drawing Wizard. Isto facilita a construção do modelo de simulação fazendo com que o modelador possa posicionar os objetos de forma rápida e em escala. O Background Drawing Wizard pode ser acessado clicando em: Tools / Visual / Model Background , ou na Biblioteca de Objetos / Visual / Background arrastando o objeto para o plano. O assistente abre uma nova janela, e irá pergunta-lo se você quer importar um desenho CAD ou um arquivo de imagem. Assegure-se que "AutoCAD Drawing" está selecionado e então clique em "Next". A próxima tela irá pedir a você que especifique o caminho do arquivo CAD que você quer usar; busque o arquivo em seu computador e clique em "Open". Veja que você está usando um arquivo .dwg; arquivos .dxf e .dwg podem ser importados para o FlexSim. Clique em "Next" novamente para ir para a próxima tela. Nesta tela você poderá definir detalhes sobre o posicionamento do seu layout no plano de trabalho do FlexSim. Existem três colunas representando os eixos X, Y e Z e três linhas para cada um que correspondem a posição, rotação e tamanho ao longo de cada eixo. Configure a posição para cada eixo em "0" e você verá a posição original do desenho, localizado no canto esquerdo inferior, mostrando exatamente que está no centro do seu modelo. Clique em "Next" para seguir para a próxima tela. Nesta tela você pode customizar qual layers de seu desenho CAD estarão visíveis, e ainda alterar a cor de cada layer. Se você tiver algum recurso no desenho que não é necessário para o modelo de simulação, como por exemplo, uma parede ou uma porta, talvez possa ser uma boa idéia fazer com que estes layers fiquem invisíveis e então o espaço visual não se torne confuso. Clique em "Next" para ir para a tela final. Clique em Finish e pronto! Agora você já pode começar a montar seu modelo utilizando o Layout em AutoCad como planta baixa.
View full article
O artigo "Using Fixed Resource Process Flows" que descreve algumas funções do Fixed Resource Process Flow tem um modelo de exemplo. O exemplo está em anexo e mostra como podemos utilizar do Fixed Resource Process Flow para multiplicar lógicas de fluxo e de trabalho. Esse representa uma área de despacho de produtos onde o produto vem de um estoque transportado pelo empacotador (Packer) e é preparado em uma paleteadora. Depois o produto é levado em lotes pelo empacotador para uma estação e dali ele vai ser despachado pelo carregador (Shipper). A função do Fixed Resource Process Flow facilita a replicação da lógica dessas paleteadoras e dos funcionários envolvidos. Alguns teste como se aumentássemos o número de recursos conseguiríamos suprir melhor a demanda podem ser realizados por esse recurso. Nesse artigo descreveremos o passo a passo desse modelo. A descrição segue no arquivo exemplo FR Flow em anexo.
View full article
FloWorks 2018.0.0 will be released in parallel with FlexSim 2018. This new version of FloWorks adds two features that have been sitting on our wish list for a while: support for Quick Properties and a brand new set of tutorials. Therefore we are releasing it as a public beta. The latest beta version, released December 8, can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Click "More Versions" to show the Beta release. Along with FloWorks 18.0.0, we will provide a final bug fix release for versions 17.2 and 17.0, with the changes listed below. Please do not hesitate to report any bugs, usability improvements and feature requests to support@talumis.com. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email support@talumis.com. Release notes Note: the bug fixes will also be available in versions 17.2.2 and 17.0.7, where applicable. New features in FloWorks 18.0.0 Quick Properties panels added. Added three FloWorks tutorials to user manual. Bug fixes in FloWorks 18.0.0 and 17.2.2 Bug fix: Fixed an issue in the LP solver Bug fix: Minor fix to internal treenode naming on reset Bug fix: FlowTank.isEmpty and FlowTank.isFull return 0 and 1 Bug fix: Avoid a rounding issue in utilization calculation Bug fix: Statistics collectors pick up content changes by content property setter Bug fix: Cannot change mixer recipe while running Bug fixes in FloWorks 18.0.0, 17.2.2 and 17.0.7 (LTS): Bug fix: FloWorks objects remove pending events from the list when they are destroyed. Bug fix: Fixed an issue in the LP solver Bug fix: Minor fix to internal treenode naming on reset Bug fix: Avoid another rounding issue in utilization calculation Bug fix: Mixer correctly resets visuals to empty in manual mode. Bug fix: Can start mixer recipe from Reset or On Empty trigger.
View full article
Top Contributors