Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
11,02 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA PHẠM NGỌC CƯỜNG XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU BẰNG NGƠN NGỮ PYTHON TRÊN MÁY TÍNH NHÚNG LINUX LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA Đà Nẵng – Năm 2017 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA PHẠM NGỌC CƯỜNG XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU BẰNG NGÔN NGỮ PYTHON TRÊN MÁY TÍNH NHÚNG LINUX Chuyên ngành: Kỹ thuật điều khiển tự động hóa Mã số: 60520216 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Trần Đình Khơi Quốc Đà Nẵng – Năm 2017 i LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Đà Nẵng, ngày 25 tháng 12 năm 2017 Tác giả luận án PHẠM NGỌC CƯỜNG ii TÓM TẮT LUẬN VĂN XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU BẰNG NGƠN NGỮ PYTHON TRÊN MÁY TÍNH NHÚNG LINUX Học viên: Phạm Ngọc Cường Mã số: 60.52.50 Chuyên ngành: Kỹ thuật điều khiển tự động hóa Khóa: K33.TĐH(PFIEV) Trường Đại học Bách khoa - ĐHĐN Tóm tắt - Hiện nay, máy tính nhúng cơng nghiệp dùng để làm thiết bị đầu cuối mạng cục cơng nghiệp Tuy nhiên sử dụng máy tính mạng THCN cần có phần cứng ngồi: module/card xử lý liệu Modbus, Profibus…hoặc phần mềm từ đối tác thứ 3, driver để điều khiển phần mềm, mã nguồn để thực giao thức Đề tài tìm hiểu mạng Modbus RTU ngăn xếp tìm hiểu từ xây dựng ngơn ngữ Python tảng máy tính Banana Pro nhúng hệ điều hành Linux Dựa theo cách thức hoạt động tiêu chuẩn mạng công nghiệp Modbus RTU, đề tài nghiên cứu thuật toán để xây dựng lớp hướng đối tượng nhằm truyền nhận liệu xử lý liệu truyền thông nối tiếp Theo đó, thuật tốn giúp tạo khung truyền, nhận khung truyền, sinh giá trị kiểm thử CRC, mã ngoại lệ, xây dựng xác viết ngơn ngữ Python Đề tài góp phần làm giảm giá thành tích hợp mạng Modbus hệ thống công nghiệp nâng cao khả điều khiển ngoại vi máy tính nhúng Từ khóa – Modbus RTU, Python, máy tính nhúng,, CRC, Linux IMPLEMENTING MODBUS RTU INDUSTRIAL NETWORK BY USING PYTHON PROGRAMMING LANGUAGE ON LINUX EMBEDDED COMPUTER Abstract – Nowaday, industrial computers are used for terminal devices in industrial network However, when we integrate it into system, we need external modules as Modbus, Profibus or third party software which are drivers to control and implement protocols The thesis is to study Modbus RTU and its stacks to creating Modbus RTU industrial network by using Python programming language on embedded Linux computer- Banana Pro According to standard principle of this network, the thesis provides algorithm, objects oriented stack and serial communication processing After that, frame building, frame receiving, CRC, exception codes and so on will be built exactly by using Python The thesis brings the lower cost when integrating Modbus in industrial network and also enhance the peripheral control capability of embedded computer Keywords – Modbus RTU, Python, Embedded computer, CRC, Linux iii MỤC LỤC LỜI CAM ĐOAN i TÓM TẮT LUẬN VĂN .ii MỤC LỤC iii DANH MỤC CÁC BẢNG v DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ vi MỞ ĐẦU 1 Tính cấp thiết đề tài .1 Mục tiêu nghiên cứu Đối tượng Phạm vi nghiên cứu .2 Phương pháp nghiên cứu .2 Ý nghĩa khoa học thực tiễn .3 Cấu trúc luận văn CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC MẠNG MODBUS RTU 1.1 GIỚI THIỆU MẠNG MODBUS 1.2 CẤU TRÚC ĐOẠN TIN GIAO THỨC MODBUS CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ PYTHON VÀ MÁY TÍNH NHÚNG LINUX 19 2.1 NGÔN NGỮ PYTHON .19 2.2 MÁY TÍNH NHÚNG CƠNG NGHIỆP 24 CHƯƠNG 3: XÂY DỰNG CÁC LỚP DỮ LIỆU VÀ THUẬT TOÁN 32 3.1 SƠ ĐỒ CHUNG 32 3.1.1 Lớp liệu Slave 32 3.1.2 Lớp liệu Master 35 3.2 XÂY DỰNG THUẬT TOÁN 36 3.2.1 Lớp Utilities .37 3.2.2 Lớp physical 42 3.2.3 Lớp transaction 43 3.2.4 Lớp Factory 49 3.2.5 Lớp bit_read_message.py & bit_write_message.py & register_read_message.py & register_write_message.py 53 3.2.6 Lớp dành riêng cho kho liệu (Server mode) .62 iv CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG 67 4.1 KHỞI TẠO HỆ THỐNG ẢO 67 4.2 KẾT QUẢ MÔ PHỎNG KHI KẾT NỐI MÁY ẢO 68 4.2.1 Kết kiểm tra mã chức Write Coil (FC=05) .68 4.2.2 Kết kiểm tra mã chức Write Coils (FC=15) .69 4.2.3 Kết kiểm tra mã chức Read Coils Status (FC=01) 70 4.2.4 Kết kiểm tra mã chức Read Coils Status (FC=01) 71 4.2.5 Kết kiểm tra mã chức Write Holding Registers (FC=16) 72 4.2.6 Kết kiểm tra mã chức Read Holding Registers (FC=3) 74 4.2.7 Kết kiểm tra mã chức Write Holding Registers (FC=16)(kiểm tra lần thứ cho ghi nhất) 75 4.2.8 Kết kiểm tra mã chức Read Holding Registers (FC=3) (kiểm tra lần thứ cho ghi nhất) 76 4.2.9 Kết kiểm tra mã chức Read Discrete Inputs (FC=02) .77 4.2.10 Kết kiểm tra mã chức Read Inputs Register (FC=04) .78 4.2.11 Kết kiểm tra Mã Ngoại lệ có vấn đề khung truyền kho liệu 79 4.3 KẾT QUẢ MƠ PHỎNG KHI KẾT NỐI MÁY TÍNH NHÚNG VÀ MÁY TÍNH NGỒI 82 4.3.1 Phương pháp thực 82 4.3.2 Mơ q trình ghi cuộn dây (FC=5 FC=15) 83 4.3.3 Mô trình ghi ghi (FC=16) 85 4.3.4 Mơ q trình đọc ghi (FC=3) 85 4.3.5 Mô trình đọc đầu vào số (FC=2) 86 4.3.6 Mơ q trình đọc ghi analog (FC=4) 87 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 89 Các điểm làm 89 Các điểm hạn chế 89 Hướng phát triển đề tài 89 DANH MỤC ĐỀ TÀI THAM KHẢO 90 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN 91 v DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang Bảng 1.1 Kiểu liệu cách tiếp cận Modbus 11 Bảng 1.2 Cấu trúc đoạn tin yêu cầu mã hàm 01 13 Bảng 1.3 Cấu trúc đoạn tin trả lời mã hàm 01 13 Bảng 1.4 Cấu trúc đoạn tin yêu cầu mã hàm 02 13 Bảng 1.5 Cấu trúc đoạn tin trả lời mã hàm 02 14 Bảng 1.6 Cấu trúc đoạn tin yêu cầu mã hàm 05 14 Bảng 1.7 Cấu trúc đoạn tin trả lời mã hàm 05 15 Bảng 1.8 Cấu trúc đoạn tin yêu cầu mã hàm 15 15 Bảng 1.9 Cấu trúc đoạn tin trả lời mã hàm 15 15 Bảng 1.10 Cấu trúc đoạn tin yêu cầu mã hàm 03 16 Bảng 1.11 Cấu trúc đoạn tin trả lời mã hàm 03 16 Bảng 1.12 Cấu trúc đoạn tin yêu cầu mã hàm 06 17 Bảng 1.13 Cấu trúc đoạn tin trả lời mã hàm 06 17 Bảng 1.14 Cấu trúc đoạn tin yêu cầu mã hàm 16 18 Bảng 1.15 Cấu trúc đoạn tin trả lời mã hàm 16 18 Bảng 2.1 Bảng so sánh ngôn ngữ Python ngôn ngữ C 22 Bảng 2.2 Bảng so sánh ngôn ngữ Python Java 23 Bảng 2.3 So sánh vi điều khiển máy tính nhúng 29 Bảng 2.4 Cấu hình máy tính nhúng banana Pro 30 Bảng 3.1 Mã hàm lớp liệu bit_read_message.py & 54 bit_write_message.py & register_read_message.py & register_write_message.py vi DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Số hiệu hình vẽ Tên hình vẽ Trang Hình 1.1 Giao thức Modbus mơ hình OSI Hình 1.2 Cách kết nối cổng RS232 Hình 1.3 Tín hiệu dây RS485 Hình 1.4 Cấu trúc đoạn tin mạng Modbus 10 Hình 1.5 Mã hàm cung cấp giao thức Modbus 11 Hình 1.6 Cơ chế truyền nhận Modbus 12 Hình 2.1 Mặt máy tính nhúng Banana Pro 31 Hình 2.2 Mặt máy tính nhúng Banana Pro 31 Hình 3.1 Mơ hình lớp liệu Slave (Server) 33 Hình 3.2 Mơ hình lớp liệu Master (Client) 35 Hình 3.3 Thuật tốn cho hàm pack_bitstring 38 Hình 3.4 Thuật tốn cho hàm unpack_bitstring 39 Hình 3.5 Thuật tốn tạo bảng mã CRC 41 Hình 3.6 Thuật tốn tạo mã CRC từ liệu 42 Hình 3.7 Mơ hình lớp transaction 44 Hình 3.8 Các thành phần khung truyền modbus 44 Hình 3.9 Thuật tốn cho hàm processIncomingPacket 46 (1/2) Hình 3.10 Thuật tốn cho hàm processIncomingPacket 47 (2/2) Hình 3.11 Thuật tốn cho hàm execute 49 Hình 3.12 Sơ đồ liệu việc phân tích mã chức 50 lớp Factory Hình 3.13 Thuật tốn cho q trình nhận dạng chức (Client) 51 vii Hình 3.14 Thuật tốn cho q trình nhận dạng chức 52 (Server) Hình 3.15 Bố cục kho liệu (1/2) 62 Hình 3.16 Bố cục kho liệu (2/2) 63 Hình 4.1 Kết nối máy tính nhúng laptop thơng 83 qua PL2303 Hình 4.2 Giao diện phần mềm RSim 83 Hình 4.3 Kết giao diện RSim (FC=05 85 FC=15) Hình 4.4 Kết giao diện RSim (FC=16) 86 Hình 4.5 Cài đặt giá trị cho đầu vào số slave 87 Hình 4.6 Cài đặt giá trị cho đầu vào số slave 88 MỞ ĐẦU Tính cấp thiết đề tài Hiện nay, PLC máy tính nhúng cơng nghiệp dùng để làm thiết bị đầu cuối mạng cục công nghiệp Cả hai loại PLC máy tính nhúng cơng nghiệp có ưu điểm nhược điểm riêng Xét riêng máy tính nhúng cơng nghiệp, khả mở rộng ngoại vi, lưu trữ liệu rộng lớn Máy tính nhúng có khả chịu va đập, nhiệt độ môi trường, tốc độ xử lý cao Tuy nhiên sử dụng máy tính mạng THCN cần có yếu tố sau: Phần cứng ngoài: module/card xử lý liệu Modbus, Profibus…Các module/card có giá thành từ 200-1000$ tùy theo chức số cổng Phần mềm từ đối tác thứ 3: khơng dùng phần cứng ngồi dùng ngoại vi trực tiếp máy tính nhúng cần driver để điều khiển phần mềm, mã nguồn để thực giao thức Cần phải mua quyền để sử dụng Có phần mềm khơng hỗ trợ nguồn mở để phát triển ứng dụng riêng Thông qua đề tài "Xây dựng mạng truyền thông công nghiệp Modbus RTU ngôn ngữ Python máy tính nhúng Linux", mạng Modbus RTU ngăn xếp tìm hiểu xây dựng ngơn ngữ Python tảng máy tính Banana Pro nhúng hệ điều hành Linux Dựa theo cách thức hoạt động tiêu chuẩn mạng công nghiệp Modbus RTU, đề tài nghiên cứu thuật toán để xây dựng lớp hướng đối tượng nhằm truyền nhận liệu xử lý liệu truyền thơng nối tiếp Theo đó, thuật toán giúp tạo khung truyền, nhận khung truyền, sinh giá trị kiểm thử, mã ngoại lệ, xây dựng xác viết ngơn ngữ Python Thơng qua máy tính nhúng Linux, người lập trình ngồi việc sử dụng mã nguồn Modbus xây dựng để truyền nhận liệu lập nhiều chức điều khiển cho module đóng cắt thiết bị, đọc giá trị cảm biến, giao tiếp người – ... dụng riêng Thông qua đề tài "Xây dựng mạng truyền thông công nghiệp Modbus RTU ngôn ngữ Python máy tính nhúng Linux" , mạng Modbus RTU ngăn xếp tìm hiểu xây dựng ngơn ngữ Python tảng máy tính Banana... HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA PHẠM NGỌC CƯỜNG XÂY DỰNG MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU BẰNG NGƠN NGỮ PYTHON TRÊN MÁY TÍNH NHÚNG LINUX Chuyên ngành: Kỹ thuật điều khiển tự động hóa... tìm hiểu mạng Modbus RTU ngăn xếp tìm hiểu từ xây dựng ngơn ngữ Python tảng máy tính Banana Pro nhúng hệ điều hành Linux Dựa theo cách thức hoạt động tiêu chuẩn mạng công nghiệp Modbus RTU, đề