Đề 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.
ĐỀ 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:
- de_thi_cuoi_hoc_ky_2_mon_plc_nam_hoc_2014_2015.doc