Luận văn Xây dựng hệ thống quản lý cân động ứng dụng trong hệ thống cân tàu hỏa

LUẬN VĂN CAO HỌC Đề tài: Xây dựng hệ thống quản lý cân động ứng dụng trong hệ thống cân tàu hỏa Chuyên ngành : Khoa học máy tính Người hướng dẫn: PGS.TS. Đoàn Văn B Mục lục 1 Khảo sát hiện trạng hệ thống cân động vật thể 1.1 Thực trạng tập đoàn than - khoáng sản Việt Nam-TKV 1.2 Mô tả nghiệp vụ của hệ thống hiện hành . . . . . . . . . 1.3 Mô tả, xác định mục tiêu và yêu cầu của hệ thống mới . 1.4 Tổng kết chương . . . . . . . . . . . . . . . . . . . . . . 2 Thiết kế tổng thể hệ thống cân 2.1 Thiết kế phần cứng . . . . . . 2.1.1 Các phương án thiết kế 2.1.2 Sơ đồ tổng thể . . . . 2.2 2.3 động vật thể . . . . . . . . . . . . . . . phần cứng hệ thống . . . . . . . . . . . . . . . . . . 2.1.3 Ý nghĩa và yêu cầu kỹ thuật của từng khối . Thiết kế phần mềm . . . . . . . . . . . . . . . . . . 2.2.1 Xác định các yêu cầu và phân tích hệ thống 2.2.2 Phân tích hệ thống hướng đối tượng . . . . 2.2.3 Thiết kế hệ thống hướng đối tượng . . . . . 2.2.4 Lập trình hướng đối tượng . . . . . . . . . . Tổng kết chương . . . . . . . . . . . . . . . . . . . 3 Thiết kế chi tiết hệ thống cân động vật thể 3.1 Thiết kế phần cứng hệ thống . . . . . . . . . . . . 3.1.1 Khối cảm biến . . . . . . . . . . . . . . . . 3.1.2 Khối chuyển đổi ADC . . . . . . . . . . . 3.1.3 Khối truyền thông . . . . . . . . . . . . . 3.1.4 Khối nguồn . . . . . . . . . . . . . . . . . 3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] MỤC LỤC Khảo sát, xác định các yêu cầu Phân tích hệ thống . . . . . . . Thiết kế hệ thống . . . . . . . . Lập trình và kiểm tra hệ thống Vận hành và bảo trì hệ thống . kết chương . . . . . . . . . . . . 4 Xây dựng hệ thống cân động vật 4.1 Giới thiệu về ngôn ngữ lập trình 4.2 Giới thiệu về ngôn ngữ lập trình 4.3 Các chức năng của chương trình 4.4 Màn hình giao diện chức năng . 4.5 Lập kế hoạch triển khai thực tế 4.6 Xác định rủi ro . . . . . . . . . 4.7 Đánh giá kết quả thử nghiệm . A Vi điều khiển PIC A.1 Từ Vi xử lý đến Vi điều khiển A.2 Vi điều khiển họ PIC . . . . . A.3 Lập trình cho PIC . . . . . . A.4 Một vài đặc tính của PIC . . B Ứng dụng mạch khuếch đại thuật toán 71 B.1 Ứng dụng mạch tuyến tính . . . . . . . . . . . . . . . . . B.2 Các ứng dụng phi tuyến . . . . . . . . . . . . . . . . . . Luận văn: Thiết kế hệ thống cân động. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 71 76

pdf81 trang | Chia sẻ: maiphuongtl | Lượt xem: 1688 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống quản lý cân động ứng dụng trong hệ thống cân tàu hỏa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
buffer[2]=L7[black];}else so0=0; if((buffer[1]==L7[0])&&(so0)){buffer[1]=L7[black];} for(k=0;k<8;k++){ for(k1=0;k1<8;k1++){ out1bit clock buffer[k]>>=1; }} output_bit(ST_CP,0); output_bit(ST_CP,1); } Đoạn mã nguồn nhận dữ liệu trên PC: private void COM1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] 43 { startByte = COM1.ReadByte(); str = COM1.ReadTo("\n").ToString(); //startByte = Convert.ToSByte(str.Substring(0, 1)); DAT[dau] = str; if (++dau > Nmax) dau = 0; blink = !blink; } catch { } } Đoạn chương trình xác định khối lượng toa tàu và lưu dữ liệu lên file: private void timer1_Tick(object sender, EventArgs e) { com_data_receiv.Visible = blink; if (mathe != "") { mathe_lst.Items.Insert(0,mathe.Substring (0,mathe.Length -1)); mathe = ""; } if (cuoi != dau) { while (cuoi != dau) { if (DAT[cuoi].Length >7) { A_old = A; B_old = B; Conv(DAT[cuoi], out A, out B); A += Convert.ToInt32(Zero1_txt.Text); B += Convert.ToInt32(Zero2_txt.Text); Can1_disp.Text = A.ToString(); Can2_disp.Text = B.ToString(); if (A > 30000) A = A_old; if (B > 30000) B = B_old; //------------------------------------------------------- switch (startByte) { case 1: // data TrongTruc_old1 = TrongTruc1; TrongTruc_old2 = TrongTruc2; vuotnguong_buf1[vuotnguong_buf1_cnt] = A > Convert.ToUInt16(NguongKohang_txt.Text); if (Huongtau_lbl.Text.Equals("Từ ga đi")) vuotnguong_buf1[vuotnguong_buf1_cnt] = A > Convert.ToUInt16(NguongCoHang_txt.Text); vuotnguong_buf2[vuotnguong_buf2_cnt] = B > Convert.ToUInt16(NguongKohang_txt.Text); if (Huongtau_lbl.Text.Equals("Từ ga đi")) vuotnguong_buf2[vuotnguong_buf2_cnt] = B > Convert.ToUInt16(NguongCoHang_txt.Text); VuotNguong1 = true; for (byte k = 0; k < 5; k++) Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] 44 if (vuotnguong_buf1[k] == false) { VuotNguong1 = false; break; } vuotnguong_buf1_cnt++; if (vuotnguong_buf1_cnt > 4) vuotnguong_buf1_cnt = 0; VuotNguong2 = true; for (byte k = 0; k < 5; k++) if (vuotnguong_buf2[k] == false) { VuotNguong2 = false; break; } vuotnguong_buf2_cnt++; if (vuotnguong_buf2_cnt > 4) vuotnguong_buf2_cnt = 0; if (VuotNguong1) { DAT_ILDE_cnt1 = 10; dat_cnt = Convert.ToInt64(Tauquahan_txt.Text); if (Huongtau_lbl.Text == "") { Huongtau_lbl.Text = "Từ ga đi"; huongtau_muiten.Text = "-->>"; DB_di.Rows.Clear(); } } if (VuotNguong2) { DAT_ILDE_cnt2 = 10; dat_cnt = Convert.ToInt64(Tauquahan_txt.Text); if (Huongtau_lbl.Text == "") { Huongtau_lbl.Text = "Đi về ga"; huongtau_muiten.Text = "<<--"; DB_ve.Rows.Clear(); } } if (DAT_ILDE_cnt1 > 0) DAT_ILDE_cnt1--; if (DAT_ILDE_cnt2 > 0) DAT_ILDE_cnt2--; //Tàu ngoài cân, xóa hướng tàu, //xóa bộ đệm của mỗi toa: if (dat_cnt > 0) { dat_cnt--; DBtemp.Rows.Add(); DBtemp.Rows[DBtemp.RowCount - 1].Cells[0].Value = A; DBtemp.Rows[DBtemp.RowCount - 1].Cells[1].Value = B; DBtemp.Rows[DBtemp.RowCount - 1].Cells[2].Value = DateTime.Now ; Disp1[Disp1_cuoi++] = A; if (Disp1_cuoi > Disp_max) Disp1_cuoi = 0; Disp2[Disp2_cuoi++] = B; if (Disp2_cuoi > Disp_max) Disp2_cuoi = 0; TongSomau.Text = DBtemp.RowCount.ToString (); } if (dat_cnt == 0) Huongtau_lbl.Text = ""; // Ngoài đoàn tàu: if (dat_cnt == 1) Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] 45 { OleDbConnection cnn = new OleDbConnection(strConn); cnn.Open(); OleDbCommand cmd = new OleDbCommand(strSQL, cnn); TAfunctions ta = new TAfunctions(); if(Cumcan1_opt.Checked ) Caculate(0);// tính cụm 0=A, 1=B else Caculate(1);// tính cụm 0=A, 1=B // lưu vào CSDL: //Tinh_btn_Click(sender,e); //FileStream fs = new FileStream(); MaxValue_cnt = MaxValue("‘Lần cân thứ‘", "TrainTime"); string filename= "DAT" + DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString(); string SQL = "Create table " + filename + " (Cum1 Integer ,Cum2 Integer , Thoigian datetime)"; cmd.CommandText = SQL; cmd.ExecuteNonQuery(); for (int r = 0; r < DBtemp.RowCount; r++) { SQL = "INSERT INTO " + filename + " (Cum1,Cum2,Thoigian) VALUES (" + (DBtemp.Rows[r].Cells[0].Value) + "," + (DBtemp.Rows[r].Cells[1].Value) + ",’" + DBtemp.Rows[r].Cells[2].Value + "’)"; cmd.CommandText = SQL; cmd.ExecuteNonQuery(); } for (int r = 0; r < DB_di.RowCount-1; r++) { try { SQL = "INSERT INTO TrainData_tien (STT,‘Lần cân thứ‘, ‘Mã toa‘,‘Tốc độ (Km/h)‘,‘KL Tổng (Kg)‘) VALUES (" + DB_di.Rows[r].Cells["STT"].Value + "," + MaxValue_cnt + ",’" + DB_di.Rows[r].Cells["Mã toa"].Value + "’," + DB_di.Rows[r].Cells["Tốc độ (Km/h)"].Value + "," + DB_di.Rows[r].Cells["KL Tổng (Kg)"].Value + ")"; cmd.CommandText = SQL; cmd.ExecuteNonQuery(); } catch { } } Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.2 Thiết kế hướng đối tượng phần mềm hệ thống [2] 46 for (int r = 0; r < DB_ve.RowCount-1; r++) { try { SQL = "INSERT INTO TrainData_lui (STT,‘Lần cân thứ‘, ‘Mã toa‘,‘Tốc độ (Km/h)‘,‘KL Tổng (Kg)‘) VALUES (" + DB_ve.Rows[r].Cells["STT"].Value + "," + MaxValue_cnt + ",’" + DB_ve.Rows[r].Cells["Mã toa"].Value + "’," + DB_ve.Rows[r].Cells["Tốc độ (Km/h)"].Value + "," + DB_ve.Rows[r].Cells["KL Tổng (Kg)"].Value + ")"; cmd.CommandText = SQL; cmd.ExecuteNonQuery(); } catch { } } SQL = "INSERT INTO TrainTime (" + "‘Lần cân thứ‘,‘Hướng tàu‘," + "‘Thời gian‘,‘Số hiệu đoàn tàu‘," + "‘KL Tổng(Kg)‘,‘Tên file dữ liệu gốc‘)VALUES (" + MaxValue_cnt + ",’" + Huongtau_lbl.Text + "’,’" + System.DateTime.Now + "’,’" + Sohieudoantau_txt.Text + "’,’" + KLTong_txt.Text + "’,’" + filename + "’)"; cmd.CommandText = SQL; cmd.ExecuteNonQuery(); cnn.Close(); VuotNguong1 = false; VuotNguong2 = false; } //---------------------------------------------- Tauqua_lbl.Text = dat_cnt.ToString(); break; case 2: Tocdo_lbl.Text = Convert.ToString(Convert.ToSingle(A)/1000); if (B == 11) { Huongtau_lbl.Text = "Từ ga đi"; huongtau_muiten.Text = "==>>"; } if (B == 10) { Huongtau_lbl.Text = "Đi về ga"; huongtau_muiten.Text = "<<=="; } break; case 3: // Thông báo: phát hiện thấy đầu tàu=> hủy Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.3 Tổng kết chương 47 // label19.Text = "Đầu tàu=11"; break; case 4: break; } } if (++cuoi > Nmax) cuoi = 0; } } } 3.2.5 Vận hành và bảo trì hệ thống Hệ thống bao gồm cả phần cứng và phần mềm, do vậy, khi thiết kế cần phải xác định rõ thời gian hệ thống hoạ động ổn định nhất để có phương án bảo hành bải trì. Trong sau khi thiết kế, hệ thống đã được kiểm thử tại công ty than Vàng danh Uông bí, Quảng ninh. Các mẫu thử khi có tàu chạy qua khá ổn, gần như không có nhiễu, dữ liệu hoàn toàn như mong đợi. Nhìn các hình của mẫu (hình 4.4, 4.5, hình 4.6, hình 4.8) chúng ta có thể thấy rõ từng mẫu tín hiệu được gửi về. 3.3 Tổng kết chương Chương này thiết kế chi tiết cả phần cứng và phần mềm. Về phần cứng, thiết kế được chi tiết các thành phần của từng module, các tín hiệu đầu vào, đầu ra theo đúng như yêu cầu trong phần thiết kế tổng thể, đảm bảo các module có thể hoạt động tốt trong phạm vi thiết kế và có thể ghép nối giao tiếp với nhau an toàn. Về phần mềm nhúng, đưa ra được các module dùng để kiểm tra sự hoạt động độc lập từng module và module phần mềm dùng trong quá trình vận hành hệ thống thực tế. Về phần mềm, đã thiết kế đạt yêu cầu, phân tích phần mềm hướng đối tượng, phân tích từng quá trình, để lập trình viên dễ dàng hình dung được sự vận hành của toàn bộ hệ thống, quá trình gia lệnh điều khiển, cũng như luồng dữ liệu. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Chương 4 Xây dựng hệ thống cân động vật thể Giới thiệu về môi trường các ngôn ngữ lập trình: • Firmware • Software Thiết kế chương trình, giao diện chức năng và một số mẫu dữ liệu thực tế thu thập được. 4.1 Giới thiệu về ngôn ngữ lập trình cho phần cứng nhúng Phần cứng đơn thuần, chỉ hoạt động theo thiết kế cố định ban đầu, nó không thể linh động, không thể thay đổi các thông số, không thể đáp ứng được các bài toán cần truyền thông theo quy chuẩn và không thể áp dụng các thuật toán,... Qua đó, để khắc phục được những nhược điểm trên chúng ta dùng phần nhúng. Hệ thống nhúng là hệ thống có phần mềm nhúng trong phần cứng. Có rất nhiều phần cứng hỗ trợ hệ nhúng, ví dụ: thông dụng như Hệ vi điều khiển onchip 8051, PIC, AVR, ARM, PSoC, DSP,... Mỗi nền phần cứng nhúng, sẽ đi kèm là một trình biên dịch, hỗ trợ ngôn ngữ ASM và một số ngôn ngữ bậc cao khác. Trong hệ thống của chúng ta, để thuận tiện, ta lập trình cho hệ nhúng bằng ngôn ngữ C. Ngôn ngữ C là ngôn ngữ lập trình bậc cao, đã hỗ trợ hầu hết các chương trình con thông dụng, có cấu trúc rõ ràng, mạch lạc, dễ hiểu và dễ lập trình. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.2 Giới thiệu về ngôn ngữ lập trình phần mềm: C# 49 Trong số các chương trình dịch C cho vi điều khiển, cũng có nhiều loại (dị bản) C khác nhau, không tuân thủ thống nhất là dùng ANSI C, vậy nên có đôi điều chúng ta cần phải nói đến. Ngôn ngữ C cho PIC được CCS phát triển, dựa trên nền tảng C, nhưng các phương pháp vào/ra, thay vì dùng thẳng các thanh ghi thì CCS lại sử dụng hàm. Ví dụ, để xuất giá trị ra cổng RB, High-Tech (ngôn ngữ C theo chuẩn ANSI C) viết lệnh là: PORTB=value; (với value là giá trị cần xuất); thì trong CCS lại sử dụng hàm: output_ B(value); Thay vì sử dụng các thanh ghi làm phương pháp vào/ra, CCS chuyển hết thành dùng hàm như vậy, đôi khi cũng khó hiểu cho người mới tiếp cận; song lại là một phương pháp viết lệnh tốt khi chúng ta cần chuyển đổi chương trình dịch vì một lý do nào đó. CCS là một hãng phát triển C cho PIC khá toàn diện, luôn cập nhật, hỗ trợ những dòng vi điều khiển mới, làm cho người lập trình dễ dàng tiếp cận với các vi điều khiển mới mà không gặp chút khó khăn nào; CCS dùng phương pháp lập trình tương đồng cho các dòng vi điều khiển khác nhau, chính vì vậy mà khi muốn thay đổi phần cứng thì phần mềm không phải thay đổi nhiều. Vì là lập trình C, nên CCS cũng hỗ trợ hầu hết các cấu trúc của C, như khai báo biến, các toán tử, các phương pháp thực hiện biểu thức, cấu trúc lặp, rẽ nhánh, con trỏ,... vậy nên, ta có thể dùng các kỹ năng lập trình C cho phần mềm máy tính để lập trình cho hệ vi điều khiển. Khi lập trình xong, ta có thể dịch ra mã *.Hex (một mã dạng mã máy, nhưng là chuẩn để nạp vào PIC), sau đó dùng một chương trình mô phỏng để mô phỏng lại hoạt động của hệ thống, cụ thể là lập trình cho PIC, sau đó, nạp mã Hex đó vào phần cứng, kiểm thử xem hệ thống hoạt động ổn chưa, nếu chưa thực sự ổn so với mong đợi, có thể sửa mã nguồn, dịch rồi nạp lại. 4.2 Giới thiệu về ngôn ngữ lập trình phần mềm: C# Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.2 Giới thiệu về ngôn ngữ lập trình phần mềm: C# 50 tượng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java. Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai người này điều là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả của Turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp (IDE) cho lập trình client/server. Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướng đối tượng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp. Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề. Ngôn ngữ C# chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới và những phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kế thừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng đối tượng. Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp điều được tìm thấy trong phần khai báo của nó. Định nghĩa một lớp trong ngôn ngữ C# không đòi hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++. Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự động các document cho lớp. C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với một lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong ngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện. Khi một lớp thực thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện. Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm về ngữ nghĩa của nó thay đổi khác với C++. Trong C#, một cấu trúc được giới hạn, là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều hành và bộ nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp hay được kế thừa nhưng một cấu trúc có thể thực thi một giao diện. Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component-oriented), như là những thuộc tính, những sự kiện. Lập trình hướng thành phần được hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho một lớp. Metadata mô tả cho một lớp, bao gồm những phương thức và những thuộc tính của nó, cũng như những Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.3 Các chức năng của chương trình 51 sự bảo mật cần thiết và những thuộc tính khác. Mã nguồn chứa đựng những logic cần thiết để thực hiện những chức năng của nó.. Do vậy, một lớp được biên dịch như là một khối self-contained, nên môi trường hosting biết được cách đọc metadata của một lớp và mã nguồn cần thiết mà không cần những thông tin khác để sử dụng nó. Một lưu ý cuối cùng về ngôn ngữ C# là ngôn ngữ này cũng hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụng kiểu con trỏ của C++ và từ khóa cho dấu ngoặc [] trong toán tử. Các mã nguồn này là không an toàn (unsafe). Và bộ giải phóng bộ nhớ tự động của CLR sẽ không thực hiện việc giải phóng những đối tượng được tham chiếu bằng sử dụng con trỏ cho đến khi chúng được giải phóng. Tại sao phải sử dụng ngôn ngữ C# Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java, C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đã cung cấp tất cả những chức năng cần thiết. Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. 4.3 Các chức năng của chương trình Chức năng của hệ thống được cài đặt là thu thập dữ liệu, lưu trữ dữ liệu đầy đủ của lần cân cuối cùng, thống kê, báo cáo, cài đặt cổng kết nối, cài đặt phương pháp lọc lấy khối lượng toa. 4.4 Màn hình giao diện chức năng Màn hình của hệ thống được thiết kế thân thiện với người sử dụng, hầu hết là tự động, chỉ có in ấn, báo cáo thì cán bộ vận hành mới phải thao tác. Xem hình 4.1 Trong màn hình giao diện chức năng, hình 4.1, có các thành phần sau đây: • Dạng sóng tín hiệu cân: Biểu thị tín hiệu nhận được ở dạng sóng của toàn bộ đoàn tàu. từ dạng sóng này ta có thể dễ dàng nhìn ra trạng thái của các toa tàu Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.4 Màn hình giao diện chức năng 52 Hình 4.1: Giao diện màn hình • Chỉ số cân: Có hai cân cùng cân trên hệ thống, chỉ số cân biểu thị giá trị số đọc được trên mỗi cân. Chỉ số cân chính là dữ liệu đầu vào dùng để tính toán khối lượng. • Thông tin vận hành: Là các thông tin ít thay đổi, như người vận hành hệ thống, địa điểm giao nhận,... dùng để lưu vào mỗi ca làm việc và trình bày trong mẫu hóa đơn cân. • Các thông số : Biểu thị tốc độ đoàn tàu, hướng đi hay về ga, mã toa,... • Số liệu sử lý hiện thời : Là các số liệu thu được ngay tại thời điểm tàu đang chạy, tính toán và xử lý số liệu trực tiếp và đưa ra thông tin cần thiết. Với hình 4.2, trong phần mềm, người sử dụng có thể in báo cáo theo thời gian, hoặc có thể tìm theo tất cả các thông tin lưu trong CSDL. Tại sao phải làm như vậy? Bởi vì, có những chuyến hàng, được chở đi đều đặn, nhưng đến khi tổng kết, người ta thấy cần kiểm tra lại thông tin, vậy nên, có thể báo cáo lại tất cả những chuyến hàng đã được cân. Thông tin về thời gian, dùng để chọn báo cáo theo khoảng thời gian, như báo cáo theo tuần, báo cáo theo tháng hay theo năm,... Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.4 Màn hình giao diện chức năng 53 Hình 4.2: Giao diện màn hình báo cáo Phương pháp thực hiện: Chọn khoảng thời gian cần báo cáo: Chọn ngày bắt đầu trong mục từ ngày, ngày kết thúc: trong mục đến ngày, rồi chọn nút bấm: OK. Kết quả nhận được: Báo cáo theo danh sách các chuyến đã cân trong khoảng thời gian được chọn. Ở hình 4.3, trong TAB giao diện này, người dùng có thể tùy chọn các thông số cài đặt, như: Thời gian chờ tàu qua, cấu hình tùy chọn cổng COM cho dữ liệu và cho thẻ, cũng như sử dụng cụm cân nào để cân và có bù hay không (bù sai do ảnh hưởng của thời tiết)... Trong TAB này cũng sử dụng để cấu hình mã toa và tên toa. Cách thức thực hiện: • Đặt thời gian chờ tàu qua hẳn: nhập số (phần trăm giây). Kết quả: sau khi tàu chạy qua, quá thời gian đặt, hệ thống sẽ hiểu là đã hết toa. • Chọn cổng COM cho dữ liệu và đầu đọc thẻ tại: Sử dụng cổng dữ liệu, sử dụng cổng đọc thẻ. Kết quả: Hệ thống sẽ hiểu cổng nào là cổng dữ liệu vào, cổng nào là cổng đọc thẻ phân biệt các toa. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.4 Màn hình giao diện chức năng 54 Hình 4.3: Giao diện màn hình cài đặt • Chọn tham số lọc Kết quả: ảnh hưởng đến kết quả cân. Trong các trường hợp kết cấu cơ khí còn tốt thì chọn Lọc theo chiều cao tín hiệu, nếu kết cấu cơ khí kém, sinh ra nhiều tạp nhiễu thì chọn Lọc theo dải tín hiệu • Chọn cụm cân Kết quả: thay đổi bàn cân (dùng trong trường hợp bảo dưỡng, thay thế bàn cân) • Tham số bù Kết quả: Bù nhiễu theo thời tiết, nếu lượt đi và lượt về có thời tiết hoàn toàn khác nhau thì thay đổi hệ số bù. • Mã toa: Cập nhật thông tin về các toa có trong công ty Cách thực hiện: Bấm vào dấu * để thêm toa mới; chọn cả hàng ngang, bấm DEL để xoá toa Kết quả: Thay đổi tên hiện thị trong báo cáo thay vì mã. Nếu không có tên, báo cáo sẽ hiển thị mã toa. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.5 Lập kế hoạch triển khai thực tế 55 4.5 Lập kế hoạch triển khai thực tế Sau khi thiết kế xong hệ thống, cần triển khai trên thực tế để có thể thực nghiệm và lập trình chính xác được. Trong quá trình nghiên cứu, hệ thống đã được cài đặt thử nghiệm tại công ty than Vàng danh - Uông bí - Quảng Ninh. Mỗi đầu tàu, nặng trung bình là 56 tấn (loại to), và 27 tấn (loại nhỏ); toa hàng không có hàng, nặng 17.5 tấn; toa hàng chở đầy hàng, nặng bình quân là 50-55 tấn.Dưới đây là một số mẫu thu được từ thực tế. - 20 000 20 00 40 00 60 00 80 00 10 00 0 12 00 0 14 00 0 16 00 0 1 35 69 10 3 13 7 17 1 20 5 23 9 27 3 30 7 34 1 37 5 40 9 44 3 47 7 51 1 54 5 Hình 4.4: Nhóm dữ liệu toa tàu có hàng Hình 4.4 là một đoạn dữ liệu thu thập được của nhóm toa tàu có hàng. Tham số trên trục tung là biên độ nhận được do chuyển đổi tương tự số, đỉnh của các vùng là giá trị lớn nhất khi bánh tàu đè lên Loadcell. Mỗi cụm có hai đỉnh, chính là hai bánh gắn liền trục. Phần bụng sâu chính là phần thân toa, phần này có khoảng cách giữa hai bánh lớn nên giá trị tiến về 0. Phần bụng cao (giá trị >0 và <2000 chính là phần ngăn cách các toa, phần này có khoảng cách các bánh lớn hơn so với khoảng cách của 2 bánh trên một trục nhưng lại nhỏ hơn so với khoảng cách giữa hai cụm bánh trong cùng một toa. Chính vì vậy mà nó có độ sâu gần như >0. Hình 4.5 là dữ liệu của một đoàn tàu có 11 toa, có chở hàng, khối lượng các toa gần như nhau. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.5 Lập kế hoạch triển khai thực tế 56 - 20 000 20 00 40 00 60 00 80 00 10 00 0 12 00 0 14 00 0 1 12 6 25 1 37 6 50 1 62 6 75 1 87 6 10 01 11 26 12 51 13 76 15 01 16 26 17 51 18 76 20 01 21 26 22 51 23 76 25 01 26 26 27 51 28 76 30 01 31 26 Hình 4.5: Dữ liệu một chuyến tàu có hàng, 11 toa cả đầu tàu - 20 000 20 00 40 00 60 00 80 00 10 00 0 12 00 0 14 00 0 1 12 6 25 1 37 6 50 1 62 6 75 1 87 6 10 01 11 26 12 51 13 76 15 01 16 26 17 51 18 76 20 01 21 26 22 51 23 76 25 01 26 26 27 51 28 76 30 01 31 26 Hình 4.6: Dữ liệu một chuyến tàu có hàng, 11 toa gồm cả đầu tàu Và hình 4.6 được vẽ lại của hình 4.5 cho dễ nhìn. Hình 4.7 là dữ liệu của một chuyến tàu, đầu tàu loại nhỏ (bên trái) và các toa loại trung bình. Hình 4.8 là dữ liệu của một đoàn tàu không hàng, đầu tàu cao trội lên, các toa khác không có hàng, tuy rằng khối lượng gần như nhau, nhưng thực tế, khối lượng các toa không bằng nhau. Hình 4.9 là ảnh thật của sản phẩm cân động như đã thiết kế. Sản phẩm được đặt tên là CB090504, có hai hàng LED 7 thanh, hàng trên thể hiện giá trị của cụm cân 1, hàng dưới thể hiện giá trị cụm cân 2. Hình 4.9 dưới là hình nhóm sản phẩm gồm 6 cụm chuyển đổi, trên thực tế, chỉ cần 01 bộ hoạt động tại một thời điểm, nhưng do đưa sản phẩm vào ứng dụng, nên cần phải đảm bảo hệ thống hoạt động liên tục, nên tác giả đã quyết định lắp 06 bộ trong một tủ, để thay thế ngay khi cần thiết. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.5 Lập kế hoạch triển khai thực tế 57 Se ria l l a n ca n th u 11 0 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1 70 13 9 20 8 27 7 34 6 41 5 48 4 55 3 62 2 69 1 76 0 82 9 89 8 96 7 10 36 11 05 Hình 4.7: Dữ liệu một chuyến tàu có hàng, đầu tàu loại nhỏ Về kh ôn g hà n g - 20 000 20 00 40 00 60 00 80 00 10 00 0 12 00 0 14 00 0 16 00 0 1 19 3 38 5 57 7 76 9 96 1 11 53 13 45 15 37 17 29 19 21 21 13 23 05 24 97 26 89 28 81 30 73 Hình 4.8: Dữ liệu một chuyến tàu không hàng, 11 toa cả đầu tàu Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.6 Xác định rủi ro 58 4.6 Xác định rủi ro Hệ thống cân là hệ thống điện tử, do vậy không tránh khỏi những rủi ro. Rủi ro có thể xác định bởi các nguyên nhân sau: 1. Thiên tai: Thiên tai có thể là lũ lụt gây ngập, hỏng loadcell, sét đánh gây cháy nổ hệ thống. Phương án đưa ra là đào mương, rãnh thoát nước dọc theo bàn cân; thiết kế hệ thống chống sét đảm bảo độ an toàn và tin cậy. 2. Nún, sụt nền bàn cân, bàn cân bị rung lắc: Trước khi thi công, cần phải làm chắc chắn vị trí đất xung quanh bàn cân, đổ bê tông cốt thép liên kết trong toàn bộ bàn cân, làm cọc đóng sâu xuống nền đất nếu thấy cần thiết. Chọn vị trí làm bàn cân sao cho không nằm cạnh đường tàu khác. 3. Độ bền linh kiện theo thời gian: Tuổi thọ của linh kiện là có hạn, vậy nên khi thi công, cần phải dự phòng linh kiện, đề phòng trường hợp xấu xảy ra. 4. Nguồn nuôi không đảm bảo: Nguồn cung cấp cho hệ thống là vô cùng quan trọng. Điện áp khu vực cân cần phải được đảm bảo chắc chắn sẵn sàng và ổn định. Cần thiết phải thêm một hệ thống gồm có bộ lưu điện công suất khoảng ≥ 2Kw và một bộ ổn định điện áp lắp sau bộ lưu điện. 5. Cấu hình sai hệ thống: Khi vận hành, đôi khi chính người vận hành nắm không vững quy trình vận hành hoặc các tham số vận hành, làm cho hệ thống chạy không được như mong muốn. Giải pháp đưa ra là trước khi chuyển giao công nghệ cho cán bộ vận hành, cần tổ chức khoá huấn luyện kỹ lưỡng phương pháp vận hành hệ thống. Khi nào thấy hệ thống có vấn đề lạ, cần reset lại các tham số như mặc định. 6. Chỉnh định không theo hướng dẫn vận hành: Khi chỉnh định cân không theo hướng dẫn vận hành, thì dẫn đến các sai số không đáng có, như mùa đông (trời lạnh, ray co) hệ thống lại làm việc theo mùa hè (trời nóng, ray dãn nở). 7. Hỏng, nhiễu đường truyền do đặt gần đối tượng gây nhiễu: Khi đường truyền tín hiệu bị đặt gần đối tượng gây nhiễu như động cơ, máy khò hàn,... thì có thể dẫn đến hỏng đường truyền, hay nhẹ hơn là nhiễu tín hiệu. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.7 Đánh giá kết quả thử nghiệm 59 Khi phát hiện thấy tín hiệu nhận được không bình thường, đề nghị các cán bộ vận hành kiểm tra đường truyền tín hiệu. Không nên để máy tính quá xa tủ đo lường và khuếch đại tín hiệu, khoảng cách an toàn nên để là ≤ 1.5m 4.7 Đánh giá kết quả thử nghiệm Sau khi chương trình được hoàn thiện, phần mềm được đưa vào thực tế để thử nghiệm. Sau một số lần thử nghiệm thực tế, phần mềm dần dần lấy lại được tính đúng đắn và chính xác theo tính toán. Giao diện thân thiện với người vận hành; Mỗi người vận hành được đào tạo một khoảng thời gian ngắn là có thể sử dụng tốt chương trình. Mỗi khi tàu qua, các module làm việc rồi ghi lại kết quả, đưa kết luận về khối lượng ra phiếu cân và đưa vào CSDL. Thực tế cho thấy, sai số do môi trường là khó tránh khỏi, ví dụ như tàu chạy ban đêm, nhiệt độ thấp, ray tàu lạnh rồi cứng lại, ép xuống bàn cân dẫn đến lệch kết quả so với ban ngày trời nắng, ray dãn nở. Chính vì vậy, phải có hệ số bù lệch (bù zero). Sau khi bù lệch, kết quả đúng như tính toán, sai số nằm trong vùng cho phép: không quá 0.5%. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.7 Đánh giá kết quả thử nghiệm 60 Hình một bộ: 6 bộ, được lắp trong tủ: Hình 4.9: Sản phẩm thực tế Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Kết luận Các kết quả thực hiện Luận văn Xây dựng hệ thống quản lý cân động ứng dụng trong hệ thống cân tàu hỏa, tập chung vào nghiên cứu các quy trình cần thiết từ ý tưởng thiết kế đến lắp đặt vận hành, bảo trì bảo dưỡng. Hệ thống được thiết kế có thể đáp ứng đầy đủ các yếu tố như đã phân tích từ đầu. • Luận văn đã được thiết kế theo trình tự các bước trong giáo trình phân tích thiết kế hệ thống, gồm các bước: Khảo sát xác định yêu cầu và phân tích hệ thống ; Phân tích hệ thống hướng đối tượng ; Thiết kế hệ thống hướng đối tượng ; và lập trình hướng đối tượng • Luận văn đã đạt được các yêu cầu như khâu khảo sát và phân tích yêu cầu • Kết quả đã được kiểm thử trên thực tế và cho kết quả khả quan. Tuy hệ thống đã được thiết kế rất cụ thể, song không tránh khỏi những thiếu sót. Trong quá trình viết luận văn, có thể tác giả vẫn chưa biểu đạt hết ý nghĩa của các khâu thiết kế, trình bày còn sơ sài, chưa nêu bật hết các phần thiết kế chi tiết. Về hệ thống cân, thiết kế như trong luận văn là có thể khả thi, song do trình độ còn hạn chế, nên thiết kế có thể vẫn chưa phải là tối ưu nhất. Phần mềm vẫn chưa được kiểm định theo thời gian, có thể trong quá trình vận hành, sẽ có những lỗi không đáng có xảy ra, cần phải phát triển và hoàn thiện. Tính ứng dụng thực tiễn Hệ thống có tính ứng dụng thực tiễn rất cao, không chỉ riêng ngành than, mà còn có thể áp dụng trong nhiều ngành khác, như các ngành Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.7 Đánh giá kết quả thử nghiệm 62 cân bò trong trang trại, cân ô tô, ... Hướng phát triển Do hệ thống có tính thực thi rất cao và rất cần thiết trong thực tế, nên sau này, tác giả dự định sẽ tối ưu dần phần mềm và phần cứng, tìm hiểu các cách thiết kế bộ chuyển đổi tối ưu hơn và nhân rộng sự áp dụng ra nhiều lĩnh vực khác nhau để giảm giá thành của các hệ thống đang phải nhập ngoại. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4.7 Đánh giá kết quả thử nghiệm 63 Bảng thuật ngữ viết tắt ADC (Analog Digial Converter): Bộ biến đổi tín hiệu tương tự thành tín hiệu số Advantech tên một công ty sản xuất các sản phẩm ghép nối máy tính ASM Assembly AUSART Asynchronous Universal Serial Receive and Transmit Buffer bộ đệm CAN Control Area Network CNPM Công nghệ phần mềm CNTT Công nghệ thông tin CSDL Cơ sở dữ liệu DSP Digital Signal Processing EEPROM Electrical Eraser Programmable Readonly Memmory FFT Fast Furie Transform Filter Bộ lọc tín hiệu GNU General Public License KCS Kiểm tra chất lượng sản phẩm LED (Liquid Emiting Diode): tên một loại linh kiện điện tử Loadcel tên một loại cảm biến khối lượng MPI Multi Point Interface NSD Người sử dụng OOA Phân tích hướng đối tượng OOD Thiết kế hướng đối tượng PC Personal Computer PCI Peripheral Controller Interface PIC (Programmable Intelligent Computer): Tên một loại vi điều khiển PPI Point to Point Interface ProfiBus Tên một loại giao thức truyền thông nối tiếp Rose Tên một phần mềm hỗ trợ thiết kế và lập trình hướng đối tượng TKV Tên của tập đoàn Than và Khoáng sản Việt nam UML (Unified Modeling Language): ngôn ngữ mô hình hoá thống nhất USB Universal Serial Bus Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Danh sách hình vẽ 1.1 Công ty than khoáng sản Việt Nam - TKV . . . . . . . . 2 2.1 Sơ đồ khối tổng thể . . . . . . . . . . . . . . . . . . . . . 7 2.2 Sơ đồ khối tổng thể được chọn . . . . . . . . . . . . . . . 10 2.3 Mối quan hệ giữa các công việc trong pha phân tích các yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Thiết kế logic và thiết kế chi tiết . . . . . . . . . . . . . 17 2.5 Lập trình tập trung xây dựng lớp . . . . . . . . . . . . . 17 3.1 Thiết kế cơ khí gá lắp Loadcell . . . . . . . . . . . . . . 19 3.2 Khoảng cách 2 bánh tàu trên một trục . . . . . . . . . . 19 3.3 Thiết kế chi tiết phần cứng hệ thống . . . . . . . . . . . 20 3.4 Sơ đồ nguyên lý Loadcell . . . . . . . . . . . . . . . . . . 21 3.5 Sơ đồ nguyên lý mạch khuếch đại Loadcell . . . . . . . . 22 3.6 Sơ đồ nguyên lý khối AD . . . . . . . . . . . . . . . . . . 23 3.7 Sơ đồ thuật toán đọc ADC . . . . . . . . . . . . . . . . . 24 3.8 Sơ đồ nguyên lý mạch hiển thị . . . . . . . . . . . . . . . 25 3.9 Mạch hiển thị khối lượng và tốc độ . . . . . . . . . . . . 25 3.10 Bàn phím chỉnh tham số gốc . . . . . . . . . . . . . . . . 26 3.11 Truyền thông USB . . . . . . . . . . . . . . . . . . . . . 27 3.12 Khối nguồn . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.13 Mô phỏng tín hiệu điện của khối nguồn . . . . . . . . . . 31 3.14 Biểu đồ ca sử dụng . . . . . . . . . . . . . . . . . . . . . 36 3.15 Biểu đồ lớp . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.16 Biểu đồ trình tự: "Cập nhật thông tin" . . . . . . . . . . 37 3.17 Biểu đồ trình tự: "In phiếu cân" . . . . . . . . . . . . . . 38 Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên DANH SÁCH HÌNH VẼ 65 3.18 Biểu đồ cộng tác . . . . . . . . . . . . . . . . . . . . . . 38 3.19 Biểu đồ lớp chi tiết . . . . . . . . . . . . . . . . . . . . . 39 3.20 Mạch in thành phẩm . . . . . . . . . . . . . . . . . . . . 40 4.1 Giao diện màn hình . . . . . . . . . . . . . . . . . . . . . 52 4.2 Giao diện màn hình báo cáo . . . . . . . . . . . . . . . . 53 4.3 Giao diện màn hình cài đặt . . . . . . . . . . . . . . . . 54 4.4 Nhóm dữ liệu toa tàu có hàng . . . . . . . . . . . . . . . 55 4.5 Dữ liệu một chuyến tàu có hàng, 11 toa cả đầu tàu . . . 56 4.6 Dữ liệu một chuyến tàu có hàng, 11 toa gồm cả đầu tàu 56 4.7 Dữ liệu một chuyến tàu có hàng, đầu tàu loại nhỏ . . . . 57 4.8 Dữ liệu một chuyến tàu không hàng, 11 toa cả đầu tàu . 57 4.9 Sản phẩm thực tế . . . . . . . . . . . . . . . . . . . . . . 60 B.1 Mạch khuếch đại vi sai . . . . . . . . . . . . . . . . . . . 72 B.2 Mạch khuếch đại đảo . . . . . . . . . . . . . . . . . . . . 72 B.3 Mạch khuếch đại không đảo . . . . . . . . . . . . . . . . 73 B.4 Mạch theo điện áp . . . . . . . . . . . . . . . . . . . . . 73 B.5 Mạch khuếch đại tổng . . . . . . . . . . . . . . . . . . . 74 B.6 Mạch tích phân . . . . . . . . . . . . . . . . . . . . . . . 74 B.7 - Mạch vi phân . . . . . . . . . . . . . . . . . . . . . . . 75 B.8 Mạch so sánh . . . . . . . . . . . . . . . . . . . . . . . . 75 B.9 Mạch khuếch đại đo lường . . . . . . . . . . . . . . . . . 75 B.10 Mạch chuyển đổi kiểu Schmitt (Schmitt trigger) . . . . . 76 B.11 Mạch giả lập cuộn cảm . . . . . . . . . . . . . . . . . . 76 B.12 Mạch biến đổi tổng trở âm . . . . . . . . . . . . . . . . 76 B.13 Mạch chỉnh lưu chính xác . . . . . . . . . . . . . . . . . 76 B.14 Mạch khuếch đại đầu ra Lô-ga . . . . . . . . . . . . . . 77 B.15 Mạch khuếch đại đầu ra hàm số mũ . . . . . . . . . . . 78 B.16 Một số loại Loadcell thông dụng . . . . . . . . . . . . . 78 Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Tài liệu tham khảo [1] Nguyễn Quốc Trung (2004), Xử lý tín hiệu và lọc số, Nxb KHKT [2] Đoàn Văn Ban (Hà Nội,2005), Phân tích, thiết kế hướng đối tượng với UML [3] Nguyễn Xuân Huy (1994), Công nghệ phần mềm, Đại học Tổng hợp Tp. Hồ Chí Minh. [4] Quatrani T. (2000), Visual Modeling With Rational Rose and UML, Addison-Wesley, [5] Hoàng Minh Sơn (2005), Mạng truyền thông công nghiệp, NXB KHKT [6] British Standard (1998), BS 7925- 2 - Standard for Software Com- ponent Testing, British Computer Society [7] Cem Kaner, Jack Falk, Hung Quoc Nguyen (1999), Testing Com- puter Software, John Wiley Sons, Inc. [8] IEEE (1997), IEEE Std 1028-1997 – IEEE Standard for Software Review, The Institute of Electrical and Electronics Engineerings, Inc., USA [9] [10] [11] [12] [13] [14] [15] Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Phụ lục A Vi điều khiển PIC A.1 Từ Vi xử lý đến Vi điều khiển Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán, xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc. Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau. Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện được công việc. Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh tường về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ thống nhỏ. Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller-Vi điều khiển. Vi điều khiển có khả năng tương tự như khả năng của vi xử lý, nhưng cấu trúc phần cứng dành cho người dùng đơn giản hơn nhiều. Vi điều khiển ra đời mang lại sự tiện lợi đối với người dùng, họ không cần nắm vững một khối lượng kiến thức quá lớn như người dùng vi xử lý, kết cấu mạch điện dành cho người dùng cũng trở nên đơn giản hơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị bên ngoài. Vi điều khiển tuy được xây dựng với phần cứng dành cho người sử dụng đơn giản hơn, Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên A.2 Vi điều khiển họ PIC 68 nhưng thay vào lợi điểm này là khả năng xử lý bị giới hạn (tốc độ xử lý chậm hơn và khả năng tính toán ít hơn, dung lượng chương trình bị giới hạn). Thay vào đó, Vi điều khiển có giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụng đơn giản, do đó nó được ứng dụng rộng rãi vào nhiều ứng dụng có chức năng đơn giản, không đòi hỏi tính toán phức tạp. Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có chức năng đơn giản, trong máy giặt, ôtô v.v... A.2 Vi điều khiển họ PIC PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi Micro- electronics Division thuộc General Instrument . PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Com- puter" (Máy tính khả trình thông minh) là một sản phẩm của hãng Gen- eral Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chương trình từ 512 Word đến 32K Word. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên A.3 Lập trình cho PIC 69 A.3 Lập trình cho PIC PIC sử dụng tập lệnh RISC, với dòng PIC low-end (độ dài mã lệnh 12 bit, ví dụ: PIC12Cxxx) và mid-range (độ dài mã lệnh 14 bit, ví dụ: PIC16Fxxxx), tập lệnh bao gồm khoảng 35 lệnh, và 70 lệnh đối với các dòng PIC high-end (độ dài mã lệnh 16 bit, ví dụ: PIC18Fxxxx). Tập lệnh bao gồm các lệnh tính toán trên các thanh ghi, với các hằng số, hoặc các vị trí bộ nhớ, cũng như có các lệnh điều kiện, lệnh nhảy/gọi hàm, và các lệnh để quay trở về, nó cũng có các tính năng phần cứng khác như ngắt hoặc sleep (chế độ hoạt động tiết kiện điện). Microchip cung cấp môi trường lập trình MPLAB, nó bao gồm phần mềm mô phỏng và trình dịch ASM. Một số công ty khác xây dựng các trình dịch C, Basic, Pascal cho PIC. Microchip cũng bán trình dịch "C18" (cho dòng PIC high-end) và "C30" (cho dòng dsPIC30Fxxx). Họ cũng cung cấp các bản "student edition/demo" dành cho sinh viên hoặc người dùng thử, những version này không có chức năng tối ưu hoá code và có thời hạn sử dụng giới hạn. Những trình dịch mã nguồn mở cho C, Pascal, JAL, và Forth, cũng được cung cấp bởi PicForth. GPUTILS là một kho mã nguồn mở các công cụ, được cung cấp theo công ước về bản quyền của GNU General Public License. GPUTILS bao gồm các trình dịch, trình liên kết, chạy trên nền Linux, Mac OS X, OS/2 và Microsoft Windows. GPSIM cũng là một trình mô phỏng dành cho vi điều khiển PIC thiết kế ứng với từng module phần cứng, cho phép giả lập các thiết bị đặc biệt được kết nối với PIC, ví dụ như LCD, LED... A.4 Một vài đặc tính của PIC Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng chúng ta có thể điểm qua một vài nét như sau: • 8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi • Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte • Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic 0 và logic 1) • 8/16 Bit Timer Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên A.4 Một vài đặc tính của PIC 70 • Công nghệ Nanowatt • Các chuẩn Giao Tiếp Ngoại Vi Nối Tiếp Đồng bộ/Không đồng bộ USART, AUSART, EUSARTs • Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit • Bộ so sánh điện áp (Voltage Comparators) • Các module Capture/Compare/PWM • LCD • MSSP Peripheral dùng cho các giao tiếp I2C, SPI, và I2S • Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần • Module Điều khiển động cơ, đọc encoder • Hỗ trợ giao tiếp USB • Hỗ trợ điều khiển Ethernet • Hỗ trợ giao tiếp CAN • Hỗ trợ giao tiếp LIN • Hỗ trợ giao tiếp IrDA • Một số dòng có tích hợp bộ RF (PIC16F639, và rfPIC) • KEELOQ Mã hoá và giải mã • DSP những tính năng xử lý tín hiệu số (dsPIC) Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Phụ lục B Ứng dụng mạch khuếch đại thuật toán Bài này nêu lên một số ứng dụng tiêu biểu của các linh kiện tích hợp mạch rắn - Mạch khuếch đại thuật toán. Trong bài có sử dụng các sơ đồ đơn giản hóa, và người đọc nên lưu ý rằng nhiều chi tiết như tên của linh kiện, số thứ tự chân ra và nguồn cung cấp không được thể hiện trong hình. Các điện trở sử dụng trong các sơ đồ thường được ghi nhận giá trị trên đơn vị là kΩ. Các điện trở có dải < 1 kΩ có thể gây ra dòng điện quá mức và có khả năng phá hỏng linh kiện. Các điện trở có dải >1 MΩ có thể gây ra các tạp âm nhiệt và làm cho mạch vận hành kém ổn định ứng với dòng định thiên đầu vào. Ghi chú: Một điều quan trọng cần lưu ý là các công thức dưới đây giả định rằng chúng ta sử dụng các mạch khuếch đại thuật toán lý tưởng. Điều đó có nghĩa là khi thiết kế thực tế các mạch này cần phải tham khảo thêm một số tài liệu chi tiết khác. B.1 Ứng dụng mạch tuyến tính Sau đây là các mạch bổ trợ cho việc thiết kế phần cứng trong luận văn. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 72 Hình B.1: Mạch khuếch đại vi sai Mạch điện này dùng để tìm ra hiệu số, hoặc sai số giữa 2 điện áp mà mỗi điện áp có thể được nhân với một vài hằng số nào đó. Các hằng số này xác định nhờ các điện trở. - Mạch khuếch đại vi sai Thuật ngữ "Mạch khuếch đại vi sai" không được nhầm lẫn với thuật ngữ "Mạch vi phân" cũng trong bài này. Vout = V2 ( (Rf + R1)Rg (Rg + R2)R1 ) − V1 ( Rf R1 ) Tổng trở vi sai Zin (giữa 2 chân đầu vào) = R1 + R2 - Hệ số khuếch đại vi sai: Nếu R1 = R2 và Rf = Rg, Vout = A(V2 − V1) và A = Rf/R1 Hình B.2: Mạch khuếch đại đảo Dùng để đổi dấu và khuếch đại một điện áp (nhân với một số âm) - Mạch khuếch đại đảo Vout = −Vin(Rf/Rin) Zin = Rin (vì V − là một điểm đất ảo) Một điện trở thứ ba, có trị số Rf ‖ Rin = RfRin/(Rf +Rin), được thêm vào giữa đầu vào không đảo và đất mặc dù đôi khi không cần thiết lắm, nhưng nó sẽ giảm thiểu sai số do dòng định thiên đầu vào. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 73 Hình B.3: Mạch khuếch đại không đảo Dùng để khuếch đại một điện áp (nhân với một hằng số lớn hơn 1) Vout = Vin ( 1 + R2 R1 ) - Mạch khuếch đại không đảo Zin = ∞ (thực ra, tổng trở bản thân của đầu vào op-amp có giá trị từ 1Mω đến 10Tω. Trong nhiều trường hợp tổng trở đầu vào có thể được xem như cao hơn, do ảnh hưởng của mạch hồi tiếp.) Một điện trở thứ ba, có giá trị bằng Rf ‖ Rin , được thêm vào giữa nguồn tín hiệu vào Vin và đầu vào không đảo trong khi thực ra không cần thiết, nhưng nó sẽ làm giảm thiểu những sai số do dòng điện định thiên đầu vào. Hình B.4: Mạch theo điện áp - Mạch theo điện áp Được sử dụng như một bộ khuếch đại đệm, để giới hạn những ảnh hưởng của tải hay để phối hợp tổng trở (nối giữa một linh kiện có tổng trở nguồn lớn với một linh kiện khác có tổng trở vào thấp). Do có hồi tiếp âm sâu, mạch này có khuynh hướng không ổn định khi tải có tính dung cao. Điều này có thể ngăn ngừa bằng cách nối với tải qua 1 điện trở. Vout = Vin Zin = ∞ (thực ra, tổng trở bản thân của đầu vào op-amp có giá trị từ 1Mω đến 10Tω.) Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 74 Hình B.5: Mạch khuếch đại tổng - Mạch khuếch đại tổng Mach được sử dụng để làm phép cộng một số tín hiệu điện áp Vout = −Rf ( V1 R1 + V2 R2 + ... + Vn Rn ) nếu R1 = R2 = ... = Rn, và Rf độc lập thì Vout = − ( Rf R1 ) (V1 + V2 + · · ·+ Vn) Nếu R1 = R2 = · · · = Rn = Rf Vout = −(V1 + V2 + · · ·+ Vn) Ngõ ra sẽ đổi dấu Tổng trở đầu vào Zn = Rn, cho mỗi đầu vào (V − xem như điểm đất ảo) Hình B.6: Mạch tích phân - Mạch tích phân Mạch này dùng để tích phân (có đảo dấu) một tín hiệu theo thời gian. Vout = ∫ t 0 − Vin RC dt + Vinitial (Trong đó, Vin và Vout là các hàm số theo thời gian, Vinitial là điện áp ngõ ra của mạch tích phân tại thời điểm t = 0.) Lưu ý rằng cấu trúc của mạch này cũng được xem là mạch lọc thông thấp, một dạng của mạch lọc tích cực. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 75 Hình B.7: - Mạch vi phân - Mạch vi phân Mạch này để lấy vi phân (có đảo dấu) một tín hiệu theo thời gian. Thuật ngữ "Mạch vi phân" tránh không nên nhầm lẫn với "mạch khuếch đại vi sai", cũng trong trang này. Vout = −RC ( dVin dt ) (Trong đó, Vin và Vout là các hàm số theo thời gian) Lưu ý rằng cấu trúc của mạch này có thể xem như một mạch lọc thông thượng, một dạng của mạch lọc tích cực. Hình B.8: Mạch so sánh - Mạch so sánh Mạch này để so sánh hai tín hiệu điện áp, và sẽ chuyển mạch ngõ ra để hiển thị mạch nào có điện áp cao hơn. Vout = { VS+ V1 > V2 VS− V1 < V2 (Trong đó Vs là điện áp nguồn, và mach sẽ được cấp nguồn từ + Vs và −Vs.) Hình B.9: Mạch khuếch đại đo lường - Mạch khuếch đại đo lường Người ta kết hợp các đặc tính tổng trở vào rất cao, độ suy giảm tín hiệu đồng pha cao, điện áp bù đầu vào thấp và các đặc tính khác để thiết kế mạch đo lường chính xác, độ nhiễu thấp. Mạch này được thiết lập bằng cách thêm một mạch khuếch đại không đảo, đệm vào mỗi đầu vào của mạch khuếch đại vi sai để tăng tổng trở vào. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 76 Hình B.10: Mạch chuyển đổi kiểu Schmitt (Schmitt trigger) - Mạch chuyển đổi kiểu Schmitt (Schmitt trigger) Mạch so sánh có trễ Độ trễ từ −R1R2 Vsat đến R1 R2 Vsat. Hình B.11: Mạch giả lập cuộn cảm Hình B.12: Mạch biến đổi tổng trở âm - Mạch biến đổi tổng trở âm Rin = −R3R1 R2 B.2 Các ứng dụng phi tuyến Dưới đây là các mạch phi tuyến, sử dụng để thiết kế từng phần tử của mạch. Hình B.13: Mạch chỉnh lưu chính xác - Mạch chỉnh lưu chính xác Cấu hình cơ bản này có một số hạn chế. Để biết thêm thông tin và để biết các cấu hình là thực tế sử dụng, xem bài chính. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 77 Hình B.14: Mạch khuếch đại đầu ra Lô-ga - Mạch khuếch đại đầu ra Lô-ga Mối quan hệ giữa vin điện áp đầu vào và điện áp đầu ra v(out) được cho bởi: vout = −Vγ ln ( vin IS ·R ) nơi Is là bão hòa dòng. Nếu bộ khuếch đại được xem là lý tưởng, các chân âm là được nối mass, do đó, dòng chảy vào điện trở từ nguồn (và do đó thông qua các diode để đầu ra, từ các op-amp đầu vào không tạo điện áp) là: vin R = IR = ID ID có dòng chảy qua diode. Được biết, mối quan hệ giữa dòng điện và điện áp cho diode là: ID = IS ( e VD Vγ − 1 ) . Điều này, khi điện áp lớn hơn không, có thể được xấp xỉ bởi: ID ' ISe VD Vγ . Đưa các cặp công thức với nhau và xem xét thấy có điện áp đầu ra là âm qua các diode (Vout = - VD), mối quan hệ này được chứng minh. Lưu ý rằng điều này thực hiện không xem xét sự ổn định nhiệt độ và không có hiệu ứng khác lý tưởng. Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 78 Hình B.15: Mạch khuếch đại đầu ra hàm số mũ - Mạch khuếch đại đầu ra hàm số mũ Mối quan hệ giữa điện áp đầu vào vin và điện áp đầu ra vout được cho bởi: vout = −RISe vin Vγ Nơi IS bão hoà dòng. Xem xét hoạt động khuếch đại lý tưởng, thì chân âm được nối đất, do đó, dòng thông qua các diode được cho bởi: ID = IS ( e VD Vγ − 1 ) khi điện áp lớn hơn không, nó có thể được xấp xỉ bởi: ID ' ISe VD Vγ . Điện áp đầu ra được cho bởi: vout = −RID. Hình B.16: Một số loại Loadcell thông dụng Luận văn: Thiết kế hệ thống cân động. Nguyễn Tuấn Anh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Các file đính kèm theo tài liệu này:

  • pdf32LV09_CNTT_KHMTNguyenTuanAnh.pdf
Tài liệu liên quan