ReleaseNotes:Planimate 5.0 Whitepaper

From Planimate Knowledge Base
Jump to: navigation, search

Planimate® Version 5

Spec v 1.00 Riccardo Macri July 2004


I'm currently starting on a major rework and cleanout of Planimate which is going to give us Version 5.0


The significant changes and development for 5.0 mean the source will be split into two branches, one supporting the 4.33 series and the other being the new version.


Note that this spec isn’t focused on Planimate developments in general but rather on what is getting changed in enabling key Version 5 capabilities. Hence current requests in bugzilla, for example modeless editing, will be finding their way in as well as what is mentioned here.


What is New

The main new features to appear in 5.0 will be support for loading “modules” into models and State Save. These will come at a price, and that is a major clean out of old, obsolete and redundant capability.

Loadable Modules

The module loading involves streamlining the current model merging capability, so that a model can be loaded whilst editing another model and it will appear in a portal. In addition enhancements to class and label list merging will aim to make modules easy to incorporate. A “module palette” will enable favorite modules to be available just as standard objects are.


Internally it will work something like this:

  • off the palette, the user selects "Import" or an existing icon for a "favorite" system
  • the current model data is kept in RAM or saved to a temp file and another complete model is loaded for the module
  • the second model is "put in a portal" and copied (this is all automatic)
  • the model merge starts to "paste" in the new portal
  • here new wizards will kick in to assist in remapping/setting the context of the pasted portal into something conencted with the original model.


The challenges here are to ensure isolation between modules, particularly when the same module is used multiple times and that module needs item attributes. One idea to support this is the creation of “private” item attributes. Subsystem based label lists are also a possibility.

State Save

The State Save will enable a paused run to be saved and the state reloaded. It will be very tightly tied to a version of the model (the state save file may well include the model as well - haven’t decided yet). Implementing this will take a while as many handlers have to be written to save *every* piece of runtime detail.


In achieving this, the following functionality is slated to be removed from Planimate, as it is either not sufficiently used or is otherwise obsolete. The replacement modules for these functions will be developed under version 4 to facilitate upgrading models in a version where the original functionality still exists.

idBase Planimate Knowledgebase connectivity

It is also planned to integrate the idBase knowledgebase client EXE into Planimate. I’ll be hard-coding references to topics within the Planimate source code which will enable all developers (granted access and with internet connectivity) to annotate and share knowledge about Planimate objects, routine operations, the different label lists etc. directly in context within Planimate.


Bugzilla will remain as the place to lodge bug reports and feature requests.

New Licensing

Planimate 5 will progressively incorporate the new licensing model which has been under development and discussion recently.


What is changing

Old Objects
Removing Conveyor, Single Server (Machine), Facility, Assembler Mark, Record
Modules will be provided to demonstrate how these can now be implemented using the remaining Planimate objects.

Global Schedules
These will be removed and a module provided which generates simple schedules

Initial Configurations
The modelker has more control in initializing objects by using broadcasts

Object Views (“Stats”)
Object Stat Objects (Views) will be removed. Attribute and Table Cell views will remain.

Log Viewer and Stat Logging
The log viewer will be unbundled from Planimate. Logging for the remaining views will be removed in the short term, to be replaced with logging of the attribute to a modeller accessible “Log” table.


It is anticipated that the Log Viewer will be rebuilt as a standalone application which reads files in a more open format and can be used for analysis and comparison of logged data. Anyone interested in working on this let us know.
Elements of the log viewer (eg: the overview) may become a new type of table view.

ENTRY: Schedule Arrival Entries
Scheduled arrivals at entries will be simplified (only a single arrival event). More complex arrivals will be possible in an “arrivals module”.

CHANGE: Class Change
Class change at a change object will be removed. Due to attribute compatability issues it was of limited use anyway. The splitter does a better job at this.

Older Format Files:
Version 5.0 will not read models prior to 4.33i, I need to purge the compatability code.


SWITCH:
The following modes are being removed:
- Priority Selection
- Absolute Path
- Schedule
- Waiting Assembler
- Probabilistic (a probability generator module will be replace this
Switches will not have interaction specific details, everything will be edited in Object mode and hence common to all classes using the switch.


Selection and resolving modes will be merged (for the modeler) giving the following remaining switch modes. All are :


Lowest Available Path
Shortest Queue
Sequential
Numeric Selection
Label Selection (will match label against new labels assignable to paths)
Condition
Multi condition

More on the Scoped Item Idea:

Like a "base item" carrying a bunch of instance items, one for each module. When an item visits a module, it gets an "instance" item for that module tacked into its carry list (separate to the usual one) as required - where that module can keep private data. No other module or parent can mess with this private data.


This greatly assists with “class switching” within a module and the outside caller. A module can decide whether it uses a private or “public” item attribute.


Timing

I hope to start releasing version 5 EXEs in a week. Initially these will be just stripped down versions of 4 with the new capabilities being added gradually.


Bug fixes and minor enhancements will continue on version 4 however developers who are not greatly impacted by the changes outlined above are encouraged to migrate to Version 5.


Modules (Portals) which will assist in upgrading older models will be released about the same time the first version % release is made. These modules will copy/pasteable as portals in version 4 to assist in updating older models.




idkbase note 213