Scada cho hệ thống phân loại sản phẩm
TRƢỜNG ĐẠI HỌ H HO HO ĐIỆN – ĐIỆN TỬ CỘNG H X HỘI CHỦ NGHĨ VIỆT NAM Độc Lập - Tự Do - Hạ P -N y PHIẾU CHẤM BẢO VỆ LVTN ời Họ N Đề Họ Tổ ớng dẫn) SV : y NGUYỄN THỊ NGỌC ÁNH MSSV : 40800088 :Đề ể Tự Độ : SCADA CHO HỆ THỐNG PHÂN LOẠI SẢN PHẨM ƣờ ƣớng dẫn : TS TRƢƠNG ĐÌNH HÂU ề thuyết minh: Số trang : Số ƣơ : Số bảng số liệu : Số hình vẽ : Số tài liệu tham khảo: Phần mề : Hiện vật (sản phẩm) : Tổ ề ản vẽ : - Số vẽ : A1 A2 khổ - Số vẽ tay Số vẽ y Nhữ ƣ đ ểm LVTN: Những thiế LVTN: Đề nghị : Đƣợc bảo vệ ổ để bảo vệ ợc bảo vệ Câu hỏi SV phải trả lờ ƣớc Hộ đồng : a b c 10 Đ ằng chữ : Giỏ T : Đ ểm /10 ọ tên) ii TRƢỜNG ĐẠI HỌ H HO HO ĐIỆN – ĐIỆN TỬ CỘNG H X HỘI CHỦ NGHĨ VIỆT NAM Độc Lập - Tự Do - Hạ P -N y PHIẾU CHẤM BẢO VỆ LVTN ( ời phản biện) SV : NGUYỄN THỊ NGỌC ÁNH MSSV : 40800088 y :Đề ể Tự Độ : SCADA CHO HỆ THỐNG PHÂN LOẠI SẢN PHẨM ƣời phản biện: ề thuyết minh: Số trang : Số c ƣơ : Số bảng số liệu : Số hình vẽ : Số tài liệu tham khảo: Phần mề : Hiện vật (sản phẩm) : Tổ ề ản vẽ : - Số vẽ : A1 A2 khổ - Số vẽ tay Số vẽ y Nhữ ƣ đ ểm LVTN: Những thiế LVTN: Đề nghị : Đƣợc bảo vệ ổ để bảo vệ ợc bảo vệ Câu hỏi SV phải trả lờ ƣớc Hộ đồng : a b c 10 Đ ằng chữ : Giỏ T : Đ ểm /10 ọ tên) Họ N Đề Họ Tổ iii ĐH QUỐC GIA TP HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC BÁCH KHOA - Số: / ĐT HO : ĐIỆN - ĐIỆN TỬ BỘ MÔN: TỰ ĐỘNG HÓA ỘNG H X HỘI HỦ NGHĨ VIỆT N M Độ lập - Tự d - Hạ p - - NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP HỌ VÀ TÊN: NGUYỄN THỊ NGOC ÁNH MSSV: 40800088 NGÀNH: ĐIỀU KHIỂN TỰ ĐỘNG LỚP: DD08TD2 Đầ đề luậ : SCADA CHO HỆ THỐNG PHÂN LOẠI SẢN PHẨM Nhiệm vụ (Yêu cầu nội dung số liệ a đầu): Ngày giao nhiệm vụ luận : Ngày hoàn thành nhiệm vụ: Họ ƣờ ƣớng dẫn: Phầ ƣớng dẫn TS TRƢƠNG ĐÌNH CHÂU Nội dung yêu cầ LVTN đƣợc thông qua Bộ Môn Ngày tháng CHỦ NHIỆM BỘ MÔN (Ký ghi rõ họ tên) NGƢỜI HƢỚNG DẪN CHÍNH (Ký ghi rõ họ tên) PHẦN DÀNH CHO KHOA, BỘ MÔN: N ƣời duyệt (chấ ộ): Đơ ị: Ngày bảo vệ Đ ểm tổng kết Nơ lƣ ữ luậ iv Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm LỜI CẢM ƠN T ì đề tài luậ ô dẫn, bảo tận tình thầy ô động viên, khích lệ tinh thần từ Tôi xin gử đế a đì l a đì ô ậ đƣợc nhiều ƣớng a Đ ện, a đì ô ì ƣơ y lời â â a đì ắ đế TS.T ƣơ ƣớng dẫn, mở đƣờng cho suốt trình thực luậ Xin è ũ ƣ ững khích lệ động viên Xin kính gửi lời p đỡ bạ ất mà Đì â ƣờ ất thầy ô dạy dỗ, truyề đạt kiến thứ ô để có kết Tô ũ với thầy x ửi lời â ơ đến bạ è ô đặc biệt bạn làm luận p đỡ ũ ƣ dạy cho nhiều kiến thức quý giá Tp Hồ M 01 2013 Sinh viên thực Nguyễn Thị Ngọc Ánh SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 v Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm TÓM TẮT LUẬN VĂN Tự động hóa công nghiệp tự độ ũ phát triể đ l ệ l y đ a ò lớ đ ều khiển ƣ ự phát triển ngành sản xuấ Đ ù ự a đời nhiều đ ều khiển thông minh, nhiều giải pháp mớ để ấ lƣợng hệ thố đ ều khiển Các thiết bị đ ều khiển dùng công nghiệp phần lớn sử dụng giao thức truyền thông Modbus Chính đề tài luậ y ập trung vào nghiên cứu, sử dụng thiết bị đ ều khiển công nghiệp đồng thời phát triển ứng dụng SCADA tảng C# NET, từ đ rộ ƣơ ì dù ứng dụng sử dụng giao thức truyền thông Modbus TCP/IP ồm phần sau: Nội dung luậ Xây dự ƣơ ì Schneider Electric Từ đ đ ều khiển tảng PLC Premium hãng rộng giải thuậ ƣơ ì quát cho tất loại PLC tất hãng Xây dự ƣơ ì S ada dụng phần mềm Vijeocitect Xây dự ƣơ ì S ada dựa tảng C# SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 vi Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm MỤC LỤC PHIẾU CHẤM BẢO VỆ LVTN ii NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP iv LỜI CẢM ƠN v TÓM TẮT LUẬN VĂN .vi MỤC LỤC vii DANH SÁCH CÁC HÌNH VẼ ix DANH SÁCH CÁC BẢNG BIỂU .xi DANH SÁCH CÁC TỪ VIẾT TẮT xii CHƢƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Tổng quan đề tài 1.2 Mụ đề tài 1.3 Nhiệm vụ đề tài CHƢƠNG TÌM HIỂU PLC PREMIUM VÀ LẬP TRÌNH ĐIỀU KHIỂN CHO HỆ THỐNG 2.1 Tổng quan PLC Premium 2.2 Lập ì đ ều khiển cho hệ thống 2.2.1 Mô hình demo hệ thống .6 2.2.2 Tổ ƣơ ì 2.2.3 Giải thuậ ƣơ ì CHƢƠNG THIẾT KẾ SCADA TRÊN PHẦN MỀM VIJEO CITECT 15 3.1 Tổng quan phần mềm Vijeo Citect 15 3.2 Lập trình SCADA cho hệ thống phần mềm Citect .19 3.2.1 Thiết kế Graphic 19 3.2.2 Thiết lập trang theo dõi hệ thống 19 3.2.3 Thiết lập biến 21 3.2.4 Lập trình cho hệ thống SCADA 24 CHƢƠNG C# NETWORK PROGRAMMING 28 4.1 .NET Framework 28 SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 vii Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm 4.1.1 Tổng quan 28 4.2 T – ƣ đ ểm Net 29 4.2.1 Mở đầu C# 31 4.2.2 Một số đặc tính C# 31 4.2.3 Ƣ đ ểm C#.Net 32 4.3 Network programming 33 4.3.1 IP Programming 33 4.3.2 C# Socket Programming .36 4.3.3 Asynchronous Sockets 38 4.3.4 Thread 42 CHƢƠNG XÂY DỰNG SCADA TRÊN NỀN C# 45 5.1 Xây dựng Graphic ƣơ ì 45 5.2 Class Master .47 5.2.1 Tổng quát giao thức modbus 47 5.2.2 Giải thuậ ƣơ ì 51 5.3 Form1.cs: Xây dựng ứng dụng 55 5.3.1 Hiển thị hệ thống 56 5.3.2 Hiển thị TREND 57 5.3.3 ALARM .59 5.3.4 Report 60 CHƢƠNG TỔNG KẾT VÀ ĐÁNH GIÁ ĐỀ TÀI 62 6.1 Thành tự đạ đƣợc 62 6.2 Hạn chế .62 6.3 Hƣớng phát triển 62 TÀI LIỆU THAM KHẢO 64 SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 viii Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm DANH SÁCH CÁC HÌNH VẼ C Hình 1 Mô hình demo hệ thống Hình Sơ đồ hệ thống C Hình Premium PLC Hình 2 Module truyền thông Ethernet Hình Mô hình demo hệ thống Hì Đếm sản phẩm vừa phát Hình Giải thuật phân loại sản phẩm Hì Đ ều khiển piston1 phân loại sản phẩm dài Hình Phân loại sản phẩm ngắ đ ế ải) Hình Hàm Read_Var 10 Hình Hàm Write_Var 12 Hình 10 Hàm ADDR 13 Hì C 11 Q ì đ ều khiển việ đếm xung OTB 14 Hình Thành phần cấu trúc hệ thống SCADA( Vijeo Citect) 16 Hình Cấu trúc phân tán (distributed architecture) hệ thống SCADA 17 Hình 3 Cấu trúc project làm việc 19 Hình Giao diện hệ thống SCADA 19 Hình Tạo trang hiển thị Alarm 20 Hình Thiết lập Output Device cho Report 20 Hình Khai báo Variable Tags 21 Hình Khai báo Alarm Tags 22 Hình Khai báo Trend Tags 22 Hình 10 Thiết lập hiển thị Report .23 Hình 11 Khai báo Board 23 Hình 12 Khai báo Port 24 C SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 ix Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm Hình Stack Net Framework 29 Hình Common Language Infrastructure (CLI) .31 Hình Network packet 34 Hình 4 Kết nối TCP/IP 36 Hình Kết nối socket 37 Hình Các hàm kết nối server client 37 Hình Các trạng thái thread 43 Hình Các thread cần thiết cho giao tiếp mạng 44 C Hình Hiển thị hệ thống 45 Hình Trend .46 Hình Alarm 46 Hình Report 47 Hình 5 Khung truyền liệu Modbus Ascii 48 Hình Khung truyền liệu Modbus RTU .48 Hình Khung truyền liệu Modbus TCP/IP 49 Hì Định dạng chung 49 Hình Bảng mã lệnh 50 Hình 10 Cơ chế truyền nhận liệu lỗi xảy 51 Hình 11 Cơ chế truyền nhận liệu có lỗi xảy .51 Hình 12 Modbus Frame 53 Hì 13 đ ều khiển hiển thị Trend 58 Hình 14 Hiển thị Trend ZedGraph 59 Hình 15, Cấu trúc report tag 60 Hình 16 Quy trình tạo báo cáo report 61 SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 x Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Hình Bảng mã lệnh T đ thiết bị đ l a d lệ ad w d 0x03 đƣợc sử dụ ƣờng xuyên giao tiếp ặc 0x04), read n word (0x03 0x04), write word (0x06) write n word (0x10) 5.2.1.3 Cách thức truyền nhận liệu Đầu tiên, client (master) gửi yêu cầ đến server (slave), l đọc ghi liệu Server (slave) kiểm tra gói tin nhậ đƣợc, xem xét command lệnh để thực việc trả lời yêu cầu Nếu gói tin mà server (slave) nhậ đƣợc bị lỗi, trả client (master) exception (thông báo lỗi) Có thể quy trình truyền nhậ a đồ sau: SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 50 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Hình 10 Cơ chế truyền nhận liệu lỗi xảy Hình 11 Cơ chế truyền nhận liệu có lỗi xảy Khi lập trình, tùy theo liệu mà server trả cho client mà ta quyế định xử lý ƣơ ứng 5.2.2 Giải thuật trì Để lập trình kết nối TCP/IP Master/ Slave sử dụ NET mà C# hỗ trợ, lớp y đƣợc hỗ trợ a a pa ƣ đ l Sy ện lớp N System.Net.Sockets Hai namespace hỗ trợ nhiều lớp dùng lập trình mạ Để sử dụ đƣợc lớp y ƣớc tiên ta phải khai báo sử dụng namespace chứa using System.Net; using System.Net.Sockets; SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 51 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Khai báo funtion code khung truyền giao thức Modbus // Constants for access privateconstbyte fctReadCoil = 1; //Read n consecutive output bit privateconstbyte fctReadDiscreteInputs = 2; //Read n consecutive input bits privateconstbyte fctReadHoldingRegister = 3; //Read n consecutive output words privateconstbyte fctReadInputRegister = 4; //Read n consecutive input words privateconstbyte fctWriteSingleCoil = 5; //Write output bit privateconstbyte fctWriteSingleRegister = 6; //Write output word privateconstbyte fctWriteMultipleCoils = 15; //Write n output bits privateconstbyte fctWriteMultipleRegister = 16; // Write n output words privateconstbyte fctReadWriteMultipleRegister = 23; //Read/Write n output words Khai báo lỗi gặp trình kết nối truyền nhận liệu ///Constant for exception illegal function. publicconstbyte excIllegalFunction = 1; ///Constant for exception illegal data address. publicconstbyte excIllegalDataAdr = 2; ///Constant for exception illegal data value. publicconstbyte excIllegalDataVal = 3; ///Constant for exception slave device failure. publicconstbyte excSlaveDeviceFailure = 4; ///Constant for exception acknowledge. publicconstbyte excAck = 5; ///Constant for exception slave is busy/booting up. publicconstbyte excSlaveIsBusy = 6; ///Constant for exception gate path unavailable. publicconstbyte excGatePathUnavailable = 10; ///Constant for exception not connected. publicconstbyte excExceptionNotConnected = 253; ///Constant for exception connection lost. publicconstbyte excExceptionConnectionLost = 254; ///Constant for exception response timeout. publicconstbyte excExceptionTimeout = 255; ///Constant for exception wrong offset. privateconstbyte excExceptionOffset = 128; ///Constant for exception send failt. privateconstbyte excSendFailt = 100; Q y định thời gian chờ (timeout), thời gian refresh hệ thố a a đối ƣợng Client thuộc lớp System.net.Sockets Khai báo constructor (hàm dựng) public Master(string ip, ushort port) { connect(ip, port); } SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 52 Chương Xâ dựng SCADA C# Constructor tự độ GVHD: TS Trương Đình Châu đƣợc gọ đế đố ƣợng thuộc lớp a đƣợc tạo Khi có yêu cầu kết nối từ client, hàm connect() đƣơ ực hiệ T y đối ƣợng Client thuộc lớp Socket đƣợc tạo (khởi tạo Socket) kết nối với server địa IP, thông qua port mà ta truyề y đố ƣợ a đƣợc tạo Sau thực hàm connect(), không kết nố đƣợc, hàm trả thông báo lỗi Sử dụ E để thông báo, thực báo lỗi truyền thông có kiệ ƣơ đọc/ ghi xuống server hay thông ứng xảy ///Response data event This event is called when new data arrives publicdelegatevoidResponseData(ushort id, byte function, byte[] data); ///Response data event This event is called when new data arrives publiceventResponseData OnResponseData; ///Exception data event This event is called when the data is incorrect publicdelegatevoidExceptionData(ushort id, byte function, byte exception); ///Exception data event This event is called when the data is incorrect publiceventExceptionData OnException; Modbus Frame: Modbus Protocol lập với lớp truyề ô đƣợc mô tả ả y đị đơn vị liệu giao thức (PDU độc dƣới Với loại Modbus tảng khác ƣờ ị liệu ứng dụng (ADU – Application Data Unit) Hình 12 Modbus Frame Function Codecho server biế động cầ đƣợc thực Function Codechỉ gồm 1byte, từ đền 255 ( code 0, khoảng từ 128 – 255 đƣợc dự trữ SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 53 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu sử dụng trả lời lỗi) Một vài Function code có mã hàm phụ (subfunction code) nhằm lệnh server thực nhiều việc T ƣờng Data(dữ liệu) chứa thông tin bổ sung giúp server thực thao tác đƣợc định Function code Nó chứa địa ghi, bit, số lƣợng phần tử, hay số y đƣợc truyền frame Datacó thể có không tùy function code Cách xây dự PDU l ƣ a ọi loại Modbus dựa tảng khác Để hoàn thành ADU, với Modbus tảng khác có thêm yêu cầu khác Ví dụ ƣ ới Modbus TCP/IP cần thêm MBAP Header (ModBus ApplicationProtocol Header) Còn với Modbus RTU phả địa port nối tiếp địa slave Bảng ModBus ApplicationProtocol Header T ƣờng Chiều dài Mô tả Client Server Transaction bytes Phân biệt Tạo client Server Identifier giao dịch khác chép từ yêu cầu nhậ đƣợc Modbus Protocol bytes Identifier = cho Tạo client TCP/IP Server chép từ yêu cầu nhậ đƣợc Length Unit Identifier bytes byte Số byte theo Tạo client Tạo server sau (yêu cầu) (trả lời) Nhận diện Tạo client Server thiết bị kết nối chép từ yêu vào bus nối cầu nhậ đƣợc tiếphay bus khác SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 54 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Sau giải xong vấ đề kết nố Ta đ yền liệu đọc ghi khác thêm header cho gói liệu thực giao thức modbus TCP/IP // Create modbus header for read action privatebyte[] CreateReadHeader(ushort id, ushort startAddress, ushort length, byte function) { byte[] data = newbyte[12]; byte[] _id = BitConverter.GetBytes((short)id); data[0] = _id[0]; // Slave id high byte data[1] = _id[1]; // Slave id low byte data[5] = 6; // Message size data[6] = 0; // Slave address data[7] = function; // Function code byte[] _adr = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)startAddress)); data[8] = _adr[0]; // Start address data[9] = _adr[1]; // Start address byte[] _length = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)length)); data[10] = _length[0]; // Number of data to read data[11] = _length[1]; // Number of data to read return data; } Việ lƣ ữ liệ truyền thông lạ IP dd H T N w y l al định dạng little endian, nhiên định dạng theo big endian Vì thế, ta sử dụng hàm Od để thực công việc chuyể đổ đ Nếu lỗi yêu cầu nhậ đƣợc, server thực yêu cầu gửi trả lời cho client Nếu có lỗi xảy ra, server gửi thông báo lỗi cho client (exception) Câu trả lời lỗ ay ì ƣờ đƣợc báo qua function code trả lời: câu trả lời bình ƣờng server sử dụng function code yêu cầu, exception responsethì dù f d đ ƣ MSBlên (nói cách khác cộng function code yêu cầu với 128) T đề tài p l y đƣợc sử dụng nhằm truyền dẫn liệu PC PLC 5.3 Form1.cs: Xây dựng ứng dụng Ở phần tìm hiểu ƣơ ì S D ệ thống phân loại sản phẩm dựa hoạ động lớp Master SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 55 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Để xây dựng lên mộ G ap ƣ ì a dụng công cụ mà C# hỗ trợ w d w f l a d ện cần sử dụng tab: Hiển thị đ l Ta a ẽ trình bày cụ SCADA, hiển thị Trend, hiển thị Alarm, hiển thị Report Phầ thể hiết kế cách xây dự ƣơ ì đ ều khiển, giám sát a đ : 5.3.1 Hiển thị hệ thống Hiển thị mô hình hệ thố Hì 6.1 đƣợc thiết kế a Tab Control // Create new modbus master and add event functions MBmaster = newMaster(txtIP.Text, 502); MBmaster.OnResponseData += new luanvan_fn.Master.ResponseData(MBmaster_OnResponseData); MBmaster.OnException += new luanvan_fn.Master.ExceptionData(MBmaster_OnException); timerRun.Enabled = true; Kết nố đến PLC: việc kết nố đế PL đƣợc thực kết nố địa IP Sau nhập địa IP PLC cần kết nối vào ô IP Address, click vào button Connect, mộ đố ƣợng thuộc lớp Ma P a đƣợc tạo với thông tin địa IP, để xử lý kiện gửi/ nhận data có lỗi truyền thông xảy a Đồng thời kích hoạt timer cho phép hệ thống hoạ động: ải hiển thị on/off đè d dù ển thị M d đ ều khiển hệ thố đƣợc chọ ì đè xa l ST RT/STOP đƣợ a l d đƣợc chọn), p ép ƣời điều khiển hệ thống giao diện SCADA đè ƣớ ƣơ ển thị ƣớc sản phẩ ứng chạy l ển thị vậ đa ải), ô text hiển thị số lƣợng sản phẩm Khi hệ thống phân biệ đƣợ ứng xuất chạy đè xa ƣớc sản phẩm, sản phẩ ƣớ ƣơ ải SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 56 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu privatevoid PackagePosition(ulong Motorposition1) { double positiontemp = (double)Motorposition1/((double)115500); int position = (int)(777 * (1 - positiontemp)); if((!Piston1Flag & !Piston2Flag) && (shortFlag | normalFlag | longFlag)) sharpBox.Location = newPoint(position, sharpBox.Location.Y); if (Piston1Flag || Piston2Flag) { sharpBox.Location = newPoint(sharpBox.Location.X - 45, sharpBox.Location.Y + 45); } } Sản phẩm di chuyể đến vị trí phù hợp đƣợc hệ thống phân loại nhờ hệ thống pittông khí nén 5.3.2 Hiển thị TREND Trend hiển thị số lƣợng sản phẩm tổng số lƣợng sản phẩ N ƣời đ ều dùng thể chọn sản phẩm mà muốn quan sát cách sử dụ khiể SHORT MEDIUM LONG TOT L đƣợc lập thái hiển thị loạ ƣơ ứ d OMP ì T dù để đổi trạng để xem chế độ hiển thị TREND SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 57 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Hình 13 Button điều khiển hiển thị Trend if if if if (sender (sender (sender (sender == == == == btnShort) Toogle(0); btnMedium) Toogle(1); btnLong) Toogle(2); btnTotal) Toogle(3); bool[] toogle = newbool[4] { true, true, true, true }; privatevoid Toogle(int TR_index) { if (toogle[TR_index]) { Curve[TR_index].IsVisible = false; Curve[TR_index].Label.IsVisible = false; toogle[TR_index] = false; } else { Curve[TR_index].IsVisible = true; Curve[TR_index].Label.IsVisible = true; toogle[TR_index] = true; } } Sử dụ Z d ap để hiển thị trend SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 58 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu Hình 14 Hiển thị Trend ZedGraph 5.3.3 ALARM a Alarm hiển thị trạng thái tín hiệu mà cần ƣợ tín hiệ ay dƣới mứ p ép T động đề tài này, ta quan sát số lƣợng sản phẩm Sử dụ L V w để hiển thị Alarm Khi xảy event nhận data, ta kiểm tra số lƣợng sản phẩm, số lƣợng sản phẩ text L V w để T ƣ độ ƣợt mứ y đị ay đổi hiển thị ƣời dùng ện NET C# hỗ trợ namespace System.Runtime.InteropServices, ta sử dụng namespace cần tạo âm cho hệ thố Alarm có mứ âm cho hệ thố động HIGH HIGH HIGH Sử dụ động p để tạo động if ((ShortValue >= 10) && (ShortValue < 15)) { mylistview.Items[0].SubItems[2].Text = "High"; Beep(2000, 500); } if (ShortValue >= 15) { mylistview.Items[0].SubItems[2].Text = "High High"; Beep(2000, 500); } if (ShortValue < 10) { mylistview.Items[0].SubItems[2].Text = "Normal"; } SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 59 Chương Xâ dựng SCADA C# GVHD: TS Trương Đình Châu 5.3.4 Report Report cập nhật liệu vào file theo thời gian thực, nên có giới hạn số a Lƣợng file tạo vô lớ Đề giải vấ đề này, ta sử dụng file tạ mảng vòng, chứa đƣờng dẫ đến file báo cáo Chiều quay Report tag Top Index Phần tử Tag Giá trị Hình 15, Cấu trúc report tag Đị ĩa a y ƣ a : publicclassReportTag { publicstring[] TagName = newstring[30]; publicstring Path; publicint index = 0; } T // file Name đ : TagName: mảng string chứa tên file, ố đa 30 f l p đƣợc tạo Pa : đƣờng dẫ đến file report (30 file nằ Index : cho biế f l Để tạ a p p ƣ ục) đƣợc cập nhật ản nhấ ì ƣớc tiên ta cần phải tạo file template Khi liệ đƣợc cập nhật report lấy giá trị ghi vào ví trí thích hợp template SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 60 Chương Xâ dựng SCADA C# Report Template (.rtf) Đọc file template GVHD: TS Trương Đình Châu Thay giá trị vào vị trí thích hợp Lưu thành file khác Tăng số index Hình 16 Quy trình tạo báo cáo report Đƣờng dẫ đế fl p đƣợ a ay đầ ƣơ ì ReportTask.Path = Application.StartupPath + "\\Report\\"; Để kiểm tra file report dù 1fl đƣợc tạo nhấ ƣơ ì l ad lại từ đầu, ta x để lƣ lại số index fs = new System.IO.FileStream(Application.StartupPath + @"\test.txt", FileMode.Create, FileAccess.Write, FileShare.None); ƣơ ì ắ đầ a đọc file test.text cập nhật số index fs = new System.IO.FileStream(Application.StartupPath + @"\test.txt", FileMode.Open, FileAccess.Read, FileShare.None); N ƣ ậy ƣơ ì ắ đầu lại file report tạo không bị trùng lấp lên nhau, mà ghi theo vòng tiếp tục từ filevừa tạ đến file cuối Các file report tạo có tên từ Fl T p f đến report30.rtf pla dù để tạo report có dạng SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 61 Chương Tổng kết v đ nh gi đề t i GVHD: TS Trương Đình Châu CHƢƠNG TỔNG KẾT VÀ ĐÁNH GIÁ ĐỀ TÀI 6.1 Thành tựu đạt đƣợc Từ kết nghiên cứu phát triển ứng dụ đề đạ đƣợc số thành tựu sau: Mô hình vận hành tốt Thuậ đ pứ đƣợc yêu cầ đề ra, giao diệ V j đảm bả đƣợc yêu cầu giám sát Nắ ế truyền thông TCP/IP với giao thức Modbus Tìm hiểu C#.Net, ngôn ngữ lập trình mạnh,phục vụ cho việc lập trình ứng dụng cấp cao sau Xây dựng thành công mộ đ pứ ƣơ ì S D dựa tảng C#.NET đầy đủ yêu cầu đ ều khiển giám sát hệ thống SCADA 6.2 Hạn chế Đề tài thực mặt hạn chế sau: ƣa ải pháp dự phòng cho hệ thống sảy cố C# ngôn ngữ mạnh, hỗ trợ nhiều công cụ T y a ƣ đƣợc hết công cụ đ để làm cho giao diện SCADA hoàn thiện dù phần mề S trình dẫ đến việc hệ thố ƣa D Đồng thờ đ p ứng chậ Nếu xây dựng hệ thống SCADA lớ ƣa ản lý tố ƣơ y ầu ền tảng C# NET, không quản lý tốt dẫ đến việc hệ thống không ổ định 6.3 Hƣớng phát triển D đ ều kiện phần ô hình demo phân loại sản phẩ đ pứ đƣợ ả đ l đề tài làm mô ô ì p â l ại sản phẩm ƣớc, ra, ta làm nhiều mô hình phân loại sản phẩm theo màu, hay nhận biết lỗi sản phẩ Xây dựng hệ thống dự p ò chấ lƣợ để phân loại để hệ thống hoạ động tốt, ổ đị đảm bảo SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 62 Chương Tổng kết v đ nh gi đề t i Về ƣơ ì S D GVHD: TS Trương Đình Châu ền tảng C#: Từ class Master ta xây dựng nhiều ứng dụng sử dụng giao thức truyền thông Modbus TCP/IP, cần tiếp tục xây dựng hệ thống cho dễ dàng l đ p ứng nhu cầu cho hệ thống phức tạp SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 63 Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm TÀI LIỆU THAM KHẢO [1] S D a al TS T ƣơ Đì â ĐH a TPH M [2] http://www.rtaautomation.com/modbustcp/ [3] C Sharp.Network.Programming - Richard Blum [4] Rob Miles CSharp Yellow Book 2010 [5] CodeProject, http://codeproject.com/ [6] Wikipedia, http://wikipedia.com/ SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 64 [...]... lập trình điền khiển cho hệ thống Đ ều khiể p x GVHD: TS Trương Đình Châu để phân loại sản phẩ : ƣớc của sản phẩ định, ta bắ đầ đếm số xung do encoder phát về So sánh số lƣợ khiển 2 piston đƣợc x để phân loại 2 sản phẩm dài và trung bình, sản phẩm ngắ đ ải Sau khi phân loại sản phẩm xong, reset các tín hiệ đ ều ết ƣớc sản phẩm, reset ô nhớ đọc xung của OT để chuẩn bị phân loại sản phẩm tiếp theo LONG... dù d đa để phân loại sản phẩm dài đọc xung của độ pa l dù y để phân biệ để chọ ơ Sử dụ D d đ ều khiển cho hệ thố ả ƣớc của sản phẩm, 2 piston ì Độ ơD ủa d I/O để đọc xung của độ ải có ơ Một đ ều khiển hệ thống khi hệ thống ở mode AUTO SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 1 Chương 1.Giới thiệu đề tài GVHD: TS Trương Đình Châu LONG MEDIUM RU SHORT START STOP Hình 1 1 Mô hình demo hệ thống Sử... dụng tốt phần mềm lập trình cho PLC, phần mềm lập trình SCADA Trong đề tài này sử dụng phần mề dụng phần mề Vj U yP để lập ì để lập ì S đ ều khiển cho PLC Premium , sử D đ ều khiển hệ thống Nghiên cứu giao thức Modbus TCP/IP, nghiên cứu, sử dụng phần mềm lập trình C# 1.3 Nhiệm vụ đề tài Xây dựng mô hình demo cho hệ thống phân loại sản phẩm sử dụng mô hình ải phân loại sản phẩ ƣớc Mô hình bao gồ :... PLC Premium và lập trình điền khiển cho hệ thống GVHD: TS Trương Đình Châu START N RUN = 1 Y N SENSOR_A = 1? Y N SENSOR_C = 1? SENSOR_B = 1? Y LONG =1 OTB1.First_Init = 1 Y MEDIUM OTB1.First_Init = 1 N SHORT OTB1.First_Init = 1 Hình 2 4 Giải thuật phân loại sản phẩm Đếm sản phẩm : Khi hệ thống phát hiệ ƣớ ƣơ ứng sẽ l a ƣớc vật thì số lƣợng của vật 1 Hình 2 5 Đếm sản phẩm vừa phát hiện SVTH: Nguyễn Thị... luậ a : y đƣợc sử dụ để gửi/nhậ ô đ ệp TCP/IP 2.2 Lập trình điều khiển cho hệ thống Sử dụng phần mề U yP để lập ì PL đ ều khiển cho hệ thống SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 5 Chương 2.Tìm hiểu PLC Premium và lập trình điền khiển cho hệ thống GVHD: TS Trương Đình Châu 2.2.1 Mô hình demo hệ thống Hình 2 3 Mô hình demo hệ thống 2.2.2 Tổ quát ơ trình y PL đƣợc sử dụng là Premium PLC của hãng... Sử dụng phần mềm Unity P để lập ì PL P đ ều khiển hệ thống Sử dụng phần mề Vj để xây dự S D đ ều khiển hệ thống Nghiên cứu giao thức Modbus TCP/IP, phần mềm C# Xây dựng mộ ƣơ trình truyền thông bằng giao thức Modbus TCP/IP trên nền C#.NET, từ đ phát triển các ứng dụng trong công nghiệp, cụ thể đề tài này là xây dựng SCADA cho hệ thống phân loại sản phẩm trên nền C# NET SVTH: Nguyễn Thị Ngọc Ánh –... hành Cấu trúc hệ thống trong Vijeo Citect, hệ thống phân tán : Kiến trúc mở Đa tác vụ (Multitasking) SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 16 Chương 3 Thiết kế SCADA trên phần mềm Vijeo Citect GVHD: TS Trương Đình Châu Cấu trúc truy cập biến từ bất kì nút thắt nào trong hệ thống Cấu trúc truy cập dữ liệu (trend, alarm, report) từ bất kì nút thắt nào trong hệ thống Cấ đơ ị hệ thống client/server... – MSSV: 40800088 18 Chương 3 Thiết kế SCADA trên phần mềm Vijeo Citect GVHD: TS Trương Đình Châu Hình 3 3 Cấu trúc một project làm việc 3.2 Lập trình SCADA cho hệ thống trên phần mềm Citect 3.2.1 Thiết kế Graphic Hình 3 4 Giao diện hệ thống trên SCADA 3.2.2 Thiết lập các trang theo dõi hệ thống ƣơ ì S D ử dụng các trang sau: Application: Hiển thị đ ều khiển hệ thống H.3.4 SVTH: Nguyễn Thị Ngọc Ánh... bộ nhớ động, phù hợp với đ ểm (Points) vào ra ít 3.2.4 Lập trình cho hệ thống SCADA Sau khi thiết lập các thông số cho hệ thống, ta tiến hành lập trình cho hệ thống hiển thị theo yêu cầu đè ển thị trạ thị mode hệ thố : đỏ: Ma : al xa xa : SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 ff: đè đỏ, bào gồ : Đè ển ển thị trạng thái Run của hệ 24 ... Reset_Count = 1 Hình 2 6 Điều khiển piston1 phân loại sản phẩm dài SHORT = 1 N MotorPosition >= 115500 Y SHORT = 0 Reset_Count = 1 Hình 2 7 Phân loại sản phẩm ngắn (đi hết băng tải) Để đếm xung của encoder ta dùng hàm READ_VAR và WRITE_VAR READ_VAR SVTH: Nguyễn Thị Ngọc Ánh – MSSV: 40800088 9 Chương 2.Tìm hiểu PLC Premium và lập trình điền khiển cho hệ thống H y dù để l ay GVHD: TS Trương Đình Châu ... Mô hình demo hệ thống Hì Đếm sản phẩm vừa phát Hình Giải thuật phân loại sản phẩm Hì Đ ều khiển piston1 phân loại sản phẩm dài Hình Phân loại sản phẩm ngắ đ ế... hình demo cho hệ thống phân loại sản phẩm sử dụng mô hình ải phân loại sản phẩ ƣớc Mô hình bao gồ : tải có thi công cảm biế p x é dù d đa để phân loại sản phẩm dài đọc xung độ pa l dù y để phân biệ... MSSV: 40800088 viii Luận văn Tốt nghiệp: SCADA cho hệ thống phân loại sản phẩm DANH SÁCH CÁC HÌNH VẼ C Hình 1 Mô hình demo hệ thống Hình Sơ đồ hệ thống C Hình Premium PLC