Nghiên cứu và xây dựng hệ thống giám sát và điều khiển tòa nhà trên nền iphone, ipad

86 11 0
Nghiên cứu và xây dựng hệ thống giám sát và điều khiển tòa nhà trên nền iphone, ipad

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ ẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA HU HUỲNH TRUNG CANG NGHIÊN CỨU C VÀ XÂY DỰNG HỆ Ệ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN N TÒA NHÀ TRÊN NỀN N iPHONE, iPAD Chuyên ngành: TỰ ĐỘNG HÓA LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, THÁNG 06 NĂM ĂM 2013 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG – HCM Cán hướng dẫn khoa học: TS TRƯƠNG ĐÌNH CHÂU (Ghi rõ họ tên, chức danh khoa học, học vị) Cán phản biện 1: TS.HUỲNH THÁI HOÀNG (Ghi rõ họ tên, chức danh khoa học, học vị) Cán phản biện 2: PGS.TS NGUYỄN THỊ PHƯƠNG HÀ (Ghi rõ họ tên, chức danh khoa học, học vị) Luận văn thạc sĩ bảo vệ Trường Đại Học Bách Khoa, ĐHQG TP.HCM, ngày 18 tháng 07 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ị Hội đồng chấm bảo vệ luận văn thạc sĩ) PGS.TS DƯƠNG HOÀI NGHĨA TS NGUYỄN THIỆN THÀNH TS LƯƠNG VĂN LĂNG TS HUỲNH THÁI HOÀNG PGS.TS NGUYỄN THỊ PHƯƠNG HÀ Xác nhận Chủ tịch Hội đồng đánh giá luận văn Trưởng khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA QLCN TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM KHOA ĐIỆN - ĐIỆN TỬ Độc Lập - Tự Do - Hạnh Phúc -o0o Tp HCM, ngày tháng năm NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: HUỲNH TRUNG CANG Phái: Nam Ngày, tháng, năm sinh: 18/01/1987 Nơi sinh: Khánh Hòa Chuyên ngành: TỰ ĐỘNG HÓA MSHV: 10151092 1- TÊN ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN NĂNG LƯỢNG TÒA NHÀ TRÊN NỀN iPHONE, iPAD 2- NHIỆM VỤ LUẬN VĂN: - Nghiên cứu xây dựng cấu trúc hệ thống điều khiển giám sát lượng tòa nhà Nghiên cứu phát triển phần mềm giao tiếp ứng dụng iOS với thiết bị điều khiển dựa giao thức mở Modbus TCP/IP - Thực mô truyền thông ứng dụng iOS với thiết bị điều khiển hỗ trợ giao thức Modbus TCP/IP - Thiết kế giao diện lập trình tính cho ứng dụng điều khiển giám sát lượng tòa nhà iPhone 3- NGÀY GIAO NHIỆM VỤ: 21/01/2013 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 21/06/2013 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS TRƯƠNG ĐÌNH CHÂU Nội dung đề cương Luận văn hội đồng chuyên ngành thông qua C.BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN (Họ tên chữ ký) KHOA QL CH.NGÀNH (Họ tên chữ ký) LỜI CẢM ƠN Trước hết xin gửi lời cảm ơn ba mẹ, gia đình ln ủng hộ động viên suốt trình học tập thực đề tài Kính gửi đến thầy Trương Đình Châu lời cảm ơn chân thành sâu sắc, cảm ơn thầy tận tình hướng dẫn suốt trình thực luận văn Xin cảm ơn quý thầy cô môn Điều Khiển Tự Động khoa Điện - Điện Tử tận tình giảng dạy, trang bị cho chúng em kiến thức bổ ích khoảng thời gian học cao học Tơi xin cảm ơn thầy Đỗ Chính cộng công ty TNHH Công Nghệ Tự Động hỗ trợ tơi hồn thành luận văn Tơi xin cảm ơn tất người thân, bạn bè, đặc biệt nhóm học viên cao học khóa 2010 động viên, góp ý, giúp đỡ tơi nhiều suốt trình học tập thực luận văn TP Hồ Chí Minh, tháng 06 năm 2013 Huỳnh Trung Cang TÓM TẮT NỘI DUNG LUẬN VĂN THẠC SĨ Nhiệm vụ trọng tâm đề tài nghiên cứu xây dựng hệ thống điều khiển giám sát lượng tòa nhà iOS Cấu trúc hệ thống điều khiển giám sát lượng tịa nhà trình bày cụ thể, có hai vấn đề quan tâm sử dụng PLC làm điều khiển trung tâm đồng thời sử dụng giao thức Modbus TCP/IP để trao đổi liệu với thiết bị di động iOS Nghiên cứu phát triển phần mềm giao tiếp ứng dụng iOS với điều khiển trung tâm (sử dụng PLC – Programmable logic controller) dựa giao thức mở Modbus TCP/IP sử dụng TCP/IP Stack truyền liệu qua Socket Thiết lập mơ hình mơ truyền thơng ứng dụng iOS với PLC Thiết kế giao diện lập trình tính cho ứng dụng điều khiển giám sát lượng tòa nhà iPhone Kết nghiên cứu đáp ứng yêu cầu đề tài, bao gồm: - Nghiên cứu trình bày luận điểm cho thấy tính khả thi ứng dụng PLC, sử dụng giao thức mở Modbus TCP/IP vào hệ thống điều khiển, giám sát lượng tịa nhà - Kết nối truyền thơng ứng dụng xây dựng iOS với PLC thông qua giao thức Modbus TCP/IP - Thiết kế, lập trình tính cho ứng dụng giám sát lượng tịa nhà iphone, ipad Abstract The main point of this thesis is to research and design a home energy management system which allow monitor and control energy based on the iOS platform System structure are presented in detail, including two that are of concern to the PLC using the center console and use protocol Modbus TCP / IP to communicate exchange data with mobile devices based on iOS flatform Research and development of software applications to communicate between the application on iOS platform and PLC (Programmable logic controller) based on open protocols Modbus TCP/IP using TCP/IP Stack and data transmission through Socket Building simulation models of communication devices Interface design and programming features for application control building energy monitoring on the iPhone The research results have met the requirements of the subject, including: - Studies and presents the thesis shows the feasibility of PLC applications, as well as using open protocols Modbus TCP/IP to control systems, building monitoring - Connectivity and communication between applications built on iOS flatform with PLC via protocol Modbus TCP / IP - Designing and programming features for home energy management system on iphone, ipad GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ MỤC LỤC DANH MỤC TỪ VIẾT TẮT - HÌNH VẼ - BẢNG BIỂU CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Các cơng trình liên quan 1.2.1 Schneider Electric’s Wiser TM home management system 1.2.2 GE Nucleus home manager 1.2.3 IBM - Phần mềm quản lý tịa nhà thơng minh 1.2.4 Asoka’s Home Energy Management Service™ 10 1.3 Các báo cáo nghiên cứu khoa học liên quan 12 1.4 Phạm vi nghiên cứu 13 CHƯƠNG CẤU TRÚC HỆ THỐNG ĐIỀU KHIỂN GIÁM SÁT NĂNG LƯỢNG TÒA NHÀ 14 2.1 Cấu trúc hệ thống điều khiển giám sát lượng tòa nhà luận án 14 2.2 Thiết bị tự động hóa tịa nhà 16 2.3 Mạng tự động hóa tịa nhà 17 2.4 Thiết bị điều khiển trung tâm 18 2.5 Thiết bị kết nối mạng 21 2.6 Giao diện người dùng 21 2.7 Mơ hình thực nghiệm 22 CHƯƠNG LẬP TRÌNH TRUYỀN THƠNG GIỮA ỨNG DỤNG TRÊN iOS VÀ PLC 26 3.1 Trình tự thực 26 3.2 Lập trình PLC hệ thống điều khiển giám sát lượng 27 3.2.1 Mapping địa PLC 28 SVTH: HUỲNH TRUNG CANG Trang GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ 3.2.2 Cấu hình giao thức Modbus cho PLC 28 3.3.1 Trao đổi liệu ứng dụng iOS với PLC 29 3.3.2 Quản lý Socket ứng dụng iOS PLC 33 3.3.3 Tạo Modbus Request cho ứng dụng iOS 35 3.3.3.1 Tạo Modbus Request đọc liệu từ PLC 37 3.3.3.2 Tạo Modbus Request ghi liệu lên PLC 40 3.3.4 Lập trình nhận Modbus response từ PLC iOS 47 3.4 Cấu hình thiết bị kết nối mạng – router 53 3.5 Tính bảo mật hệ thống 54 3.6 Kết 56 CHƯƠNG 4: THIẾT KẾ GIAO DIỆN – LẬP TRÌNH ỨNG DỤNG 57 4.1 Các ứng dụng hệ thống điều khiển giám sát lượng tòa nhà 57 4.2 Quản lý đăng nhập 59 4.3 Giám sát điện tiêu thụ 61 4.4 Điều khiển hệ thống chiếu sáng 64 4.5 Điều khiển hệ thống điều hòa 65 4.6 Giám sát hệ thống thiết bị đóng cắt 67 4.7 Lịch sử vận hành – cảnh báo 68 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70 5.1 Các kết đạt 70 5.2 Những hạn chế đề tài: 71 5.2 Hướng phát triển đề tài 71 A.1 Chương trình read discrete input 74 A.2 Chương trình read coils 74 SVTH: HUỲNH TRUNG CANG Trang GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ A.3 Chương trình read input register 74 A.4 Chương trình read holding register 74 A.5 Chương trình write single coils 75 A.6 Chương trình write single register 75 A.7 Chương trình write multi coils 75 A.8 Chương trình write multi register 76 Phụ lục B: Code lập trình tính hệ thống điều khiển giám sát lượng tòa nhà 76 B.1 Quản lý đăng nhập hệ thống 76 B.2 Kiểm tra ID đăng nhập 77 B.3 Query thêm cập nhật liệu 78 B.4 Query truy xuất liệu 78 B.5 Cảnh báo đường truyền kết nối 79 B.6 Cảnh báo kết nối với thiết bị 80 SVTH: HUỲNH TRUNG CANG Trang GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ DANH MỤC TỪ VIẾT TẮT - HÌNH VẼ - BẢNG BIỂU Từ viết tắt ADU Application Data Unit PDU Protocol Data Unit PLC Programmable Logic Controller TCP/IP Transmission Control Protocol/ Internet Protocol GUI Graphical User Interface HAN Hand Automation Network NAT Network Address Translation iOS iPhone Operating System Hình vẽ Hình 1.1: Schneider Electric’s Wiser® home management system Hình 1.2: Nucleus with Brillion Technology Product Hình 1.3: Software Platform for Demand Response Elicitation Hình 1.4: The Asoka Home Energy Management Hình 2.1: Cấu trúc hệ thống điều khiển giám sát lượng tịa nhà Hình 2.2: Cấu trúc mơ hình ứng dụng Hình 2.3: Hình ảnh thiết bị mơ hình thực nghiệm Hình 2.4: Hình ảnh kết nối thiết bị Hình 2.5: Phần mềm mơ Modbus TCP/IP Hình 3.1: Quy trình thiết lập truyền thơng cho hệ thống Hình 3.2: Giao tiếp thiết bị Hình 3.3: Mơ hình OSI rút gọn sử dụng Socket Hình 3.4: Mơ hình kết nối ứng dụng với Socket Hình 3.5: Qua trình truyền liệu Server - Client Hình 3.6: Modbus request/response frame over TCP/IP Hình 3.7: Lưu trình tạo Modbus Request Hình 3.8: Lưu trình tạo Modbus Request đọc liệu Hình 3.9: Lưu trình tạo Modbus Request ghi liệu SVTH: HUỲNH TRUNG CANG Trang GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ người dùng giám sát trạng thái làm việc, hiệu chỉnh nhiệt độ đặt thiết bị xem nhiệt độ phòng Khi thao tác lên thiết bị điều hịa khơng khí, chương trình gọi popup để người dùng thao tác điều khiển thiết bị Những yêu cầu đọc/ ghi gửi đến PLC theo tác vụ PLC Giao diện Thiết bị (Đối tượng Vùng địa Vùng địa lưu hiển thị) mapping trữ PLC Texbox Holding Register: 50-55 Mơ Nhiệt độ phịng Texbox Holding Register: 56-60 Mô Nhiệt độ đặt Image Coil: 30-100 Mô Trạng thái (Điều hòa) Bảng 4.5: Vùng địa điều kiển – giám sát thiết bị điều hịa Hình 4.12: Giám sát hệ thống chiếu sáng tầng SVTH: HUỲNH TRUNG CANG Trang 66 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ Hình 4.13: Giám sát hệ thống chiếu sáng tầng 4.6 Giám sát hệ thống thiết bị đóng cắt Tồn hệ thống phân phối điện tịa nhà phân phối kiểm sốt thơng qua thiết bị đóng cắt đồng thời thiết bị bảo vệ có cố xảy Với tính giám sát điều khiển thiết bị đóng cắt, ứng dụng cho phép phân bố điện theo khu vực, ngắt thiết bị điện để tránh lãng phí vắng nhà thời gian dài Thao tác đóng cắt thiết bị phân phối chương trình xác nhận thiết bị đóng cắt thay đổi trạng thái, ứng dụng cảnh báo cho người dùng dụng hiệu ứng âm thành, rung iPhone PLC Giao diện Thiết bị (Đối tượng Vùng địa Vùng địa kết hiển thị) mapping nối đến t.bị Image Coil: 100-119 Mô Image Coil: 120 - 139 Mơ (Đóng cắt tải) Trạng thái đóng/mở Trạng thái cố Bảng 4.6: Vùng địa điều kiển – giám sát thiết bị đóng cắt SVTH: HUỲNH TRUNG CANG Trang 67 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ Hình 4.14: Giám sát hệ thống đóng cắt 4.7 Lịch sử vận hành – cảnh báo Chức lưu trữ, ghi nhận lại lịch trình thao tác cung cấp thơng tin để người dùng cân đối tối ưu việc sử dụng lượng, đưa thơng báo bảo trì thiết bị theo hạn kỳ Các thiết bị di động nói chung, cụ thể iPhone, dung lượng nhớ tối đa hỗ trợ đến 64G Với dụng lượng hạn chế, vấn đề cần có cơng cụ đơn giản, gọn nhẹ đáp ứng tính sở liệu Với ứng dụng phát triển luận án, sử dụng SQLite giải pháp phủ hợp SQL lite dạng sở liệu quan hệ (giống MSSQL, MySQL…), có cấu trúc table, cột, dịng, query để lấy thơng tin truy vấn SQL bình thường Điểm khác biệt SQLite nằm gọn file Cơ sở liệu SQLite tương tác với ứng dụng thông qua query cập nhật; query truy xuất liệu Chương trình cập nhật truy xuất liệu trình bày phụ lục B Các bảng liệu tạo sở liệu SQLite gồm: - Bảng devices SVTH: HUỲNH TRUNG CANG Trang 68 GVHD: TS TRƯƠNG ĐÌNH CHÂU - Bảng devices_consume - Bảng device_interupt - Bảng config LUẬN VĂN THẠC SĨ Hình 4.15: Giao diện lịch sử vận hành – cảnh báo SVTH: HUỲNH TRUNG CANG Trang 69 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Các kết đạt Trong chương 2, tác đưa mơ hình cấu trúc hệ thống điều khiển giám sát lượng tịa nhà, ứng dụng PLC làm điều khiển trung tâm Điều cho phép thiết bị tự động hóa tịa nhà giao tiếp thơng qua chuẩn truyền thơng cơng nghiệp, tích hợp ứng dụng tự động hóa phức tạp khác hệ thống điều khiển nâng cao PLC sử dụng rộng rãi dịch vụ da dạng nên người dùng nhận hỗ trợ Hệ thống đề cập luận án sử dụng giao thức Modbus TCP/IP, giao thức mở công nghiệp nên đáp ứng trình điều khiển giám sát hệ thống theo thời gian thực Vấn đề truyền thông ứng dụng iOS với PLC thông qua chuẩn truyên thông công nghiệp Modbus TCP/IP thực kỹ thuật truyền liệu qua Socket sử dụng TCP/IP Các phương thức, hàm lập trình ngơn ngữ Object-C sử dụng phần mềm phát triển X-Code Apple cung cấp Các phương thức truyền thơng kiểm chứng qua mơ hình thực tế kết đạt yêu cầu đặt Thiết kế giao diện lập trình tính cho ứng dụng điều khiển giám sát lượng tịa nhà iPhone, lập trình giao tiếp ứng dụng iOS với PLC thông qua phương thức xây dựng SVTH: HUỲNH TRUNG CANG Trang 70 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ 5.2 Những hạn chế đề tài: Tuy giải số vấn đề nêu phần tổng quan, truyền thông ứng dụng kết nghiên cứu Tuy nhiên đề tài số hạn chế: - Mơ hình thực nghiệm chưa kết nối thực ứng dụng tự động hóa tịa nhà, thiết bị điều khiển giám sát điện chi phí thiết bị cảm biến chấp hành cung cấp thị trường cao - Luận án hỗ xây dựng phương thức đọc liệu phương thức ghi liệu Chưa lập trình hết tất hàm chức đọc ghi khác mô tả giao thức Modbus TCP/IP - Giao diện thiết kế tính ứng dụng hệ thống điều khiển giám sát lượng tòa nhà chưa đa dạng 5.2 Hướng phát triển đề tài Tiếp tục phát triển phương thức hỗ trợ toàn hàm giao thức truyền thông Modbus TCP/IP Thiết kế xây dựng chương trình thu thập liệu (OPC Server) hỗ trợ giao thức Modbus TCP/IP iOS nhằm tạo công cụ kết nối chuyên dụng, làm sở cho ứng dụng khác iOS Tích hợp cơng nghệ web, điện toán đám mây vào hệ thống điều khiển giám sát lượng tòa nhà Cập nhập liệu từ phần mềm dự báo thời tiết, giá điện nhà cung cấp để cung cấp thông tin cho định vận hành điều khiển thiết bị SVTH: HUỲNH TRUNG CANG Trang 71 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ TÀI LIỆU THAM KHẢO [1] General Electric Company, “Insight the key to home energy savings”, Internet: http://www.geappliances.com/home-energy-manager/power-usagemonitor.htm [2] Hui-Liang Shang, Ren-Mei Xu, Jun-Kang Yuan, “A Smart Home System Based On ZigBee And IOS Software”, IEEE 18th International Conference on Parallel and Distributed Systems, 2012 [3] Janelle LaMarche, Katherine Cheney, Sheila Christian, Kurt Roth (2011) “Home Energy Management Products & Trends [Online] Available: http://wcec.ucdavis.edu/wp-content/uploads/2012/09/0193000022.pdf [4] Sriharsha Putrevu, Maple Grove, MN (US); Josep Vargas, Morristown, NJ (US); Paul Derby, Lubbock, TX (US); Pallavi Dharwada, Minneapolis, MN (US); Hari Thiruvengada, Plymouth, MN (US); John Beane, Shoreview, MN (US); Soumitri N.Kolavennu, Blaine, MN (US) “Interface for Home Energy Management.” U.S Patent 0113822 A1, May 9, 2013 [5] Patrice Bertrand (2012, February 23) Empowering Consumers With Home Energy Management Systems [Online] Available: http://eecatalog.com/smart-energy/2012/02/23/empoweringconsumers-with-home-energy-management-systems/ [6] Jaeyong Han, “Development of Home Network Gateway Supporting both Wire and Wireless Communication”, IEEE Future Generation Communication and Networking, Vol.2, pp 86-89, Dec 2008 [7] Görgü, L., Wan, J., O’Hare G M P and O’Grady M J (2012) “Enabling Mobile Service Provision with Sensor Networks.” Centre for Sensor Web Technologies, University College Dublin, Ireland [Online] Available: http://www.researchgate.net/publication/232734712_Enabling_Mobi le_Service_Provision_with_Sensor_Networks/file/d912f50927667a44af.doc [8] Hồng Minh Sơn, Mạng truyền thơng công nghiệp NXB Khoa học kỹ thuật, Hà Nội, 2006 SVTH: HUỲNH TRUNG CANG Trang 72 GVHD: TS TRƯƠNG ĐÌNH CHÂU [9] LUẬN VĂN THẠC SĨ CCNA Certifcation Study Guide, Topic: “OSI Seven Layers Model and Cisco Three Layer Hierarchical Model.” [Online] Available: http://www.texbuddy.com/osi.html [10] Apple Inc “Networking Programming Topics”, User guide, 13/12/2012 [11] Rajinder Yadav “Client/Server Programming with TCP/IP Sockets.” Internet: http://devmentor.org/articles/network/Socket%20Programming(v2).pdf, Mar 11, 2008 [12] J LaMarche, K Cheney, C Akers, K Roth, and O Sachs “Home Energy Displays: Consumer Adoption and Response.” Internet: http://apps1.eere.energy.gov/buildings/publications/pdfs/building_america/ns/ eemtg082011_c20_hed_customer.pdf December 2012 [13] Schneider Electric (2013).“Schneider Electric Schneider Electric’s Wiser™ home management system”, [Online] Avaiable: http://www.electronichouse.com/product/details/schneider_electrics _wiser_home_management_system/ [14] Asoka Corporate Brochure (2012) “Home Energy Management.” http://asokatech.com/home-energy-management [15] Modbus Organization (October 24, 2006) “Modbus Messaging on TCP/IP implementation guide V1.0b” [Online] Available: http://www.modbus.org/specs.php [16] Modbus Organization (April 06, 2012) “Modbus application Protocol specification V1.1b3.” [Online] Available: http://www.modbus.org/specs.php SVTH: HUỲNH TRUNG CANG Trang 73 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ Phụ lục A Code tạo Modbus Request cho ứng dụng iOS A.1 Chương trình read discrete input //======= Chương trình read discrete input =========// -(void) ReadDiscreteInput: (ushort) TransID Addr: (ushort) StartAddress numInput:(ushort) numInput{ NSData * Data = [self CreateReadHeader:TransID Addr:StartAddress length:numInput FCcode:FCReadDiscreteInput]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.2 Chương trình read coils //======= Chương trình read coils =========// -(void) ReadCoils: (ushort) TransID Addr: (ushort) StartAddress numInput:(ushort) numInput{ NSData * Data = [self CreateReadHeader:TransID Addr:StartAddress length:numInput FCcode:FCReadCoil]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.3 Chương trình read input register //======= Chương trình read input register =========// -(void) ReadInputRegister: (ushort) TransID Addr: (ushort) StartAddress numInput:(ushort) numInput{ NSData * Data = [self CreateReadHeader:TransID Addr:StartAddress length:numInput FCcode:FCReadInputRegister]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.4 Chương trình read holding register //======= Chương trình read holding register =========// -(void) ReadHoldingRegister: (ushort) TransID Addr: (ushort) StartAddress numInput:(ushort) numInput{ SVTH: HUỲNH TRUNG CANG Trang 74 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ NSData * Data = [self CreateReadHeader:TransID Addr:StartAddress length:numInput FCcode:FCReadHoldingRegister]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.5 Chương trình write single coils //======= Chương trình write single coils =========// -(void) WriteSingleCoil :(ushort)tranid Addr:(ushort) startaddr onoff:(Boolean) OnOff{ NSData *Data; Data = [self CreatWriteHeader:tranid Addr:startaddr numData:1 numByte:1 fccode:FCWriteSingleCoil bit:OnOff]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.6 Chương trình write single register //======= Chương trình write single register =========// -(void) WriteSingleRegister: (ushort) TransID Addr: (ushort) StartAddress value: (NSData *) value{ NSData *Data; Data = [self CreatWriteHeader:TransID Addr:StartAddress numData:1 numByte:1 fccode:FCWriteSingleRegister bit:1]; Data = [self AppenddingNSData:Data Datab:value startPosition:10]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.7 Chương trình write multi coils //======= Chương trình write multi coils =========// -(void) WriteMultipleCoils : (ushort) TransID StartAddr :(ushort) startaddr numbit : (ushort) numbit value : (NSData *) value{ NSUInteger numbyte = [value length]; NSData *Data; SVTH: HUỲNH TRUNG CANG Trang 75 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ Data = [self CreatWriteHeader:TransID Addr:startaddr numData:numbit numByte: (numbyte+2) fccode:FCWriteMultipleCoils bit:1]; Data = [self AppenddingNSData:Data Datab:value startPosition:13]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } A.8 Chương trình write multi register //======= Chương trình write multi register =========// -(void) WriteMultipleRegister: (ushort) TransID Addr: (ushort) StartAddress value: (NSData *) value{ ushort numByte = [value length]; NSData *Data; if (numByte % > 0) { numByte++; } Data = [self CreatWriteHeader:TransID Addr:StartAddress numData:(numByte / 2) numByte:(numByte + 2) fccode:FCWriteMultipleRegisters bit:1]; Data = [self AppenddingNSData:Data Datab:value startPosition:13]; [asyncSocket writeData:Data withTimeout:-1 tag:0]; } Phụ lục B: Code lập trình tính hệ thống điều khiển giám sát lượng tòa nhà B.1 Quản lý đăng nhập hệ thống +(BOOL)login:(NSString*) username Password:(NSString*)password{ BOOL result = NO; NSString* configPath = [[NSBundlemainBundle]pathForResource:@"database"ofType:@"plist"]; NSMutableDictionary* config = [[NSMutableDictionaryalloc]initWithContentsOfFile:configPath]; if([username isEqual:[configobjectForKey:@"USER_NAME"]] && [password SVTH: HUỲNH TRUNG CANG Trang 76 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ isEqual:[configobjectForKey:@"PASSWORD"]]){ result = YES; }; return result;} B.2 Kiểm tra ID đăng nhập - (IBAction)btnConnect:(id)sender { NSString* configPath = [[NSBundlemainBundle]pathForResource:@"database"ofType:@"plist"]; NSDictionary* config = [[NSDictionaryalloc]initWithContentsOfFile:configPath]; if([idPLC.textisEqual:[configobjectForKey:@"ID_PLC"]]){ isConnect = YES; } [selfswtichButton:!(isConnect)]; SQLUtils* conn = [[SQLUtilsalloc]init]; BOOL result = [conn connectDatabase]; if(result != YES){ UIAlertView* alert = [[UIAlertViewalloc]initWithTitle:@"ThơngBáo"message:@"Khơngthểkếtnốiđến database"delegate:selfcancelButtonTitle:@"Đóng"otherButtonTitles:nil , nil]; [alertshow]; } result = [SQLUtilsimportDatabase]; if(result != YES){ UIAlertView* alert = [[UIAlertViewalloc]initWithTitle:@"ThơngBáo"message:@"Khơngthểtạodữliệucho table devices"delegate:selfcancelButtonTitle:@"Đóng"otherButtonTitles:nil , nil]; [alertshow]; } } SVTH: HUỲNH TRUNG CANG Trang 77 GVHD: TS TRƯƠNG ĐÌNH CHÂU LUẬN VĂN THẠC SĨ B.3 Query thêm cập nhật liệu -(BOOL)query:(NSString *)query{ char* error = ""; int result = sqlite3_exec(connection, [query UTF8String], nil, nil, &error); if(result != SQLITE_OK){ NSLog(@"%s", error); returnNO; } returnYES; } B.4 Query truy xuất liệu -(NSMutableArray*)getData:(NSString *)query{ sqlite3_stmt *statement; NSMutableArray *result = [[NSMutableArrayalloc ]initWithCapacity:0]; constchar* error = ""; constchar *query_stmt = [query UTF8String]; if (sqlite3_prepare_v2(connection, query_stmt, -1, &statement, &error) == SQLITE_OK){ while(sqlite3_step(statement) == SQLITE_ROW) { NSMutableDictionary* row = [[NSMutableDictionaryalloc]init]; for(inti=0;i

Ngày đăng: 03/09/2021, 16:39

Tài liệu cùng người dùng

Tài liệu liên quan