HO CHI MINH CITY ~~~~~UNIVERSITY OF TECHNOLOGY~~~~~ ~~~~~~~~~~~~~~~~~~~~~●●~~~~~~~~~~~~~~~~~~~ DESKTOP PROJECT 1 – REPORT COURSE INDUSTRIAL AUTOMATION – EE4407 Tutor PhD Truong Dinh Chau Student’s Nam[.]
Trang 1HO CHI MINH CITY
~~~~~UNIVERSITY OF TECHNOLOGY~~~~~
~~~~~~~~~~~~~~~~~~~~~●●~~~~~~~~~~~~~~~~~~~
DESKTOP PROJECT 1 – REPORT COURSE: INDUSTRIAL AUTOMATION – EE4407
Tutor: PhD Truong Dinh Chau
Student’s Name: Tran Hoang Lam
Student’s ID: 1951161
Trang 2P&ID: 3
State diagram: 3
Working principle: 3
Code: 10
Trang 3P&ID:
Trang 4State diagram:
Working principle:
When I press “START” button
Motor 1_1 will run and the TANK 1 will be filled.
Trang 5After 5 seconds, the motor 1_2 will start running, now the TANK 1 will be filled
by 2 motors, which is motor 1_1 and motor 1_2 at the same time.
Trang 6When TANK 1 reaches its max value, motor 1_1 and motor 1_2 will be off and the motor 2_1 is turned on to transfer the liquid from TANK 1 to TANK 2.
Trang 7After 5 seconds, the motor 2_2 will start running, now the TANK 2 will be filled
by 2 motors, which is motor 2_1 and motor 2_2 at the same time.
Trang 8When TANK 2 reaches its max value, all the motor will be stopped and the MIXER will start running for 10 seconds.
Trang 9After that, the liquid at TANK 2 will be poured out at valve 3_1 and valve 3_2.
Trang 10When TANK 2 is empty, motor 1_1 and motor 1_2 will start running and filled up the TANK 1.
Trang 11When TANK 1 reaches its max value, motor 1_1 and motor 1_2 will be off and the motor 2_1 is turned on to transfer the liquid from TANK 1 to TANK 2 (continue the loop)
Trang 12IF "START" THEN CASE "i" OF
0:
"M1_1" := true; "M1_2" := false; "M2_1" := false;
Trang 13"M2_2" := false;
"V3_1" := false;
"V3_2" := false;
"HI1" := false;
"HI2" := false;
"MIXER" := FALSE;
"TANK1" := "TANK1" + 1; "DB1".TIMER(IN := true,
PT := T#5s);
IF "DB1".TIMER.Q THEN "DB1".TIMER(IN := false,
PT := T#0s); "i" := 1;
END_IF;
1:
"M1_1" := true;
"M1_2" := true;
"M2_1" := false;
"M2_2" := false;
"V3_1" := false;
"V3_2" := false;
"HI1" := FALSE;
"HI2" := FALSE;
"MIXER" := FALSE;
"TANK1" := "TANK1" + 1;
IF "TANK1" = 15000 THEN "HI1" := TRUE;
"i" := 2;
Trang 14END_IF;
2:
"M1_1" := false;
"M1_2" := false;
"M2_1" := true;
"M2_2" := false;
"V3_1" := false;
"V3_2" := false;
"HI2" := FALSE;
"HI1" := FALSE;
"MIXER" := FALSE;
"DB1".TIMER(IN := true,
PT := T#5s);
"TANK1" := "TANK1" - 1; "TANK2" := "TANK2" + 1; "MIXER" := FALSE;
IF "DB1".TIMER.Q THEN "DB1".TIMER(IN := false,
PT := T#0s); "i" := 3;
END_IF;
3:
"M1_1" := false;
"M1_2" := false;
"M2_1" := true;
"M2_2" := true;
"V3_1" := false;
"V3_2" := false;
"HI1" := FALSE;
Trang 15"HI2" := FALSE;
"MIXER" := false;
"TANK1" := "TANK1" - 1;
"TANK2" := "TANK2" + 1;
IF "TANK2" = 15000 AND "TANK1" = 0 THEN "i" := 4;
END_IF;
4:
"M1_1" := false;
"M1_2" := false;
"M2_1" := FALSE;
"M2_2" := FALSE;
"V3_1" := false;
"V3_2" := false;
"HI1" := FALSE;
"HI2" := TRUE;
"MIXER" := TRUE;
"DB1".TIMER(IN := true,
PT := T#10s);
IF "DB1".TIMER.Q THEN
"DB1".TIMER(IN := false,
PT := T#0s);
"i" := 5;
END_IF;
5:
"M1_1" := false;
"M1_2" := false;
Trang 16"M2_1" := false;
"M2_2" := false;
"V3_1" := true;
"V3_2" := true;
"HI1" := FALSE;
"HI2" := FALSE;
"MIXER" := FALSE; "TANK2" := "TANK2" - 1;
IF "TANK2" = 0 THEN "i" := 6;
END_IF;
6:
"M1_1" := true;
"M1_2" := true;
"M2_1" := false;
"M2_2" := false;
"V3_1" := FALSE;
"V3_2" := FALSE;
"HI1" := FALSE;
"HI2" := FALSE;
"TANK1" := "TANK1" + 1; "MIXER" := FALSE;
IF "TANK1" = 15000 THEN "i" := 2;
END_IF;
END_CASE;
END_IF;
Trang 17IF "STOP" THEN "START" := 0; "M1_1" := FALSE; "M1_2" := false; "M2_1" := false; "M2_2" := false; "V3_1" := false; "V3_2" := false; "HI1" := false; "HI2" := false; "MIXER" := FALSE; "TANK1" := 0; "TANK2" := 0; "i" := 0;
END_IF;