Working with hierarchical nets | CPN Tools help |
How-to |
Effective CPN modeling requires the ability to distribute a CP-net across multiple pages, so as to divide it into modules small enough to keep track of. Such a module is called a submodel.
Two mechanisms are offered for interconnecting CP-net structure on different pages: substitution transitions and fusion places. A substitution transition is a transition that stands for a whole page of net structure. A fusion place is a place that has been equated with one or more other places, so that the fused places act as a single place with a single marking.
Substitution transitions and fusion places together provide a very general capability for organizing a CP-net into submodels. This capability is called CPN Hierarchy.
For example, if the Delete element tool is used to delete a subpage tag, then the connection between a substitution transition and a subpage is broken, port/socket assignments are removed, and instances of the subpages are removed. (More information is available about Removing hierarchical constructs). However, by simply applying the Undo tool, it is possible to fully reestablish the relationship between the subpage and the substitution transition.
If you are unfamiliar with any of the following concepts, it is recommended that you read the Introduction to Hierarchical Nets:
Similar problems can occur if hierarchical constructions are cloned during syntax checking. Therefore, it is highly recommended that you do not clone hierarchical constructions during syntax checking.
Providing simultaneous support for both incremental syntax checking and construction of hierarchical nets is quite complicated.
If you encounter error messages regarding "Mismatch in fusion group colour sets", "Mismatch in fusion group initial marking", "Internal Errors", or "Exception when getting marking or calculating enabling" while you are constructing hierarchical nets, it is highly recommended that you try to fix any obvious errors, such as unassigned ports or missing colour set inscriptions, then save the net, and then reload the net. Such error messages almost always disappear after the net has been reloaded.
See more about the Known limitations in CPN Tools.