logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Arapera BillingAccounting
(4/5)

981 Answers

Hire Me
expert
William LongMathematics
(5/5)

990 Answers

Hire Me
expert
Elis PanaseykoEnglish
(5/5)

513 Answers

Hire Me
expert
Ishrat KhanAccounting
(/5)

599 Answers

Hire Me
Others

The first step towards understanding the concepts of cyber-physical systems (CPS) security is to get familiar with their control logics and mechanisms. In the first mini project.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Mini Project #1: Design and Simulation of Industrial

Control Systems

Environment Setup

The first step towards understanding the concepts of cyber-physical systems (CPS) security is to get familiar with their control logics and mechanisms. In the first mini-project, we will learn how to model an industrial control system (ICS) with its control logic. To do so, an advanced educational modeling software, namely Factory I/O coupled with Control I/O, will be used to model the process and design the underlying controller. The latest trial version of Factory I/O for Windows machines can be downloaded from here: Factory I/O trial version.

You can use this version for 30 days.

 

Factory I/O requires Windows operating system (OS). If you do not have access to a Windows machine, you can download Windows from Georgia Tech Azure Dev Tools (formally Microsoft Imagine). If you have a Mac, then Parallels Desktop is a great way to set up the Windows virtual environment. The trial version of Parallels is sufficient for this mini project but you can also get a student discount for the full version. Otherwise, any virtual machine manager is allowed (e.g., VirtualBox). If you use VirtualBox, then you may need to install Guest Additions.

so that GUI resolution auto-adjusts. Please note that Factory I/O needs a GPU for better graphical rendering performance and a good amount of RAM. Therefore, make sure you have allocated enough hardware resources from your host machine to get a smooth environment. If you are still unable to get a smooth running experience, try to decrease the graphical rendering quality within the Factory I/O settings.

 

Factory I/O

Inside Factory I/O, there is a visual environment where you can create the 3-D model of an industrial control process. Also, you can design a controller for the process, where the actuators are controlled by sensors, input buttons, and the underlying control logic. The control logic of the process can be embedded inside a programmable logic controller (PLC) connected to your computer. We will learn how to program a PLC in the next mini project. Instead of connecting a real PLC, in this mini project, you will use the Control I/O interface with Factory I/O to design your controller. You can connect the block diagrams of the inputs, sensors, and actuators with different logic to form your controller. This is very similar to programming in the Simulink/Matlab environment. Factory I/O can be very easy to learn, but for this project you are only working in Control I/O.

It does take some time to get familiar and comfortable with Factory I/O and Control I/O software. This project requires Function Block Diagram design which is a bit different from traditional software programming (there are no IF statements!). Please do not wait till the last weekend to start this project, as the estimated time of completion could be anywhere from 15 to 50 hours. Below are helpful resources to get started on Factory I/O, Control I/O, PLCs and Function Block Programming.

Table 1: Helpful Resources

Description

Link

Summaries of PLC Programming Languages

isd-soft

PLC Language Comparison

automation.com

(Technical Background Section)

Lab Assignment

Programming Language Features

IEEE Paper

PLC Design Approach

ACC Automation

Introduction to Function Blocks

Function Blocks

Free Tutorial

PLC Academy

Getting started with Control I/O

YouTube Video

Additional Note(s)

When you open a Factory I/O file, a blank Control I/O file might open. If this happens, you should not use this Control I/O, instead you will need to open the Control I/O file associated with your work. The blank Control I/O file will have a file name such as “Diagram1.controlio”, that is your indication to load your Control I/O file, or the one provided with the project archive. Make sure that the Control I/O file you are editing is the correct file. The best practice is to name the Factory I/O file and Control I/O file the same (with different extensions). Do not modify the 3D environment in Factory I/O.

1           Water Tank System (40 Points)

Part 1a - Water Tank System (0 Points)

In this part, the goal is to design and implement a water tank system that fills and drains automatically. In the pre-build Factory I/O scene, there are three water tanks. However, in this part only requires working with one water tank (NOT all three). Below are the steps required for the implementation:

 

  • The fill process starts when the start button is

  • Once the water level reaches 70% the tank’s capacity, the fill valve must stop and the drain valve should open to decrease the tank level to 50%. This filling and draining process should continue between 70% and 50% until the stop button is pressed. Note: There is a 2% tolerance, meaning that cycling between (68%-72%) and (48%- 52%) is

  • By pressing the stop button, the remaining water in Tank 1 must be drained and then the entire process must stop. Only when the tank has been fully drained, pressing the start button again must restart the entire

  • Pressing the start button while a tank is draining below its minimum cycle level (ex: 40% for Tank 1) can be ignored, or it can start the filling process, either method is

 

This implementation has already been done and the solution is provided in the assignment zip file. Also, there is a Youtube Video created to discuss how to implement the solution. This is provided as reference and to assist the learning curve required for working with Factory & Control I/O.

 

Part 1b - Logic Bomb Water Tank System (40 Points)

This part is an extension to the first, but will requiring using all three water tanks, and adding a logic bomb.

 

For the first tank, once the water level reaches to 70% of the tank’s capacity, the fill valve must stop and the drain valve must start and continue until the water level reaches 50% of tank’s capacity. This process must continue working in a repeated cycle until the stop button is pressed. There is a 0.2 (+/- 2%) tolerance, meaning that cycling between (68%-72%) and (48%-52%) is acceptable. By pressing the stop button, the remaining water in the tank must be drained and then the entire process must stop. Only when the tank has fully drained, pressing the start button again must restart the entire process.

 

For the second tank, once the water level reaches to 60% of the tank’s capacity, the fill valve must stop and the drain valve must start and continue until the water level reaches 40% of tank’s capacity. This process must continue working in a repeated cycle until the stop button is pressed. There is a 0.2 (+/- 2%) tolerance, meaning that cycling between (58%-62%) and (38%-42%) is acceptable. By pressing the stop button, the remaining water in the tank must be drained and then the entire process must stop. Only when the tank has fully drained, pressing the start button again must restart the entire process.

 

For the third tank, once the water level reaches to 50% of the tank’s capacity, the fill valve must stop and the drain valve must start and continue until the water level reaches 30% of tank’s capacity. This process must continue working in a repeated cycle until the stop button is pressed. There is a 0.2 (+/- 2%) tolerance, meaning that cycling between (48%-52%) and (28%-32%) is acceptable. By pressing the stop button, the remaining water in the tank must be drained and then the entire process must stop. Only when the tank has fully drained, pressing the start button again must restart the entire process.

 

After the first water tank completes two full cycles, the fill and drain logic of the second and third water tanks should be affected. A single cycle for the first water tank is defined as:

 

Start cycle at 70% → Drain to 50% → Fill back to 70%

 

In essence, the logic bomb should activate when the first water tank hits 70% for the third time (first fill to 70% then start cycling: first discharge, second fill to 70%, second discharge, third fill back to 70%). As a result, your logic bomb should cause the second water tank to cycle between 50% and 51%. Also, the third tank should fill to the capacity, 100%. Both the second and third water tanks should no longer respond to the Start/Stop buttons.

 

Grading Notes

A pre-built Factory I/O scene is provided, and you are not allowed to modify the pre-built scene, as this will be the scene used for grading. Any points lost due to scene modifications are not eligible for a regrade (including any sensors/actuators that are already FORCED). This part will be graded

 

under normal speed (1x); if your process takes too long (see Appendix A) to operate then you will lose points.

 

2           Sorting Station (35 Points)

Part 2a - Sorting Station (20 Points)

In this section, the goal is to design and implement a sorting station. Below are the steps required for implementation:

 

  • When the start button is pressed, all three rollers will emit pallets with boxes. One outer emitter (on the outer roller) will emit pallets with small boxes, and the other emitter (on the other roller) will emit pallets with large boxes. The middle roller should emit pallets with either small or large boxes (the emitter is already configured).

  • Once the pallets+box, on the middle roller, reach the chain transfer the pallets with small boxes should be sorted to the right and the pallets with the large boxes should sort to the left. The pallets (with boxes) emitted on the outer rollers should continue to be removed accordingly. (See video for additional details)

  • Once the pallets are properly sorted to the appropriate roller, they should continue to travel down and their respective roller and removed by the Remover at the end of the roller(s).

  • If the stop button is pressed, the process should pause and continue as normal when the start button is pressed again. (Note: You do not have to worry about the stop button being pressed mid-sort.)

Part 2b - Logic Bomb Sorting Station (15 Points)

For this part, the goal is to introduce a logic bomb into the implementation. After 5 large and 5 small boxes have been properly sorted, the logic bomb should trigger. The logic bomb should cause the sort logic to reverse and the system should stop responding to the start and stop buttons. Please note, the requirement is BOTH 5 large boxes and 5 small boxes. Therefore, if 7 large boxes are emitted in sequence then 5 small boxes are emitted in sequence, then a total of 12 boxes are sorted before the logic bomb triggers.

 

Grading Notes

A pre-built Factory I/O scene is provided, and you are not allowed to modify the pre-built scene, as this will be the scene used for grading. Any points lost due to scene modifications are not eligible for a regrade (including any sensors/actuators that are already FORCED). This part will be graded under normal speed (1x); if your process takes too long (see Appendix A) to operate then you will lose points.

 

3           Production Line (25 Points)

Part 3a - Production Line (20 Points)

In this section, the goal is to design and implement a production line system with production bases, lids, and a stackable box. Below are the steps required for implementation:

 

  • When the start button is pressed, the first conveyor belt should produce lids and the second conveyor belt should produce bases (emitters already configured). Also, stack-able boxes should be emitted by the third conveyor belt, the one perpendicular to the other two

  • When both a base and lid have reached their respective positioner, the Pick & Place should move the lid on top of the

  • When the lid+base has reached the third positioner, the second Pick & Place should move the lid+base into the stack-able box (emitted by the third conveyor belt).

  • Once two lid+base have been stacked inside the stack-able box, the stack-able box should continue to move down the conveyor belt and removed via the

  • If the stop button is pressed, the process should pause and continue as normal when the start button is pressed

 

Part 3b - Logic Bomb Production Line (5 Points)

For this part, the goal is to introduce a logic bomb into the implementation. After two stack-able boxes have been removed (4 lid+base), the logic bomb should trigger. The logic bomb should cause 3 lid+bases to be required before removing the stack-able box.

 

Grading Notes

A pre-built Factory I/O scene is provided, and you are not allowed to modify the pre-built scene, as this will be the scene used for grading. Any points lost due to scene modifications are not eligible for a regrade (including any sensors/actuators that are already FORCED). This part will be graded under normal speed (1x); if your process takes too long (see Appendix A) to operate then you will lose points.

 

Course Created Youtube Videos

To better assist this assignment, a series of Youtube videos have been created to highlight the requirements for each part.

Table 2: Youtube Videos

Section

Normal

Logic Bomb

Water Tank

Link

Link

Sorting Station

Link

Link

Production Line

Link

Link

A       Evaluation

 

Table 3: Water Tank Logic Bomb Evaluation (40 Points)

Requirement

Points

Notes

Water System Starts

5

All three tanks start filling when Start button is pressed

Water System Cycles

5

Each water tank cycles appropriately

Water Tank Stop

5

All water tanks drain completely when stop button pressed

 

 

Water Tank Restart

5

Water tanks start appropriately after tank completely drained

Logic Bomb Triggers

10

Logic bomb triggers after first water tank completes two cycles

Second Water Tank

5

Tank 2 cycles between 50% and 51%

Third Water Tank

5

Tank 3 fills to 100%

Table 4: Sorting Station (20 Points)

Requirement

Points

Notes

Process Starts/Stops

5

Process starts and stops appropriately when Start and Stop button(s) pressed

Small Box Sort

5

Process accurately sorts pallets with small boxes to the right roller

Large Box Sort

5

Process accurately sorts pallets with large boxes to the left roller

Pallet+Box Removal

5

Once pallet+box sorted they are appropriately removed by Remover

Table 5: Sorting Station Logic Bomb (15 Points)

Requirement

Points

Notes

Logic Bomb Trigger

5

Logic bomb triggers after 5 large boxes and 5 small boxes sorted

Reversed Sort Logic and Removal

5

Boxes accurately removed in opposite rollers

Start/Stop Button

5

Start/Stop buttons stop working

Table 6: Production Line (20 Points)

Requirement

Points

Notes

Process Starts/Stops

5

Process starts and stops appropriately when Start and Stop button(s) pressed

First Pick & Place

5

Pick & Place properly moves lid on-top of base

Second Pick & Place

5

Pick & Place properly moves base+lid into stack-able box

Stack-able Box Removal

5

Stack-able box properly removed with two base+lid(s)

Table 7: Production Line Logic Bomb (5 Points)

Requirement

Points

Notes

Logic Bomb Trigger & 3 Lid+Base Removal

5

Logic bomb triggers after two stack-able boxes removed, causing each stack-able box to have 3 lid+base(s)

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme