Demo ModelsFrom Planimate Knowledge BaseSome of these models switch to "user mode" to create an end user environment. Ctrl-Shift-H toggles back to edit mode. For models that restart, Ctrl-T in edit mode will leave them stopped so they can be examined. Example ModelsObject DemosPL5 Agent Objects DemoDemonstrates items carrying other items (called agents) and the associated PickUp and DropOff objects. PL5 Dispatcher Object DemoDemonstrates Dispatcher objects which unlike a Queue do not enforce an exit order for items. Dispatchers are often used for messaging and broadcasting to other parts of a model as they provide somewhere for the original item to wait. PL5 Entry Object DemoDemonstrates Entry objects which not only introduce items into a model but also act as receiver points for broadcasts and messages from other parts of a model. PL5 Exit Object DemoDemonstrates Exit objects. As well as disposing of items, exits can return messages to their sender and trigger other actions (like broadcasts or stopping the run). PL5 MultiServer Object DemoDemonstrates MultiServer objects which are used to simulate delays. MultiServers can be configured to delay multiple items (hence the "multi") with times based on constants, attributes or with random variation. MultiServers can display as icons or as a timeline or "road", the latter which can be used to achieve a simple spatial network animation without using Spatial Links or Tracks. PL5 Pipe Object DemoDemonstrates Pipe objects which can be used to simulate and animate the flow of material (represented numerically) from one location to another. PL5 Portal Object DemoDemonstrates Portal objects which enable complex models to be split into a hierarchy and are easily copied, duplicated and even replaced in a model. Portals play important roles in Network Models. PL5 Queue Object DemoDemonstrates Queue objects which provide a place for items to wait while a resource ahead of them is busy or occupied. PL5 Spatial Link Object DemoDemonstrates Spatial Link objects which are used to create spatial network models where objects move between nodes in a network over links which take time to traverse (unlike flows which are instantaneous from the model's point of view). This is useful in modelling long haul transportation networks. Also demonstrates how a spatial link can have pipe-like animation associated with it. This can be useful where pipe animation is desired without the complexity of managing numerical values that flow between attributes. PL5 Splitter Object DemoDemonstrates Splitter objects. These take one item and immediately produce multiple items, optionally cloning the icon and attributes of the original item. Splitters are used where a number of separate but related actions need to occur as the result of one event in situations where the actions are relatively local. In other cases, a broadcast can be used to trigger many actions from one event. PL5 Switch Object DemoDemonstrates Switch objects, which enable decisions to be made in Planimate's graphical flow representation of logic. It demonstrates the distinction between item routing items (where non blocking switches are often used) and blocking (where blocking switches are used). A unique characteristic of Planimate's Switches is that they can test and make a decision for an item before the item has even moved to the switch! This is called lookahead and enables very powerful decision making rules to be modelled graphically. PL5 TrainingTechniquesAdvancedBATCH/BatchTestDemonstrates running Planimate in batch mode and using an INI File to pass some parameters to the model. The model is a simple server/queue (with variation) where portal attributes 'arrival_interval' and 'delay' as inputs. It runs for a period and then writes results to a file "report.txt". The batch file creates a Model INI file with input parameters to the model, runs Planimate to run the model and then displays the resulting log file. This is done twice with different parameters. Broadcasts and Zero TImeThis model sends broadcasts using various mechanisms. It shows how events at the same time ("zero time") are always processed when a broadcast is sent, whereas events after a delay require that the engine "continues" the run in order for them to be processed. Clock Based ConditionsThis demonstrates how the simulation clock can be used to control where items are routed by a switch but cannot be used in switches to block an item. The correct approach is to use a multiserver delay to hold the item for the desired delay. Dynamic Table ReferenceThis demonstrates the use of dynamic table references in routines, enabling a table reference to use the name of a table which is determined at runtime. Note that item table references (where an item can "point" to a table) may offer a better alternative in cases where one of a number of tables need to be selected. Dynamic ViewportDemonstrates how the "target" that a viewport displays can be changed on the fly by the model. Hovering above each portal displays inside it. Each portal has a hover-handler that sets the viewport to point to itself. Event Threads, Zero Time and Event OrderThis contains a number of subsystems each demonstrating concepts relating to how events are processed in Planimate. This includes: - not relying on the order of events triggered at the same time (like broadcasts) - messaging and broadcasting - what happens when - attribute controlled gates, making sure the gate is shut behind you - graphical loops (as compared to iterating inside a routine) InSwitch UnblockingDemonstrates the different ways that an object can choose which item enters it next when there are more than one objects with items waiting behind it. Object Create DeleteDemonstrates how portals in a model can be created under model control. Edit the table (eg: change command to delete) to see the effect when the button is pressed. Portals Multiple Entries ExitsDemonstrates the use of multiple entries and exits inside a subsystem and how they can be used by the owning portal to keep items of the same class on separate flows. Read Carried Item AttributesDemonstrates how item attributes of an item being carried can be referenced. In this model you click to create an item, it gets assigned a random destination and then picked up by another item, the "agent". The carried item is then inspected and delivered to the desired location and dropped off. The agent then returns and waits for another item. Recursion Using SubroutinesDemonstrates how subroutines can call themselves recursively. The change object contains a routine that calls itself to find a value from the fibonacci sequence. ReferencesThis is not a runnable model but rather illustrates the different ways data can be referrrrrenced in a model, including constants, portal attributes, item attributes and table cell references. Remapper TableDemonstrates how a table with the "Act As Mapper" table option turned on will display the first column as the x-axis in a table view, plus enable references to translate or remap data directly without needing any calculations to be performed in code. This is useful for specifying profiles and complex behaviours. socket_client and socket_serverTogether these demonstrate how two instances of Planimate can communicate via TCP/IP. Items created in one model appear in the other model as well. Load both models in separate instances of Planimate and run them. Initially use the click entries on the client model to create items. These will appear in both models. once connected, you can also create items in the server model and they will appear in the client model. The models are set up to run on the same PC but you can configure the client to connect to another PC by editing Settings -> TCP/IP Sockets and setting the IP address of the server instead of the default 127.0.0.1. You will also need to allow connections to Planimate on the server PC's software firewall. Synchronised Random StreamsDemonstrates how two random sources can be synchronised by having them use different random generator streams which are initialised with the same random number stream, causing them to behave identically. System Generated BroadcastsDemonstrates broadcasts sent by the Planimate engine as it starts, continues and stops a model run. A modeller can add handler code in this broadcasts to initialise data, prepare the UI and even prompt the user to save data when the model is about to be closed. This assists in making models feel more like applications to the user. Table Column Insert DeleteDemonstrates inserting, deleting and copying columns between tables at runtime using routine code. Table OptionsDemonstrates a few of the many table / table view options which are not on by default. This includes:
Time OperationsDemonstrates time/date decoding routine operations by generating a random date and then using a few routine operations and showing the results in attribute views. WormholesDemonstrates wormhole entries and exits. These enable an item to jump from one location in a model to another without having to flow over intermediate objects. DataAttribute ViewsDemonstrates the different ways that attribute views behave, which is determined by the type of data their attribute is formatted for (value, time, date, label, text) and the options selected for the attribute view. Note that table columns have similar options to attribute views, the behaviour applies to the entire column. DataSet/DataSet2Demonstrates saving and loading Planimate dataset2 files, including the ability to save table data, labels and include external files into a dataset2 file. Start by saving a dataset2 then manually clear out the lower table and rename CONTSHIP.BMP to a different file. When you reload the dataset2 file, the table will be recreated and the file will be extracted. You can also test rearranging the columns in the lower table before loading, noting how the dataset2 mechanism will find and match the columns even if some have been deleted or new ones added. FileAccess/FileOperationsDemonstrates writing data files in tab delimited and comma separated format and reading data back into a table. It also shows invoking an external program (notepad in this case), reading file size and file lines and also how to dynamically specify file names using attributes and text expressions. FileAccess/File LockDemonstrates Planimate's AcquireFileLock/ReleaseFileLock change object file operations. These simplify managing cases where multiple instances of Planimate (running on the same computer or different workstations with a shared network drive) share access to common data files and locking of access to one instance needs to be enforced. The model demonstrates the ability to include text in the lock (to assist in idenfifying who created it). Load the model in two instances of Planimate. Once one has acauired the lock, the other one will be unable to acquire it until the first one releases the lock (or is closed). Gantt Table ViewDemonstrates table data driving a Gantt Table View object. A simple routine generates random events Graphing DemoContains simple examples of Column Overlay, Log Driven, Train Graph and Gantt Graphs and quite a few explanatory notes. Linear RegressionDemonstrates a simple tool where x/y data is input to a table. Clicking the "Compute Regression Line" runs a routine (in the Routines portal) which performs a linear regression on the data, resulting in the formula to a line. A value can then be entered in the TEST_X attribute view and the Update button used to calculate the corresponding Y value using the derived regression line. OS FormatsDemonstrates Planimate using formatting defined in the Operating System's Regional Settings control Panel. The upper table view is raw data, minimally formatted. The lower table view is a customised table view of the same data, formatted using the "OS Value", "Os Currency", "OS Time", "OS Date" and "OS DateTime" formatting modes. The way the lower table is presented will depend on the regional settings which can affect how dates are shown, usage of decimal commas and the monetary symbol. This can be useful for applications intended to run in international markets. Demonstrates use of the Normalise and Convolve routine operations to combine two Probability Density Functions (PDFs) which are graphically specified. The two graphs on the left can be interactively edited by dragging the points up and down. The routine takes care of ensuring the data is normalised (area under curve is one), sets up the scales of the input and output data and uses the Convolve operation. This can be useful in modelling complex systems where multiple random effects need to be combined. The graphical input is useful where a user wants to test how the "shape" of the variation affects the outcome. FundamentalsAttribute RoutingDemonstrates how a random number can be generated in a routine, stored in an item attribute then used in a switch to route the item. The model is more complex than first looks because the switch has been configured to allow blocking back to the queue behind it. To achieve this, it needs to know the item's "choice" before the item actually leaves the queue! Planimate achieves this using its "lookahead" capability. The queue is important because it prevents interference between the Change and the Entry. Both are drawing from the same random generator before the item actually moves to the Change object which sets its route. (The Entry draws a random number to determine the next item's departure time). Lookahead can be used to model very complex decision making, especially in networks. Its an important fundamental concept which distinguishes Planimate from regular programming languages. Event GenerationDemonstrates the numerous ways that events (typically Items) are produced in a model. The buttons at the top (paint objects) show a number of panels with examples. The examples include:
Icon AssignmentThis demonstrates how icons can be assigned to an item "on the fly". An attribute value can be used as an index by which an icon is assigned to the item, enabling items of the same class to have different iconic representations - perhaps to reflect different state the items are in or other differences you may wish to highlight. One advantage of this method is that the number of item classes in your model can be reduced - which means less flow editing of different but similar classes, whilst retaining the ability to produce a pictorial differentiation between items. Once you start using attributes to distinguish items instead of class, you will also need to manage logging and analysis based on these attributes. Item Carrying ItemDemonstrates how tne PickUp and DropOff objects can be used to cause an item to "carry" other items around with it. An important requirement is distinguishing who is the carrier and who is to be carried. This can be set as a default property of an item class and also, as this model shows, set on-the-fly on an individual item basis. Carrier items are called "Agents". The process can be nested - a carrier can become an item carried by yet another carrier. This can be useful in manufacturing and logistics models where it is useful to have sub-components carried through the network. Whilst the same end can be achieved by using tables to track what each item is "carrying", having an "actual" set of items, which can be dropped off, interrogated and then picked up again makes the process much more visible. LoopsDemonstrates the use of loops. A ITERATEROWS loop is used to fill a table with random values. A WHILE loop is then used to iterate through the same table to analyse the values generated. A Table View, Dial and Label formatted attribute are used to present dynamically updating results to the user numerically, graphically and textually. Message DispatcherDemonstrates how a Dispatcher can be used to send a "message" to another location in the model. A message has a single receiver and the original item waits in the dispatcher until the message item completes its journey and enters an exit. Attributes and properties of the original item are transferred to the message item. When the message item reaches an exit, changes made to it are transferred back to the original item which then can leave the dispatcher. Note that the dispatcher is not FIFO like a queue, items can leave in any order. Messages and BroadcastsUse the menu on the left to select a number of panels. These demonstrate basic concepts in broadcasting and sending messages, including
There are extensive notes in the model which explain the different situations. Messages and Carried ItemsDemonstrates that Messages and Item Carrying can be used together. When a message is sent, the message item will be carrying all the items the originating item was carrying. It will return all items it subsequently is carrying when the message item exits. Multiple RunsDemonstrates multiple runs using a simple model. Using the Run menu's Multiple Run dialog, you can specify a number of runs and they will be performed. This model uses Planimate's inbuilt logging capabilites to write LOG files which the Log Viewer application can display graphically. More sophisticated models collect data internally and display it using the graphical table views. Portal AttributesDemonstrates how portals can have attributes private to them (scoped) and how such a portal can then be copied and have its values customised. It also makes use of attribute views which display, move and copy along with the portal's icon. Copy and paste one of the portals to try this. Portal StatesDemonstrates how a portal can be configured with an arbitrary number of states, each given a different icon and then have its state set dynamically by the model. It also uses routine code to generate random numbers (which determine the state) and collect statistics into a table which is then graphically displayed using two column overlay views. Release DispatcherDemonstrates a dispatcher mode in which items wait in the dispatcher until a routine operation specifically requests release of an item by its item-id. This can be useful in complex wait-until situations and avoid using a blocking attribute switc with many items behind it, which is not as efficient. Routines Case If DialogDemonstrates routine basics including IF statements and SELECT/CASE. A dialog triggered by the routine appears and the response made in the dialog is used to direct the code. Also uses a Dial for activity display and a table and column overlay view to show the distribution of randomly chosen numbers. GraphicsAnimation TestsThis folder contains models which test the performance of Planimate's animation manager. They demonstrate some advanced graphical capabilities. 01 Single Multiframe IconDemonstrates how an object or item icon can consist of multiple images which are animated as the item moves or over time as the item waits in one location, like a queue. Its similar to an "animated GIF" except the images are not packed into one file but rather combined based on their naming. 02 Single Animate Fast (5000 items)Sends 5000 items through a simple model with the maximum animation speed. Note that models run much faster when "advancing to time" as there are no animation overheads at all. 03 Portal State ChangeA small group of portals change their icons together, preserving the background behind them. 04 Animate Over Time (small)A small group of items move together over a multiserver configured to display as a road. This is not "zero time" flow animation of a single event but rather animation over simulated time. 05 Animate Over TimeA larger group of items move together over a multiserver-road. This tests performance with more simultaneously moving items. 06 Animate Over Time With PortalsA number of items move together over a road. There are many portals with unchanging icons which the items cross over. This tests performance in typical conditions of a complex spatial network display. 07 Rotation And Animation Over TimeThis demonstrates multi-frame items and portals which appear to rotate. The items move smoothly over the rotating portals. 08 Animation CrossoverTwo large groups of items cross paths whilst moving over separate roads, without leaving debris or slowing down whilst intersecting. 09 Animation And Sync Change PortalsMany items animate over a field of 500 portals which are all changing state simultaneously. The large number of changing portals have little impact in the smoothness of the movement of the animating items. 10 Rotation Animation CrossoverMany auto-rotated items animate along with some multi-frame 'spinning" items, in two large groups which intersect with each other. This tests the manager's ability to handle more complexity. 11 Item Info Panel Plus MultiframeA multi-frame item with a textured info panel animates through a trivial model. 12 Transparent Info PanelsA number of items with transparent info panels move on a road. 13 Info Panels Over Synced PortalsMany items with info panels move over a road and over a large group of portals changing state together. This tests how much the portals impact item movement even when the animation is under load from the many info panels. 14 Animation Over Random Portal StatesTests that animations on multiple panels viewed at the same time (using a viewport) do not impact on each other, as well as the portals not impacting on the animation of the items. 15 PipeAnimates a few pipes, used to test basic animation / load. 16 Bouncy PortalsDemonstrates how a large number of portal objects can be simultaneously animated in a smooth and fast manner. 17 Bouncy Portals and LinksTests animation of a number of moving portals with some having spatial links connecting them. 18 Log Driven Graph AnimateDemonstrates how a graph can be animated over time, including gradually changing colours, positions and data point sizes. Any Orientation Dispatcher
|
