Git Product home page Git Product logo

krockema / mate Goto Github PK

View Code? Open in Web Editor NEW
24.0 6.0 20.0 17.65 MB

Prove of Concept for aManufacturing on Actor Technology System in an Industrial 4.0 Environment

License: Apache License 2.0

C# 60.83% CSS 1.77% JavaScript 16.65% Shell 0.01% HTML 11.65% Batchfile 0.01% F# 1.80% Dockerfile 0.03% Less 3.61% SCSS 3.65%
selforganization production simulation agent-based-simulation planning scheduling

mate's People

Contributors

dependabot[bot] avatar krockema avatar marvinmat avatar pascalschumann avatar seiferts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mate's Issues

Time coupled production processes

Sheduling of Products that have time dependencies betweeen consecutive operations.
i.E. Applying color -> drytime -> applying finish.

Cases:

  • min wait time
  • max wait time
  • exact wait time

ResourceGuardian / change sequence for creating Resources and Hubs

create a ResourceGuardian for resources

Change the sequence of creating resources and hubs to:
[1] Create Resources that provides ResourcesSkills (with containing Setups)
[2] Register Resources at DirectoryAgent
[3] Create new HubAgents depending on the provide ResourceSkills

Additional:

  • make resources addable and deletable (note: dependencies to HubAgents)

AI Data generation

@Krockema

Input/Changes:

  • use current feature KI branch
  • steps to ~1.000.000
  • change seed (?)

Output:

  • db dump of ResultDB (KPIs)

Dynamic pegging

Implement the dynamic pegging

Aimed behaviour:
If new orders arrival with an earlier due, dynamic pegging should change the due for the existing production and instead create the dispo and production agents for the new order with the later due time of the replaced item.

Multiply HubAgents for Resources

  • FHubInformation with List
  • enable Resources to link with multiply HubAgents

expected behavior:

  • resource can contain to multiply HubAgents
  • resource can propose to multiply HubAgents

Implement Batches

Implement batch processing, i.e. Collection of Operations with the same set-up, processed all at once.

i.e. Backery baking rolls.

Creating batches dependent on Machine capabilities:

  • Possible solutions:
    • Machine dependencies telling max batch size on request,
      based on that, a bucket limit is created.
    • Machine splits the Bucket into batches and returns overflow.

Feature calculate max bucket proportions

IDEA:

  • count arriving operations and their durations --> automatically calculate proportions of for max bucket size
  • forget operations older than 1 week

IMPLEMENTATION:

  • object with dictionary having (string) "Group technology" and (int) "totalduration"
  • new arriving operation --> "totalduration" += operation.duration

Implement Bucket Processing

Batches For Workshedules with the same Tooling Setup. (Collect at Hubagent, and release them on a certain threshhold - First try with Min(RequiredDate) - (3x Item.duration).

Overall TODO:
[ ] Add swapping current tool on resource in "Default" behaviour depending on requierd tool for next running job
[ ] Add proposal times to resource depending on swap resource tool or not
[ ] Create the Bucket behaviour for Agents and run with default behaviour
[ ] Add a BucketManager at hub agent (handle all Buckets for a hub categorized by setup typs)
[ ] Implement functionality with lead time oriented bucket behaviour
[ ] at enqueue foperation - search for open buckets with: same setup tool && where bucket.start < currentOperation.start && bucket.end > currentOperation.end
[ ] Enhance machine utiliaziation with setup time to evalute work/setup ratio

Enable diverging product structure

  • Let StorageAgent create ProductionAgent for multiply orders
  • Use-Case i.e. Splitting raw material for multiply orders

show case procedure for dispo agents:
(1) create new DispoAgent with diverging product structure
(2) if no bucket for same raw material exits or all exiting buckets for same raw material are already at their limit --> the DispoAgent creates a new bucket at storageagent, else add to busket
(3) as soon as any dispo agent inside bucket reaches priority the bucket creates a production agent with all including dispoagents

assumptions:

  • spare capacties on raw material can be neglected

extension:

  • storage can create new dummy dispoagents if raw material has spare capacities

PMT - Logistic Agent

Implement logistic agent for transportation of products between production units.
Possible solutions:

  • as own Operation with Resource requirement.
  • as additional Parameter on an Operation (external set-up time)
  • as indipendent logistic Agent

Generator for final product structures

Design and Implement Product-Generator, which can be feeded with manualy or auto generated subproducts and generate a given amount of final products. This products should have a variation in product structure.

Aimed behaviour:

  • manualy and auto create mediate products (including required machine-capabilities)

input: Amount of possible final products, interval of product structure,

output: auto generate boms for

Transfer operations into single agents.

Transfer WorkItems from Production Agent into dedicated operation agents.

  • May required due to machine to skill to operation mapping based on recipies
    • could be crated when the operation is fix sheduled on one mashine
      • ensures correct processing
      • enables tracing on operational level
      • further specialisation for specific incidents prossible

opens problems:

  • syncing parallel processing
  • more than one agent per product

Quality assurance

Track any single production unit through all maschines + setups to quaranty quality and track down issues.

Refactoring Agent Core

List of implementation

  • Parent/Child-Creation and Finishing for Dispo Agent / Production Agent
    • delete virtual Childs releation between Dispo and Prod (dont delete relation between Prod and Dispo)
      • finish Dispo Agents when MaterialsProvided
      • finish Prod Agents when all operations finished and all dispoagents (virtual childs) terminated
    • implement forward scheduling (Production Agent all Dispo Agent --> take the one with later ending time)
  • Implement Methods for Default Behaviour
    • Only allow top down changes for IJobItem properties
    • SPOT at Hub Agent
    • restructure handling with JobItems, only send them if necessary
  • Restructure and Implement Unit Tests
    • implement new unit tests for data structures
    • implement new unit tests for agents
    • restructure folder structure for unit tests
    • add unit test to Travis
  • Refactoring InitializeSimulation
    • loading analyzer
    • loading guards
    • initialize resources
    • initialize stocks
    • Refectoring DatabaseConnection by replace MasterDBConnection with DbConnection (seperate connections for each Agent/Object.)
  • take Properties from Agent.Properties to behaviour and use an Interface for behaviours to access the properties
    • check F# modules & types if necessary
  • Introduce Agent Behaviour for Contract, Directory, Storage, Dispo, Hub, Production, Resource
    • Implement Default
  • Refactoring F# Simulation Messages
    • IKey and IJob usable for any planning element (i.e. Operation or Bucket)
    • Remove ItemState AND introduce (bool) MaterialsProvided and (bool) PreconditionsProvided (own objects)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.