Mini Project 1: Design and Simulation of Industrial Control Systems
CS 6263ECE 8813: Cyber Physical System Security Spring 2020
Environment Setup
The first step towards understanding the concepts of cyberphysical 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 IO coupled with Control IO, will be used to model the process and design the underlying controller. The latest trial version of Factory IO for Windows machines can be downloaded from here: Factory IO trial version. You can use this version for 30 days.
Factory IO 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 autoadjusts. Please note that Factory IO 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 IO settings.
Factory IO
Inside Factory IO, there is a visual environment where you can create the 3D 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 IO interface with Factory IO 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 SimulinkMatlab environment. Factory IO can be very easy to learn, but for this project you are only working in Control IO.
1
Mini Project 1 Design and Simulation of Industrial Control Systems
It does take some time to get familiar and comfortable with Factory IO and Control IO 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 IO, Control IO, PLCs and Function Block Programming.
Table 1: Helpful Resources
Description
Link
Summaries of PLC Programming Languages
isdsoft
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 IO
YouTube Video
Additional Notes
When you open a Factory IO file, a blank Control IO file might open. If this happens, you should not use this Control IO, instead you will need to open the Control IO file associated with your work. The blank Control IO file will have a file name such as Diagram1.controlio, that is your indication to load your Control IO file, or the one provided with the project archive. Make sure that the Control IO file you are editing is the correct file. The best practice is to name the Factory IO file and Control IO file the same with different extensions. Do not modify the 3D environment in Factory IO.
Georgia Institute of Technology 2 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
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 prebuild Factory IO 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 pressed.
Once the water level reaches 70 the tanks 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 6872 and 48 52 is acceptable.
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 process.
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 acceptable.
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 IO.
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 tanks capacity, the fill valve must stop and the drain valve must start and continue until the water level reaches 50 of tanks ca pacity. 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 6872 and 4852 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 tanks capacity, the fill valve must stop and the drain valve must start and continue until the water level reaches 40 of tanks 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 5862 and 3842 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 tanks capacity, the fill valve
Georgia Institute of Technology 3 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
must stop and the drain valve must start and continue until the water level reaches 30 of tanks 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 4852 and 2832 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 StartStop buttons.
Grading Notes
A prebuilt Factory IO scene is provided, and you are not allowed to modify the prebuilt 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 sensorsactuators 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 palletsbox, 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 rollers.
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 midsort.
Georgia Institute of Technology 4 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
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 prebuilt Factory IO scene is provided, and you are not allowed to modify the prebuilt 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 sensorsactuators 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, stackable boxes should be emitted by the third conveyor belt, the one perpendicular to the other two belts.
When both a base and lid have reached their respective positioner, the Pick Place should move the lid on top of the base.
When the lidbase has reached the third positioner, the second Pick Place should move the lidbase into the stackable box emitted by the third conveyor belt.
Once two lidbase have been stacked inside the stackable box, the stackable box should continue to move down the conveyor belt and removed via the Remover.
If the stop button is pressed, the process should pause and continue as normal when the start button is pressed again.
Part 3b Logic Bomb Production Line 5 Points
For this part, the goal is to introduce a logic bomb into the implementation. After two stackable boxes have been removed 4 lidbase, the logic bomb should trigger. The logic bomb should cause 3 lidbases to be required before removing the stackable box.
Grading Notes
A prebuilt Factory IO scene is provided, and you are not allowed to modify the prebuilt scene, as this will be the scene used for grading. Any points lost due to scene modifications are not
Georgia Institute of Technology 5 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
eligible for a regrade including any sensorsactuators 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
Deliverable and Submission Instructions
Create a zip file named First NameLast Namemp1.zip e.g., TohidShekarimp1.zip, that includes all your files and submit it on Canvas. Your zip file should be generated in such a way that when it is extracted, we get two folders with the names of scenes and controllers. Note: Failure to follow the submission and naming instructions will cause 20 points loss.
Section
Normal
Logic Bomb
Water Tank
Link
Link
Sorting Station
Link
Link
Production Line
Link
Link
First NameLast Namemp1
scenes
part1.factoryio
part2.factoryio
part3.factoryio
controllers
part1b.controlio
part2a.controlio
part2b.controlio
part3a.controlio
part3b.controlio
Please check your submission multiple times as we will not accept any submissions after the deadline for any reasons e.g., wrong file submission.
Georgia Institute of Technology 6 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
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 StartsStops
5
Process starts and stops appropriately when Start and Stop buttons 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
PalletBox Removal
5
Once palletbox sorted they are appropriately removed by Remover
Table 5: Sorting Station Logic Bomb 15 Points
Table 6: Production Line 20 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
StartStop Button
5
StartStop buttons stop working
Requirement
Points
Notes
Process StartsStops
5
Process starts and stops appropriately when Start and Stop buttons pressed
First Pick Place
5
Pick Place properly moves lid ontop of base
Second Pick Place
5
Pick Place properly moves baselid into stackable box
Stackable Box Removal
5
Stackable box properly removed with two baselids
Georgia Institute of Technology 7 Cyber Physical Systems Security
Mini Project 1 Design and Simulation of Industrial Control Systems
Table 7: Production Line Logic Bomb 5 Points
Requirement
Points
Notes
Logic Bomb Trigger 3 LidBase Removal
5
Logic bomb triggers after two stackable boxes removed, causing each stackable box to have 3 lidbases
Georgia Institute of Technology 8 Cyber Physical Systems Security