Project work carried out at the Institute of Automation Technology, Technical University of Kaiserslautern.
The purpose of this repo is to document our learnings and keep track of our progress.
The goal of the project is the design, implementation, and control of a virtual factory capable of being used for teaching and research. Based on the factory simulation, different algorithms such as fault-tolerant control, reconfiguration and cyber-security approaches can be tested. To allow a wide range of applications, different communication frameworks are to be implemented (e.g. communication to soft PLC, programming languages, OPC UA, etc.).
- Design and implementation of industrial processes using Factory I/O:
- Process should include redundancies/flexibilities
- Combination processes should be included
- Modularization: Design of different scenes that can be easily combined to allow easy scaling of the size of the simulated system
- Specify control requirements for the modelled processes
- Model and design logic control systems to fulfil specified control requirements
- Verify and validate designed logic controllers
- Implement control with a soft PLC:
- Implement the controllers using structured text on a Soft PLC
- Write programs that automatically inject faults into the plants using Factory I/O SDK (for fault detection, fault-tolerant control)
- Connect the plant with the soft PLC-based controller and run simulation
- Modelling of plant behavior:
- Normal plant behavior
- Faulty plant behavior
- Modularized approach to allow the combination of different system parts
- Communication via Modbus TCP/IP (read/write signals):
- Communication with Python
- Communication with Matlab
- Explore Facotry I/O and build a demo factory to get a hang of the software environment
- Simple virtual factory with basic controls implemented
- Demo factory created and basic controls implemented,but control goes berserk after a couple of operation cycles.
- /src/virtual_factories/demo_factory.factoryio
- /src/control_systems/modelling/demo_factory.pdf
- /src/control_systems/implementation/demo_factory.st
- /src/control_systems/validation/demo_factory.smv
- Troubleshoot and fix demo factory control
- Virtual factory with working basic controls
- PLC logic fixed to sustain control over multiple operation cycles
- /src/virtual_factories/demo_factory
- /src/control_systems/implementation/demo_factory.st
Exam Preparation.
- Formulate an understanding of the nature and scope of the virtual factory
- Lay down design goals
- Draft of virtual factory schematics
- Sketch of virtual factory schematics with parts labelled
- /src/img/schematics_sketch_v1_1.jpg
- /src/img/schematics_sketch_v1_2.jpg
- Divide the virtual factory into sections
- Refine design goals for Section A and implement in Factory I/O
- Implementation of Section A
- Advanced schematics of Section A
- Implementation of Section A
- /src/img/sec_A_sketch_v1.jpg
- /src/virtual_factories/sec_A.factoryio
- Refine design goals for Section B & Section C and implement in Factory I/O
- Implementation of Section B & Section C
- Advanced schematics of Section B
- Implementation of Section A, B & C
- Advanced schematics of Section B & C
- Sensor+Pusher Control for redundant paths
- Sensors implementation
- Introduced buffers into the production line
- Added Control requirement specifications
- Updated schematics
- /src/img/sec_B_sketch_v1.jpg
- /src/img/sec_A_sketch_v1.jpg
- /src/img/sec_C_sketch_v1.jpg
- /src/virtual_factories/Section.factoryio
- /src/control_systems/implementation/editor/Sensor+PusherTest
- /src/control_systems/implementation/Sensor_Pusher_Test.st
- Redundancy reroute (Changed pusher to pivot arm).
- Removed buffer before machning center.
- Implemented collision prevention mechanism from output of the main route and redundant route of the machining centers.
- /src/img/sec_B_sketch_v1.jpg
- /src/img/sec_A_sketch_v1.jpg
- SIPN.jpg
- Plant redesign to implement 2 seperate assembly stages.
- /src/control_systems/virtual_factories/Section.factoryio
- Implementation of control for sorting stage
- Implementation of control for sorting stage
- /src/control_systems/virtual_factories/sorting.factoryio
- /src/control_systems/virtual_factories/buffer.factoryio
- /src/control_systems/modelling/Sorting_requirements.md
- /src/control_systems/modelling/Buffer_requirements.md
- /src/control_systems/validation/split_section_models/sorting_model.json
- /src/control_systems/validation/split_section_models/lid_buffer_model.json
- /src/control_systems/validation/split_section_models/base_buffer_model.json
- /src/control_systems/implementation/sorting.st
- Implementation of control for a combination of sorting and buffer stages
- Implementation of control for assembly stage
- Implementation of control for a combination of sorting, buffer, and assembly stages
- Setting an output from 2 different function blocks results in some unexplainable error
- /src/control_systems/virtual_factories/sorting_buffer.factoryio
- /src/control_systems/virtual_factories/sorting_buffer_assembly.factoryio
- /src/control_systems/modelling/Assembly_requirements.md
- /src/control_systems/validation/sorting_model.json
- /src/control_systems/validation/lid_buffer_model.json
- /src/control_systems/validation/base_buffer_model.json
- /src/control_systems/validation/assembly_model.json
- /src/control_systems/implementation/sorting_buffer.st
- /src/control_systems/implementation/sorting_buffer_assembly.st
- Implementation of control for a combination of sorting and buffer stages
- /src/control_systems/virtual_factories/stacking.factoryio
- /src/control_systems/validation/split_section_model/stacking.json
- SIPN and json model for production stage
- Implementation of control for production stage
- Implementation of control for entire Manufacturing Line 1 (production + sorting + buffer + stacking)
- /src/control_systems/virtual_factories/production.factoryio
- /src/control_systems/virtual_factories/production_sorting_buffer_assembly.factoryio
- /src/control_systems/implementation/production.st
- /src/control_systems/implementation/production_sorting_buffer_assembly.st
- /src/control_systems/validation/split_section_models/production.json
- /src/control_systems/validation/json_models/production_sorting_buffer_assembly.json