uid |
---|
AbstractionLayer |
In an industrial production environment and not only there, there are three parts that come to play to describe the production process:
- Product - A product is something the user wants to produce
- Resource - A resource describes a part that is needed to produce a product
- Processing - The way how the product is produced with a set of resources
The AbstractionLayer provides a collection of interfaces, base classes and common implementations for use in such a typical industrial production environment. So the AbstractionLayer is the base for Resources (e.g. Drivers, Cells, Stations), product descriptions and process data. It also gives you a base to persist these domain objects to a database.
This article gives you an overview which base classes, storage techniques, processes and product descriptions come into play. The following list gives an overview of the needed aspects of the AbstractionLayer:
An Activity is the smallest separately executable step of a Process.
Capabilities are used to find a matching Resource for an Activity.
Constraints have a similar impact on the mapping between activities and resources. In contrast to the capabilities, constraints aren't sets of provided and required abilities, but boolean conditions that might restrict the possibility to execute an activity on a resource. The constraint is also not based on an inherent property of the activity or resource but arises from the current context in the system.
Identities are used to represent unique properties like serial numbers and MAC adresses for instances and material number for products. There is also the derived type ProductIdentity that represents a products material number and revision. The static constructor AsLatestRevision
also lets you refer to the latest revision for a certain material.
A Process consists of a series of activities.
A ProductType or better a product description is used by a ProductRecipe to provide a basic structure to produce a ProductInstance
A Recipe is the base for all recipes which combines all needed data for a process.
A ProductRecipe provides a basic structure to use a product for production cases.
A WorkplanRecipe provides a Workplan and a set of parameters to define all the Activities needed for a Process.
A ProductionRecipe is the combination of a ProductRecipe
and WorkplanRecipe
.
The Resources package of the AbstrationLayer contains several basic classes to be used by the Resources and the ResourceManager
Tasks are used within a Workplan to define the Activity for each step.
The Workplan package of the AbstrationLayer contains several helper classes to be used by the Workflow package.
To start using the AbstractionLayer for your own projects you can jump into these tutorials: