ReleaseNotes:Feature Review December 2021

From Planimate Knowledge Base
Revision as of 21:20, 29 May 2022 by Rick (talk | contribs) (Created page with "Planimate combines a powerful and fast simulator with a development framework that delivers reliable and comprehensive applications that are in use every day world-wide. The...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Planimate combines a powerful and fast simulator with a development framework that delivers reliable and comprehensive applications that are in use every day world-wide.

The last two years have seen focus on major initiatives that affirm Planimate as world class.

During the same period, much finessing has occured with both beginners and experienced model developers in mind.

This summary covers Planimate enhancements in 2020 and 2021, over versions 10.13.1 to 12.26.10. It only includes major developments, not the hundreds of minor improvements and fixes.

UNICODE Support

Planimate supports the use of Unicode (multi byte) characters in virtually every aspect of a model including labels, paint, text data and even the names of attributes and tables in the model. This makes Planimate a great choice where models need to support non ASCII characters. File/data operations have been enhanced to enable a model developer to control when ASCII or UNICODE are used, important for data interchange. This includes control over whether the multi byte file signature is written to files.

New Licensing System

InterDynamics has implemented a new license management system including a new web portal and support modules within Planimate. This replaces the old Planimate "KEY" file you may use for older versions of Planimate. The same Planimate executable can run in various demo, educational and developer modes, based on the license. Apart from the previous time limits on access to Planimate Based Application (PBA) creation, developer licenses remain perpetual for versions of Planimate within a year of when they are issued. InterDynamics' license system is very flexible and, with arrangement with InterDynaics, can be used within PBAs to enable license handling for your PBAs. A notable feature is the ability for project managers and model developers to embed metadata in a license, enabling very bespoke custmoisation of the applications our clients use. This is all managed through the web portal. Contact InterDynamics if you are interested in finding out how you can incorporate licensing in your own application (whether it is based on Planimate or dotnet). and the options available for hosting our own instance of the licensing portal.

Planimate and dotNET

Planimate is a dotNET application however the core engine and UI remain C++ and Win32. This enables it to deeply integrate with dotNET code including the ability for Planimate models to containe dotNET controls (eg: LiveCharts graphs). There's a mature and straightforward interface between Plamimate's fast Table, Attributes and Label List data structures (optimised for simulation) to dotNET managed data suitable for two way interfaces to databases, complex JSON data providers, ODBC sources and web APIs such as real time routing and The interface (called PLCLR) is very flexible in how data is represented in c#, the interface being automatic and transparent. Additionally Planimate routine code can directly reference dotNET class methods and properties (with context help when editing). PLCLR is greatly augmented by an open source c# library, PLEngine, which enables sophisticated interaction between c# modules and Planimates simulator, data processing, font and graphics capabilities. For example, changes made to Planimate Tables can trigger signals in c# code so dotNET graphs can update to relfect the changes.

Planimate LITE

A no-license version of Planimate is available for users who are interested in exploring or teaching simulation. It has no runtime requirements and operates as a "portable" application, with minimal requirements and impact on the system it is running on. This makes Planimate LITE ideal for use in educational environments where the end-user application focussed features and advaned data interfacing and dotNET integration capabilities of the licensed version of Planimate are not required.


Major UI & Graphics Changes

  • A new Time menu now holds options related to simulation time and animation speed.
  • New models start with a clock view. Right click it to edit or delete it.
  • An Explicit "Relative Times or Calendar Dates" option helps beginners make the distinction.
  • The Sidebar contains new "Modules" list. Modellers can add modules to the Modules folder in their Planimate. A couple of beginner focussed stat viewers use new capabilities to run just the module so they can configure themselves when you drag them onto your model.
  • Area and Line graphs handle huge data sets faster and display such that peaks and throughs in the data are not lost no matter how much data is being viewed.
  • High quality panel image export (good for graphs) where the image is generated and saved at 2 or 4 times the resolution that it appears in a window.

Modelling

Conveyor

A new Conveyor object handles a number of conveyor types and options, with variable item length, the option of packing when blocked, multiple conveyor interlocking, parameterised control including speed

Delay (previously called MultiServer)

Delays can be paused/resumed using a Run Control attribute and support a new "Stopped" State.

Splitter

You can control when the original item leaves, before or after the split items, even if they are the same class. This is very useful when that item is a message as it ensures the message completes only after the other items have been produced, avoiding manual interlocking.

Entry

The item count can now be dynamically changed, it can reference an attribute.

Switch

You can have "additional dependencies" explicitly specified so the switch knows to triggered when data indirectly related to the control condition changes. for example data processed in a routine just before a blocking switch. In the past, "tickle" attributes had to be toggled to force a switch to re-test.

PickUp and DropOff

New options to let a carrier item in only if its not blocked from leaving, and to auto-create a carrier once a threshold of items to pick up are present. These further increase the capability these objects offer when it comes to collecting items for common movement and for implementing wait-until logic that does not require messing around with attributes and blocking switches. Similar to a splitter, for a DropOff you can now control whether the carrier leaves before or after carried items have all exitted.

Dynamic Flow Path Support

Routine operations CopyPortal() and RemovePortal() also copy immediately adjanced flow steps, enabling a model to restructure itself (eg: add a server) whilst retaining the use of simple zero-time flow path connections between the objects.

Easy Localised Broadcasting

Routine operation BroadcastLocal() sends a broadcast scoped to the panel the routine is on, with a wait for the broadcast to complete, useful for localised procesing (eg:UI handling).

ISO Dates and UTC Time

Planimate can read and write date times in ISO-8601 format with the option to use UTC or a local timezone offset. You have access to the sy6tem timezone and can set the timezone a given model should assume dynamically.

3D Model

With some new scaling capabilities, a running 3D visualisation of a mine was developed featuring the ability to zoom and rotate the view in 3D whilst items animated on it. This was implemented using a module.

Module Initialisation

Planimate supports running only part of a model which is used when pasting modules as it enables them to perform initialisation/configuration code even if the rest of the model is in development and not in a runnable state.

Relative References

Have reduced the need for object labels for portals by enabling "s.OwningPortalr" in many cases. This enables a relative reference in the model instead of required an object label to be created. You can use s.OwningPortal.Owner.Owner (etC) to reference higher levels in the model's hierarchy. This is useful in a distribution network model when lower level handler code at a location want to determine the actual location. It keeps the lower level code generic.

Table Reference Using Data OBject Label

In many routine operations requiring a table to be referenced, a data object label can be used, making the code generic rather than fixed to a table or having to use Dynamic table references.

Misc

  • When paused, context clicking objects with capacity lists the items in them.
  • Names (objects, attributes, tables, columns, labels) can be longer and include unicode.
  • You can select a group of objects and copy/paste them between instances of Planimate, this also carries across flows.
  • You can receive informative change broadcast when items enter/leave or other changes occue within objects with capacity. These are used by the new StatViewer modules.
  • New defaults for models: a predefined "_general" item includes all attributes included by Planimate broadcasts (you can add these to any item) which is useful for getting started quickly or as a UI handler.
  • An inbuilt System broadcast "_Button_Clicked" is availble to modellers to use with buttons.
  • You can reindex object and paint label lists in the UI. References are updated where they are associated with the list.
  • New Icon commands (preceed an icon name) to flip and create sized icons on the fly.
  • The text in paint buttons can be fine aligned with settable offsets. This is useful bor buttons containing symbols now available using unicode.