frePPLeOpen source Production Planning
  • Home
  • Documentation
  • C++ API

4 – Modelling concepts

In the next section you’ll build a first model. Some data elements (such as items, locations, customers, demands, …) required for a model don’t need an elaborate explanation.
The modelling concepts of operations, material and capacity consumption however need some introduction.

Operation

The key modelling element is an operation, which defines an activity.

There are different operation types:

  • fixed time: the duration is identical regardless of the planned quantity. Eg, a transport operation
  • time-per: the duration increases linearly with the planned quantity. Eg, a manufacturing operation
  • routing: this operation type represent a sequence of sub-operations.
  • alternate: an alternate operation models the choice among multiple choices.
Example:
Operation “Make product X” takes 10 minutes per unit.

modeling_1

Buffer

Items are stocked in buffers.
A buffer, often called SKU -stock keeping unit-, is a (physical or logical) inventory point.

There are different buffer types:

  • default: a buffer that is replenished with a producing operation
  • procure: a buffer that is replenished with a procurement operation
  • infinite supply: a buffer without replenishing operation

Example:
Buffer “Part A” models inventory of the item “part A” in location “my factory”.
Buffer “Part B” models inventory of the item “part B” in location “my factory”.
Buffer “Bulk product” models inventory of the item “bulk product” in location “my factory”.

modeling_2

Flow

Operations consume and produce material through flows.
A flow defines an association between the operation and a buffer. Flows thus represent the Bills of Material / BoMs in your model.

There are 2 types of flows:

  • start: Flows happening at the start of the operation. These are normally consuming material and have a negative quantity.
  • end: Flows happening at the end of the operation. These are normally producing material and have a postive quantity.

Example:
Operation “Make product X” has 3 flows.
A first flow to consume 1 units of a buffer “Part A” at the start of the operation.
A second flow to consume 2 units of a buffer “Part B” at the start of the operation.
And finally a third flow to model the production of 1 unit of “product X” when the operation finishes.

modeling_3

Load

Operations also require capacity, which is modelled through loads.
Capacity is available in resources and a load defines an association between the operation and a resource.

Example:
Operation “Assemble product X” could have 2 loads.
A first load to model that machine “production line” is required to perform the operation.

modeling_4

Operationplan

An operation only statically defines the activity, and doesn’t specify any planned dates or quantities. Concrete activities are then instantiated in operationplans.

Example:
To satisfy a customer demand we plan to run “Assemble product X” for 12 units from tomorrow 8am till 10am.
Another instance of “Make product X” is planned the next day from 3pm to 4pm for 6 units to meet another customer demand.
Another instance of “Make product X” for 20 units is planned today to replenish a buffer storing the product X to its safety stock level.

Putting it all together

Combining all of the above modelling objects we can construct a network representing the flow of material and usage of capacity in your plant.
The picture below shows a simple network with 3 levels.

Drawing this type of schematic network of your environment is extremely useful before you start entering data in frePPLe. Each shape and line in such a diagram will be defined as an input record in the frePPLe data model.

modeling_5

    • Getting started
      • 1 – Introduction
      • 2 – Installation
      • 3 – Entering data
      • 4 – Modelling concepts
      • 5 – Your first model
      • 6 – Your first plan
    • Modeling guide
      • Simplified domain model
      • Detailed domain model
      • Environment variables
      • Python interpreter
      • Global parameters
      • Buffer
      • Calendar
      • Customer
      • Demand
      • Flow
      • Item
      • Load
      • Location
      • Operation
      • Suboperation
      • Operationplan
      • Problem
      • Resource
      • SetupMatrix
      • Skill
      • Resource skill
      • Solver
    • User guide
      • Supported browsers
      • Getting around
        • Logging in
        • Logging out
        • Changing password
        • Navigation
          • Menu bar
          • Jump search
          • Context menus
        • Filtering data
        • Sorting data
        • Selecting time buckets
        • Exporting data
        • Importing data
        • Customizing a screen
        • User preferences
        • User permissions and roles
        • Comments
        • History – Audit trail
      • Data maintenance screens
      • Supply Path / Where Used
      • Plan analysis screens
        • Problem report
        • Constraint report
        • Inventory report
        • Inventory detail report
        • Resource report
        • Resource Gantt report
        • Resource detail report
        • Operation report
        • Operation detail report
        • Demand report
        • Demand detail report
        • Demand Gantt report
        • Forecast report
        • Performance indicator report
      • Execution screen
      • Batch commands
        • frepplectl
        • frepple
        • freppleservice.exe (Windows only)
    • Installation guide
      • Windows installer
      • Compiling on Windows
      • Linux binary packages
      • Compiling on Linux
      • Compiling from the source code repository
      • Running the VMWare virtual machine
      • Other platforms
      • Configuring multiple models in the user interface
      • Configuring as a Python extension module
    • Extension modules
      • Forecast module
      • Order quoting module
      • REST web service module
      • OpenERP connector module
      • Linear programming solver module
    • Technical guide
      • Architecture
      • Source code repository
      • User interface
        • Creating an extension app
        • Translating the user interface
        • Adding or customizing a report
        • Style guide
      • Solver engine
        • Code structure
        • Class diagram
        • Planning algorithm
          • Top level loop
          • Demand solver
          • Buffer solver
          • Flow solver
          • Load solver
          • Operation solver
          • Resource solver
        • Cluster and level algorithm
        • Extension modules
        • Style guide
        • Portability
      • Security
      • Unit tests
        • buffer_procure_1
        • calendar
        • callback
        • cluster
        • constraints_combined_1
        • constraints_combined_2
        • constraints_leadtime_1
        • constraints_material_1
        • constraints_material_2
        • constraints_material_3
        • constraints_material_4
        • constraints_resource_1
        • constraints_resource_2
        • constraints_resource_3
        • constraints_resource_4
        • constraints_resource_5
        • datetime
        • deletion
        • demand_policy
        • flow_alternate_1
        • flow_alternate_2
        • flow_effective
        • forecast_1
        • forecast_2
        • forecast_3
        • forecast_4
        • forecast_5
        • forecast_6
        • jobshop
        • load_alternate
        • load_effective
        • lpsolver_1
        • multithreading
        • name
        • operation_alternate
        • operation_available
        • operation_effective
        • operation_pre_post
        • operation_routing
        • pegging
        • problems
        • python_1
        • python_2
        • python_3
        • safety_stock
        • sample_module
        • scalability_1
        • scalability_2
        • scalability_3
        • setup_1
        • setup_2
        • skill
        • xml
        • xml_remote
    • FAQ
    • License
      • GNU Affero General Public License
      • GNU Free Documentation License
    • Third party add-ons
  • Copyright © 2010-2013 frePPLe bvba