BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP. HCM
---------------------------
DIỆP HOÀNG PHONG
THIẾT KẾ HỆ THỐNG BMS ĐIỀU KHIỂN
BƠM NƯỚC TRONG TÒA NHÀ THEO THỜI
ĐIỂM THÍCH HỢP ĐỂ TIẾT KIỆM CHI PHÍ
LUẬN VĂN THẠC SĨ
Chuyên ngành: Kỹ Thuật Điện
Mã số ngành: 60520202
TP. HỒ CHÍ MINH, tháng 02 năm 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP. HCM ---------------------------
DIỆP HOÀNG PHONG
THIẾT KẾ HỆ THỐNG BMS ĐIỀU KHIỂN
BƠM NƯỚC TRONG TÒA NHÀ THEO THỜI
ĐIỂM THÍCH HỢP ĐỂ TIẾT KIỆM CHI PHÍ
LUẬN VĂN THẠC SĨ Chuyên ngành: Kỹ Thuật Điện
Mã số ngành: 60520202
HƯỚNG DẪN KHOA HỌC: PGS.TS. Nguyễn Hoàng Việt
TP. HỒ CHÍ MINH, tháng 02 năm 2013
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP. HCM
Cán bộ hướng dẫn khoa học : PGS.TS. Nguyễn Hoàng Việt
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Kỹ thuật Công Nghệ
TP. HCM ngày 02 tháng 02 năm 2013
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)
1. TS. Nguyễn Thanh Phương 2. PGS.TS Trần Thu Hà 3. TS. Võ Hoàng Duy 4. TS. Nguyễn Viễn Quốc 5. TS. Đinh Hoàng Bách
Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được
sửa chữa (nếu có).
Chủ tịch Hội đồng đánh giá LV
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐH KỸ THUẬT CÔNG NGHỆ TP. HCM PHÒNG QLKH - ĐTSĐH
Độc lập - Tự do - Hạnh phúc
TP. HCM, ngày 26 tháng 12 năm 2012
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Diệp Hoàng Phong Giới tính: Nam
Ngày, tháng, năm sinh: 27 tháng 02 năm 1978 Nơi sinh: Đồng Tháp
Chuyên ngành: Kỹ Thuật Điện MSHV: 1181031043
Thiết kế hệ thống BMS điều khiển bơm nước trong Tòa nhà theo thời điểm thích hợp để tiết
kiệm chi phí
I- TÊN ĐỀ TÀI:
II- NHIỆM VỤ VÀ NỘI DUNG:
- Nghiên cứu các dữ kiện điều khiển động cơ.
- Nghiên cứu thời gian hoạt độ ng của động cơ phụ thuộc vào giá điện.
- Nghiên cứu ngôn ngữ Assembler.
- Nghiên cứu chuẩn truyền thông RS485.
- Mô phỏng và điều khiển bơm nước sinh hoạt trên máy tính.
III- NGÀY GIAO NHIỆM VỤ: 21 tháng 06 năm 2012
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 29 tháng 12 năm 2012
V- CÁN BỘ HƯỚNG DẪN: PGS.TS. Nguyễn Hoàng Việt
CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký) (Họ tên và chữ ký)
Nguyễn Hoàng Việt
i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả
nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình
nào khác.
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện L uận văn này đã được
cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc.
Học viên thực hiện Luận văn
Diệp Hoàng Phong
ii
LỜI CÁM ƠN
Để hoàn thành cuốn luận văn này, tôi xin được bày tỏ lòng biết ơn sâu s ắc nhất đối
với PGS.TS Nguyễn Hoàng Việt, người thầy đã hết lòng, tận tâm, nhiệt tình hướng dẫn và
cung cấp cho tôi những tài liệu vô cùng quý giá trong quá trình thực hiện luận văn.
Xin chân thành cảm ơn tập thể các thầy cô giáo đã giảng dạy, truyền đạt t ri thức giúp
tôi học tập và nghiên cứu trong quá trình học cao học tại trường Đại Học Kỹ Thuật Công
Nghệ TP.HCM.
Xin chân thành cảm ơn Ban giám hiệu, Phòng quản lý khoa học - Đào tạo sau đại
học và khoa Điện – Điện tử Trường Đại Học Kỹ Thuật Công Nghệ TP.H CM đã giúp đỡ,
tạo điều kiện thuận lợi cho tôi trong quá trình học tập và làm luận văn cao học tại trường.
Xin chân thành cảm ơn các anh, chị học viên cao học ngành “Thiết Bị, Mạng & Nhà
Máy Điện” khóa 01 đã đóng góp ý kiến cho tôi trong quá trình thực hiệ n luận văn này.
TP.Hồ Chí Minh, tháng 12 năm 2012
Người thực hiện
Diệp Hoàng Phong
iii
TÓM TẮT
Luận văn “Thiết kế hệ thống BMS điều khiển bơm nước trong tòa nhà theo thời điểm thích
hợp để tiết kiệm chi phí” đi sâu vào nghiên cứu điều khiển từ xa các thiết bị trên hệ thống
máy tính phù hợp với điều kiện vận hành thực tế của của các tòa nhà lớn và các công trình
sử dụng nước. Hệ thống BMS được thiết kế giám sát hệ thống bơm nước sinh hoạt theo các
hình ảnh hiển thị trên máy tính. Hệ thống này được thiết kế phù hợp cho tất cả nhu cầu sử
dụng bơm nước khác nhau theo sự điều chỉnh thời gian hoạt động trên máy tính. Nội dung
của Luận văn gồm các phần chính như sau:
- Xây dựng mô hình điều khiển thực tế.
- Xây dựng giao diện điều khi ển máy bơm trên máy tính.
- Lập bảng so sánh kết quả sau khi tính toán.
Luận văn này sẽ áp dụng cho các Cao ốc văn phòng, Trung tâm thương mại và các
công trình nghiên cứu của các sinh viên, kỹ sư… và mở rộng điều khiển các thiết bị trong
Tòa nhà như: hệ thống máy lạnh trung tâm, chiếu sáng, xử lý nước thải, phòng cháy chữa
cháy…..
iv
ABSTRACT
The thesis "Designing BMS System for Controlling Building Water Pump with
Appropriate Time to Save Costs" deeply researches the remote control of output devices by
a computer in accordance with the practical operating conditions of large buildings and the
other purposes of water use. BMS system is designed to monitor the water pump system.
This system is suitable for all different water pumping demand by adjusting the time it
operates on the computer.
- Construct a practical controlling model.
- Construct a pumps controlling interface on computers.
- Set up a result comparison table after calculating.
This thesis is applied to buildings, commercial centers and research of students and
engineers… and to the extension of equipment controlling in buildings such as center
conditioner system, lighting, waste water treatment and fire regulations.
v
MỤC LỤC
Tên đề mục Trang
Lời cam đoan ................................................................................................................... i
Lời cảm ơn ...................................................................................................................... ii
Tóm tắt luận văn.............................................................................................................iii
Abstract .......................................................................................................................... iv
Mục lục ........................................................................................................................... v
Danh mục các từ viết tắt.................................................................................................. x
Danh mục các bảng biểu ................................................................................................ xi
Danh mục các lưu đồ, sơ đồ, hình ảnh .......................................................................... xii
Chương 1: MỞ ĐẦU
1.1. Đặt vấn đề ................................................................................................................ 1
1.2. Tính cấp thiết của đề tải ........................................................................................... 2
1.3. Mục tiêu và nhiệm vụ của luận văn ......................................................................... 2
1.3.1. Mục tiêu của đề tài ....................................................................................... 2
1.3.2. Nội dung nghiên cứu .................................................................................... 3
1.4. Phương pháp luận và phương pháp nghiên cứu ....................................................... 3
1.4.1. phương pháp luận ......................................................................................... 3
1.4.2. Phương pháp nghiên cứu .............................................................................. 4
1.5. Tổng quan về lĩnh vực nghiên cứu........................................................................... 4
1.5.1.Giới thiệu về BMS......................................................................................... 4
1.5.2. Tình hình nghiên cứu trong nước ................................................................. 4
1.5.3. Tình hình nghiên cứu trên thế giới ............................................................... 5
vi
1.6. Nội dung của luận văn.............................................................................................. 5
Chương 2: CƠ SỞ LÝ THUYẾT
2.1. Chức năng điều khiểncủa BMS ............................................................................... 6
2.1.1 Lợi ích về năng lượng ................................................................................... 6
2.1.2. Hỗ trợ vận hành ............................................................................................ 6
2.1.3. Hỗ trợ bảo dưỡng ......................................................................................... 7
2.1.4. Kiểm soát và tiết kiệm năng lượng sử dụng ................................................. 7
2.1.5. Vận hành tòa nhà tự động theo lập trình sẵn ............................................... 8
2.1.6. Điều khiển bơm nước theo lập trình ............................................................. 8
2.1.7. Chuẩn truyền thông RS485 .......................................................................... 9
2.2. Phương pháp điều khiển của hệ thống nước sinh hoạt ....................................................9
2.2.1. Phần cấp nước theo thuyết minh thiết kế của tòa nhà Maritime Bank ...............9
2.2.2. Phòng bơm ...........................................................................................................14
2.2.3. Bảng giá 3 thời điểm của công ty điện lực .........................................................14
2.2.4. Cơ sở tính toán thiết kế mạch điều khiển ................................................... 17
2.2.6. Lưu đồ điều khiển máy bơm....................................................................... 18
2.2.7.Bảng so sách tiền điện giữa điều khiển bơm nước bình thường và điều khiển
bởi BMS ............................................................................................................... 19
Chương 3: XÂY DỰNG ĐỐI TƯỢNG ĐIỀU KHIỂN
3.1. Cơ sở dữ liệu đầu vào của các thiết bị trong hệ điều khiển ................................... 21
3.1.1.Tín hiệu nguồn cấp nước bồn trên ...................................................... 21
3.1.2.Tín hiệu nguồn cấp nước bồn dưới ..................................................... 21
3.2. Sơ đồ nguyuyên lý.................................................................................................. 22
3.2. Phương pháp điều khiển......................................................................................... 24
3.2.1. Điều khiển bằng tay.................................................................................... 24
3.2.2. Điều khiển tự động ..................................................................................... 24
3.3. Thiết kế mạch điều khiển ....................................................................................... 25
vii
3.3.1. Mạch điều khiển chính ............................................................................... 25
3.3.2. Nguyên lý hoạt động .................................................................................. 26
3.3.3. Mạch điếm mức nước ................................................................................ 27
3.3.4. Nguyên lý hoạt động .................................................................................. 28
Chương 4: THI CÔNG MẠCH ĐIỀU KHIỂN
4.1. Sơ đồ khối của hệ thống BMS ............................................................................... 29
4.2. Lưu đồ giải thuật .................................................................................................... 30
4.3. Thi công ................................................................................................................. 36
4.3.1. Thi công bồn trên ....................................................................................... 36
4.3.2. Thi công cảm biến bồn trên ........................................................................ 36
4.3.3. Thi công bồn dưới ...................................................................................... 37
4.3.4. Thi công cảm biến bồn dưới ....................................................................... 37
4.3.5. Thi công bảng điều khiển ........................................................................... 38
4.3.6.Thiết kế board đọc mực nước bồn trên, dưới và hiển thị Led ..................... 38
4.3.6.1. Thi công mạch in ............................................................................ 38
4.3.6.2. Thi công lắp ráp linh kiện ............................................................... 40
4.3.7. Thi công board điều khiển .......................................................................... 40
4.3.7.1. Thi công mạch in ............................................................................ 40
4.3.7.2. Thi công lắp ráp linh kiện ............................................................... 41
4.4. Mô hình thi công hoàn chỉnh ................................................................................. 41
4.5. Hướng dẫn sử dụng trên máy tính .......................................................................... 42
4.5.1. Các giao diện trên màn hình....................................................................... 42
4.5.2. Hướng dẫn sử dụng .................................................................................... 43
4.6. Kết quả khi điều khiển bơm nước bởi BMS .......................................................... 44
4.6.1. Giờ thấp điểm từ 22h00 đến 4h00. Nếu nước bồn cạn đến cảm biến 1 hoặc
sau 3h00 thì bơm hoạt động đến cảm biến 8 ................................................................. 44
4.6.1.1. Hình chụp ở chế độ ON .................................................................. 45
viii
4.6.1.2. Hình chụp ở chế độ OFF ................................................................ 46
4.6.2. Giờ cao điểm 17h00 đến 20h00 mức nước cạn đến cảm biến 1 thì bơm đến
cảm biến 4 ................................................................................................................... 47
4.6.2.1. Hình chụp trên màn hình máy tính và hình kết nối giữa máy tính và
mô hình ở chế độ ON .................................................................................................... 47
4.6.2.2. Hình chụp trên màn hình máy tính và hình kết nối giữa máy tính và
mô hình ở chế độ OF ..................................................................................................... 48
Chương 5: KẾT LUẬN
5.1. So sánh khi chưa sử dụng BMS và khi sử dụng BMS ........................................... 49
5.1.1. Kết quả khi chưa sử dụng BMS ................................................................. 49
5.1.2. Kết quả khi sử dụng BMS .......................................................................... 49
5.2. Hướng phát triển đề tải ........................................................................................... 49
5.3. Tài liệu tham khảo .................................................................................................. 50
Phụ lục
ix
DANH MỤC CÁC TỪ VIẾT TẮT
- BMS- Building Management System: Hệ thống quản lý tòa nhà
- DDC- Direct Digital Controler: Bộ điều khiển kỹ thuật số trực tiếp
x
DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 2.1. Cấp điện áp và giá điện ................................................................................ 15
Bảng 2.2. Thống kê lượng nước sử dụng trong tòa nhà Maritime Bank năm 2012 theo
từng thời điểm. .............................................................................................................. 16
Bảng 2.3. Tiền điện phải trả khi bơm hoạt động bình thường ...................................... 19
Bảng 2.4. Tiền điện phải trả khi bơm hoạt động có điều khiển bởi BMS .................... 20
xi
DANH MỤC CÁC LƯU ĐỒ, SƠ ĐỒ, HÌNH ẢNH
Trang
Lưu đồ 4.1. Đọc phím trên board chính ........................................................................ 31
Lưu đồ 4.2. Nhận tín hiệu chỉnh thời gian từ máy tính................................................. 22
Lưu đồ 4.3. Đọc mức nước bồn trên ............................................................................. 33
Lưu đồ 4.4. Đọc mức nước bồn dưới ............................................................................ 34
Lưu đồ 4.5. Gởi tín hiệu từ board chính về máy tính .................................................... 35
Sơ đồ 4.1. Sơ đồ khối của hệ thống BMS ..................................................................... 29
Hình 2.1. Phòng bơm .................................................................................................... 14
Hình 3.1. Cảm biến nước bồn trên ................................................................................ 21
Hình 3.2. Cảm biến nước bồn dưới ............................................................................... 21
Hình 3.3. Mạch điều khiển và động lực của máy bơm ................................................. 22
Hình 3.4. Sơ đồ nguyên lý của board điều khiển chính ................................................ 25
Hình 3.5. Sơ đồ nguyên lý của board đọc mức nước .................................................... 27
Hình 4.1. Bồn trên ......................................................................................................... 36
Hình 4.2. Cảm biến nước của bồn trên ......................................................................... 36
Hình 4.3. Bồn trên và cảm biến .................................................................................... 36
Hình 4.4. Bồn dưới ........................................................................................................ 37
Hình 4.5. Cảm biến nước bồn dưới ............................................................................... 37
Hình 4.6. Bồn dưới và cảm biến nước .......................................................................... 37
Hình 4.7. Lắp đặt thiết bị điều khiển bơm .................................................................... 38
Hình 4.8. Mạch in của board đọc mức nước ................................................................. 39
Hình 4.9. Mạch đọc mức nước hoàn thiện .................................................................... 39
Hình 4.10. Mạch in của board chính ............................................................................. 40
Hình 4.11. Mạch điều khiển chính hoàn thiện .............................................................. 41
Hình 4.12. Mô hình hoàn thiện ..................................................................................... 41
xii
Hình 4.13. Giao diện màn hình máy tính ...................................................................... 42
Hình 4.14. Giao diện màn hình điều khiển bơm nước trên máy tính ........................... 42
Hình 4.15. Các phím chức năng trên màn hình điều khiển trên máy tính .................... 43
Hình 4.16. Chế độ ON trên mà hình vi tính giờ thấp điểm ........................................... 45
Hình 4.17. Kết nối giữa máy tính và mô hình chế độ ON ............................................ 45
Hình 4.18. Chế độ OFF trên mà hình vi tính giờ thấp điểm ......................................... 46
Hình 4.19. Kết nối giữa máy tính và mô hình chế độ OFF........................................... 46
Hình 4.20. Chế độ ON trên màn hình vi tính giờ cao điểm .......................................... 47
Hình 4.21. Kết nối giữa máy tính và mô hình chế độ ON ............................................ 47
Hình 4.22. Chế độ OFF trên màn hình vi tính giờ cao điểm ........................................ 48
Hình 4.23. Kết nối giữa máy tính và mô hình chế độ OFF........................................... 48
1
Chương 1: MỞ ĐẦU
1.1. Đặt vấn đề
Ở Việt Nam, những năm gần đây cũng không khó để nhận ra những đóng
góp của các hệ thống tự động trong các công trình công nghiệp và dân dụng. Những
khái niệm về quản lý tòa nhà, tiết kiệm năng lượng công trình, bảo vệ môi trường …
không còn quá mới mẻ. Tuy nhiên, mức độ áp dụng các hệ thống này nói chung vẫn
có giới hạn, chưa thực sự sâu và rộng. Điều này sẽ thay đổi nhanh chóng trong
những năm tới đây, khi nhịp độ xây dựng những công trình hiện đại ngày càng cao,
khi những hệ thống tự động hóa tòa nhà ngày càng phát triển và độ tin cậy lớn hơn,
lợi ích của việc áp dụng những hệ thống này ngày càng rõ nét.
Quản lý điện năng là chức năng tiêu biểu của bộ điều khiển DDC sử dụng bộ
vi xử lý. Trong hầu hết các tòa nhà có quy mô từ vừa tới lớn, với chức năng điều
khiển tối ưu thực thi tại cấp độ hệ thống với thông tin quản lý và truy cập người sử
dụng do BMS chủ cung cấp.
Building Management System (BMS) thực hiện tốt các nhiệm vụ điều khiển
vận hành hệ thống, là môi trường thu nhận tín hiệu các thiết bị đầu cuối, quản lý
toàn bộ các thông số kỹ thuật thiết bị kết nối tới máy tính thông qua trao đổi thông
tin. BMS điều khiển vận hành các thiết bị chấp hành của từng hệ thống kỹ thuật
khác nhau hoạt động theo yêu cầu của người quản lý, đảm bảo các yếu tố kỹ thuật
cũng như đáp ứng kịp thời các sự cố khẩn cấp xảy ra trong hệ thống kỹ thuật.
BMS thực hiện các chức năng như:
- Giám sát và ghi mức độ sử dụng điện năng.
- Thống kê mức tiêu thụ điện năng .
- Truy cập dữ liệu chiến lược quản lý điện n ăng nhằm liên tục điều chỉnh
theo nhu cầu.
- Lịch vận hành toà nhà.
- Giới hạn nhiệt độ của máy lạnh đem lại mức độ thoải mái .
Tùy theo từng dự án cụ thể mà hệ thống BMS có thể quản lý nhiều hay ít hơn
so với hệ thống cơ bản.
2
Lợi ích của BMS
- Đơn giản hóa vận hành: các thủ tục, các chức năng có tính lặp đi lặp lại
được chương trình hóa để vận hành tự động
- Lập trình linh hoạt theo nhu cầu của từng tòa nhà, tổ chức và yêu cầu mở
rộng.
- Điều khiển linh hoạt dựa vào các dữ liệu đầu vào.
- Giảm thời gian đào tạo cho nh ân viên vận hành, do có các chỉ dẫn trực tiếp.
trên màn hình cũng như giao diện trực quan của tòa nhà.
- Phản ứng nhanh đối với các đòi hỏi của khách hàng và các sự cố.
- Quản lý tập trung việc điề u khiển và kiểm soát năng lượng .
- Quản lý tốt hơn các thiết b ị trong tòa nhà, nhờ vào hệ thống dữ liệu lưu trữ,
chương trình bảo trì bảo dưỡng và hệ thống tự động báo cáo các cảnh báo.
- Linh hoạt trong việc lập trình theo nhu cầu, kích thước, tổ chức và các yêu
cầu mở rộng.
- Cải tiến vận hành bằng việc tích hợp các phần mềm và phần cứng của
nhiều hệ thống đầu cuối khác nhau như: báo cháy, an ninh, điều khiển truy
nhập dữ liệu hay điều khiển các thiết bị khác trong hệ thống.
- Nâng cao hoạt động nhờ tích hợp phần mềm và phần cứng của nhiều hệ
thống phụ như điều khiển s ố trực tiếp (DDC – Direct Digital Control), hệ
thống báo cháy, an ninh, điều khiển truy nhập hoặc điều khiển chiếu sáng.
1.2. Tính cấp thiết của đề tài
Luận văn này đi sâu vào nghiên cứu các phương pháp vận hành tối ưu máy
bơm nước sinh hoạt dựa vào cơ cấu hoạ t động, thời điểm vận hành và các dữ liệu
đầu vào để đưa ra phương pháp vận hành hợp lý. Kết quả nghiên cứu này phải so
sánh với chế độ hoạt động bình thường và cho kết quả tiết kiệm chi phí tiền điện
thực sự trong các cao ốc hiện nay.
1.3. Mục tiêu và nội dung nghiên cứu của đề tài
1.3.1. Mục tiêu của đề tài
Xây dựng mô hình điều khiển theo theo các mục tiêu sau:
3
- Thiết kế mạch điều kh iển.
- Thiết kế giao diện giao tiếp giữa máy tính và mô hình thực tế.
- Mô phỏng chương trình trên máy tính.
- Mô phỏng hoạt động trên mô hình thực tế.
1.3.2. Nội dung nghiên cứu
- Nghiên cứu các dữ kiện điều khiển động cơ .
- Nghiên cứu thời gian hoạt động của động cơ phụ thuộc vào giá điệ n.
- Nghiên cứu ngôn ngữ assamber.
- Nghiên cứu chuẩn truyền thong RS485.
- Mô phỏng và đánh giá hiệu quả khi điều khiển mới so với ban đầu.
1.4. Phương pháp luận và phương pháp nghiên cứu
1.4.1. Phương pháp luận
- Luận văn là tài liệu tham khảo có giá trị cho những ai quan tâm, nghiên cứu
đến điều khiển và giám sát các thiết bị từ xa.
- Với khả năng yêu cầu về tự động ngày càng cao trong sản suất và đời sống
thì việc ứng dụng điều khiển bằng BMS là hết sức cần thiết
- Luận văn này cung cấp một mô hình điều khiển hệ thống bơm nước sinh
hoạt theo thời điểm thích hợp, được ứng dụng trong thực tiễn.
1.4.2. Phương pháp nghiên cứu
- Thu thập và đọc hiểu các t ài liệu liên quan từ cán bộ hướng dẫn, sách, các
bài báo và internet.v.v…
- Nghiên cứu các dữ kiện điều khiển động cơ .
- Nghiên cứu thời gian hoạt động của động cơ phụ thuộc vào giá điện .
- Nghiên cứu ngôn ngữ lập trình Assembler
- Nghiên cứu chuẩn truyền thông RS485
- Lập trình phần mềm, kết nối phần cứng và chạy thử.
4
1.5. Tổng quan về lĩnh vực nghiên cứu
1.5.1. Giới thiệu tổng quan về BMS
Hiện nay, trên thế giới có nhiều các giải pháp quản lý các thiết bị trong tòa
nhà khác nhau, từ các giải pháp đơn giản : như hệ thống bơm nước, phòng cháy
chữa cháy, máy lạnh trung tâm, thang máy...Tuy nhiên, hệ thống điều khiển bơm
nước sinh hoạt theo theo từng thời điểm thích hợp dựa vào giá điện thấp trong ngày
vẫn chưa được áp dụng rộng rãi.
Có 2 cách lựa chọn cho máy bơm nước sinh hoạt là điều khiển bằng tay và tự
động. Hệ thống điều khiển dựa vào các thông số đầu vào như: cảm biến mực nước,
thời gian vận hành.
Hệ thống BMS có thể mở rộng để điều khiển và giám sát từ xa thông qua
mạng internet, thông qua đó BMS thực hiện các nhiệm vụ sau:
- Giám sát nhiệt độ của động cơ .
- Giám sát trạng thái hoạt động của động cơ .
- Giám sát thời điểm hoạt động của động cơ .
- Giám sát các thiết bị an ninh trong tòa nhà.
Tóm lại: BMS là phần mềm điều khiển , hoạt động của các thiết bị trong tòa nhằm
tiết kiệm con người, chi phí và độ chính xác cao.
1.5.2. Tình hình nghiên cứu trong nước
Ở Việt Nam ngày nay, việc xây dựng các tòa nhà cao tầng làm công sở, trung
tâm thương mại, khách sạn,… ngày càng trở nên phổ biến. Chúng trở nên hiện đại,
tiện nghi để phục vụ các yê u cầu ngày càng cao của con người. Giải pháp kết hợp
hệ thống các thiết bị cơ điện tử sử dụng trong tòa nhà với công nghệ tự động hóa
nhằm đem lại khả năng điều khiển tự động của các hệ thống như: hệ thống điều hòa
không khí, thông gió, hệ thống chiếu sáng, hệ thống báo cháy, camera,… đã không
còn là điều mới mẽ nữa. Tuy nhiên, vấn đề sống còn của giải pháp này lại nằm ở
chỗ làm sao có thể quản lý chung trong một hệ thống thống nhất. Các hệ thống tự
động hóa tòa nhà (BMS- Building Management System) đã ra đời để giải quyết bài
toán này.
5
Nhiệm vụ chính của hệ thống BMS là điều khiển, giám sát, quản lý các thiết bị cơ,
điện trong một tòa nhà cao tầng, giúp cho việc vận hành, bảo dưỡng và quản lý tòa
nhà một cách thuận tiện, an toàn và tiết kiệm.
Hệ thống BMS được phát triển dựa trên nền kiến trúc của một hệ điều khiển
phân tán với các bộ điều khiển số trực tiếp (DDC - Direct Digital Controler) được
kết nối với hệ thống mạng tầng, các bộ điều khiển .
Tình hình nghiên cứu BMS trong các nhà cao tầng theo thống kê như sau:
Luận văn nghiên cứu ứng dụng trong hệ thống BMS cho Tòa nhà khách sạn
Novotel Đà Nẳng. Luận văn này được bảo vệ thành công tại trường Đại học Đà
Nẳng ngày 27 tháng 10 năm 2012 .
Nghiên cứu hệ thống quản lý Tòa nhà (BMS): nghiên cứu điều khiển các thiết
bị trong Tòa nhà như: Chiller, FCU, AHU, quạt….Do phòng đầu từ và quản lý xây
dựng hoàn thành ngày 08 tháng 10 năm 2012.
1.5.3. Tình hình nghiên cứu trên thế giới Nghiên cứ hệ thống BMS điều khiển các hệ thống trong Tòa nhà để tiết kiệm
năng lượng được thự c hiện bởi giáo sư Engel J. Knible được đăng trên bài báo của
tạp chí Mỹ ngày 15 tháng 10 năm 2006 .
Công ty AirTek sản xuất hệ thống BMS của tập đoàn Mitshubishi đã phát triển
rộng rãi ở Việt Nam và các nước trong khu vực.
Kết luận: Hệ thống điều khiển bơm nước bởi BMS được thiết kế đặt thù cho các
Tòa nhà ở Việt Nam với tính năng điều khiển và giám sát hệ thống giống như các
hệ thống BMS có trên thị trường.
1.6. Nội dung của luận văn
Nội dung của luận văn gồm 5 chương
Chương 1: Mở đầu
Chương 2: Cơ sở lý thuyết
Chương 3: Xây dựng đối tượng điều khiển
Chương 4: Thi công bộ điều khiển
Chương 5: Kết luận và hướng phát triển đề tài
6
Chương 2: CƠ SỞ LÝ THUYẾT
2.1. Chức năng điều khiển của BMS
Với sự phát triển công nghệ thông tin và các phần mềm ứng dụng hữu ích hiện
nay như: internet, EIB thì phần mềm BMS điều khiển linh hoạt các thiết bị trong tòa
nhà, trung tâm thương mại, nhà máy sản xuất cũng đang phát triển mạnh mẽ, nhưng
giá thành đầu tư cao, đây cũng là mặt hạn chế. BMS có những chức năng điều khiển
như sau:
2.1.1. Lợi ích về năng lượng
- Điều chỉnh lư u lượng bơm nước sinh hoạt theo điều kiện phù hợp với chi
phí giá điện thấp nhất. Với các tòa nhà, cao ốc khác nhau thì BMS vẫn đáp
ứng điều khiển một cách phù hợp nhờ vào điều chỉnh các thông số trên máy
tính.
- Tự động điều khiển liên tục công suất tải. Đặt các thiết bị chấp hành hoạt
động theo tiến trình định trước hoặc theo các tiêu chuẩn đặt ra ban đầu theo
các thông tin nhận được từ cảm biến của các thiết bị đầu cuối như: cảm biến
nước, áp suất, đồng hồ điếm thời gian thực….
- Điều khiển đóng ngắt hệ thống điện khi gặp sự cố, khởi động hệ thống
chiếu sáng theo chế độ cài đặt sẵn và điều khiển theo mong muốn.
- Giám sát việc sử dụng năng lượng hàng ngày và lưu trữ dữ liệu vào máy
tính. Tự động báo hiệu cảnh báo nếu năng l ượng tiêu thụ hàng ngày quá cao
hoặc quá thấp.
- Giám sát mức độ tiêu thụ năng lượng, in hoá đơn điện năng tiêu thụ cho
từng khu vực khác nhau.
- Có thể xác định chính xác công suất điều hòa không khí của từng phòng,
từng khu vực. Thuận lợi cho các cao ốc văn phòng cho thuê, khi trong một
tầng có nhiều văn phòng được thuê bởi nhiều công ty khác nhau .
7
2.1.2. Hỗ trợ vận hành
- Hệ thống tự động điều khiển các thiết bị chấp hành theo cá c điều kiện thực
tế của từng cao ốc văn phòng về thời gian tắt mở và chấp hành theo cá c
thiết bị đầu cuối đưa về BMS . Ví dụ: Khi xảy ra cháy tại tầng 3 của toà nhà,
các thiết bị hỗ trợ cho chữa cháy và cứu nạn được kích hoạt, cụ thể như: Hệ
thống chữa cháy tự động kích hoạt, mở hệ thống hút khói, quạt tăng áp cầu
thang các tầng trong tòa nhà được kích hoạt, hệ thống thang máy tự xuống
tầng trệt để phục vụ cho công tác cứu hộ.
- Bằng giao diện trực quan tại trung tâm điều khiển, nhân viên vận hành tòa
nhà có thể đặt lại th ông số các thiết bị chấp hành cho phù hợp và theo yêu
cầu khác từ khách hàng.
- Vị trí các thiết bị và trạng thái hoạt động của nó được thể hiện trực quan
trên màn hình, người vận hành có thể nhận biết được trạng thái hoạt động,
các sự cố xảy ra đối với thiết bị của toàn hệ thống đã được kết nối với BMS.
2.1.3. Hỗ trợ bảo dưỡng
- BMS giám sát tình trạng hoạt động của các thiết bị trong toà nhà, đồng thời
đưa ra các cảnh báo, lịch bảo trì, bảo dưỡng cho các thiết bị. Hạn chế được
tối đa thời gian kiểm tra thiết bị và những rủi ro xảy ra bất ngờ.
- BMS giám sát tình trạng hoạt động của các thi ết bị dự phòng, đảm bảo tính
sẵn sàng hoạt động.
- Ghi lại dữ liệu cũ để hỗ trợ phân tích lỗi đã xảy ra và tránh những những sự
cố xảy ra tương tự.
2.1.4. Kiểm soát và và tiết kiệm năng lượng sử dụng
- Toà nhà Maritime Bank Tower sử dụng giải pháp BMS của hãng AirTek
với chi phí đầu tư và dự kiến chi phí tiết kiệm như sau:
- Chi phí đầu tư ban đầu: 1.6 tỉ đồng . - Diện tích mặt sàn: 32.000 m2.
- Tiêu thụ điện năng (Chưa trang bị BMS): 3.696.000 kWh/ 1năm.
- Tiết kiệm năng lượng tương ứng 12 %: 443.520kWh/ 1năm.
8
- Tiền điện tiết kiệm: 887.040.000 đồng/1 năm.
- =>Thời gian thu hồi vốn khoảng 2 năm.
2.1.5. Vận hành toà nhà tự động theo lập trình sẵn
- Mỗi tòa nhà có tính chất hoạt động khác nhau nên phải lập trình cho BMS
để điều khiển. Điều này tiết kiệm được tiền thuê nhân viên cho công tác vận
hành toà nhà. Khi được trang bị BMS, người vận hành chỉ cần ngồi tại
phòng kỹ thuật có thể điều khiển bật/tắt các thiết bị chấp hành, lập thời vận
hành tự động cho các thiết bị.
- Tất cả các thiết bị chấp hành được vận hành tự động và chính xác bằng hệ
thống BMS.
- Hướng quản lý rộng rãi hơn đối với các tập đoàn lớn, các hệ thống BMS
khác nhau được giám sát và điều khiển qua mạng Internet. Lúc này người
điều hành chính chỉ ngồi tại trung tâm để điều khiển một cách phù hợp.
2.1.6. Điều khiển bơm nước theo lập trình
Theo phương pháp điều khiển thông thường là dùng cọc hoặc phao để giám
sát mực nước. Khi bồn sắp hết nước thì các tín hiệu trên đưa về tủ điện để điều
khiển bơm hoạt động. Thông thường bơm hoạt động rơi vào các giờ cao điểm vì
trong thời gian này lượng nước sử dụng nhiều. Vì vậy, hệ thống BMS điều khiển
bơm nước hoạt động vào giờ thấp điểm và trung bình nhằm tiết kiệm khoảng 40%
chi phí tiền điện.
BMS của các hãng có trên thị trường như: AirTek, Yamatake, Siemens,
Honeywell, Yamatake,... điều khiển tắt mở các thiết bị trong tòa nhà theo lập trình.
Dựa vào các chức năng của BMS và kinh nghiệm làm việc trong tòa nhà, luận văn
này thiết kế hệ thống BMS điều khiển bơm nước hoạt động theo thời điểm giá điện
thấp (giờ thấp điểm và trung bình) hạn chế tối đ a bơm hoạt động vào giờ cao điểm
trừ các trường hợp ngoại lệ.
9
2.1.7. Chuẩn truyền thông RS-485
Khi thực hiện truyền thông tin ở tốc độ cao hoặc qua một khoảng cách lớn
trong môi trường thực. Tín hiệu vi sai có thể loại bỏ ảnh hưởng do sự thay đổi khi
nối đất và giảm nhiễu có thể xuất hiện như điện áp chung trên mạng.Tuy nhiên, đối
với một mạng multi-network thực chất gồm nhiều mạch phát và nhận cùng nối vào
một đường dây bus chung, mỗi node đều có thể phát và nhận data thì RS485 đáp
ứng được yêu cầu này. Chuẩn RS485 cho phép 32 mạch truyền và nhận cùng nối
vào đường dây bus đơn (với bộ repeater tự động và các bộ truyền/ nhận trở kháng
cao, giới hạn này có thể mở rộng lên tới 256 node trên một mạng). Bên cạnh đó,
RS485 còn có thể chịu được các xung đột data (dat a collision) và các điều kiện lỗi
trên đường truyền.
Để giải quyết vấn đề xung đột data thường xuất hiện trên mạng multi -drop
network, các đơn vị phần cứng (converters, repeaters, micro-prosessor controls)
được thiết kế luôn duy trì ở trạng thái nhận cho đến khi chúng ta sẳn sàng truyền
data. Một node master sẽ kích khởi một yêu cầu truyền đến một slave node bằng
cách định địa chỉ node đó. Phần cứng phát hiện bit start của ký tự được có sẵn sang
truyền và tự động cho phép bộ truyền làm việc.
2.2. Phương pháp điều khiển của hệ thống bơm nước sinh hoạt
Để đưa ra giải pháp điều khiển bơm nước trong Tà nhà, phải căn cứ vào các
tiêu chuẩn hiện hành của Việt Nam và mức độ sử dụng nước của tòa nhà.
2.2.1. Phần cấp nước theo thuyết minh thiết kế của Tòa nhà Maritime Bank
Căn cứ kỹ thuật
- Quy chuẩn hệ thống cấp thoát nước trong nhà và công trình năm 1999.
- Tiêu chuẩn thiết kế cấp nước bên trong T.C.V.N – 4513 – 88.
- Tiêu chuẩn thiết kế cấp nước ngoài công trình 20.T.C.N – 51-2006;
T.C.V.N 5945 – 1995.
- Tiêu chuẩn xây dựng của Việt Nam tập VI- Tiêu chuẩn thiết kế TCXDVN
323-2004 – Nhà cao tầng – Tiêu chuẩn thiết kế.
10
Quy mô sử dụng nước : Cấp nước sinh hoạt và chữa cháy cho Tòa nhà
Maritime Bank, 180-192 Nguyễn Công Trứ, Q1 với quy mô 25 tầng gồm 3
tầng hầm, trung tâm thương mại và v ăn phòng cho thuê.
Nhu cầu sử dụng nước: Tòa nhà Maritime Bank Tower dự kiến tiêu thụ 450
m3/ 1 ngày bao gồm nguồn nước sinh hoạt chiếm nhiều nhất, nước hao hụt
cho hệ thống điều hòa không khí, nước tưới cây và các hao hụt khác.
Nguồn cấp nước: Chủ yếu từ nguồn nước sạch của TP.Hồ Chí Minh. Vị trí lấy
nước xác định tại lối xe xuống của Tòa nhà Maritime Bank, đường Nguyễn
Công Trứ. Đường ống cấp vào có đường kính DN100 chia làm 2 nhánh có
đường kính DN80.
Giải pháp kỹ thuật cấp nước:
- Nước cấp cho nhu cầu sinh hoạt:
Nước từ bồn chứa 615,6 m3 tầng mái của của Tòa nhà phân phối cho từng
tầng của khu văn phòng và Trung tâm thương mại, đầu các đường ống phân
nhánh được trang bị các valve giảm áp.
Nước sạch ở bể chứa dự trữ đặt nổi trên sàn tầng hầm B2, được bơm lên bồn
chứa nước tầng mái. Nhiệm vụ của bồn chứa nước tầng mái là phân phối nước
xuống các khu vực vệ sinh, khu ăn uống Trung tâm thương mại và các nhu c ầu
nước khác trong tòa nhà.
- Nước cấp cho nhu cầu chữa cháy: Bồn nước chữa cháy đặt âm tại tầng hầm B3, tổng với dung lượng 333m3. Hồ nước được cấp nước trực tiếp từ nguồn
nước sạch của Thành Phố.
Tính toán hệ thống cấp nước
(2.1)
Lượng nước cần thiết cấp cho Tòa nhà trong ngày dùng nước nhiều nhất. Qmax= QShmax + QCC + QNBĐH = 460 m3 Qmax = 483,48 +333,4+131 = 947,9 m3
Trong đó:
- QShmax: Lượng nước cấp trong ngày dùng nhiều nhất được xác định theo
công thức
11
QShmax= k. QShTB = 1,2 x 402,9 = 483,48m3/ 1 ngày
Với các thông số kỹ thuật lấy theo tiêu chuẩn quy phạm thiết kế cấp nước hiện
hành, chọn hệ số điều hòa trong ngày, chọn k = 1,2
QShTB: Lưu lượng nước cấp cho sinh hoạt trung bình trong một ngày (m3/ngày
đêm), được tính theo công thức sau:
QShTB = N.Q = N1.Q1 + N2.Q2+ N3.Q3 + Q4 = 272,4+125+2,5+3 = 402,9 m3/ ngày đêm.
Q1 = 15 lít/ngày đêm - Tiêu chuẩn dùng nước cho 1 người ở khối văn phòng cho
thuê – TCVN4513:1998.
N1 = 4.540 người: số người sinh hoạt trong khối văn phòng cho thuê.
Q2 = 60 lít/ngày đêm: Tiêu chuẩn dùng nước cho một người trong 1 ngày đêm ở
khối giao dịch trong tòa nhà – TCVN4513-1998.
N2 = 5.000 người: số người sinh hoạt trong khối giao dịch.
Q3 = 25 lít/ngày đêm: tiêu chuẩn dùng nước cho một cán bộ quản lý tòa nhà + người phục vụ 1 ngày đêm trong tòa nhà – TCVN4513:1998.
N3 = 100 người: Số cán bộ công nhân viên quản lý tòa nhà + người phục vụ. Q4: Lượng nước phục vụ rửa sàn tầng hầm 1,2, 3. Q4: 2000m2 sàn x 1,5 lít/m2 = 3.000 lít = 3m3. QCC: Lượng nước cần thiết cấp cho cứu hỏa Q CC = 333 m3. QNBĐH: Lượng nước bù hao hụt cho hệ thống điều hòa không kh í = 131m3 (tỉ lệ hao hụt được tính 1% lượng nước cấp cho điều hòa, thời gian tính 15 giờ/1 ngày).
Xác định đường kính ống nước sinh hoạt:
- Vận tốc nước chảy trong ống nước cấp bên trong tòa nhà tối đa 1,5m/s.
- Chọn đường kính ống dựa vào công thức:
(2.2)
Trong đó:
q: Lưu lượng nước (l/s)
v: Vận tốc nước trong đường ống (m/s)
12
d: Đường kính ống (mm)
Tính dung tích toàn phần của bồn nước tầng mái:
(2.3) Vk = K(Wđh + WCC +Wđhkk) (m3)
Trong đó:
- VK: Dung tích toàn phần của bồn nước tầng mái (m3) - K: Hệ số dự trữ kể đến chiều cao xây dựng và phần cặn lắng ở bồn nước,
chọn 1,1.
- WCC: Dung tích chữa cháy (tính 10 phút đầu cho ch ữa cháy vách tường
trong nhà, lượng nước này do công an phòng cháy cấp) = 3 m3.
- Wđh: Dung tích điều hòa nước sinh hoạt của bồn nước tầng mái = Q b/4n =
2,5 m3.
- Qb: Công suất định mức của một máy bơm sinh hoạt = 240 m3/h.
- n: Số lần mở máy bơm nhiều nhất tron g 1 giờ = 4 lần.
- Wđhkk: Dung tích nước bù hao hụt nước phục vụ cho điều hòa không khí =
131m3.
Vậy: V k = K(Wđh + WCC + Wđhkk) = 1,1 (2,5 + 3 + 131) = 136,5 m3. Chọn bồn nước bê tông cốt thép với dung tích 200m3
Tính dung tích của bể chứa nước dự trữ:
Để đảm bảo an toàn cho việc cấp nước sinh hoạt liên tục cho tòa nhà. Tư vấn
thiết kế 1 bể chứa nước dự trữ ngầm đặt tại sàn hầm B 3 với dung tích toàn phần của
bể chứa nước sạch được tính theo công thức:
(2.4) VBC = WBC + W1 + W2 (m3)
Trong đó:
- WBC: Dung tích điều hòa lượng nước sinh hoạt của bể chứa (m3). - WBC = 1,5 Qngày/n = 151,1 (m3).
Qngày: Lượng nước sinh hoạt cần dùng trong ngày (m3/ngày) = 402,9 m3.
- n: Số lần đóng mở máy bơm bằng tay trong ngày = 4 lần. - W1: Dung tích nước chữa cháy trong bể = 333,4 m3.
13
- W2: Dung tích bù nước hao hụt của hệ thống điều hòa không khí dự trữ trong bể tính 1 ngày =131 m3 (tỉ lệ hao hụt được tính 1% lượng nước cấp
cho điều hòa, thời gian tính 8 tiếng/1 ngày.
Vậy, dung tích toàn phần của bể chứa nước sạch được tính như sau: VBC = WBC + W1 + W2 = 151,1 + 333,4 + 131 = 615,6m3. Dựa vào kết quả tính toán, chọn 2 bể chứa nước dự trữ với dung tích toàn phần
của bể chứa nước dự trữ số 1 dành cho sinh hoạt + điều hòa không khí + phòng cháy chữa cháy VBC1 = 200m3 đặt ở tầng hầm B2 và bể chứa nước dự trữ số 2 dành cho chữa cháy VBC2 = 233m3 đặt ở tầng hầm B3. Tính toán bơm cấp nước sinh hoạt:
Việc lựa chọn công suất của máy bơm được dựa trên 2 tiêu chí cơ bản:
Lưu lượng của máy bơm (được tính cho giờ dùng nước nhiều nhất trong ngày)
Áp lực toàn phần của máy bơm
Dựa vào kết quả tính toán lưu lượng nước cần thiết cáp cho tòa nhà ở trên: lượng nước cấp cho sinh hoạt trong ngày dùng nước nhiều nhất là 483,48m3. Lượng nước dùng nước nhiều nhất trong ngày 279m3/ ngày (Buổi sáng 11h đến 17h, chiều 17h đến 20h).
(2.5) Chọn lưu lượng máy bơm Qb = 66 lít/s, H= 125m. Xác định áp lực toàn phần của máy bơm: HS.H/bơm = hyc + h.dp = (hh.h + h.h + hđ + hc.b + htd) + h.dp (m3).
Trong đó:
- HS.H/bơm: Áp lực của máy bơm tăng áp cấp nước sinh hoạt. - hyc: Áp lực yêu cầu, được xác định theo công thức sau:
- hyc = hh.h + h.h + hđ + hc.b + htd = 113m.
- hh.h: Độ cao hình học đưa nước tính từ mực nước thấp nhất trong bể chứa
đến vòi cấp nước vào bồn tầng mái là 98m.
- h.h: Tổn thất áp lực do ma sát theo chiều dài đường ống hút 3,0m.
- hđ: Tổn thất áp lực do ma sát theo chiều dài đường ống đẩy = 7m.
- htđ: Áp lực tự do đầu vòi cấp nước vào bể chọn theo tiêu chuẩn 2m.
14
- hc.b: tổn thất áp lực cục bộ trên tuyến ống hút và đẩy (m).
hc.b = 30%. (hh + hđ) = 0,3. (3+7) = 3m.
- h.dp: áp lực công tác dự phòng (tính bằng 10% - 12% hyc) = 12m.
Vậy: HbSH = (hh.h +h.h + hđ + hc.b + htđ) + h.dp = 98 + 3 + 7 + 2 + 3 + 12 = 125m.
Dựa vào kết quả tính toán chọn 2 máy bơm sinh hoạt của hãng Grundfos mã số GSHF với công suất của 1 bơm là 110kW, 240m3/h, cột áp 125m, áp suất max
12bar, điện áp 380V, 1450 vòng/phút (trong đó 1 máy hoạt động 1 máy dự phòng).
2.2.2. Phòng bơm
Để đảm bảo cung cấp nước không bị gián đ oạn trong các tòa nhà, người ta
luôn thiết kế 2 bơm hoạt động luân phiên nhau. Khi có 1 bơm bị sự cố thì phải
khống chế cho 1 bơm luôn hoạt động để sửa chữa bơm bị hư.
Hình 2.1. Phòng bơm
2.2.3. Bảng giá 3 thời điểm của công ty điện lực
Ngày 19/12/2011, Bộ Công thương đã ra Thông tư số 42/2011/TT-BCT quy
định về giá bán điện và hướng dẫn thực hiện cụ thể áp dụng từ ngày 1 tháng 7 năm
2012 cho ngày kinh doanh theo bảng thống kê như sau:
15
Bảng 2.1. Cấp điện áp và giá điện
STT Cấp điện áp Giá bán điện (đ/kWh)
1
1.909 1.088 3.279
2
2.046 1.225 3.388
3
Từ 22 kV trở lên a) Giờ bình thường b) Giờ thấp điểm c) Giờ cao điểm Từ 6 kV đến dưới 22 kV a) Giờ bình thường b) Giờ thấp điểm c) Giờ cao điểm Dưới 6 kV a) Giờ bình thường b) Giờ thấp điểm c) Giờ cao điểm 2.074 1.279 3.539
Trong đó
Giờ bình thường
Gồm các ngày từ thứ hai đến thứ bảy
- Từ 04 giờ 00 đến 9 giờ 30 (05 giờ 30 phút).
- Từ 11 giờ 30 đến 17 giờ 00 (05 giờ 30 phút).
- Từ 20 giờ 00 đến 22 giờ 00 (02 giờ).
Ngày Chủ nhật.
Từ 04 giờ 00 đến 22 giờ 00 (18 giờ).
Giờ cao điểm
Gồm các ngày từ thứ hai đến thứ bảy
- Từ 09 giờ 30 đến 11 giờ 30 (02 giờ).
- Từ 17 giờ 00 đến 20 giờ 00 (03 giờ).
Ngày Chủ nhật: không có giờ cao điểm
Giờ thấp điểm
Tất cả các ngày trong tuần: từ 22 giờ 00 đến 04 giờ 00 (06 giờ)
16
Bảng 2.2. Thống kê Lượng nước sử dụng trong tòa nhà Maritime Bank năm
2012 theo từng thời điểm .
Bình thường Đơn giá 2.046 VNĐ
Cao điểm (thứ 2 đến 7) Đơn giá 3.388 VNĐ
Thứ
Ngày
Thấp điểm từ 22h đến 4h00 Đơn giá 1.225 VNĐ
Từ 4h00 đến 9h30
Từ 11h30 đến 17h00
Từ 20h00 đến 22h00
Từ 9h30 đến 11h30
Từ 17h00 đến 20h00
m3 nước tiêu thụ 154 144 145 146 145 148 147 155 156 165 152 150 150 153 138 146 141 152 151 153 149 143 142 161 141 138 158 141 152 145
m3 nước tiêu thụ 55 58 56 52 50 45 62 53 59 66 50 52 51 54 58 59 62 50 53 52 58 55 61 69 51 49 53 60 58 59
m3 nước tiêu thụ 55 57 66 50 48 41 57 53 56 64 51 56 53 58 62 64 68 55 55 60 61 54 58 60 57 54 56 54 54 58
m3 nước tiêu thụ 68 70 71 65 55 68 69 65 67 72 68 62 58 65 61 69 74 68 61 56 65 62 70 76 59 69 66 56 63 70
m3 nước tiêu thụ 2 1 3 2 2 1 2 1 2 3 2 2 2 3 1 1 4 2 1 1 3 1 2 3 2 2 1 3 1 4
1/6/12 2/6/12 3/6/12 4/6/12 5/6/12 6/6/12 7/6/12 8/6/12 9/6/12 10/6/12 11/6/12 12/6/12 13/6/12 14/6/12 15/6/12 16/6/12 17/6/12 18/6/12 19/6/12 20/6/12 21/6/12 22/6/12 23/6/12 24/6/12 25/6/12 26/6/12 27/6/12 28/6/12 29/6/12 30/6/12
m3 nước tiêu thụ 125 135 132 121 106 130 128 131 139 148 131 128 115 132 135 140 150 135 106 121 127 134 130 142 119 120 135 122 127 132
1670
4461
1695
1968
60
3876
Thứ 6 Thứ 7 CN Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6 Thứ 7 CN Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6 Thứ 7 CN Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6 Thứ 7 CN Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6 Thứ 7 Tổng m3 nước cho từng thời điểm/ 1 tháng
55,7
148,7
56,5
65,6
2
129,2
m3 nước trung bình cho từng thời điểm/1ngày
244.628
1.123
302.492
Tiền điện cho từng thời điểm/ 1 ngày (VNĐ)
7.338.832
9.074.758
33.688
Tiền điện trung bình cho từng thời điểm/ 1 tháng (VNĐ)
16.447.277
Tổng tiền điện/ 1 tháng
17
2.2.4. Cơ sở tính toán thiết kế mạch điều khiển
- Căn cứ vào thuyết minh thiết kế của tòa nhà, lượng nước sử dụng nhiều
nhất trong ngày Qmax = 483,48m3.
- Căn cứ vào thuyết minh thiết kế của tòa nhà, lượng nước sử dụng trung
bình trong ngày QTB= 402,9m3.
- Căn cứ vào lưu lượng nước sử dụng thực tế hiện tại của tòa nhà vào tháng 6
năm 2012, Lượng nước sử dụng trung bình trong ngày 460m 3.
Lượng nước sử dụng thực tế đúng với thiết kế. Vậy, căn cứ vào bảng thống kê
mục 2.8.5 để thiết kế mạch điều khiển.
Dựa vào số liệu tính toán trong bảng 2.2, tiền điện thống kê 3 thời điểm như sau:
- Giờ thấp điểm: 766 VNĐ/1 ngày.
- Giờ trung bình: 167.857 VNĐ/1 ngày.
- Giờ cao điểm: 206.950 VNĐ/1 ngày.
Bài toán so sánh đơn giản cho thấy máy bơm hoạt động ở giờ trung bình 262.5m3 tốn 167.857 VNĐ. Trong khi đó máy bơm hoạt động ở giờ cao điểm 195m3 tốn 206.950 VNĐ. Vậy, mạch điều khiển được thiết kế sao cho hạn chế hoạt động vào giờ cao điểm, ưu tiên nhất hoạt động vào giờ thấp điểm.
Tính toán theo giá điện
- Giờ thấp điểm: 1.225 đ/1k Wh – bằng 0,36 lần giá điện giờ cao điểm.
- Giờ trung bình: 2.046 đ/1kWh – bằng 0,6 lần giá điện giờ cao điểm .
- Giờ cao điểm: 3.388 đ/1kWh.
18
2.2.5. Lưu đồ điều khiển máy bơm
Hình 2.2. Lư đồ điều khiển máy bơm
- Đồng hồ thời gian thực của Dalas: đồng hồ đếm thời gian thực được thiết kế
kết nối với vi điều khiển 89S52 để quyết định đóng mở rơle điều khiển máy
bơm.
- Cảm biến của bể nước tầng má i: bể nước trên tầng mái được thiết kế 8 cảm biến đọc mực nước, mỗi cảm biến đo mực nước cách nhau 25m 3. Có nghĩa là 8 cảm biến đặt trong bể chứa tầng mái 200m 3.
- Giờ thấp điểm 22h00 đến 4h00: nếu mực nước đến cảm biến 1 hoặc từ 3h00 trở về sáng thì máy bơm hoạt động đến đầy bể (mức 8 tương đương 200m 3). - Giờ trung bình 4h đến 9h30: nếu mực nước cạn đến cảm biến 1 hoặc cảm
biến 2 và 8h30 thì máy bơm hoạt động đến đầy bể.
- Giờ trung bình 11h30 đến 17h00: nếu mực nước đến cảm biến 1 hoặc cảm
biến 5 và 16h00 thì máy bơm hoạt động đến đầy bể.
- Giờ trung bình 20h00 đến 22h00: nếu mực nước đến cảm biến 1 thì bơm
đến cảm biến 3.
19
- Giờ cao điểm 9h30 đến 11h30: nếu mực nước đến cảm biến 1 thì bơm hoạt
động đến cảm biến 3.
- Giờ cao điểm 17h00 đến 20h00: nếu mực nước tới cảm biến 1 thì bơm tới
cảm biến 4.
2.2.6. Bảng so sách tiền điện giữa điều khiển bơm nước bình thường và điều
khiển bởi BMS
- Dựa vào bảng thống kê lưu lượng nước mục 2. 2.
- Dựa vào thuyết minh thiết kế tính toán công suất và lưu lượng của máy
bơm mục 2.8.1.
- Căn cứ và giá điện 3 thời điểm của tổng công ty điện lực Thành Phố.
- Căn cứ vào lưu đồ điều khiển của BMS mục 2. 2.1.
- Bỏ qua các tổn hao về phát nóng, tổn hao do rò rỉ và các tổn hao khác.
Bảng 2.3. Tiền điện phải trả khi bơm hoạt động bình thường
Trung bình (m3)
Cao điểm (m3)
Tổng số tiền phải trả (VNĐ)
Thấp điểm (m3)
Tiền điện (VNĐ)
Tiền điện (VNĐ)
Tiền điện (VNĐ)
Tổng lượng nước sử dụng trong 1 ngày đêm (m3)
22h00 đến 4h00
4h00 đến 9h30
11h30 đến 17h00
20h00 đến 22h00
9h30 đến 11h30
17h00 đến 20h00
2
1,123
55.67
148.7
56.5
244,631
65.6
129.2
302,492
458
548,246
Theo kết quả tính toán, tiền điện phải trả cho 1 ngày là 548,246VNĐ.
20
Bảng 2.4. Tiền điện phải trả khi bơm hoạt động có điều khiển bởi BMS
Cao điểm
Cao điểm
Trung bình (m3)
Tiền điện (VNĐ)
Trung bình (m3)
Trung bình (m3)
Tiền điện (VNĐ)
Tiền điện (VNĐ)
Tổng số tiền phải trả (VNĐ)
Thấp điểm 22h00 đến 4h00 (m3)
Tổng lượng nước sử dụng trong 1 ngày đêm (m3)
Bơm nước hoạt động (m3)
Sử dụng 4h00 đến 9h30
Sử dụng 9h30 đến 11h30
Sử dụng 17h00 đến 20h00 (m3)
Sử dụng 20h00 đến 22h00 Bơm hoạt động đến cảm biến 3 (m3)
Sử dụng 11h30 đến 17h00 Bơm hoạt động (m3)
200
112,292
144
79
130.03
0.83
74.17
69,553
473
369,395
187,55 0
Tiền điện tiết kiệm cho 1 ngày (VNĐ)
178,851
Tiền điện tiết kiệm cho 1 tháng (VNĐ)
5,365,533
Tiền điện tiết kiệm cho 1 năm (VNĐ)
65,280,655
- Theo bảng tính tóa tiền điện tiết kiệm cho 1 ngày: 178,851 VNĐ.
- Tiền điện tiết kiệm cho 1 tháng: 5,363,533 VNĐ.
- Tiền điện tiết kiệm cho 1 năm: 65,280,655 VNĐ .
Bài toán trên đang áp dụng cho tòa nhà và trung tâm thương mại hạng trung
bình. Như vậy, đối với tòa nhà lớn hoặc công ty cấp nước thì tiền điện tiết kiệm
nhiều hơn tùy vào điều kiện thực tế sử dụng.
BMS hoàn toàn điều chỉnh thời gian bơm theo lượng nước sử dụng khác nhau
của tòa nhà nên chức năng điều khiển linh hoạt này giúp cho người sử dụng hoàn
toàn chủ động điều khiển theo nhu cầu thực tế của mỗi tòa nhà và các mục đích sử
dụng nước khác nhau.
21
Chương 3: XÂY DỰNG ĐỐI TƯỢNG ĐIỀU KHIỂN
3.1. Cơ sở dữ liệu đầu vào của các thiết bị trong hệ điều khiển
Cơ sở dữ liệu để điều khiển máy bơm được xây dựng tín hiệu cảm biến của
bồn trên và bồn dưới.
3.1.1. Tín hiệu cảm biến của bồn trên
Tín hiệu nguồn cấp nước được thiết kế 8 cảm biến mỗi mức cảm biến tương
đương 25m3 nước. Các cảm biến này được kết nối với mạch đọc cảm biến mực
nước để kết hợp với đồng hồ đếm thời gian thực điều khiển bơm, đồng thời hiển thị
Mức8- 200m3 Mức 7- 175m3 Mức 6- 150m3 Mức 5- 125m3 Mức 4- 100m3 Mức 3- 75m3 Mức 2- 50m3 Mức 1- 25m3
các đèn led trên bảng điều khiển.
Hình 3.1. Cảm biến nước bồn trên
3.1.2. Tín hiệu cảm biến nước bồn dưới
Tín hiệu nguồn cấp nước được thi ết kế 8 mức cảm biến mỗi mức cảm biến
tương đương 150m3 nước. Các cảm biến này được kết nối với mạch đọc cảm biến
mực nước để kết hợp với đồng hồ đ iếm thời gian thực điều khiển bơm, đồng thời
hiển thị các đèn led trên bảng điều khiển. Ngoài ra, khi nước xuống thấp hơn cảm
Mức 4- 600m3
Mức 3- 450m3
Mức 2- 300m3
Mức 1- 150m3
biến 1 thì máy bơm không hoạt động.
Hình 3.2. Cảm biến nước bồn dưới
22
3.1.3. Sơ đồ nguyuyên lý
Mạch điều khiển Mạch động lực
Động cơ 1 Động cơ 2
Hình 3.3. Mạch điều khiển và động lực của máy bơm
Ghi chú:
- Main-CB: CB nguồn cấp điện chính.
Fuse: cầu chì. -
- RN1: cuộn cây và tiếp điểm của rơle nhiệt – bảo vệ quá dòng điện.
- RN2: cuộn cây và tiếp điểm của rơle nhiệt – bảo vệ quá dòng điện.
- : tiếp điểm thường đóng.
- : tiếp điểm thường mở.
- : đèn báo.
- : cuộn dây của rơle.
23
- : nút nhấn ON.
- : nút nhấn OFF.
- : công tắc chuyển mạch Man – Off – Auto.
- : tiếp điểm điểu khiển của BMS.
- : rơle cóc
- : tiếp điểm rơle cóc.
Nguyên lý hoạt động:
- Đóng main CB đèn báo off của RL1 và RL2 sáng (2 đèn này báo bơm không
hoạt động.
- Chế độ MAN: chuyển công tắc Man -Off-Auto sáng vị trí Man, đóng tiếp
điểm 1-7.
Mở động cơ 1: Nhấn nút ON1, cuộn dây RL1, đèn RL1-On có điện, mở tiếp điểm (1-
5) đèn báo OFF RL2-Off tắt, đóng tiếp điểm (7 -9) duy trì cho cuộn dây RL1, đồng
thời đóng tiếp điểm RL 1 mạch động lực động cơ 1 hoạt động. Muốn dừng nhấn nút
Off 1.
Mở động cơ 2: Nhấn nút ON2, cuộn dây RL2, đèn RL2-On có điện, mở tiếp điểm (1-
3) đèn báo OFF RL1-Off tắt, đóng tiếp điểm (7 -11) duy trì cho cuộn dây RL2, đồng thời đóng tiếp điểm RL 2 mạch động lực động cơ 2 hoạt động. Muốn dừng nhấn nút
Off 2.
- Chế độ Auto: chuyển công tắc Man -Off-Auto sáng vị trí Auto, đóng tiếp
điểm (1-13), lúc này mạch hoạt động phụ thuộc vào công tắc BMS -switch.
Bình thường tiếp điểm (13-21) đóng lại cấp điện cho rơle cóc, giả sử tiếp
điểm rơle cóc đang ở vị trí như hình vẽ.
24
Khi BMS đóng tiếp điểm 15-15 lại, cuộn dây RL1 và đèn báo On RL1-On có điện, mở tiếp điểm (1 -3) đèn báo RL1-Off tắt, đồng thời đóng tiếp điểm động lực
RL1, động cơ 1 hoạt động. Khi bồn đầy nước hoặc theo lập trình của BMS thì tiếp điểm (13-15) mở ra ngắt điện cuộn dây RL1 và đèn báo RL1-On, đóng tiếp điểm (1-
3) đèn RL1-Off sáng, mở tiếp điểm động lực RL 1, động cơ dừng.
Khi BMS switch tắt, lúc này rơle cóc LR có điện trở lại, tiếp điểm rơle cóc chuyển
trạng thái tiếp điểm (15-19) đóng lại.
Sau thời gian khi sử dụng hết nước tiếp điểm BMS đóng lại (lúc này tiếp điểm
rơle cóc đang ở vị trí (15-19),cuộn dây RL2 và đèn báo On RL2-On có điện, mở tiếp
điểm (1-5) đèn báo RL2-Off tắt, đồng thời đóng tiếp điểm động lực RL 2, động cơ 2
hoạt động. Khi bồn đầy nước hoặc theo lập trình của BMS thì tiếp điểm (13 -15) mở
ra ngắt điện cuộn dây RL2 và đèn báo RL2-On, đóng tiếp điểm (1-5) đèn RL2-Off
sáng, mở tiếp điểm động lực RL 2, động cơ dừng.
Lúc này cuộn dây rơle cóc LR có điện trở lại, tiếp điểm (15 -17) đóng lại, trở
về trạng thai ban đầu.
3.2. phương pháp điều khiển
Điều khiển máy bơm ch ia thành 2 phần: điều khiển bằng tay và điều khiển tự
động.
3.2.1. Điều khiển bằng tay
Chuyển công tắc Man-Off-Auto sang chế độ MAN để điều khiển theo mong
muốn. Nhấn ON1 bơm 1 hoạt động, nhấn ON2 bơm 2 hoạt động, muốn dừng nhấn
Off1, Off2 đối bới bơm 1 và bơm 2.
3.2.2. Điều khiển tự động
Chuyển công tắc Man-Off-Auto sang chế độ Auto, động cơ hoạt động theo lập
trình của BMS. Lúc này, hoàn tòa mở máy điều khiển bằng máy tính. Sơ đồ điều
khiển dựa vào hình 2.2
25
3.3. Thiết kế mạch điều khiển
Mạch điều khiển được thiết kế k ết hợp 2 mạch điều khiển: mạch điều khiển
chính và mạch đọc mực nước.
3.3.1. Mạch điều khiển chính
Mạch điều khiển đếm thời gian thực và nhận tín hiệu từ các cảm biến nước của
board đọc mức nước của bồn dưới và bồn trên dựa theo chương trình điều khiển của
AT89S52.
Hình 3.4. Sơ đồ nguyên lý của board điều khiển chính
Ghi chú:
JP1: Đường truyền giao tiếp 485. -
- JP2: Nguồn vào 15VAC.
- JP3: Nguồn lấy ra 5VDC.
- W06M: Cầu diode.
- LM7805: IC ổn áp 5VDC.
- RL: Rơle
26
- SP: Loa
- C1815: Transistor
- Tuxgr_16X2_R2: Màn hình hiển thị.
- Max485: IC giao tiếp 485
- AT89S52: IC vi điều khiển.
- DS12C887: IC đồng hồ thời gian thực.
- S1 đến S4: Các nút nhấn điều chỉnh màn hình LCD.
- S5: Nút nhấn reset.
- Các tụ 104: Tụ bi.
- Các tụ 220MF, 470MF: Tụ 1 chiều.
- Điện trở 10K: Điện trở thanh.
3.3.2. Nguyên lý hoạt động
Nguồn cấp cho mạch 15VAC được nắn điện qua cầu diode W06M, cấp cho IC
ổn áp LM7805, ngõ ra của IC ổn áp cấp cho toàn mạch điều khiển.
Màn hình hiển thị Tuxgr_16X2_R2 xuất ra từ vi điều khiển AT89S52, hiển thị thời
gian thực, các chế độ hoạt động của máy bơm như: hiển thị mực nước, chế độ On,
OFF, Auto.
Max485 giao tiếp với vi điều khiển AT89S52 để tiếp với board và máy tính
thông qua chuẩn truyền thông RS485.
DS12C887 điếm thời gian thực và hỗ trợ vi điều khiển AT89S52 để thực hiện
các chế độ đóng ngắt rơle theo chương trình điều khiển.
IC AT89S52 là vi điều khiển chính dựa vào các dữ liệu đầu vào như: đồng hồ
điếm thời gian thực, board cảm biến mực nước bồn trên, bồn dưới, giao tiếp với
máy tính, điều khiển rơle theo các chế độ tự động và bằng tay.
27
3.3.3. Mạch điếm mực nước
Hình 3.5. Sơ đồ nguyên lý của board đọc mức nước
Ghi chú:
JP: Nguồn cấp 15VAC. -
- W06M: Cầu diode.
LM7805: IC ổn áp 5VDC. -
SV3: Nguồn lấy ra 5VDC. -
SV2: Ngõ vào của cảm biến nước bền trên. -
SV5: Ngõ vào cảm cảm biến nước bồn chứa. -
SV4: Ngõ ra hiển thị 8 mực nước bồn trên. -
SV6: Ngõ ra hiển thị 4 mực nước bồn dưới. -
Các tụ 104: tụ bi. -
470MF: Tụ 1 chiều. -
- Max485: IC giao tiếp 485
AT89S52: IC vi điều khiển. -
28
- Điện trở 10K: điện trở thanh.
3.3.4. Nguyên lý hoạt động
Nguồn cấp cho mạch 15VAC được nắn điện qua cầu diode W06M, cấp cho IC
ổn áp LM7805, ngõ ra của IC ổn áp cấp cho toàn mạch điều khiển.
IC AT89S52 là vi điều khiển đọc các tín hiệu cảm biến của bồn dưới, bồn trên
và giao tiếp với board điều khiển chính qua đường truyền RS485. Port P1.0 đến
P1.7 đọc 8 cảm biến nước của bồn trên, Port 2.0 đến 2.3 đọc 4 cảm biến của bồn
dưới, port 0.0 đến 0. 7 hiển thị ra 8 LED đọc mực nước của bồn trên, port 2.4 đến
2.7 hiển thị 4 led đọc mực nước của bồn dưới.
Max485 thực hiện giao tiếp bới board mạch chính.
29
Chương 4: THI CÔNG MẠCH ĐIỀU KHIỂN
4.1. Sơ đồ khối của hệ thống BMS
Sơ đồ 4.1. Sơ đồ khối của hệ thống BMS
30
4.2. Lưu đồ giải thuật
31
Lưu đồ 4.1. Đọc phím trên board chính
32
Lưu đồ 4.2. Nhận tín hiệu chỉnh thời gian từ máy tính cho Dalas
33
Lưu đồ 4.3. Đọc mức nước bồn trên
34
Lưu đồ 4.4. Đọc mức nước bồn dưới
35
Lưu đồ 4.5. Gởi tín hiệu từ board chính về máy tính
36
4.3. Thi công bồn trên và bồn dưới
4.3.1. Thi công bồn trên
Bồn trên được thiết kế thu nhỏ với chất liệu mica làm vách, keo silicon và khung
Bồn trên
sắt V30mm làm khung cố định.
Hình 4.1. Bồn trên
4.3.2. Cảm biến bồn trên
Cảm biến được thiết kế bằng công tắc từ đặt ở 8 vị trí từ mức 1 đến mức 8 của
Cảm biến mực nước
Mức8- 200m3 Mức 7- 175m3 Mức 6- 150m3 Mức 5- 125m3 Mức 4- 100m3 Mức 3- 75m3 Mức 2- 50m3 Mức 1- 25m3
bồn nước.
Hình 4.2. Cảm biến nước của bồn trên
Bồn trên
Mức8 Mức 7 Mức 6 Mức 5 Mức 4 Mức 3 Mức 2 Mức 1
Kết hợp bồn nước trên và cảm biến
Hình 4.3. Bồn trên và cảm biến
37
4.3.3. Thi công bồn dưới
Hồ trên được thiết kế thu nhỏ với chất liệu mica làm vách, keo silicon và khung
Bồn dưới
sát V30mm làm khung cố định.
Hình 4.4. Bồn dưới
4.3.4. Thi công cảm biến bồn dưới
Cảm biến được thiết kế bằng công tắc từ đặt ở 4 vị trí từ mức 1 đ ến mức 4 của
Mức 4- 600m3
Mức 3- 450m3
Cảm biến mực nước
Mức 2- 300m3
Mức 1- 150m3
bồn nước, có tác dụng chống cạn và hiển thị mực nước của bồn dưới.
Hình 4.5. Cảm biến nước bồn dưới
Bồn dưới
Mức 4- 600m3
Mức 3- 450m3
Mức 2- 300m3
Mức 1- 150m3
Kết hợp bồn nước trên và cảm biến
Hình 4.6. Bồn dưới và cảm biến nước
38
4.3.5. Thi công bảng điều khiển
Hình 4.7. Lắp đặt thiết bị điều khiển bơm
4.3.6. Thiết kế board đọc mực nước bồn trên, dưới và hiển thị Led
Thiết kế mạch đọc mức nước bồn trên và dưới được tiến hành theo các mục
sau:
4.3.6.1. Thi công mạch in
Dựa vào sơ đồ nguyên lý, dùng phần mềm Eagle để vẽ, board mạch sau khi vẽ
hoàn thành như sau:
39
Hình 4.8. Mạch in của board đọc mức nước
Sau khi vẽ xong, in ra giấy A4, sau đó đặt giấy in vào mạch đồng, dùng bàn ủi
để đường mực dính vào lớp đồng, đem ngâm với dung dịch rửa mạch, khoảng 15
phút ta được mạch đồng như hình trên.
40
4.3.6.2. Thi công lắp ráp linh kiện
Hình 4.9. Mạch đọc mức nước hoàn thiện
4.3.7. Thi công board điều khiển chính
Board mạch chính được thi công gồm 2 phần: thi công mạch in và thi công lắp
ráp linh kiện hoàn chỉnh.
4.3.7.1. Thi công mạch in
Phương pháp thi công tương tự như trên
Hình 4.10. Mạch in của board chính
41
4.3.7.2. Thi công lắp ráp linh kiện
Hình 4.11. Mạch điều khiển chính hoàn thiện
4.4. Mô hình thi công hoàn chỉnh
Hình 4.12. Mô hình hoàn thiện
42
4.5. Hướng dẫn sử dụng trên máy tính
Hướng dẫn sử dụng gồm: giao diện trên màn hình và các tính năng điều khiển.
4.5.1. Các giao diện trên màn hình
Biểu tượng chạy chương trình
- Sau khi lập trình xong sẽ đóng gói và tạo file chạy như màn hình sau:
Hình 4.13. Giao diện màn hình máy tính
- Giao diện sau khi chạy chương trình
Hình 4.14. Giao diện màn hình điều khiển bơm nước trên máy tính
43
Hiển thị 8 mức nước bồn trên
Hiển thị thứ (từ thứ 2 đến chủ nhật)
Đồng hồ cập nhật từ board mạch điều khiển
Hiển thị ngày, tháng, năm
Hiển thị mức nước của bồn trên
Điều chỉnh giờ, phút, giây
2 Máy bơm nước sinh hoạt
Điều chỉnh thứ (từ thứ 2 đến chủ nhật
Hiển thị 8 mức nước bồn dưới
Điều chỉnh ngày, tháng, năm
Cài đặt mực nướ c bơm giờ cao điểm
Hiển thị mức nước của bồn dưới
Cài đặt thời gian bơm giờ thấp điểm
Cài đặt mực nước bơm giờ trung bình
Điều khiển chế độ hoạt động của bơm Auto, On, Off
- Các phím chức năng trên dao diện chính
Hình 4.15. Các phím chức năng trên màn hình điều khiển trên máy tính
4.5.2. Hướng dẫn sử dụng
Bước 1: Trên bảng điều khiển chuyển nút CS sang chế độ Auto.
Bước 2: Kết nối máy tính với board mạch điều khiển qua cáp RJ45.
Bước 3: Mở file BMS control, xem các giao diện mục 4.13
Bước 4: Muốn điều khiển máy bơm ở chế độ bằng tay thì chuyển nút System sang
chế độ ON, muốn dừng chuyển sang OFF.
Bước 5: Muốn điều khiển máy bơm hoạt động theo thời gian cài đặt chuyển nút
System sang chế độ Auto.
44
- Các nút cài đặt mức nước giờ cao điểm, trung bình và điểu chỉnh thời gian giờ
thấp điểm giúp cho người vận hành linh hoạt điều khiển cho phù hợp với
từng nhu cầu sử dụng nước khác nhau.
- Các nút cài đặt ngày, giờ giúp người vận hành kiểm tra sự hoạt động của hệ
thống.
- Trên màn hình hiển thị cả 2 chế độ mực nước qua hình ảnh và theo các cảm
biến giúp người vận hành quan sát được mức nước thực tế trong bồn.
4.6. Kết quả khi điều khiển bơm nước bởi BMS
Theo tính toán bơm nước mục 2.2.6 chia ra làm các thời điểm bơm hoạt động
như sau:
4.6.1. Giờ thấp điểm từ 22h00 đến 4h00. Nếu nước bồn cạn đến cảm biến 1
hoặc sau 3h00 thì bơm hoạt động đến cảm biến 8.
Hệ thống ON khi mực nước đến cảm biến 1 và OFF khi mực nước bơm tới
cảm biến 8. Hình chụp thực tế trên màn hình máy tính và hình kết nối giữa máy tính
và mô hình thực tế.
45
4.6.1.1. Hình chụp mô hình ở chế độ ON
Theo hình chụp trên màn hình máy tính, hiện tại 3giờ 8 phút 18 giây, hình bồn
Hình hiển thị bồn hết nước
Mức nước đến cảm biến 1
Giờ
Auto - System đang ON
trên cạn nước và báo mức nước số 1, system đang ở chế độ Auto và ON.
Đèn báo động cơ đang hoạt động
Nút CS ở vị trí Auto
Đèn báo bồn trên cạn đến mức 1
Hình 4.16. Chế độ ON trên mà hình vi tính giờ thấp điểm
Hình 4.17. Kết nối giữa máy tính và mô hình chế độ ON
46
4.6.1.2. Hình chụp mô hình ở chế độ OFF
Giờ
Hình hiển thị bồn đầy nước
Mức nước đến cảm biến 8
Chế độ Auto System đang OFF
Khi bơm tới mức 8 thì trên màn hình máy tính thể hiện như sau:
Đèn báo bồn trên ở mức 8 (bồn đầy nước)
Chế độ Auto Đèn báo ở chế độ OFF
Hình 4.18. Chế độ OFF trên mà hình vi tính giờ thấp điểm
Hình 4.19. Kết nối giữa máy tính và mô hình chế độ OFF
47
4.6.2. Giờ cao điểm 17h00 đến 20h00 mức nước cạn đến cảm biến 1 thì bơm
đến cảm biến 4.
4.6.2.1. Hình chụp trên màn hình máy tính và hình kết nối giữa máy tính và
Đồng hồ thời gian thực
Hình hiển thị bồn hết nước
Mức nước đến cảm biến 1
Chế độ Auto System đang Hệ thống ON ON
mô hình ở chế độ ON
Đèn báo động cơ đang hoạt động
Đèn báo bồn trên cạn đến mức 1
Hình 4.20. Chế độ ON trên màn hình vi tính giờ cao điểm
Hình 4.21. Kết nối giữa máy tính và mô hình chế độ ON
48
4.6.2.2. Hình chụp trên màn hình máy tính và hình kết nối giữa máy tính và
Đồng hồ thời gian thực
Mức nước đến cảm biến 4
Hệ thống OFF
mô hình ở chế độ OFF
Chế độ Auto Đèn báo ở chế độ OFF
Đèn báo bồn trên ở mức 4
Hình 4.22. Chế độ OFF trên màn hình vi tính giờ cao điểm
Hình 4.23. Kết nối giữa máy tính và mô hình chế độ OFF
49
Chương 5: KẾT LUẬN
5.1. So sánh khi chưa sử dụng BMS và khi sử dụng BMS
Sau khi điều khiển thực tế trên mô hình, kết quả điều khiển bơm nước bình
thường và kết quả điều khiển bởi BMS được thống kê theo 2 mục sau:
5.1.1. Kết quả khi chưa sử dụng BMS
- Motor bơm nước hoạt động theo phao nước của bồn trên. Vì vậy, thường
hoạt động vào giờ cao điểm sẽ ảnh hưởng đến lưới điện đang sử dụng.
- Không giám sát được thời gian bơm nên không thể bảo trì hoàn hảo.
- Không phát hiện hư hỏng khi có sự cố đột xuất từ máy bơm.
- Tốn tiền điện gấp 3 lần giờ thấp điểm khi bơm hoạt động vào giờ cao điểm.
- Theo tính toán cụ thể, điện năng tiêu thụ cho hệ thống bơm nước sinh hoạt
một năm là 200.109.790Đ.
5.1.2. Kết quả khi sử dụng BMS
- Motor bơm nước hoạt động theo giờ thấp điểm và trung bình dựa vào điều
kiện hiện tại và các cảm biến từ bồn trên và bồn dưới.
- Giảm tải cho lưới điện hiện tại đang sử dụng.
- Giám sát được thời gian bơm nên dễ dàng bảo trì bảo dưỡng.
- Phát hiện hư hỏng khi bơm không h oạt động.
- Hiển thị tình trạng hoạt động của máy bơm trên màn hình máy tính.
- Theo tính toán cụ thể, điện năng tiêu thụ cho hệ thống bơm nước sinh hoạt
khi điều khiển bởi BMS một năm là 134.827.350Đ.
Vậy, mỗi năm khi sử dụng hệ thống BMS điều khiển máy bơm nước sinh hoạt
cho tòa nhà Maritime Bank tiết kiệm so với điều khiển bình thường là:
65.282.440Đ. Đồng thời giảm thời gian nhân công kiểm tra hệ thống này.
5.2. Hướng phát triển đề tài
- Kết hợp BMS với biến tần để điều khiển bơm nước.
- Điều khiển BMS giám sát qua mạng internet.
- Kết hợp phần mềm lập trình với các hệ thống BMS có trên thị trường.
- Lập trình BMS điều khiển cho toàn bộ hệ thống của tòa nhà.
50
TÀI LIỆU THAM KHẢO
[1]. Hướng dẫn thiết kế hệ thống quản lý tòa nhà – Tủ sách khoa học công nghệ xây
dựng.
[2]. Hướng dẫn thiết kế hệ thống quản lý tòa nhà – TS. Nguyễn Trung Hòa - Nhà
xuất bản Xây Dựng.
[3]. Vi điều khiển lý thuyết và thực hành – Nguyễn Đình Phú - Trường ĐH Sư
Phạm Kỹ Thuật TP. HCM.
[4]. BMS design guide -Tủ sách khoa học công nghệ xây dựng - Nhà xuất bản xây
dựng – Vietnamese.
[5].Building management system-Josso Russol Cohn.
[6].Understanding building automation system direct digital control, energy
management, life safety, security, access control, lighting building managments
programs- Reinhold A.Carlsold and Robert and Rick Ross - June 20th 1994
[7]. Building Automation -Hermann Merz, Thomas Hansemann, Christof Hübner
Communication Systems with EIB/KNX, LON and BACnet.
[8]. Electricity &Controls forHVAC/R- Stephen L. Herman, Bennie L. Sparkman.
[9]. Energy Management SystemsandDirect Digital Control- Richard A. Panke,
CEM.
[10]. http://www.isolutions.com.vn/Article/ViewArticle/60/he-thong-giam-sat-khi-
co.
PHỤ LỤC
I. Chương trình đọc mực nước cảm biến bồn trên và bồn dưới
org 0000h
;khoi tao
tmod,#00100000b ;timer1 hoat dong mode2 tu dong nap 8 bit cao , mov
thu
scon,#01010010b ;uart 8 bit (1 bit star=0, 1 bit stop=1) , thu 1 ky mov
tu , cho phep phat 1 ky tu
;timer0 mode 1 16 bit
th1,#-3 ;toc do 9600 baud ,Xtal = 11,059 MHz mov
;cho timer1 chay setb tr1
swt8 bit P1.7
swt7 bit P1.6
swt6 bit P1.5
swt5 bit P1.4
swt4 bit P1.3
swt3 bit P1.2
swt2 bit P1.1
swt1 bit P1.0
swd4 bit P2.3
swd3 bit P2.2
swd2 bit P2.1
swd1 bit P2.0
led1 bit p2.4
led2 bit p2.5
led3 bit p2.6
led4 bit p2.7
Led equ p0
bon_tren equ 70h
bon_duoi equ 71h
bom1_status equ 72h
bom2_status equ 73h
bom1 bit P3.3
bom2 bit P3.4
P1,#255 mov
Led,#255 mov
setb swd1
setb swd2
setb swd3
setb swd4
clr p0.0
clr led1
setb led2
setb led3
setb led4
mov r0,#0
mov a,#0
mov bon_tren,#1
mov bon_duoi,#2
clr led1
clr led2
setb led3
setb led4
mov bom1_status,#0
mov bom2_status,#0
;================================================
nhan:
mov bom1_status,#0
mov bom2_status,#0
lcall receiver
cjne a,#68,duoi ; D
mov a,bon_duoi
call send
duoi:
cjne a,#84,pump ; T
mov a,bon_tren
call send
pump:
cjne a,#80,exs ; P
mov a,bom1_status
call send
mov a,bom2_status
call send
exs:
sjmp nhan
;================================================
receiver:
P3.2 clr
detect_ri jmp
re_recei:
bom1,d5 JB
call delay41
JB bom1,re_recei
mov bom1_status,#1
d5: JB bom2,t8
call delay41
bom2,d5 JB
bom2_status,#1 mov
t8:
JB swt8,t7
call delay41
JB swt8,t8
mov bon_tren,#8
mov Led,#0
jmp d4
t7:
JB swt7,t6
call delay41
JB swt7,t7
mov bon_tren,#7
mov Led,#128
jmp d4
t6:
JB swt6,t5
call delay41
JB swt6,t6
mov bon_tren,#6
mov Led,#192
jmp d4
t5:
JB swt5,t4
call delay41
JB swt5,t5
mov bon_tren,#5
mov Led,#224
jmp d4
t4:
JB swt4,t3
call delay41
JB swt4,t4
mov bon_tren,#4
mov Led,#240
jmp d4
t3:
JB swt3,t2
call delay41
JB swt3,t3
mov bon_tren,#3
mov Led,#248
jmp d4
t2:
JB swt2,ss1
call delay41
JB swt2,t2
mov bon_tren,#2
mov Led,#252
jmp d4
ss1:
JB swt1,d4
call delay41
JB swt1,ss1
mov bon_tren,#1
mov Led,#254
jmp d4
re_recei1:
re_recei jmp
d4:
swd4,d3 JB
call delay41
swd4,d4 JB
bon_duoi,#4 mov
led1 clr
led2 clr
led3 clr
led4 clr
d0 jmp
d3:
swd3,d2 JB
call delay41
swd3,d3 JB
bon_duoi,#3 mov
led1 clr
led2 clr
led3 clr
led4 setb
d0 jmp
d2:
JB swd2,d1
call delay41
JB swd2,d2
mov bon_duoi,#2
clr led1
clr led2
led3 setb
led4 setb
d0 jmp
d1:
swd1,d0 JB
call delay41
swd1,d1 JB
bon_duoi,#1 mov
led1 clr
setb led2
setb led3
setb led4
jmp d0
d0:
detect_ri:
jnb ri,re_recei1
mov a,sbuf ; nap du lieu vua nhan vao thanh ghi a
ri clr ; xoa ri
ret
;=================================================
send:
setb p3.2
jnb ti,$
clr ti ; xoa ti
mov sbuf,a ; truyen du lieu ve may tinh
call delay
mov a,#00h
ret
;=================================================
delay:
mov r7,#25
del1: mov r6,#255
del2: djnz r6,del2
djnz r7,del1
ret
;=================================================
DELAY1S:
mov r5,#100
x1:
mov r6,#20
x2:
mov r7,#250
djnz r7,$
djnz r6,x2
djnz r5,x1
ret
;******************************************************************
delay41:
mov r4,#50 ; 90h
del412:
mov r3,#255 ; 200
djnz r3,$
djnz r4,del412
ret
;******************************************************************
DELAY50UF:
MOV R6,#20
RE:
R7,#250 MOV
DJNZ R7,$
DJNZ R6,RE
RET
;******************************************************************
Delay10ms:
r5,#15 ;1s la 50 mov
xxx1:
r6,#20 mov
xxx2:
r7,#250 mov
djnz r7,$
djnz r6,xxx2
djnz r5,xxx1
ret
;=================================================
end
II. Chương trình điều khiển của board chính
;ghi chu phan cung
;P1 dieu khien LCD
;P2.7 - RS
;P2.6 - RW
;P2.5 - ENA
;P2.4 - led_lcd
;P0 ket noi Real time
;P3.6 - RW
;p3.7 - DS
;ALE - AS
;p2.1 ket noi nut Mode
;p2.0 ket noi nut tang
;p2.2 ket noi nut giam
;p2.3 ket noi nut Enter
;******************************************************************
;dia chi bat dau chuong trinh chinh Org 0000h
;khoi tao
mov tmod,#00100000b ;timer1 hoat dong mode2 tu dong nap 8 bit cao , thu
mov scon,#01010010b ;uart 8 bit (1 bit star=0, 1 bit stop=1) , thu 1 ky tu , cho
phep phat 1 ky tu
;timer0 mode 1 16 bit
mov th1,#-3 ;toc do 9600 baud ,Xtal = 11,059 MHz
setb tr1 ;cho timer1 chay
rs BIT P2.7
rw BIT P2.6
ena BIT P2.5
light_lcd BIT P2.4
loa BIT P3.5
triac BIT P3.4
mode BITP2.1 ; nut nhan de chinh gio
inc_b BIT P2.0 ; nut nhan tang
dec_b BIT P2.2 ; nut nhan giam
enter BIT P2.3 ; nut nhan Enter
eux equ p1
giay equ 70h ;o nho chua du lieu giay
phut equ 71h ;o nho chua du lieu phut
gio equ 72h ;o nho chua du lieu gio
thu ;o nho chua du lieu thu equ 73h
ngay ;o nho chua du lieu ngay equ 74h
thang ;o nho chua du lieu thang equ 75h
nam ;o nho chua du lieu nam equ 76h
luu equ 50h ; 0 normal, 1 h on, 2 m on, 3 h off, 4 m off
mode_ch ;0: normal, 1: gio, 2: phut equ 4ah
mode_T_D_A ;0: normal, 1: set time, 2 : set date, 3: set equ 4bh
alarm
chop ;chop = 0 thi kg hien thi equ 4ch
bien_bt ;0: tat, 1: bao thuc equ 4dh
var_relay ;0: relay ngat 1: relay dong equ 4eh
dulieu ; data nhan tu may tinh equ 4fh
muc_gio_cao_diem ; gio cao diem cho phep bom den muc equ 51h
may???
muc_gio_trb equ 52h ; gio trung binh cho phep bom den muc
may???
gio_on ; gio ban dem cho phep bom chay equ 53h
phut_on ; gio ban dem cho phep bom chay equ 54h
mode_bom ; mode: Auto, ON, OFF cho bom equ 55h
bon_duoi equ 6ah
bon_tren equ 6bh
thap_diem equ 6ch
temp equ 6dh
relay equ 6eh
mov bon_tren,#0
mov bon_duoi,#0
mov mode_ch,#0
mov bien_bt,#0
mov mode_T_D_A,#0
chop,#1 mov
r1,#0 mov
luu,#0 mov
;*******************************************************************
RS CLR
RW CLR
ENA CLR
LCD_INIT ; khoi tao LCD CALL
bip call
loa clr
light_lcd clr
TRIAC setb
enter1:
LCD_INIT ; khoi tao LCD CALL
a,#00100000b mov
;*******************************************************************
r0,#0ah ; Set bo dao dong cua RTC mov
@r0,a ; Binary, 24h movx
a,#00000110b mov
;*******************************************************************
r0,#0bh mov
@r0,a movx
time call
update call
hien_thi call
Load_date call
update_status call
;*******************************************************************
start:
call receiver
cjne ; C a,#67,read
call receiver
cjne a,#1,st2
call on_pump
sjmp st3
st2:
cjne a,#2,st3
call off_pump
st3:
sjmp start
;===========================================================
read:
a,#82,write ; R cjne
mov a,GIO
call send
mov a,PHUT
call send
mov a,GIAY
call send
mov a,THU
call send
mov a,NGAY
call send
mov a,THANG
call send
mov a,NAM
call send
mov a,muc_gio_cao_diem
call send
mov a,muc_gio_trb
call send
mov a,gio_on
call send
mov a,phut_on
call send
mov a,mode_bom
call send
mov a,relay
call send
sjmp start
;===========================================================
write:
a,#72,min ; H cjne
call receiver
mov r0,#04h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
jmp ex_write
min:
cjne a,#77,secc ; M
call receiver
mov r0,#02h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
jmp ex_write
secc: cjne a,#83,dayy ; S
call receiver
mov r0,#00h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
jmp ex_write
dayy:
cjne a,#65,ddd ; day A
call receiver
mov r0,#06h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
jmp ex_write
ddd: cjne a,#66,mmm ; dd B
call receiver
mov r0,#07h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
jmp ex_write
mmm: cjne a,#69,yyy ; mm E
call receiver
mov r0,#08h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
sjmp ex_write
yyy: cjne a,#70,x1 ; yy F
call receiver
mov r0,#09h
movx @r0,a
call bip
CALL UPDATE
CALL HIEN_THI
x1: cjne a,#71,x2 ; G set muc gio cao diem
call receiver
mov r0,#30h
movx @r0,a
call bip
x2: cjne a,#73,x3 ; I set muc gio trung binh
call receiver
mov r0,#31h
movx @r0,a
call bip
x3: cjne a,#76,x4 ; L set gio cho gio bom thap diem
call receiver
mov r0,#32h
movx @r0,a
mov gio_on,a
call bip
cjne a,#79,x5 ; O set phut cho gio bom thap diem x4:
call receiver
mov r0,#33h
movx @r0,a
mov phut_on,a
call bip
cjne a,#78,ex_write ; N mode bom x5:
call receiver
mov r0,#34h
movx @r0,a
cjne a,#1,test2
call off_pump
call bip
test2:
cjne a,#2,test3
call bip
test3: cjne a,#3,test4
call on_pump
call bip
test4:
ex_write:
jmp start
;*******************************************************************
update_status:
MOV r0,#35h ; doc trang thai luu tren rom
MOVX a,@R0
cjne a,#1,offdv ; neu rom luu gia tri 1 thi ON thiet bi
call on_pump
sjmp end_update
offdv:
call off_pump
end_update:
ret
;*******************************************************************
on_pump:
mov ; ON Device a,#1
mov r0,#35h
movx @r0,a
setb triac
mov relay,#1
ret
;*******************************************************************
off_pump:
mov ; OFF Device a,#0
mov r0,#35h
movx @r0,a
clr triac
mov relay,#0
ret
;===========================================================
receiver2:
clr P3.2
jnb ri,$
mov a,sbuf ; nap du lieu vua nhan vao thanh ghi a
clr ri ; xoa ri
ret
;===========================================================
receiver:
clr P3.2
sjmp detect_ri
re_recei:
call read_button
CALL UPDATE
MOV A,2fh
CJNE A,#0,detect_ri
CALL HIEN_THI
detect_ri: jnb ri,re_recei
a,sbuf ; nap du lieu vua nhan vao thanh ghi a mov
ri ; xoa ri clr
ret
;===========================================================
read_button:
JB MODE,inc_bu
clr light_lcd
call bip
CALL DELAY41
JNB MODE,$
CALL DELAY41
CALL ADJ_TIME
inc_bu: JB
inc_b,test_bell
clr light_lcd
CALL DELAY41
JNB inc_b,dec_bu
dec_bu: JB
dec_b,test_bell
clr light_lcd
CALL DELAY41
JNB inc_b,$
call bip
call reset_time
call time
call update
call hien_thi
call Load_date
test_bell: JB
ENTER,ex_read_bt
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
MOV r0,#35h ; doc trang thai luu tren rom
MOVX a,@R0
cjne a,#0,offp ; neu rom luu gia tri 0 (OFF thiet
bi) thi dao thanh ON
call on_pump ; ON
sjmp ex_read_bt
offp: cjne a,#1,ex_read_bt
call off_pump ; OFF
ex_read_bt:
ret
;===========================================================
send:
setb p3.2
jnb ti,$
; xoa ti ti clr
; truyen du lieu ve may tinh sbuf,a mov
delay call
a,#00h mov
p3.2 clr
ret
;===========================================================
delay:
mov r7,#5
mov r6,#255 del1:
djnz r6,del2 del2:
djnz r7,del1
ret
;*******************************************************************
thuhai:
EUX,#10000001B ; dia chi O nho 01H MOV
LCD_COMMAND LCALL
EUX,#01001101B ; M10110010B MOV
LCD_DATA LCALL
EUX,#10000010B ; dia chi O nho 02H MOV
LCD_COMMAND LCALL
EUX,#01101111B ; o 11110110B MOV
LCD_DATA LCALL
EUX,#10000011B ; dia chi O nho 03H MOV
LCD_COMMAND LCALL
EUX,#01101110B ; 01110110B MOV
LCD_DATA LCALL
RET
;*******************************************************************
thuba:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010100B ; T 00101010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01110101B ; u 10101110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01100101B ; e 10100110B
LCALL LCD_DATA
RET
;*******************************************************************
thutu:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010111B ; W 11101010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01100101B ; e 10100110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01100100B ; d 00100110B
LCALL LCD_DATA
RET
;*******************************************************************
thunam:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010100B ; T 00101010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01101000B ; h 00010110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01110101B ; u 10101110B
LCALL LCD_DATA
RET
;*******************************************************************
thusau:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01000110B ;F 01100010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01110010B ; r 01001110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01101001B ; I 10010110B
LCALL LCD_DATA
RET
;*******************************************************************
thubay:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010011B ; S 11001010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01100001B ; a 10000110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01110100B ; t 00101110B
LCALL LCD_DATA
RET
;*******************************************************************
chunhat:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010011B ; S 11001010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01110101B ;u 10101110B
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01101110B ; n 01110110B
LCD_DATA LCALL
RET
;*******************************************************************
Time:
EUX,#11000000B ; dia chi O nho 10H c0h MOV
0000000011B
LCALL LCD_COMMAND
MOV EUX,#01010100B ; T 00101010B
LCALL LCD_DATA
MOV EUX,#11000001B ; dia chi O nho 11H
C1H 10000011B
LCALL LCD_COMMAND
MOV EUX,#01101001B ; I 10010110B
LCALL LCD_DATA
MOV EUX,#11000010B ; dia chi O nho 12H
C2H 01000011B
LCALL LCD_COMMAND
MOV EUX,#01101101B ; m 10110110B
LCALL LCD_DATA
MOV EUX,#11000011B ; dia chi O nho 13H
C3H 11000011B
LCALL LCD_COMMAND
MOV EUX,#01100101B ; e 10100110B
LCALL LCD_DATA
MOV EUX,#11000100B ; dia chi O nho 14H
C4H 00100011B
LCALL LCD_COMMAND
MOV EUX,#00111010B ; dau ":"
01011100B
LCALL LCD_DATA
MOV EUX,#10000100B ; dia chi O nho 04H
00100001B
LCALL LCD_COMMAND
MOV EUX,#00111010B ; dau ":" hng trn
01011100B
LCALL LCD_DATA
MOV EUX,#11001001B ; dia chi O nho 19H
10010011B
CALL LCD_COMMAND
MOV EUX,#00111010B ; dau 2 cham gio
01011100B
CALL LCD_DATA ;MOV EUX,#11001100B
;DIA CHI O NHO 1CH
00110011B ;CALL LCD_COMMAND
;MOV
EUX,#00111010B ; dau 2 cham phut 01011100B
;CALL LCD_DATA
MOV EUX,#10001000B ; dia chi O nho 18H
00010001B
CALL LCD_COMMAND
MOV EUX,#00101111B ; dau / ngay
11110100B
CALL LCD_DATA
MOV EUX,#10001011B ; dia chi O nho 1BH
11010001B
CALL LCD_COMMAND
MOV EUX,#00101111B ; dau / thang
11110100B
LCD_DATA CALL
Ret
;*******************************************************************
setup:
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#01010011B ; S 11001010B
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#01100101B ; e LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#01110100B ; t 00101110B
LCALL LCD_DATA
MOV EUX,#10000100B ; dia chi O nho 04H
00100001B
LCALL LCD_COMMAND
MOV EUX,#00111010B ; dau ":" hng trn
01011100B
LCALL LCD_DATA
RET
;*******************************************************************
reset_time: ;
h:04, m:02, s:00, day:06, dat:07, month:08, y:09
mov r0,#00h ; s
mov R3,#0
mov a,R3
movx @r0,a
mov ; m r0,#02h
mov R3,#30
mov a,R3
movx @r0,a
mov r0,#04h ; h
mov R3,#7
mov a,R3
movx @r0,a
mov r0,#06h ; day
mov R3,#7
mov a,R3
movx @r0,a
mov ; dd r0,#07h
mov R3,#22
mov a,R3
movx @r0,a
mov ; m r0,#08h
mov R3,#12
mov a,R3
movx @r0,a
mov ; y r0,#09h
mov R3,#12
mov a,R3
movx @r0,a
ret
;*******************************************************************
ADJ_TIME:
mov r0,#0bh
;******************************************************************
a,#10000110b ;tat bo dao dong RTC mov
@r0,a ;cai lai ngay, thang, nam movx
r0,#0ah ; cai lai gio, phut, giay mov
;*******************************************************************
a,#01110000b mov
@r0,a movx
H:
UPDATE CALL
HIEN_THI CALL
HIEN_THI CALL
H_THI_1 CALL
JB inc_b,DEC_H INC_H:
tangh:
bip call
light_lcd clr
r0,#04h mov
a,@r0 ; doc gio trong Realtime (luu trong 0 nho movx
04h)
R3,a ; luu vao thanh ghi r3 mov
R3 ; tang gio len 1 don vi INC
R3,#24,saveh1 ; kiem tra xem co tang qua 24g kg? CJNE
R3,#0 ; neu >24g thi gio = 0 MOV
mov a,R3 ; sau khi tang xong luu gio vua tang saveh1:
vao a
@r0,a ; ghi vao Realtime lai movx
UPDATE CALL
HIEN_THI CALL
Load_date call
delay10ms call
JNB inc_b,tangh
call delay41
DEC_H: dec_b,MODE_H JB
giamh:
call bip
clr light_lcd
mov r0,#04h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#255,saveh2
MOV R3,#23
saveh2:
mov a,R3
movx @r0,a
CALL update
CALL hien thi
call Load_date
call delay10ms
JNB dec_b,giamh
CALL DELAY41
MODE_H:
JB MODE,EX_H
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp M
EX_H: ENTER,H JB
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
M:
CALL UPDATE
CALL HIEN_THI
call Load_date
CALL H_THI_2
INC_M:
JB inc_b,DEC_M
tangM: call bip
clr light_lcd
mov r0,#02h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#60,saveM1
MOV R3,#0
mov saveM1: a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangM
call delay41
DEC_M:
JB dec_b,MODE_M
giamM: call bip
clr light_lcd
mov r0,#02h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#255,saveM2
MOV R3,#59
saveM2:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB dec_b,giamM
CALL DELAY41
MODE_M:
JB MODE,EX_M
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp S
EX_M:
JB ENTER,M
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
S:
CALL UPDATE
CALL HIEN_THI
call Load_date
CALL H_THI_3
INC_S:
JB inc_b,DEC_S
tangS:
call bip
clr light_lcd
mov r0,#00h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#60,saveS1
MOV R3,#0
saveS1:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangS
call delay41
DEC_S: JB dec_b,MODE_S
giamS:
call bip
clr light_lcd
mov r0,#00h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#255,saveS2
MOV R3,#59
saveS2:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB dec_b,giamS
CALL DELAY41
MODE_S:
JB MODE,EX_S
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp DAY
EX_S:
JB ENTER,S
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
DAY:
CALL UPDATE
CALL HIEN_THI
call Load_date
call Load_date
CALL XOATHU
INC_DAY:
JB inc_b,DEC_DAY
tangDAY: call bip
clr light_lcd
mov r0,#06h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#8,saveDAY1
MOV R3,#1
saveDAY1:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangDAY
call delay41
DEC_DAY:
JB dec_b,MODE_DAY
giamDAY:
call bip
clr light_lcd
mov r0,#06h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#0,saveDAY2
MOV R3,#7
saveDAY2:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB dec_b,giamDAY
CALL DELAY41
MODE_DAY:
JB MODE,EX_DAY
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp DAT
EX_DAY:
JB ENTER,DAY
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
DAT:
CALL UPDATE
CALL HIEN_THI
call Load_date
CALL XOANGAY
INC_DAT:
JB inc_b,DEC_DAT
tangDAT:
call bip
clr light_lcd
mov r0,#07h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#31,saveDAT1
MOV R3,#1
saveDAT1:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangDAT
call delay41
DEC_DAT:
JB dec_b,MODE_DAT
giamDAT:
call bip
clr light_lcd
mov r0,#07h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#0,saveDAT2
MOV R3,#30
saveDAT2:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB dec_b,giamDAT
CALL DELAY41
MODE_DAT:
MODE,EX_DAT JB
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp MO
EX_DAT:
JB ENTER,DAT
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
MO:
CALL UPDATE
CALL HIEN_THI
call Load_date
CALL XOATHANG
INC_MO:
JB inc_b,DEC_MO
tangMO:
call bip
clr light_lcd
mov r0,#08h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#13,saveMO1
MOV R3,#1
saveMO1:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangMO
call delay41
DEC_MO:
dec_b,MODE_MO JB
giamMO:
call bip
clr light_lcd
mov r0,#08h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#0,saveMO2
MOV R3,#12
saveMO2:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB dec_b,giamMO
CALL DELAY41
MODE_MO:
JB MODE,EX_MO
call bip
clr light_lcd
CALL DELAY41
JNB MODE,$
CALL DELAY41
jmp Y
EX_MO:
JB ENTER,MO
clr light_lcd
call bip
CALL DELAY41
JNB ENTER,$
CALL DELAY41
jmp ex_adj
Y:
CALL UPDATE
CALL HIEN_THI
call Load_date
CALL XOANAM
INC_Y:
JB inc_b,DEC_Y
tangY:
call bipclr light_lcd
mov r0,#09h
movx a,@r0
mov R3,a
INC R3
CJNE R3,#100,saveY1
MOV R3,#0
saveY1:
mov a,R3
movx @r0,a
CALL UPDATE
CALL HIEN_THI
call Load_date
call delay10ms
JNB inc_b,tangY
call delay41
DEC_Y:
JB dec_b,MODE_Y
giamY:
call bip
clr light_lcd
mov r0,#09h
movx a,@r0
mov R3,a
DEC R3
CJNE R3,#0,saveY2
MOV R3,#99
saveY2:
mov a,R3
movx @r0,a
CALL UPDATE
HIEN_THI CALL
Load_date call
delay10ms call
dec_b,giamY JNB
DELAY41 CALL
MODE_Y:
MODE,EX_Y JB
bip call
light_lcd clr
DELAY41 CALL
MODE,$ JNB
DELAY41 CALL
ex_adj jmp
EX_Y:
ENTER,Y JB
light_lcd clr
bip call
DELAY41 CALL
ENTER,$ JNB
DELAY41 CALL
ex_adj:
a,#00000110b mov
;******************************************************************
mov r0,#0bh ;MO LAI BO DAO DONG RTC
movx @r0,a
mov a,#00100000b ;mov r0,#0ah
;movx @r0,a
;*******************************************************************
call Load_date
RET
;*******************************************************************
LCD_INIT:
MOV EUX,#00000001B ; 10000000B XOA MAN HINH,
xoa luon noi dung DDRAM
LCD_COMMAND CALL
EUX,#00111000B ; 00011100B CHE DO 8 BIT, 2 MOV
LINE, FONT 5X8
LCD_COMMAND CALL
EUX,#00001100B ; 00110000B DISPLAY --> ON, MOV
CON TRO --> OFF, CON TRO NHAP NHAY --> OFF
LCD_COMMAND CALL
EUX,#00000110B ; 01100000B CON TRO DICH MOV
chuyen INC_B 1, man hinh khong dich chuyen
LCD_COMMAND CALL
RET
;*******************************************************************
LCD_COMMAND:
RS ; du lieu duoc hieu la lenh CLR
ENA SETB
NOP
NOP
NOP
ENA CLR
DELAY50UF CALL
RET
;*******************************************************************
LCD_DATA:
SETB RS ; du lieu duoc hieu la ky tu
ENA SETB
NOP
NOP
ENA CLR
DELAY50UF CALL
RET
;*******************************************************************
CHUONG TRINH DOC DU LIEU ;
GIO,PHUT,GIAY,NGAY,THANG,NAM RA VDK
;*******************************************************************
UPDATE:
r0,#04h mov
a,@r0 movx
GIO,a ; doc gia tri gio luu vao o nho GIO mov
r0,#02h mov
a,@r0 movx
PHUT,a ; doc gia tri phut luu vao o nho PHUT mov
r0,#00h mov
a,@r0 movx
GIAY,a ; doc gia tri giay luu vao o nho GIAY mov
r0,#06h mov
a,@r0 movx
THU,a ; doc gia tri giay luu vao o nho THU mov
r0,#07h mov
a,@r0 movx
NGAY,a ; doc gia tri giay luu vao o nho mov
r0,#08h NGAYmov
a,@r0 movx
THANG,a ; doc gia tri phut luu vao o nho THANG mov
mov r0,#09h
movx a,@r0
mov NAM,a ; doc gia tri gio luu vao o nho NAM
;bin_hex:
mov a,GIO
mov b,#10
div ab ; chia gio cho 10
mov 28h,a ; doi sang ma nhi phan va luu vao cac o
nho tuong ung
mov 29h,b
mov a,PHUT
mov b,#10
div ab
mov 2bh,a
mov 2ch,b
mov a,GIAY
mov b,#10
div ab
mov 2eh,a
mov 2fh,b
mov a,NGAY
mov b,#10
div ab ; chia gio cho 10mov 30h,a
; doi sang ma nhi phan va luu vao cac o nho tuong ung
mov 31h,b
mov a,THANG
mov b,#10
div ab
32h,a mov
33h,b mov
a,NAM mov
b,#10 mov
ab div
34h,a mov
35h,b mov
r0,#30h mov
a,@r0 movx
muc_gio_cao_diem,a ; doc gia tri muc gio cao diem mov
r0,#31h mov
a,@r0 movx
muc_gio_trb,a ; doc gia tri muc gio trung mov
r0,#32h binhmov
a,@r0 movx
gio_on,a ; doc gia tri gio ON bom mov
r0,#33h mov
a,@r0 movx
phut_on,a ; doc gia tri phut ON bom mov
r0,#34h mov
a,@r0 movx
mode_bom,a ; doc gia tri mode bom mov
ret
;*******************************************************************
HIEN_THI:
MOV DPTR,#MA_LCD
MOV EUX,#11000111B ;DIA CHI O NHO 47H
11100011B
CALL LCD_COMMAND
MOV A,28H
MOVC A,@A+DPTR
MOV EUX,A ; gio
CALL LCD_DATA
MOV EUX,#11001000B ;dia chi O nho 18H
00010011B
CALL LCD_COMMAND
MOV A,29H
MOVC A,@A+DPTR
MOV EUX,A ; gio
CALL LCD_DATA
MOV EUX,#11001010B ;dia chi O nho 1AH
01010011B
CALL LCD_COMMAND
MOV A,2BH
MOVC A,@A+DPTR
MOV EUX,A ; phut
CALL LCD_DATA
MOV EUX,#11001011B ;dia chi O nho 1BH
11010011B
CALL LCD_COMMAND
MOV A,2CH
MOVC A,@A+DPTR
MOV EUX,A ; phut
CALL LCD_DATA
MOV EUX,#11001101B ;dia chi O nho 1DH
10110011B
CALL LCD_COMMAND
MOV A,#00000100B
MOV EUX,#11001100B ;dia chi O nho 1CH
00110011B
CALL LCD_COMMAND
MOV EUX,#00100000B ; dau 2 cham phut
01011100B
CALL LCD_DATA ;mov A,2EH
MOVC A,@A+DPTR
MOV EUX,A ; giay
CALL LCD_DATA
MOV EUX,#11001110B ;dia chi O nho 1EH
01110011B
CALL LCD_COMMAND
MOV A,#00100000B ;mov A,2FH
MOVC A,@A+DPTR
MOV EUX,A ; giay
CALL LCD_DATA
mov a,gio
cjne a,24,thoat_ht
mov ; phut a,2ch
cjne a,0,thoat_ht
mov a,giay
cjne a,0,thoat_ht
call Load_date
thoat_ht:
ret
;*******************************************************************
Load_date:
MOV EUX,#10000110B ; dia chi O nho 47H
01100001B
CALL LCD_COMMAND
MOV A,30H
MOVC A,@A+DPTR
MOV EUX,A ; ngay
CALL LCD_DATA
MOV EUX,#10000111B ; dia chi O nho 47H
11100001B
CALL LCD_COMMAND
MOV A,31H
MOVC A,@A+DPTR
MOV EUX,A ; ngay
CALL LCD_DATA
MOV EUX,#10001001B ; dia chi O nho 19H
10010001B
CALL LCD_COMMAND
MOV A,32H
MOVC A,@A+DPTR
MOV EUX,A ; thang
CALL LCD_DATA
MOV EUX,#10001010B ; dia chi O nho 1AH
01010001B
CALL LCD_COMMAND
MOV A,33H
MOVC A,@A+DPTR
MOV EUX,A ; thang
CALL LCD_DATA
MOV EUX,#10001100B ; dia chi O nho 1CH
00110001B
CALL LCD_COMMAND
MOV EUX,#00110010B ;2 01001100B
CALL LCD_DATA
MOV EUX,#10001101B ; dia chi O nho 1DH
10110001B
CALL LCD_COMMAND
MOV EUX,#00110000B ; 0 00001100B
CALL LCD_DATA
MOV EUX,#10001110B ; dia chi O nho 1EH
01110001B
CALL LCD_COMMAND
MOV A,34H
MOVC A,@A+DPTR
MOV ; NAMb EUX,A
CALL LCD_DATA
MOV EUX,#10001111B ; dia chi O nho 1FH
11110001B
CALL LCD_COMMAND
MOV A,35H
MOVC A,@A+DPTR
MOV ; nam EUX,A
CALL LCD_DATA
mov a,thu
cjne a,#01h,thu2
call chunhat
jmp thoat
thu2:
mov a,thu
cjne a,#02h,thu3
call thuhai
jmp thoat
thu3:
mov a,thu
cjne a,#03h,thu4
call thuba
jmp thoat
thu4:
mov a,thu
cjne a,#04h,thu5
call thutu
jmp thoat
thu5:
mov a,thu
cjne a,#05h,thu6
call thunam
jmp thoat
thu6:
mov a,thu
cjne a,#06h,thu7
call thusau
jmp thoat
thu7:
mov a,thu
cjne a,#07h,thoat
call thubay
thoat:
RET
;*******************************************************************
XOATHU:
MOV DPTR,#MA_LCD
MOV EUX,#10000001B ; dia chi O nho 01H
LCALL LCD_COMMAND
MOV EUX,#20h ; SPACE 04h
LCALL LCD_DATA
MOV EUX,#10000010B ; dia chi O nho 02H
LCALL LCD_COMMAND
MOV EUX,#20h ; SPACE 04h
LCALL LCD_DATA
MOV EUX,#10000011B ; dia chi O nho 03H
LCALL LCD_COMMAND
MOV EUX,#20h ; SPACE 04h
LCALL LCD_DATA
RET
;*******************************************************************
XOANGAY:
MOV DPTR,#MA_LCD
MOV EUX,#10000110B ; dia chi O nho 47H
01100001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
MOV EUX,#10000111B ; dia chi O nho 48H
11100001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
LCD_DATA CALL
RET
;*******************************************************************
XOATHANG:
MOV DPTR,#MA_LCD
MOV EUX,#10001001B ; dia chi O nho 19H
10010001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
MOV EUX,#10001010B ; dia chi O nho 1AH
01010001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
RET
;*******************************************************************
XOANAM:
MOV DPTR,#MA_LCD
MOV EUX,#10001100B ; dia chi O nho 1CH
00110001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
MOV EUX,#10001101B ; dia chi O nho 1DH
10110001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
MOV EUX,#10001110B ; dia chi O nho 1EH
01110001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
\MOV EUX,#10001111B ; dia chi O nho 1FH
11110001B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
RET
;*******************************************************************
=
H_THI_1:
MOV DPTR,#MA_LCD
MOV EUX,#11000111B ; dia chi O nho 47H
11100011B
CALL LCD_COMMAND
MOV EUX,#20H ; space
CALL LCD_DATA
MOV EUX,#11001000B ; dia chi O nho 18H
00010011B
CALL LCD_COMMAND
MOV EUX,#20H ; space
CALL LCD_DATA
RET
;*******************************************************************
H_THI_2:
MOV DPTR,#MA_LCD
MOV EUX,#11001010B ; dia chi O nho 1AH
01010011B
CALL LCD_COMMAND
MOV EUX,#20h ; space
04h
CALL LCD_DATA
MOV EUX,#11001011B ; dia chi O nho 1BH
11010011B
CALL LCD_COMMAND
MOV EUX,#20h ; space
04h
CALL LCD_DATA
RET
;*******************************************************************
H_THI_3:
MOV DPTR,#MA_LCD
MOV EUX,#11001101B ; dia chi O nho 1DH
10110011B
CALL LCD_COMMAND
MOV EUX,#20h ; space 04h
CALL LCD_DATA
MOV EUX,#11001110B ; dia chi O nho 1EH
01110011B
CALL LCD_COMMAND
MOV EUX,#20h ; space04h
CALL LCD_DATA
RET
;*******************************************************************
delay_loa:
mov r7,#1
del_loa1:
mov r6,#90
del_loa2:
djnz r6,del_loa2
djnz r7,del_loa1
ret
;*******************************************************************
bip:
mov 37h,#1
x_loa: mov 38h,#255
bip11:
cpl loa ; loa cuon day
;clr loa
; loa ap
call delay_loa
djnz 38h,bip11
djnz 37h,x_loa
clr loa
ret
;*******************************************************************
delay41:
mov 7eh,#90h
del412:
mov 7fh,#200
djnz 7fh,$
djnz 7eh,del412
ret
;*******************************************************************
delay50:
mov tl0,#0afh ; chuong trinh con delay phuc vu chong
doi , cho phim nay len
th0,#3ch ; tre 50ms = 50000 micro second 65535- mov
50000=15535 =3caf
tr0 setb
tf0,$ jnb
ret
;*******************************************************************
delaychongdoi:
r7,#2 ; gia tri 1s la 20 mov
del_ch_d:
mov tmod,#01h
mov th0,#high(-50000)
mov tl0,#low(-50000)
setb tr0
jnb tf0,$
clr tr0
clr tf0
djnz r7,del_ch_d
ret
;*******************************************************************
DELAY1S:
mov r5,#100
xa1:
mov r6,#20
xa2:
mov r7,#250
djnz r7,$
r6,xa2 djnz
r5,xa1 djnz
ret
;*******************************************************************
DELAY50UF:
R6,#20 MOV
RE:
R7,#250 MOV
R7,$ DJNZ
R6,RE DJNZ
RET
;*******************************************************************
Delay10ms:
r5,#15 ;1s la 50 mov
xxx1:
r6,#20 mov
xxx2:
r7,#250 mov
r7,$ djnz
r6,xxx2 djnz
r5,xxx1 djnz
ret
;*******************************************************************
Ma_LCD:
00110000B ; 0 0 00001100B db
00110001B ; 1 1 10001100B db
00110010B ; 2 2 01001100B db
00110011B ; 3 3 11001100B db
00110100B ; 4 4 00101100B db
10101100B db 00110101B ; 5 5
01101100B db 00110110B ; 6 6
11101100B db 00110111B ; 7 7
00011100B db 00111000B ; 8 8
10011100B db 00111001B ; 9 9
;*******************************************************************
10000010B ; 10 muon chuyen chu IN db A
tha`nh chu THUONG thi thay 4 bit thap la` 0010 tha`nh 0110
db 01000010B ; B 11
db 11000010B ; C 12
db 00100010B ; D 13
db 10100010B ; E 14
db 01100010B ; F 15
db 11100010B ; G 16
db 00010010B ; H 17
db 10010010B ; I 18
db 01010010B ; J 19
db 11010010B ; K 20
db 00110010B ; L 21
db 10110010B ; M 22
db 01110010B ; N 23
db 11110010B ; O 24
db 00001010B ; P 25
db 10001010B ; Q 26
db 01001010B ; R 27
db 11001010B ; S 28
db 00101010B ; T 29
db 10101010B ; U 30
db 01101010B ; V 31
db 11101010B ; W 32
db 00011010B ; X 33
db 10011010B ; Y 34
db 01011010B ; Z 35
;*******************************************************************
00000100B ; space 36 db
db 10000100B ; ! 37
db 11111100B ; ? 38
db 01011100B ; : 39
db 11010100B ; + 40
db 10110100B ; - 41
db 01010100B ; * 42
db 11110100B ; / 43
db 00010100B ; ( 44
db 10010100B ; ) 45
db 00111100B ; < 46
db 01111100B ; > 47
db 10111100B ; = 48
db 01110100B ; dau "."49
db 00110100B ; dau ","50
db 00100100B ; $ 51
db 11000100B ; # 52
db 01100100B ; & 53
db 01111110B ; ---> 54
db 11111110B ; <--- 55
;*******************************************************************
END
III. Chương trình giao tiếp giữa board mạch chính và máy tính
unit StatusWP;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ComDrv32;
type
TForm2 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image37: TImage;
Image38: TImage;
Image39: TImage;
Label1: TLabel;
CommPortDriver1: TCommPortDriver;
Edit1: TEdit;
Timer1: TTimer;
ComboBox1: TComboBox;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image13: TImage;
Label34: TLabel;
Label35: TLabel;
Label3: TLabel;
Label39: TLabel;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
Image15: TImage;
Image16: TImage;
Panel1: TPanel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label2: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
ComboBox2: TComboBox;
ComboBox6: TComboBox;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
ComboBox11: TComboBox;
ComboBox12: TComboBox;
Label28: TLabel;
Label30: TLabel;
Image14: TImage;
Label29: TLabel;
Label31: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure ComboBox4Change(Sender: TObject);
procedure ComboBox5Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox6Change(Sender: TObject);
procedure ComboBox7Change(Sender: TObject);
procedure ComboBox8Change(Sender: TObject);
procedure ComboBox9Change(Sender: TObject);
procedure ComboBox10Change(Sender: TObject);
procedure ComboBox11Change(Sender: TObject);
procedure ComboBox12Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
//**************************************************************
var
h,m,s,b,gio,phut,giay,thu,ngay,thang,nam,l,t,d,e,f,g,dk,du,ng,dem,bom1,bom2,
set_thu,set_ngay,set_thang,set_nam,set_muc_cao_diem,set_muc_trb,hh,mm,ss,
set_gio_bom,set_phut_bom,mode_bom,tren,duoi,old_state,relay:byte;
daychuyen:array[1..4,1..8] of byte;
ma:array[1..8] of byte;
DateTime : TDateTime;
// year, month, day: word;
hour, min, sec, msec: Word;
Form2: TForm2;
implementation
{$R *.DFM}
//***************************************************************
procedure delay(ms:longint);
var
mytime:longint;
begin
mytime:=gettickcount + ms;
while gettickcount < mytime do
application.ProcessMessages;
end;
//***************************************************************
procedure TForm2.Timer1Timer(Sender: TObject);
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('R');
CommPortDriver1.ReadByte(gio);
CommPortDriver1.ReadByte(phut);
CommPortDriver1.ReadByte(giay);
CommPortDriver1.ReadByte(thu);
CommPortDriver1.ReadByte(ngay);
CommPortDriver1.ReadByte(thang);
CommPortDriver1.ReadByte(nam);
CommPortDriver1.ReadByte(set_muc_cao_diem);
CommPortDriver1.ReadByte(set_muc_trb);
CommPortDriver1.ReadByte(set_gio_bom);
CommPortDriver1.ReadByte(set_phut_bom);
CommPortDriver1.ReadByte(mode_bom);
CommPortDriver1.ReadByte(relay);
CommPortDriver1.SendString('P');
CommPortDriver1.ReadByte(bom1);
CommPortDriver1.ReadByte(bom2);
CommPortDriver1.SendString('D');
CommPortDriver1.ReadByte(d);
CommPortDriver1.SendString('T');
CommPortDriver1.ReadByte(t);
CommPortDriver1.Disconnect;
DecodeTime( time, hour, min, sec, msec );
//***************************************************************
// Kiem tra gio bom thap diem Co the set tu: 22h00 - 4h00
//***************************************************************
if (gio = set_gio_bom) and(phut >= set_phut_bom)then
begin
if (d >= 2) and (t < 8) then
begin
if (ComboBox1.Text='Auto') then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end
end
end;
//***************************************************************
if (gio > set_gio_bom) then
begin
if (d >= 2) and (t < 8) then
begin
if (ComboBox1.Text='Auto') then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end
end
end;
//**************************************************************
if ((set_gio_bom = 22) or (set_gio_bom = 23)) then
begin
if (gio <= 3) then
begin
if (d >= 2) and (t < 8) then
begin
if (ComboBox1.Text='Auto') then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end
end
end
end;
//***************************************************************
if (ComboBox1.Text='Auto') then
begin
if (relay = 1) and (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 0;
end;
//***************************************************************
if (relay = 1) and (t = 8) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 0;
end;
end;
//***************************************************************
if (ComboBox1.Text='ON') then
begin
if (relay = 1) and (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.SendString('N'); // delay(5);
CommPortDriver1.SendByte(1);
CommPortDriver1.Disconnect;
old_state:= 0;
end;
//**************************************************************
if (relay = 1) and (t = 8) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.SendString('N'); // delay(5);
CommPortDriver1.SendByte(1);
CommPortDriver1.Disconnect;
old_state:= 0;
end;
end;
//***************************************************************
// Kiem tra gio bom cao diem (thu 2 den thu 7)
// 9h30 - 11h30
// 17h00 - 20h00
//***************************************************************
if (thu <> 1) and (ComboBox1.Text='Auto') then
begin
if ((gio >= 17) and (gio < 20)) or ((gio >= 10) and (gio < 11)) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_cao_diem) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end;
//***************************************************************
if (gio = 9) then
begin
if (phut >= 30) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_cao_diem) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end
end;
//***************************************************************
if (gio = 11) then
begin
if (phut < 30) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_cao_diem) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end
end;
end;
//***************************************************************
// Kiem tra gio bom trung binh (thu 2 den thu 7) (chu nhat)
// 4h00 - 9h30 4h00 - 22h00
// 11h30 - 17h00
// 20h00 - 22h00
//
//*************************************************************
if (thu <> 1) and (ComboBox1.Text='Auto') then
begin
if ((gio >= 4) and (gio <= 9)) or ((gio >= 20) and (gio <= 22))
or ((gio >= 11) and (gio < 17)) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_trb) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end;
//***************************************************************
if (gio = 11) then
begin
if (phut >= 30) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_trb) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end
end;
//***************************************************************
if (gio = 9) then
begin
if (phut < 30) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_trb) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end
end;
end;
//***************************************************************
chu nhat 4h00 - 22h00
if (thu = 1) and (ComboBox1.Text='Auto') then
begin
if (gio >= 4) and (gio < 22) then
begin
if (t = 1) and (d > 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(1); // on relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
if (t >= set_muc_trb) or (d <= 1) then
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('C');
CommPortDriver1.SendByte(2); // off relay
CommPortDriver1.Disconnect;
old_state:= 1;
end;
end;
end;
//***************************************************************
if (relay=1) then
Label29.Caption:=('ON');
if (relay=0) then
Label29.Caption:=('OFF');
Label8.Caption:=IntToStr(gio);
Label9.Caption:=IntToStr(phut);
Label10.Caption:=IntToStr(giay);
Label12.Caption:=IntToStr(ngay);
Label13.Caption:=IntToStr(thang);
Label14.Caption:=IntToStr(nam);
edit1.text:=IntToStr(t);
edit2.text:=IntToStr(d);
ComboBox9.text:=IntToStr(set_muc_cao_diem);
ComboBox10.text:=IntToStr(set_muc_trb);
ComboBox11.text:=IntToStr(set_gio_bom);
ComboBox12.text:=IntToStr(set_phut_bom);
if (mode_bom = 1) then
ComboBox1.text:='OFF';
if (mode_bom = 2) then
ComboBox1.text:='Auto';
if (mode_bom = 3) then
ComboBox1.text:='ON';
case thu of
1: Label11.Caption:= 'Sunday';
2: Label11.Caption:= 'Monday';
3: Label11.Caption:= 'Tuesday';
4: Label11.Caption:= 'Wednesday';
5: Label11.Caption:= 'Thursday';
6: Label11.Caption:= 'Friday';
7: Label11.Caption:= 'Saturday';
else
Label11.Caption:= '----------';
end;
if t = 1 then
Begin
image5.Visible:= True;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t = 2 then
Begin
image5.Visible:= False;
image6.Visible:= True;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t = 3 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= True;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t = 4 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= True;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t =5 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= True;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t =6 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= True;
image11.Visible:= False;
image12.Visible:= False;
image15.Visible:= False;
End;
if t =7 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= True;
image12.Visible:= False;
image15.Visible:= False;
End;
if t =8 then
Begin
image5.Visible:= False;
image6.Visible:= False;
image7.Visible:= False;
image8.Visible:= False;
image9.Visible:= False;
image10.Visible:= False;
image11.Visible:= False;
image12.Visible:= True;
image15.Visible:= False;
End;
//***************************************************************
if d = 1 then
Begin
image2.Visible:= True;
image3.Visible:= False;
image4.Visible:= False;
image16.Visible:= False;
image13.Visible:= False;
End;
if d = 2 then
Begin
image2.Visible:= False;
image3.Visible:= True;
image4.Visible:= False;
image13.Visible:= False;
image16.Visible:= False;
End;
if d = 3 then
Begin
image2.Visible:= False;
image3.Visible:= False;
image4.Visible:= True;
image16.Visible:= False;
image13.Visible:= False;
End;
if d = 4 then
Begin
image2.Visible:= False;
image3.Visible:= False;
image4.Visible:= False;
image13.Visible:= True;
End;
if bom1 = 1 then
Begin
image37.Visible:= False;
image38.Visible:= False;
image14.Visible:= False;
image39.Visible:= True;
end
else begin
image39.Visible:=False;
end;
if bom2 = 1 then
Begin
image37.Visible:= False;
image39.Visible:= False;
image14.Visible:= False;
image38.Visible:= True;
End
else begin
image38.Visible:=False;
end;
end;
//***************************************************************
procedure TForm2.FormCreate(Sender: TObject);
begin
b:=1;
image1.Visible :=True;
image2.Visible :=false;
image3.Visible :=false;
image4.Visible :=false;
image5.Visible :=false;
image6.Visible :=false;
image7.Visible :=false;
image8.Visible :=false;
image9.Visible :=false;
image10.Visible :=false;
image11.Visible :=false;
image12.Visible :=false;
image13.Visible :=false;
end;
//***************************************************************
procedure TForm2.Button10Click(Sender: TObject);
begin
CommPortDriver1.Connect;
CommPortDriver1.SendString('W');
CommPortDriver1.SendByte(h);
CommPortDriver1.SendByte(m);
CommPortDriver1.SendByte(s);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
if (ComboBox1.Text='Auto') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('N');
CommPortDriver1.SendByte(2);
CommPortDriver1.Disconnect;
if (ComboBox1.Text='ON') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('N');
CommPortDriver1.SendByte(3);
CommPortDriver1.Disconnect;
old_state:= 1;
if (ComboBox1.Text='OFF') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('N');
CommPortDriver1.SendByte(1);
CommPortDriver1.Disconnect;
old_state:= 0;
end;
//***************************************************************
procedure TForm2.ComboBox3Change(Sender: TObject);
begin
hh:=StrToInt(ComboBox3.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('H');
CommPortDriver1.SendByte(hh);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox4Change(Sender: TObject);
begin
mm:=StrToInt(ComboBox4.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('M');
CommPortDriver1.SendByte(mm);
CommPortDriver1.Disconnect;
end;
//*************************************************************
procedure TForm2.ComboBox5Change(Sender: TObject);
begin
ss:=StrToInt(ComboBox5.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('S');
CommPortDriver1.SendByte(ss);
CommPortDriver1.Disconnect;
end;
//***************************************************************
Procedure TForm2.ComboBox2Change(Sender: TObject);
begin
if (ComboBox2.Text='Monday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(2);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Tuesday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(3);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Wednesday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(4);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Thursday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(5);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Friday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(6);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Saturday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(7);
CommPortDriver1.Disconnect;
if (ComboBox2.Text='Sunday') then
CommPortDriver1.Connect;
CommPortDriver1.SendString('A');
CommPortDriver1.SendByte(1);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox6Change(Sender: TObject);
begin
set_ngay:=StrToInt(ComboBox6.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('B');
CommPortDriver1.SendByte(set_ngay);
CommPortDriver1.Disconnect;
end;
//**************************************************************
procedure TForm2.ComboBox7Change(Sender: TObject);
begin
set_thang:=StrToInt(ComboBox7.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('E');
CommPortDriver1.SendByte(set_thang);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox8Change(Sender: TObject);
begin
set_nam:=StrToInt(ComboBox8.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('F');
CommPortDriver1.SendByte(set_nam);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox9Change(Sender: TObject);
begin
set_muc_cao_diem:=StrToInt(ComboBox9.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('G');
CommPortDriver1.SendByte(set_muc_cao_diem);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox10Change(Sender: TObject);
begin
set_muc_trb:=StrToInt(ComboBox10.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('I');
CommPortDriver1.SendByte(set_muc_trb);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox11Change(Sender: TObject);
begin
set_gio_bom:=StrToInt(ComboBox11.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('L');
CommPortDriver1.SendByte(set_gio_bom);
CommPortDriver1.Disconnect;
end;
//***************************************************************
procedure TForm2.ComboBox12Change(Sender: TObject);
begin
set_phut_bom:=StrToInt(ComboBox12.Text);
CommPortDriver1.Connect;
CommPortDriver1.SendString('O');
CommPortDriver1.SendByte(set_phut_bom);
CommPortDriver1.Disconnect;
end;
//***************************************************************
end.
//**************************** End program