Đề thi cuối học kỳ 2 môn PLC năm học 2014-2015

Mô tả một số hoạt động:

• Hệ thống đường ống dẫn chất lỏng hoạt động như sau:

Khi feed pump start thì 1 giây sau mới mở inlet valve và feed valve. Sau khi feed pump khởi động được 7 giây mà không có tín hiệu phản hồi về từ flow sensor (thường hở) thì dừng hệ thống và báo lỗi (nháy đèn với tần số 10Hz).

• Động cơ trộn (Agitator motor) hoạt động bằng biến tần với tín hiệu điều khiển lấy từ ngõ ra analog của PLC. Giả sử tín hiệu điều khiển biến tần từ 0-5V tương ứng động cơ trộn quay với tốc độ 0-1200 (vòng/phút).

• Level sensor là cảm biến đo mức với tầm đo 0-16m tương ứng ngõ ra 4-20mA.

Viết chương trình PLC S7 300 bằng ngôn ngữ STL thực hiện các yêu cầu sau:

Khi nhấn nút Start thì hệ thống dẫn chất lỏng A bắt đầu hoạt động để bơm chất lỏng A vào bồn.

Khi đạt được chiều cao 2m thì dừng hệ thống dẫn chất lỏng A và bắt đầu hoạt động hệ thống dẫn chất lỏng B để bơm chất lỏng B vào bồn cho tới khi đạt chiều cao 5m (tổng cả A và B) thì dừng. Lúc này bắt đầu cho động cơ trộn chạy với tốc độ 500 vòng/phút trong 30 giây đầu, sau đó tăng tốc độ lên 1000 vòng/phút và chạy trong 1 phút.

Sau khi trộn xong thì mở drain valve để xả chất lỏng ra. Khi cảm biến empty sensor (loại thường đóng) báo thì đóng drain valve và bắt đầu chu trình tiếp theo.

Hệ thống dừng khi nhấn nút Stop.

 

doc7 trang | Chuyên mục: PLC | Chia sẻ: tuando | Lượt xem: 421 | Lượt tải: 0download
Tóm tắt nội dung Đề thi cuối học kỳ 2 môn PLC năm học 2014-2015, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ĐỀ THI CUỐI HỌC KỲ II 2014-2015
MÔN: PLC
Thời gian: 90 phút
SV được sử dụng tài liệu, không sử dụng Laptop
Câu 1. Viết chương trình PLC thực hiện yêu cầu sau:
Chuyển 100 Byte từ vùng nhớ M bắt đầu MB100 sang vùng nhớ DB1 bắt đầu DBB100 khi bit M0.0 = 1.
Viết bằng ngôn ngữ STL có sử dụng con trỏ.
Viết bằng ngôn ngữ SCL.
Câu 2. Cho hệ thống trộn chất lỏng như hình vẽ. 
Drain
 valve
Agitator motor
M
¥
 Flow Feed Feed Inlet 
sensor B valve B pump B valve B sensor
 Inlet Feed Feed Flow
valve A pump A valve A sensor A
Level
sensor
Empty sensor
Mô tả một số hoạt động:
Hệ thống đường ống dẫn chất lỏng hoạt động như sau:
Khi feed pump start thì 1 giây sau mới mở inlet valve và feed valve. Sau khi feed pump khởi động được 7 giây mà không có tín hiệu phản hồi về từ flow sensor (thường hở) thì dừng hệ thống và báo lỗi (nháy đèn với tần số 10Hz).
Động cơ trộn (Agitator motor) hoạt động bằng biến tần với tín hiệu điều khiển lấy từ ngõ ra analog của PLC. Giả sử tín hiệu điều khiển biến tần từ 0-5V tương ứng động cơ trộn quay với tốc độ 0-1200 (vòng/phút).
Level sensor là cảm biến đo mức với tầm đo 0-16m tương ứng ngõ ra 4-20mA.
Viết chương trình PLC S7 300 bằng ngôn ngữ STL thực hiện các yêu cầu sau:
Khi nhấn nút Start thì hệ thống dẫn chất lỏng A bắt đầu hoạt động để bơm chất lỏng A vào bồn.
Khi đạt được chiều cao 2m thì dừng hệ thống dẫn chất lỏng A và bắt đầu hoạt động hệ thống dẫn chất lỏng B để bơm chất lỏng B vào bồn cho tới khi đạt chiều cao 5m (tổng cả A và B) thì dừng. Lúc này bắt đầu cho động cơ trộn chạy với tốc độ 500 vòng/phút trong 30 giây đầu, sau đó tăng tốc độ lên 1000 vòng/phút và chạy trong 1 phút.
Sau khi trộn xong thì mở drain valve để xả chất lỏng ra. Khi cảm biến empty sensor (loại thường đóng) báo thì đóng drain valve và bắt đầu chu trình tiếp theo.
Hệ thống dừng khi nhấn nút Stop.
Lưu ý: Chia nhỏ bài toán và thực hiện bằng FC, FB. 
Lập bảng ký hiệu – địa chỉ (chọn PLC đã học).
VD: 
Ký hiệu
Địa chỉ
Start
I0.0
Stop 
I0.1
-----------------------------Hết-----------------------------
Gợi ý đáp án
Câu 1a. (2đ)
	 A M0.0
 JCN DONE
 LAR1 P#M100.0
 LAR2 P#DBX100.0
 OPN DB1
 L 100
 NEXT: T MB10
 L B [ AR1 , P#0.0 ]
 T B [ AR2 , P#0.0 ]
 L P#1.0
 +AR1
 L P#1.0
 +AR2
 L MB10
 LOOP NEXT
 DONE: NOP 1
Câu 1b. (1đ)
IF M0.0=1 THEN
	FOR #i := 100 TO 199 DO
	%DB1.DB(#i):=MB(#i); 	// Biến i khai báo có kiểu Int
	END_FOR;
END_IF;
Câu 2. (7đ)
Bảng ký hiệu – địa chỉ (1đ) (chọn PLC CPU314C-2 PN/DP)
Ký hiệu
Địa chỉ
Ký hiệu
Địa chỉ
Ký hiệu
Địa chỉ
Start
I0.0
FeedPumpA
Q0.0
FeedPumpB
Q0.4
Stop 
I0.1
InletValveA 
Q0.1
InletValveB
Q0.5
FlowA
I0.2
FeedValveA
Q0.2
FeedValveB
Q0.6
FlowB
I0.3
ErrorPipeA
Q0.3
ErrorPipeB
Q0.7
Empty
I0.4
Motor
Q1.0
DrainValve
Q1.1
LevelSensor
PIW800
SpeedOut
PQW800
Chia bài toán (1đ) – dưới đây là gợi ý (có thể có nhiều cách)
Có thể chia bài toán thành 2 khối hàm FB và 1 hàm FC, trong đó:
1 FB: để điều khiển đường ống, gọi là FB_Pipe có các định nghĩa ngõ vào và ra như sau: 
Input
Output
Start
FeedPump
Stop
InletValve
Respone
FeedValve
TimerValve
Error
TimeValve
TimerRespone
TimeRespone
1 FB: để điều khiển động cơ trộn, gọi là FB_Agitator có các định nghĩa ngõ vào và ra như sau: 
Input
Output
InOut
Static
Start
Speed_Out
Motor
Speed
Stop
Done
Temp1
TimerNo
Temp2
Time1
Temp3
Time2
Speed1_SP
Speed2_SP
1 FC: để điều khiển van xả, gọi là FC_Valve có các định nghĩa ngõ vào và ra như sau: 
Input
InOut
Start
Valve
Stop
Các hàm con FC, FB (3đ)
Chương trình FB_Pipe
// Start up FeedPump
 A(
 O #Start
 O #FeedPump
 )
 AN #Stop
 = #FeedPump
// Start up Valves
 A #FeedPump
 L #TimeValve
 SD #TimerValve
 A #TimerValve
 = #InletValve
 = #FeedValve
// Check error
 A #FeedPump
 L #TimeRespone
 SD #TimerRespone
 A #TimerRespone
 AN #Respone
 = #Error
Chương trình FB_Agitator
// Enable motor
 A(
 O #Start
 O #Motor
 )
 AN #Stop
 AN #Done
 = #Motor
// Set Time and start up timer
 A #Start
 FP #Temp1
 JCN next
 L #Time1
 L #Time2
 +I
 ITB
 L W#16#2000
 +I
 T #Temp2
 next: A #Motor
 L #Temp2
 SD #TimerNo
// Control motor speed
 AN #Motor
 BEC
 L #TimerNo
 L #Time2
 >=I
 JC SP1
 L #Speed2_SP
 T #Speed
 JU OUT
 SP1: L #Speed1_SP
 T #Speed
 OUT: CALL UNSCALE
 IN :=#Speed
 HI_LIM :=2400.0
 LO_LIM :=0.0
 BIPOLAR :=0
 RET_VAL :=#Temp3
 OUT :=#Speed_Out
// Finish
 A #TimerNo
 = #Done
Chương trình FC_Valve
 A(
 O #Start
 O #Valve
 )
 AN #Stop
 = #Valve
Chương trình chính OB1 (2đ)
 //Pipe A 
 O "Start"
 O(
 A "DrainValve"
 FN #Temp3
 )
 = #En_PipeA
 O "Stop"
 O #GT2
 O #ErrorA
 O #ErrorB
 = #Dis_PipeA
 CALL "FB_Pipe", "DB_PipeA"
 Start :=#En_PipeA
 Stop :=#Dis_PipeA
 Respone :="FlowA"
 TimerValve :=T0
 TimeValve :=S5T#1S
 TimerRespone :=T1
 TimeRespone :=S5T#7S
 FeedPump :="FeedPumpA"
 InletValve :="InletValveA"
 FeedValve :="FeedValveA"
 Error :=#ErrorA
 A(
 O #ErrorA
 O #Temp1
 )
 AN "Stop"
 = #Temp1
 A #Temp1
 A M0.0
 = "ErrorPipeA"
//Pipe B
 A #GT2
 FP #Temp4
 = #En_PipeB
 O "Stop"
 O #GT5
 O #ErrorA
 O #ErrorB
 = #Dis_PipeB
 CALL "FB_Pipe", "DB_PipeB"
 Start :=#En_PipeB
 Stop :=#Dis_PipeB
 Respone :="FlowB"
 TimerValve :=T2
 TimeValve :=S5T#1S
 TimerRespone :=T3
 TimeRespone :=S5T#7S
 FeedPump :="FeedPumpB"
 InletValve :="InletValveB"
 FeedValve :="FeedValveB"
 Error :=#ErrorB
 A(
 O #ErrorB
 O #Temp2
 )
 AN "Stop"
 = #Temp2
 A #Temp2
 A M0.0
 = "ErrorPipeB"
//Motor
A #GT5
 FP #Temp5
 = #En_Motor
 O #Done
 O #ErrorA
 O #ErrorB
 O "Stop"
 = #Dis_Motor
 CALL "FB_Agitator", "FB_Agitator_DB"
 Start :=#En_Motor
 Stop :=#Dis_Motor
 TimerNo :=T4
 Time1 :=30
 Time2 :=60
 Speed1_SP :=500.0
 Speed2_SP :=1000.0
 Speed_Out :="SpeedOut":P
 Motor :="Motor"
 Done :=#Done
//Drain valve
 A #Done
 = #En_Drain
 ON "Empty"
 O #ErrorA
 O #ErrorB
 O "Stop"
 = #Dis_Drain
 CALL "FC_Valve"
 Start :=#En_Drain
 Stop :=#Dis_Drain
 Valve :="DrainValve"
//Read level and check
 CALL SCALE
 IN :="LevelSensor":P
 HI_LIM :=16.0
 LO_LIM :=0.0
 BIPOLAR :=0
 RET_VAL :=MW10
 OUT :=#Level
 L #Level
 L 2.0
 >=R
 = #GT2
 L #Level
 L 5.0
 >=R
 = #GT5

File đính kèm:

  • docde_thi_cuoi_hoc_ky_2_mon_plc_nam_hoc_2014_2015.doc