Trong đó: - Main: là chương trình chính, mô phỏng hoạt động của mạch - SBR_0: là chương trình thời gian thực - SBR_1: là chương trình hệ thống đèn giao thông chạy vào ban đêm từ 22h – 6h
Trang 1Đề bài: Viết chương trình đèn giao thông thời gian thực trong PLC S7-200 CPU224 ở 2 chế độ là:
- Ban ngày: từ 6h – 22h hệ thống đèn chạy bình thường
- Ban đêm: từ 22h – 6h đèn vàng nhấp nháy
Bài làm:
I) Yêu cầu điều khiển:
Nhấn PB1: Hệ thống đèn giao thông hoạt động
Nhấn PB0: Dừng hệ thống
II) Khai báo I/O
Ngõ vào I0.0
I0.1
PB0: nút nhấn dừng PB1: nút nhấn chạy
- Nhấn PB1:
+ Từ 6h-22h các ngõ ra nối với các thiết bị từ KM1
KM6 hoạt động theo chu kì + Từ 22h-6h chỉ có KM2 và KM5 hoạt động theo chu
kì T= 1s; 0,5s = [1] và 0,5s = [0]
- Nhấn PB0:
Tất cả ngõ ra =[0]
Ngõ ra
Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6
KM1 đèn xanh A KM2 đèn vàng A KM3 đèn đỏ A KM4 đèn xanh B KM5 đèn vàng B KM6 đèn đỏ B
III) Kết nối PLC
CPU224 DC
IV) Lập trình PLC
Ta dùng 3 chương trình là Main, SBR_0 và SBR_1
Trong đó: - Main: là chương trình chính, mô phỏng hoạt động của mạch
- SBR_0: là chương trình thời gian thực
- SBR_1: là chương trình hệ thống đèn giao thông chạy vào ban đêm từ 22h – 6h
24VDC
Trang 2MAIN: chương trình chính
Trang 3SBR_0: chương trình thời gian thực
Trang 4SBR_1: chương trình hệ thống đèn giao thông chạy vào ban đêm từ 22h – 6h.
V) Hoạt động
Khi I0.0 đóng lại => M0.0 =[1] nên khối thời gian thực SBR_0 hoạt động
- Thời gian thực hoạt động do khối chức năng READ_RTC (real timer clock) và được move vào VB0 (ô nhớ của năm) là những ô nhớ còn lại đều có thể sử dụng được
- Khai báo đồng hồ thời gian thực tại các ô nhớ từ VB0 VB7
+ Chuyển đổi từ Byte sang Int: B – I (VB7 – AC0) lưu vào vùng nhớ trung gian AC
(accumulator registers)
+ Chuyển đổi từ BCD – I (AC0 – MW0)
Vì tất cà các ô nhớ từ VB0 VB7 đề có giá trị là số BCD Để thuận tiện và dễ dàng trong việc lập trình và theo dõi, ta chuyển số BCD thành số nguyên Int, lần lượt lưu vào vùng nhớ M chọn kiểu W (như bảng trên) vì Int là số có giá trị 16 bit
- Tại MAIN (OB1): là chương trình điều khiển đèn giao thông ban ngày
Ta chọn MW6 là đại diện cho giá trị của giờ (VB3) để sử dụng cho mục đích điều khiển đèn giao thông ban ngày Sử dụng khồi so sánh |>=I| và |<=I| xuyên suốt bài này, giá trị MW6: ≥6 và ≤21 cho phép chương trình đèn giao thông ban ngày hoạt động từ 6h00 sáng đến hết 21h59p đêm
Lúc này T37 hoạt động để đếm 1 chu kỳ (chu kỳ trong bài là 100s) các biến so sánh ở Netword 3 này
là |>=I| và |<=I| điều khiển các đèn trong khoảng thời gian sáng như sau:
+ Đèn xanh A (Q0.1) sáng từ 0s 40s
+ Đèn vàng A (Q0.2) sáng từ 40s 50s
+ Đèn đỏ A (Q0.3) sáng từ 50s 100s
+ Đèn xanh B (Q0.4) sáng từ 50s 90s
+ Đèn vàng B (Q0.5) sáng từ 90s 100s
+ Đèn đỏ B (Q0.6) sáng từ 0s 50s
Khi đếm hết chu kỳ 100s tiếp điểm NC T37 mở ra ngắt điện của khối timer T37, đồng thời tiếp điểm
NC T37 cũng trở về trạng thái ban đầu và cấp điện lại cho khối timer T37 1 chu kỳ mới tiếp tục đếm
Trang 5Giản đồ thời gian cho chương trình đèn giao thông ban ngày như sau
- Tại chương trình con SBR_1 là chương trình đèn giao thông hoạt động vào ban đêm
Biến đặc biệt SM0.5 là biến có chu kỳ 1s trong đó 0,5s = [1] và 0,5s [0] gán vào đèn vàng A (Q0.2) và đèn vàng B (Q0.5) để sáng nhấp nháy trong khoảng thời gian ban đêm
- Tại chương trình chính MAIN OB1 ta gọi chương trình con SBR_0 và SBR_1 ra để quét
SBR_0 hoạt động khi hệ thống hoạt động (nhấn I0.0)
SBR_1 hoạt động từ 22h đền 6h sáng Ta tiêp tục sử dụng MW6 (giá trị giờ trong thời gian thực) gán vào biến so sánh |>=I| và |<=I là ≥22 và ≤5 để chương trình ban đêm có thể hoạt động từ 22h00 đêm tới hết 5h59p sáng