8/13/2007 18 Ví dụ: Chơng trình chính Chơng trình con Chơng trình phục vụ ngắt. Để thực hiện lệnh JMP, đỉnh ngăn xếp phải có lôgic 1 13.7 Lệnh lặp FOR-NEXT Thao tác: Thực hiện đoạn chơng trình bên trong vòng lặp For-Next với số lần đặt trớc. INDX: Địa chỉ lu giá trị ban đầu của vòng lặp (Địa chỉ kiểu Word INIT: Giá trị ban đầu của vòng lặp FINAL: Giá trị cuối của vòng lặp Mỗi lần thực hiện vòng For-Next, giá trị INDX đợc tăng lên 1, khi INDX bằng với FINAL thì vòng For kết thúc. Nếu INIT > FINAL, thì vòng For không thực hiện. Các lệnh For-Next đợc phép lồng nhau tối đa 8 lần 8/13/2007 19 Một số ví dụ ứng dụng 1/Điều khiển đèn đờng không nháy đèn về đêm 2/ Điều khiển đèn đờng có nháy đèn về đêm 3/ Điều khiển nhiệt độ kho lạnh Điều khiển đèn đờng không nháy đèn về đêm Lập chơng trình điều khiển đèn ngã t theo sơ đồ nh sau: Đỏ A Xanh A Vàng A Đỏ B Xanh B Vàng B 8/13/2007 20 Thêi gian ®Ìn ®á lµ: 18s Thêi gian ®Ìn xanh lµ: 12s Thêi gian ®Ìn vµng lµ: 6s CÊuh×nh®Çuvµo ®Çura: §Çu vµo: Nót Ên khëi ®éng M (NO): I0.0 Nót Ên dõng D (NC): I0.1 §Çu ra: §á lé A: Q0.1 Xanh lé A: Q0.0 Vµng lé A: Q0.2 §á lé B: Q0.5 Xanh lé B: Q0.4 Vµng lé B: Q0.6 0 1 §á A, Xanh B L = Δt 1 L 2 §á A, Vµng B L = Δt 2 L Δt 2 3 Xanh A §á B L = Δt 3 L 4 Vµng A §á B L = Δt 4 L Δt 1 Δt 3 Δt 4 M Y i D Y i = 1, 2, 3, 4 0 1 Q0.1 Q0.4 L = 12s L 2 Q0.1 Q0.6 L = 6s L 3 Q0.0 Q0.5 L = 12s L 4 Q0.2 Q0.5 L = 6s L t 1 /1/12s I0.0 Y i I0.1 Y i = 1, 2, 3, 4 t 2 /1/18s t 3 /1/30s t 4 /1/36s 8/13/2007 21 120 180 300 360 T-current Δt 1 Δt 2 Δt 3 Δt 4 t M∙ STL: LD SM0.1 LDN I0.1 MOVW 0, VW100 R Q0.0, 7 MOVW 120, VW102 LD I0.0 MOVW 180, VW104 O M0.1 MOVW 300, VW106 AN I0.1 MOVW 360, VW108 = M0.1 3) 1) 2) M∙ STL: LD M0.1 LDW>= T37, VW106 TON T37, 380 S Q0.2, 1 LDW> T37, VW100 R Q0.0, 1 S Q0.1, 1 LDW>= T37, VW108 S Q0.4, 1 R Q0.2, 1 LDW>= T37, VW102 R Q0.5, 1 S Q0.6, 1 S Q0.1, 1 R Q0.4, 1 S Q0.4, 1 LDW>= T37, VW104 R T37, 1 SQ0.0, 1 SQ0.5, 1 RQ0.1, 1 RQ0.6, 1 4) 5) 6) 7) 8) 9) 8/13/2007 22 Điều khiển đèn đờng có nháy đèn về đêm Lập chơng trình điều khiển đèn ngã t theo sơ đồ nh sau: Đỏ A Xanh A Vàng A Đỏ B Xanh B Vàng B Ban ngày Ban đêm Thời gian đèn đỏ là: 18s Thời gian đèn xanh là: 12s Thời gian đèn vàng là: 6s Cấuhìnhđầuvào đầura: Đầu vào: Nút ấn khởi động M (NO): I0.0 Nút ấn dừng D (NC): I0.1 Công tắc chuyển chế độ CD: I0.2 ON: ban ngày, OFF: ban đêm Đầu ra: Đỏ lộ A: Q0.1 Xanh lộ A: Q0.0 Vàng lộ A: Q0.2 Đỏ lộ B: Q0.5 Xanh lộ B: Q0.4 Vàng lộ B: Q0.6 8/13/2007 23 0 1 §á A, Xanh B L = Δt 1 L 2 §á A, Vµng B L = Δt 2 L Δt 2 3 Xanh A §á B L = Δt 3 L 4 Vµng A §á B L = Δt 4 L Δt 1 Δt 3 Δt 4 M*CD Y i D Y i = 1, 2, 3, 4, 5, 6 5 Vµng A Vµng B L = Δt 5 L 6 ~Vµng A ~Vµng B L = Δt 6 L M*~CD ~CD CD Δt 5 Δt 6 0 1 Q0.1 Q0.4 L = 12s L 2 Q0.1 Q0.6 L = 6s L 3 Q0.0 Q0.5 L = 12s L 4 Q0.2 Q0.5 L = 6s L t 5 /5/3s I0.0*I0.2 Y i I0.1 Y i = 1, 2, 3, 4, 5, 6 5 Q0.2 Q0.6 L = 3s L 6 ~Q0.2 ~Q0.6 L = 3s L I0.0*~I0.2 ~I0.2 I0.2 t 2 /1/18s t 3 /1/30s t 4 /1/36s t 6 /5/6s 8/13/2007 24 M∙ STL: Main program LD SM0.1 LD I0.2 MOVW 0, VW100 A M0.0 MOVW 120, VW102 S V0.0, 1 MOVW 180, VW104 LD V0.0 MOVW 300, VW106 CALL NORMAL, V0.0 MOVW 360, VW108 LDN I0.2 MOVW 30, VW110 A M0.0 MOVW 60, VW112 S V0.1, 1 LD I0.0 LD V0.1 O M0.0 CALL REST, V0.1 AI0.1 =M0.0 1) 5) 2) 3) 4) 6) M∙ STL: Normal program LD I0.2 S Q0.4, 1 A I0.1 LDW>= T37, VW102 = M0.1 S Q0.6, 1 LDN I0.1 R Q0.4, 1 ON I0.2 LDW>= T37, VW104 R Q0.0, 7 S Q0.0, 1 R L0.0, 1 S Q0.5, 1 LD M0.1 R Q0.1, 1 TON T37, +380 R Q0.6, 1 LDN> T37, VW100 LDW>= T37, VW106 S Q0.1, 1 S Q0.2, 1 7) 1) 2) 3) 6) 5) L0.0 Erase_bit Bool IN-OUT 4) 8/13/2007 25 M STL: R Q0.0, 1 LDN I0.1 LDW>= T37, VW108 O I0.2 R Q0.2, 1 R Q0.2, 1 R Q0.5, 1 R Q0.6, 1 S Q0.1, 1 R L0.0, 1 S Q0.4, 1 LD M0.2 R T37, 1 TON T38, +80 LDW>= T38, VW110 SQ0.2, 1 SQ0.6, 1 LDN I0.2 LDW>= T38, VW112 A I0.1 R Q0.2, 1 = M0.2 R Q0.6, 1 R T38, 1 1) 8) 4) 5) 2) 3) Rest program L0.0 Erase_bit Bool IN-OUT Điều khiển nhiệt độ kho lạnh Trong kho sử dụng hai máy nén (2 máy lạnh), máy A và máy B. Yêu cầu điều khiển nh sau: ) Khi nhiệt độ kho lạnh trên 0 0 C thì chạy cả hai máy A và B. ) Khi nhiệt độ kho lạnh nằm trong khoảng -5 0 C đến 0 0 C thì chỉ cho một máy làm việc. ) Khi nhiệt độ kho lạnh dới -5 0 C thì cắt điện cả hai máy. ) Nhiệt độ tăng đến 0 0 C lại đóng điện cả hai máy Điều khiển theo hai trờng hợp: ) Trờng hợp 1: Máy A làm việc liên tục, máy B dự phòng. ) Trờng hợp 2: Hai máy đợc đóng cắt luân phiên trong khoảng nhiệt độ -5 0 C đến 0 0 C . hiện lệnh JMP, đỉnh ngăn xếp phải có lôgic 1 13.7 Lệnh lặp FOR-NEXT Thao tác: Thực hiện đoạn chơng trình bên trong vòng lặp For-Next với số lần đặt trớc. INDX: Địa chỉ lu giá trị ban đầu của. lần thực hiện vòng For-Next, giá trị INDX đợc tăng lên 1, khi INDX bằng với FINAL thì vòng For kết thúc. Nếu INIT > FINAL, thì vòng For không thực hiện. Các lệnh For-Next đợc phép lồng nhau. hai máy A và B. ) Khi nhiệt độ kho lạnh nằm trong khoảng -5 0 C đến 0 0 C thì chỉ cho một máy làm việc. ) Khi nhiệt độ kho lạnh dới -5 0 C thì cắt điện cả hai máy. ) Nhiệt độ tăng đến 0 0 C