Bài giảng Đo lường và điều khiển bằng máy tính - Huỳnh Minh Ngọc
CHƯƠNG 1: KHÁI NIỆM CHUNG
1.1. Máy tính trong điều khiển quá trình
1.1.1. Máy tính trong điều khiển quá trình : khái niệm cơ bản
Ngày nay việc sử dụng máy tính nói riêng và vi xử lí nói chung trong các day
chuyền sản xuất hiện đại đã là yêu cầu bắt buộc để tăng năng suất và chất lượng sản
phẩm. Trong các sản phẩm dân dụng việc sử dụng vi xử lí góp phần tăng tính thông
minh của sản phẩm và tạo tiện lợi cho người sử dụng.
Để mô tả cụ thể của máy tính trong điều khiển quá trình, chúng ta cần định
nghĩa quá trình là gì. Quá trình vật lý (a physical process) là tổ hợp các tác vụ được
thực thi để tác động lên, thay đổi, một điều gì đó trong thế giới thực. Sự chuyển động,
phản ứng hóa học và truyền nhiệt là các quá trình . Sản phẩm (materials) và năng lượng
(energy) là thành phần cơ bản hiển nhiên của quá trình vật lí
Tóm tắt nội dung tài liệu: Bài giảng Đo lường và điều khiển bằng máy tính - Huỳnh Minh Ngọc
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG Bài giảng : ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH BIÊN SOẠN : ThS. HUỲNH MINH NGỌC LƯU HÀNH NỘI BỘ TP. HỒ CHÍ MINH, THÁNG 9-2009 PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 2 LỜI NÓI ĐẦU Môn học Đo lường và điều khiển bằng máy tính là một môn học chuyên ngành dùng giảng dạy cho sinh viên năm cuối ngành Điện tử tự động. Môn học đề cập đến vấn đề ứng dụng máy tính (Máy tính cá nhân PC, máy tính công nghiệp , và PLC) vào hệ thống điều khiển và đo lường. Xu hướng phát triển là dùng Điều khiển dựa vào máy tính (PC-based Control) với hệ điều hành mạnh, giao diện thân thiện, phần mềm dễ phát triển và giá thành hợp lí. Để học tốt môn học này sinh viên cần phải học qua môn Lý thuyết điều khiển tự động và Vi xử lí. Giáo trình gồm 10 chương : Khái niệm chung, cảm biến và chuyển đổi, giao tiếp qua rãnh cắm máy tính, lập trình cho máy tính điều khiển, card thu thập dữ liệu và điều khiển, giao tiếp qua cổng song song, giao tiếp qua cổng nối tiếp và giao tiếp qua cổng USB, lập trình giao tiếp nối tiếp, các bộ chuyển đổi dữ liệu A/D và D/A , điều khiển tuần tự, hệ thống điều khiển số và mạng truyền thông công nghiệp. Bài giảng này tác giả đã đọc và giảng dạy cho lớp ĐHĐT2ALT, ĐHĐT3ALT, và ĐHĐT1TC, ĐHĐT2TC và ĐHĐT2A. Bài giảng chắc chắn không tránh khỏi thiếu sót, và tôi chân thành cảm ơn các nhận xét góp ý của các thầy cô giáo trong bộ môn điều khiển tự động, các bạn đồng nghiệp và bạn đọc để bài giảng ngày càng hoàn thiện hơn. Thư góp ý xin gửi về bộ môn điều khiển tự động, Khoa Công nghệ Điện tử, trường Đại học Công nghiệp Tp. HCM. Địa chỉ :số 12 Nguyễn Văn Bảo, P.4 Q. Gò vấp, TP. HCM, ĐT: 38940390; email: huynhminhngoc@hui.edu.vn. Ngày 15 tháng 7 năm 2010 Tác giả Huỳnh Minh Ngọc PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 3 MỤC LỤC Lời nói đầu 2 Mục lục 3 Chương 1: Khái niệm chung 6 1.1.Máy tính trong điều khiển quá trình 1.1 Điều khiển phân cấp và tích hợp hệ thống 1.3. Điều khiển vòng hở và điều khiển vòng kín. Hệ thống điều khiển số 1.4. Nội dung giáo trình và ứng dụng. Câu hỏi Chương 2: Cảm biến và chuyển đổi 19 2.0. Cơ bản đo lường. 2.1.Cảm biến nhiệt độ 2.2.Cảm biến lực và trọng lượng 2.3. Cảm biến dịch chuyển và khỏang cách Câu hỏi Chương 3: Giao tiếp qua rãnh cắm máy tính 67 3.1.Giao tiếp qua Rãnh cắm ISA, EISA, Rãnh cắm Vesa local bus 3.2. Giao tiếp qua Rãnh cắm PCI, VMEbus (IEEE 1014), S-100, STD 3.3. Giới thiệu một số IC thường dùng Câu hỏi và bài tập Chương 3A: Vi điều khiển Vi điều khiển PIC16F877A Tập lệnh của PIC16F877A Chương 4: Lập trình cho máy tính điều khiển 100 4.0. Các ngôn ngữ lập trình Hợp ngữ 8086, Qbasic, Pascal, C, Visual Basic , Delphi, C++, Visual C++/BorlandC++ Builder. 4.1.Lập trình xuất nhập ngọai vi 4.1.1.Lập trình xuất nhập 4.1.2.Viết file liên kết động 4.2.Sử dụng ngắt trong điều khiển , DMA, PCI/ PCI Exp. (PC104 Slot VME). 4.3. Vi điều khiển 8051 và lập trình C 4.4. Nền tảng phần cứng và phần mềm Câu hỏi và Bài tập Chương 5A: Card thu thập dữ liệu và điều khiển 123 5.1. Đặc tính của card PCI-1711 5.2. Những đặc điểm kỹ thuật của PCI-1711 5.3. Sơ đồ kết nối I/O của PCI-1711 5.4. Sơ đồ khối của card PCI-1711. 5.5. Cách thanh ghi của card PCI 1711: 5.6. Chuyển đổi A/D, D/A và DO, DI: PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 4 5.7. Lập trình cho card PCI 1711 Câu hỏi và Bài tập Chương 5: Giao tiếp qua cổng song song 145 5.1.Tổng quan về cổng song song 5.2.Cấu trúc của cổng song song 5.2.1.Cổng SPP 5.2.2.Cổng EPP 5.2.3.Cổng ECP 5.3.Ghép nối hai máy tính bằng cổng song song 5.4. Mạch ứng dụng -Mạch đèn nháy. -Tạo xung vuông góc ở chân D0 của thanh ghi dữ liệu. -Điều khiển đèn giao thông. Câu hỏi và Bài tập Chương 6: Giao tiếp qua cổng nối tiếp và USB 163 6.1.Tổng quan về cổng nối tiếp 6.2.Cấu trúc của cổng nối tiếp 6.3.IC thu phát vạn năng bất đồng bộ UART 6.4.Các chuẩn và phương thức truyền qua cổng nối tiếp -RS232 -RS485 6.5.Mạch giao tiếp cổng nối tiếp và các chương trình mẫu. 6.6. Modem 6.7.Mạch lập trình vi điều khiển ATmel 89C51 Câu hỏi và bài tập 6.8. Giao tiếp qua cổng USB 185 6.8.1.Tổng quan về USB 6.8.2.Đặc tính cổng USB -Đặc tính cổng USB. - Mạch chuyển đổi USB-RS232. 6.8.3.Trao đổi tin 6.8.4.Lập trình giao tiếp thiết bị ngọai vi qua cổng USB Câu hỏi Chương 7: Lập trình giao tiếp nối tiếp 195 7.1. Lập trình trong DOS Ngôn ngữ QBasic, Pascal, C, lệnh trong MSDOS. 7.2.Lập trình dùng ngôn ngữ Visual Basic 6.0. 7.3.Lập trình dùng ngôn ngữ lập trình Delphi 5.0 và Visual C++ 6.0. 7.4. Lập trình dùng Matlab Câu hỏi và bài tập Chương 8: Các bộ chuyển đổi dữ liệu A/D và D/A. Hệ thu thập dữ liệu 201 8.0. Hệ thống thu thập dữ liệu. 8.1.Biến đổi tương tự – số (ADC) PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 5 -Biến đổi A/D -Các kỹ thuật biến đổi A/D -Giao tiếp ADC với vi xử lí -Giới thiệu ADC 0809 8.2. Biến đổi số- tương tự ( DAC) -Biến đổi D/A -Giao tiếp DAC với vi xử lí -Giới thiệu DAC 0808 Câu hỏi Chương 8B: Bộ điều khiển logic lập trình được PLC (Điều khiển tuần tự ) 234 -Lý thuyết chuyển mạch cơ bản -Khái niệm chung về PLC Câu hỏi Chương 9 : Hệ thống điều khiển số 249 9.0. Điều khiển hồi tiếp 9.1. Đặc tính hệ thống điều khiển số 9.2.Thuật toán điều khiển 9.3. Biến đổi C(s) ra C(z) 9.4 . Thuật toán PID số 9.5. Ảnh hưởng của khâu bão hòa 9.6. Bộ phận chấp hành và truyền động điện. Động cơ servo và điều khiển vị trí 9.7. Điều khiển số bằng máy tính CNC 9.8. Thí dụ về đo lường và điều khiển bằng máy tính 291 9.8.1.Hệ thống điều khiển nhiệt độ dùng máy tính PC/vi xử lí. 9.8.2.Hệ thống điều khiển tốc độ động cơ một chiều (DC) dùng vi xử lí 9.8.3.Bộ định thời các thiết bị được điều khiển bằng vi xử lí. 9.8.3.2. Hệ thống điều khiển đèn giao thông dùng AT89C51. 9.8.4. Bộ điều khiển cường độ sáng dùng vi xử lí 9.8.5. Hệ thống thu thập dữ liệu nhiều kênh 9.9. Thiết kế đặt cực: tiếp cận không gian trạng thái. 9.10. Thiết kế điều khiển tối ưu: tiếp cận không gian trạng thái. 9.11.Hệ thống với sự không chắc chắn (Hệ mờ) Câu hỏi và Bài tập Chương 10: Mạng truyền thông công nghiệp 348 10.1. Khái niệm 10.2.Mạng Ethernet và bus trường -Mạng Ethernet -Bus trường. -Điều khiển dùng PC. 10.3. Mạng I2C. Câu hỏi PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 6 Tài liệu tham khảo 371 Phụ lục A: Máy tính công nghiệp 373 Phụ lục B: Visual Basic 6.0 PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 7 CHƯƠNG 1: KHÁI NIỆM CHUNG 1.1. Máy tính trong điều khiển quá trình 1.1.1. Máy tính trong điều khiển quá trình : khái niệm cơ bản Ngày nay việc sử dụng máy tính nói riêng và vi xử lí nói chung trong các day chuyền sản xuất hiện đại đã là yêu cầu bắt buộc để tăng năng suất và chất lượng sản phẩm. Trong các sản phẩm dân dụng việc sử dụng vi xử lí góp phần tăng tính thông minh của sản phẩm và tạo tiện lợi cho người sử dụng. Để mô tả cụ thể của máy tính trong điều khiển quá trình, chúng ta cần định nghĩa quá trình là gì. Quá trình vật lý (a physical process) là tổ hợp các tác vụ được thực thi để tác động lên, thay đổi, một điều gì đó trong thế giới thực. Sự chuyển động, phản ứng hóa học và truyền nhiệt là các quá trình . Sản phẩm (materials) và năng lượng (energy) là thành phần cơ bản hiển nhiên của quá trình vật lí. Nhiễu Sản phẩm vào sản phẩm ra Năng lượng vào Năng lượng ra Thông tin Thông tin Vào ra H1.1 : Mô hình quá trình vật lý tổng quát Máy tính số là thiết bị quan trọng xử lí thông tin (H1.2)và có thể tác động lên thông tin liên quan đến quá trình (H1.3). Thông tin vào Thông tin ra Hình 1.2: Hoạt động của máy tính số Quá trình vật lý Môi trường Máy tính số PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 8 Vi xử lí được sử dụng trong điều khiển và đo lường dưới ba dạng: -Máy tính điều khiển (Máy vi tính-MVT). -Vi xử lí điều khiển nhúng (còn gọi là vi điều khiển-VĐK), nghĩa là vi điều khiển là một bộ phận không tách rời của thiết bị được điều khiển. -Bộ điều khiển logic lập trình được. MVT : Personal computer VĐK: embedded microcontroller/embedded microprocessor PLC : Programmable logic controller. Cả ba dạng trên được thiết kế dựa trên cơ sở hoạt động của vi xử lí với chức năng xử lí thông tin theo sơ đồ H1.3. Nhiễu Sản phẩm vào Sản phẩm ra Năng lượng vào Năng lượng ra Tín hiệu đo lường Và điều khiển H1.3. Máy tính trong điều khiển quá trình 1.1.2.Lịch sử phát triển: Một thí dụ thực tiễn đầu tiên của ứng dụng máy tính điều khiển quá trình là vào năm 1959; nó liên quan đến một số chức năng ở nhà máy hóa dầu tại Port Arthur, Texas(UAS). Công trình đầu tiên kết hợp giữa công ty Thomson ramo Woolridge và Texaco. RW300, máy tính dùng đèn điện tử, kiểm soát dòng chảy, nhiệt độ, áp suất và phân tử trong nhà máy lọc (hóa dầu). Máy tính tính toán tín hiệu điều khiển mong muốn Môi trường Quá trình vật lí Máy tính Thiết bị nhập (bàn phím) Thiết bị xuất (màn hình) PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 9 dựa trên dữ liệu vào và thay đổi điểm đặt của bộ hiệu chỉnh analog và chỉ thị người vận hành các điều khiển được thực hiện bằng tay. Vấn đề kinh tế không chỉ là vấn đề. Độ tin cậy phần cứng thấp vì dùng đèn điện tử. Phần mềm được viết bằng lập trình hợp ngữ. Phương pháp toán học cổ điển dựa trên phân tích thời gian liên tục không thể dùng trực tiếp cho thiết kế vòng lặp điều khiển để hiện thực trên máy tính. Điều khiển máy tính ban đầu minh họa sự cần thiết cho lý thuyết điều khiển lấy mẫu, cung cấp nền tảng cho sự phát triển. Chương trình không gian của Mỹ trong thập niên 1960 và đặc biệt dự án Apollo đã hiện thực cho công trình lý thuyết và thực tiễn. Vào năm 1962, ICI (Imperial Chemical Industries) giới thiệu khái niệm điều khiển số trực tiếp DDC(Direct digital control) ; ý tưởng là thay vòng điều khiển analog thông thường bằng máy tính trung tâm. Ý tưởng của DDC vẫn còn được áp dụng trong nhiều hệ thống điều khiển máy tính ngày nay. Tên gọi điều khiển số trực tiếp nhằm nhấn mạnh rằng máy tính điều khiển quá trình một cách trực tiếp. Tính linh hoạt là thuận lợi của hệ thống DDC. Sự phát triển bán dẫn trong thập niên 1960 dẫn đến sự phát triển mạnh mẽ của máy tính. Ba yếu tố: phần cứng máy tính tốt hơn, quá trình ít phức tạp hơn, và lý thuyết điều khiển phát triển , được kết hợp lại gia tăng sự thành công của điều khiển máy tính. Đây là thời kì máy tính mini. Các đòi hỏi về máy tính điều khiển quá trình gắn chặt với sự phát triển của công nghệ mạch tích hợp. Có thể thiết kế hiệu quả hệ thống điều khiển quá trình bằng máy tính mini. Máy tính quá trình tiêu biểu thời kì này có độ dài từ 16 bit. Bộ nhớ chính là 8-124 K words. Ổ đĩa được sử dụng thông thường là bộ nhớ phụ. CDC 1700 là máy tính tiêu biểu thời kì này. Các ứng dụng máy tính thông dụng trong điều khiển công nghiệp là bus mở. Giao tiếp (bus) giữa các mođun vận hành được nhấn mạnh. Phần cứng máy tính phát triển mạnh mẽ, năng lực tính toán mạnh, lý thuyết điều khiển phát triển: điều khiển hiện đại, điều khiển thông minh(hệ mờ và mạng nơrôn). Các ứng dụng điều khiển máy tính gia tăng. Phi thuyền thám hiểm mặt trăng Apollo 11 vào năm 1969 có máy tính với 64 KByte bộ nhớ chính. PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 10 Thời kỳ máy vi tính và sử dụng đa năng của điều khiển máy tính. Việc sử dụng dễ dàng của điều khiển máy tính bị giới hạn trong hệ thống công nghiệp lớn vì máy tính số chỉ dùng trong các máy đắt tiền, lớn, chậm và không tin cậy. Sự phát triển của công nghệ vi điện tử tiếp tục cùng tiến bộ trong công nghệ VLSI; năm 1990s bộ vi xử lý trở nên thông dụng với giá vài USD. Thị thường lớn như là điện tử ô tô đã dẫn đến sự phát triển của máy tính chuyên dụng được gọi là vi điều khiển, trong đó chip máy tính chuẩn có sẵn A/D và D/A, thanh ghi và các đặc điểm khác làm cho nó giao tiếp dễ dàng với thiết bị vật lý. Điều khiển quá trình hiện thực dùng kỹ thuật khí nén hay điện tử nhưng luôn là điều khiển dựa vào máy tính. Điều khiển số với thuật toán PID. Máy điều khiển số NC và điều khiển số bằng máy tính CNC cũng được phát triển. Hệ thống điều khiển số phát triển , cả phần cứng và phần mềm. Cấu trúc của toàn thể giải pháp gồm đơn vị phần cứng, môđun phần mềm và truyền thông là thách thức chính. Logic, tuần tự và điều khiển. Hệ thống tự động hóa công nghiệp truyền thống có hai thành phần là bộ điều khiển và logic role. Bộ điều khiển logic lập trình được PL ... t = "C" End If End If If Check2.Value = 0 Then If T22 > dat3 Then Shape2.FillColor = vbBlack Shape5.FillColor = vbYellow Label6.ForeColor = vbRed Label12.ForeColor = vbRed 'DONG LO MO QUAT 2 PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 443 Label6.Caption = "OFF" Label12.Caption = "ON" MSComm1.Output = "D" End If End If End Function Function KIEMTRA1() dat5 = Val(Text3.Text) + 1 'sai so delta cua lo 3 la 1 do dat6 = Val(Text3.Text) - 1 If T33 < dat6 Then 'MUC DUOI Shape3.FillColor = vbYellow Shape6.FillColor = vbBlack Label8.ForeColor = vbRed Label14.ForeColor = vbRed Label8.Caption = "ON" Label14.Caption = "OFF" ' MO LO TAT QUAT 3 MSComm1.Output = "E" End If If T33 > dat5 Then 'MUC TREN Shape3.FillColor = vbBlack Shape6.FillColor = vbYellow Label8.ForeColor = vbRed Label14.ForeColor = vbRed Label8.Caption = "OFF" Label14.Caption = "ON" ' MO QUAT TAT LO 3 MSComm1.Output = "F" End If End Function Private Sub Text1_Change() ti = 0 VScroll1.Value = Val(Text1.Text) With TChart1.Series(0) 'XOA MAN HINH TCHART KHI THAY DOI GIA TRI DAT .Clear End With With TChart1.Series(3) .Clear End With End Sub Private Sub Text2_Change() ti = 0 VScroll2.Value = Val(Text2.Text) With TChart1.Series(1) 'XOA MAN HINH TCHART .Clear PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 444 End With With TChart1.Series(4) .Clear End With End Sub Private Sub Text3_Change() ti = 0 VScroll3.Value = Val(Text3.Text) With TChart1.Series(2) 'XOA MAN HINH TCHART .Clear End With With TChart1.Series(5) .Clear End With End Sub Private Sub THOAT_Click() Dim TH As Integer If MSComm1.PortOpen = True Then MSComm1.Output = "T" 'Chr$(0) 'TAT TAT CA QUAT VA LO Timer5.Enabled = False Timer3.Enabled = False MSComm1.PortOpen = False End If TH = MsgBox("BAN CO MUON THOAT KHOI CHUONG TRINH KHONG ?", vbInformation + vbOKCancel, "THONG BAO!!!!") If TH = vbOK Then End End If End Sub Private Sub Timer1_Timer() If note = True Then Form1.Caption = Right(DES3, J) note = IIf(J > Len(DES3), False, True) TEN.Caption = Right(Des, J) note = IIf(J > Len(Des), False, True) TEN1.Caption = Right(DES1, J) note = IIf(J > Len(Des), False, True) TIEUDE.Caption = Right(DES2, J) note = IIf(J > Len(DES2), False, True) J = J + 1 Else Form1.Caption = Left(DES3, J) note = IIf(J > 0, False, True) TEN.Caption = Left(Des, J) note = IIf(J > 0, False, True) PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 445 TEN1.Caption = Left(DES1, J) note = IIf(J > 0, False, True) TIEUDE.Caption = Left(DES2, J) note = IIf(J > 0, False, True) J = IIf(J > 0, J - 1, 0) End If End Sub Private Sub Timer2_Timer() GIO.Caption = Now End Sub Private Sub Timer3_Timer() MSComm1.Output = "M" 'Chr$(7) 'CHO PHEP DOC ADC End Sub 'THU THAP VAO BANG GHI DATA Public Sub setFlex() 'Dim T As Single Set db = OpenDatabase(App.Path & "\daq.mdb") Set rs = db.OpenRecordset("log", dbOpenDynaset) fg.TextMatrix(0, 0) = "Sr No" fg.TextMatrix(0, 1) = "Time And Date" fg.TextMatrix(0, 2) = "Temp1" fg.TextMatrix(0, 3) = "Temp2" fg.TextMatrix(0, 4) = "Temp3" fg.TextMatrix(0, 5) = "Temp4" fg.ColWidth(0) = 600 fg.ColWidth(1) = 2000 fg.ColWidth(2) = 1000 fg.ColWidth(3) = 1000 fg.ColWidth(4) = 1000 fg.ColWidth(5) = 1000 For L = 0 To 5 fg.Row = 0 fg.Col = L fg.CellFontBold = True fg.ColAlignment(L) = 3 Next L End Sub Sub fillGrid() Do While Not rs.EOF T = T + 1 fg.TextMatrix(T, 0) = rs.Fields("Sr No") fg.TextMatrix(T, 1) = rs.Fields("TimeAndDate") fg.TextMatrix(T, 2) = rs.Fields("Temp1") fg.TextMatrix(T, 3) = rs.Fields("Temp2") fg.TextMatrix(T, 4) = rs.Fields("Temp3") fg.TextMatrix(T, 5) = rs.Fields("Temp4") TAP.Caption = "Total Records: " + CStr(fg.Rows - 1) PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 446 If Not rs.EOF Then rs.MoveNext If fg.TextMatrix(fg.Rows - 1, 2) "" Then fg.Rows = fg.Rows + 1 End If Loop End Sub 'GHI DULIEU VAO ASCESS Private Sub Timer4_Timer() fg.TextMatrix(fg.Rows - 1, 0) = CStr(fg.Rows - 1) fg.TextMatrix(fg.Rows - 1, 1) = CStr(Now) fg.TextMatrix(fg.Rows - 1, 2) = Text4.Text fg.TextMatrix(fg.Rows - 1, 3) = Text5.Text fg.TextMatrix(fg.Rows - 1, 4) = Text6.Text fg.TextMatrix(fg.Rows - 1, 5) = MT.Caption TAP.Caption = "Total Records: " + CStr(fg.Rows - 1) rs.AddNew rs.Fields("Sr No").Value = CStr(fg.Rows - 1) rs.Fields("TimeAndDate").Value = Now rs.Fields("Temp1").Value = Val(fg.TextMatrix(fg.Rows - 1, 2)) rs.Fields("Temp2").Value = Val(fg.TextMatrix(fg.Rows - 1, 3)) rs.Fields("Temp3").Value = Val(fg.TextMatrix(fg.Rows - 1, 4)) rs.Fields("Temp4").Value = Val(fg.TextMatrix(fg.Rows - 1, 5)) rs.Update fg.Rows = fg.Rows + 1 End Sub 'XOA TAP TIN Sub delRec() db.Execute ("Delete * from log") fg.Clear fg.Rows = 2 Call setFlex TAP.Caption = "Total Records: 0" End Sub Private Sub Timer5_Timer() ti = ti + 1 Timer5.Enabled = False Timer5.Enabled = True End Sub Private Sub VScroll1_Change() Text1.Text = CStr(VScroll1.Value) End Sub Private Sub VScroll2_Change() Text2.Text = CStr(VScroll2.Value) End Sub PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 447 Private Sub VScroll3_Change() Text3.Text = CStr(VScroll3.Value) End Sub Private Sub XOA_Click() Dim Msg, Style, Title, Response, MyString Msg = "CO MUON XOA TAP TIN KHONG ?..??" Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "THONG BAO!!!!!!" Response = MsgBox(Msg, Style, Title) If Response = vbYes Then Call delRec End If End Sub '**************THUAT TOAN PID***************** Sub PID(kp1 As Single, ki1 As Single, kd1 As Single) Dim TT As Single TT = 1 nddat = Val(Text3.Text) e2 = nddat - T33 'Tính sai so e(k) lo 3 A0 = kp1 + ki1 * TT + kd1 / TT A1 = -kp1 - ((2 * kd1) / TT) A2 = kd1 / TT DUTY = Round(DUTY1 + A0 * e2 + A1 * e1 + A2 * e0, 0) If DUTY >= 255 Then DUTY = 255 ElseIf DUTY <= 0 Then DUTY = 0 End If DUTY1 = DUTY 'NaP DUTY(k) cho DUTY(k-1) PID sau e0 = e1 'Nap e(k-1) cho e(k-2) e1 = e2 'Nap e(k) cho e(k-1) End Sub ‘***********’Code hien thi do thi lo 1 tren form 2’*********’’ Option Explicit Dim I1, S1 As Double Dim P0 As Boolean Dim tg As Double Private Sub THOAT_Click() Form2.Hide End Sub Private Sub Form_Load() Form2.Height = 7560 Form2.Width = 10395 Timer2.Enabled = False PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 448 tg = 0 End Sub Private Sub Timer1_Timer() S1 = Form1.Check1.Value P0 = Form1.CHAY.Enabled If S1 = 0 And P0 = False Then Timer2.Enabled = True N1 = Form1.Text1.Text N2 = Form1.Text4.Text With TChart1.Series(0) .AddXY tg * 10, Val(N1), "", vbRed 'NHIET DO DAT LO1 End With With TChart1.Series(1) .AddXY tg * 10, Val(N2), "", vbBlue 'NHIET DO DO LO1 End With Else End If End Sub Private Sub Timer2_Timer() tg = tg + 1 Timer2.Enabled = False Timer2.Enabled = True End Sub ‘’******** Code hien thi do thi lo 2 tren form 3’**********’’ Option Explicit Dim M1, M2 As String Dim I2, S2 As Double Dim P1 As Boolean Dim tg1 As Double Private Sub Form_Load() Form3.Height = 7560 Form3.Width = 10395 Timer2.Enabled = False tg1 = 0 End Sub Private Sub THOAT_Click() Form3.Hide End Sub Private Sub Timer1_Timer() S2 = Form1.Check2.Value P1 = Form1.CHAY.Enabled If S2 = 0 And P1 = False Then M1 = Form1.Text2.Text PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 449 M2 = Form1.Text5.Text Timer2.Enabled = True With TChart1.Series(0) .AddXY tg1 * 10, Val(M1), "", vbRed 'NHIET DO DAT LO 2 End With With TChart1.Series(1) .AddXY tg1 * 10, Val(M2), "", vbBlue 'NHIET DO DO LO 2 End With Else End If End Sub Private Sub Timer2_Timer() tg1 = tg1 + 1 Timer2.Enabled = False Timer2.Enabled = True End Sub ‘***********’Code hien thi do thi lo 3 tren form 4’*********’’ Option Explicit Dim K1, K2 As String Dim I3, S3 As Integer Dim P2 As Boolean Dim tg2 As Double Private Sub Form_Load() Form4.Height = 7560 Form4.Width = 10395 Timer2.Enabled = False tg2 = 0 End Sub Private Sub THOAT_Click() Form4.Hide End Sub Private Sub Timer1_Timer() S3 = Form1.Check3.Value P2 = Form1.CHAY.Enabled If S3 = 0 And P2 = False Then Timer2.Enabled = True K1 = Form1.Text3.Text K2 = Form1.Text6.Text With TChart1.Series(0) .AddXY tg2 * 10, Val(K1), "", vbRed 'NHIET DO DAT LO3 End With With TChart1.Series(1) .AddXY tg2 * 10, Val(K2), "", vbBlue 'NHIET DO DO LO3 End With Else End If PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 450 End Sub Private Sub Timer2_Timer() tg2 = tg2 + 1 Timer2.Enabled = False Timer2.Enabled = True End Sub 2 Code chương trình hợp ngữ 8051 $MOD51 ;CHUONG TRINH HOA CHINH ;****************************CHU THICH**************** ; LO1 DIEU KHIEN ON/OFF ; LO2 DIEU KHIEN ON/OFF ; LO3 DIEU KHIEN ON/OFF VA PID BANG PWM KHAI BAOCACBIEN******************************************* QUAT1 BIT P1.0 ; DIEU KHIEN QUAT CHO QUAT QUAT2 BIT P1.1 QUAT3 BIT P1.2 ;**************************&&&&&&&&&&&&&&*************** ************** SEL1 BIT P3.7 ;DIEU KHIEN CHO LO DONG MO SEL2 BIT P1.3 SEL3 BIT P1.4 ;*******************&&&&&&&&&&&&&&&&&&**************** **************** DK1 BIT P1.5 ;CAC BIEN LUON O TRANG THAI 0 (CHE DO ON/OFF) DK2 BIT P1.6 DK3 BIT P1.7 ;DIEU KHIEN ON/OFF VA PID ;**************^^^^^^^^^^^^^^^^^^^*********************** EOC BIT P3.4 ;DIEU KHIEN ADC OE BIT P3.5 START BIT P3.6 ;ALE CHUNG DA0 BIT P3.2 ;CHAN QUET KENH CHON NGO VAO ADC DA1 BIT P3.3 ;*******************CAC BIEN DU LIEU******************** ADC1 EQU 30H ADC2 EQU 31H ADC3 EQU 32H ADC4 EQU 33H TAM EQU 20H ;*******************^^^^^^^^^^^^^^^^********************* CHUYEN_ADC BIT 00H ;CHO PHEP CHUYEN DOI ADC ;****************&&&&&&&&&&&&&&&************************ ** ORG 0000h LJMP MAIN PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 451 ORG 0023H LJMP NGATNOITIEP ORG 0030H MAIN: CLR QUAT1 ;TAT 3 QUAT CLR QUAT2 CLR QUAT3 SETB SEL1 ;TAT 3 LO SETB SEL2 SETB SEL3 CLR DK1 CLR DK2 CLR DK3 MOV P0,#00H ; DAC LA 5V-TRANG THAI DONG 3 LO-DAC 0 MOV R7,#0 CLR DA0 CLR DA1 CLR START CLR OE SETB EOC MOV P2,#0FFH ;NHAP DATA ADC VAO MOV TMOD,#20H MOV TH1,#0FDH MOV SCON,#50H SETB TR1 SETB EA SETB ES ;BIT DK CONG-CHO PHEP NGAT SETB PS ;UU TIEN NGAT NOI TIEP ;****** ***CHUONG TRINH CHINH*********************** MAIN1: JB CHUYEN_ADC,MAIN1 SETB CHUYEN_ADC LCALL LAYMAU ;LAY MAU DU LIEU O 4 KENH CLR ES MOV SBUF,ADC1 ;PHAT DU LIEU LEN MAY TINH JNB TI,$ CLR TI MOV SBUF,ADC2 JNB TI,$ CLR TI PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 452 MOV SBUF,ADC3 JNB TI,$ CLR TI MOV SBUF,ADC4 JNB TI,$ CLR TI SETB ES ;CHO PHEP NGAT TRO LAI LJMP MAIN1 ;****** * **CHON KENH VA THU DATA TU ADC*********************** LAYMAU: CLR DA0 ;NGO VAO IN0-KENH 1 CLR DA1 LCALL BIENDOI MOV ADC1,TAM CLR DA1 SETB DA0 ;NGO VAO IN1 -KENH 2 LCALL BIENDOI MOV ADC2,TAM CLR DA0 ;NGO VAO IN2-KENH 3 SETB DA1 LCALL BIENDOI MOV ADC3,TAM SETB DA0 ;NGO VAO IN3-KENH 4 SETB DA1 LCALL BIENDOI MOV ADC4,TAM CLR DA0 CLR DA1 RET ;************************^^^^^^^BIEN DOADC^^^^^^^^^^^^******** BIENDOI: SETB START NOP CLR START ;BAO BAT DAU BIEN DOI JB EOC,$ ;NEU OEC = 1 THI CHO JNB EOC,$ ;TIEP TUC CHO DEN KHI EOC = 1 SETB OE MOV TAM,P2 ;DOC GIA TRI BIEN DOI PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 453 CLR OE ;KHONG CHO PHEP XUAT DU LIEU RET ;****** **CHUONG TRINH NHAN DATA PC^^^^^^^^^^^^^^^^^^^********** NGATNOITIEP: CLR RI ;XOA CO NGAT CHUAN BI CHO LAN THU KE MOV A,SBUF ;DOC DU LIEU TU CONG NOI TIEP VAO A MOV R7,A MOV P0,#0FFH ;NGO RA ANALOG LA 5V ;**********DIEU KHIEN LO 1 ON/OFF ************ CJNE A,#'M',KE ;CHO PHEP CHUYEN DOI ADC CLR CHUYEN_ADC LJMP EXIT KE: CJNE A,#'A',KE1 CLR DK1 ;DIEU KHIEN LO 1-MUC 0 CLR QUAT1 CLR SEL1 ;MO LO 1,TAT QUAT 1 -DK ON/OFF LJMP EXIT KE1: CJNE A,#'B',KE2 CLR DK1 ;MUC 0 SETB QUAT1 ;MO QUAT 1 SETB SEL1 ;TAT LO 1 -DK ON/OFF LO1 SJMP EXIT ;********DIEU KHIEN LO 2 ON/OFF********* KE2: CJNE A,#'C',KE3 ;MUC 0 CLR DK2 CLR QUAT2 ;TAT QUAT 2 CLR SEL2 ;MO LO2 -DK ON/OFF LJMP EXIT KE3: CJNE A,#'D',KE4 CLR DK2 SETB QUAT2 ;MO QUAT 2 SETB SEL2 ;TAT LO 2 LJMP EXIT ;**********DIEU KHIEN LO 3***** PP ON /OFF********* KE4: CJNE A,#'E',KE5 PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 454 CLR DK3 CLR QUAT3 ;TAT QUAT 3 CLR SEL3 ;MO LO 3 SJMP EXIT KE5: CJNE A,#'F',KE6 CLR DK3 SETB QUAT3 ;MO QUAT 3 SETB SEL3 ;TAT LO 3 SJMP EXIT ;*****GUI MA TAT HOAT DONG CAC THIET BI********* KE6: CJNE A,#'T',KE7 CLR QUAT1 CLR QUAT2 CLR QUAT3 SETB SEL1 SETB SEL2 SETB SEL3 CLR DK1 CLR DK2 CLR DK3 MOV P0,#00H LJMP EXIT KE7: PUSH 00H PUSH ACC CJNE R7,#00H,CCC SETB DK3 SJMP KT CCC: CJNE R7,#255,DDD CLR DK3 SJMP KT DDD: MOV A,R7 MOV R0,A CLR DK3 AAA: LCALL DELAY_XUNG DJNZ R0,AAA SETB DK3 MOV A,#255 CLR C SUBB A,R7 MOV R0,A BBB: LCALL DELAY_XUNG DJNZ R0,BBB KT: PDF created with pdfFactory Pro trial version www.pdffactory.com Đo lường và điều khiển bằng máy tính –© Huỳnh Minh Ngọc 455 POP ACC POP 00H EXIT: RETI DELAY_XUNG: PUSH 00H MOV R0,#20 DJNZ R0,$ POP 00H RET END Tham khảo: Đồ án tốt nghiệp, Võ Hồng Minh, Hệ thống thu thập dữ liệu nhiều kênh, ĐHĐT1B, tháng 7-2009. PDF created with pdfFactory Pro trial version www.pdffactory.com
File đính kèm:
- bai_giang_do_luong_va_dieu_khien_bang_may_tinh_huynh_minh_ng.pdf