You will use the meta-modelling environment AToM3 which you can download from the AToM3 distribution page.
The system to model consists of a workshop depicted
below.
![]() |
The workshop produces two types of products: boxes and cylinders. For both types of products, the production consists of two stages: the body assembly and the lid assembly. Body assembly and lid assembly are performed by two dedicated machines. These machines are flexible enough to process either boxes or cyclinders. The machines will each, independently, strictly alternate between processing boxes and processing cylinders. As they work independently, the machines do not need to be synchronized. Initially, both machines are set to process boxes. It is assumed there is an infinite supply of raw material available. The work pieces (boxes and cylinders) are transported on dedicated pallets. There are two pallets for boxes and one pallet for cylinders. The arrows between both machines indicate the moving of pallets (with boxes and with cylinders, one item per pallet). As such, there is ``buffer'' space between the two machines.
The assignment consists of three parts.
AToM3 is a multi-formalism modelling environment which means it can be used to work in different formalisms. By default the Entity Relationship Diagram formalism is loaded.
To remove this formalism, go to File/Close meta-model. Select Entity Relationship Diagram and press delete and subsequently, OK. You will notice that the buttons on the left hand side of the canvas disappear as there are now no formalisms loaded.
You are now ready to load the PetriNets formalism by means of File/Open meta-model. Go into the PNModels directory and select PetriNets.py.
You may also wish to change the formalism which is loaded when AToM3 starts to Petri Nets by setting Initial Meta-Model to PetriNets under File/Options.
In the PNModels/models directory, you will find the Producer_Consumer_PN.py example.