Luận văn Hệ thống thu thập dữ liệu nhiều kênh

Mục đích của thu thập dữ liệu là thu thập thông tin của các hiện tượng hay các đại lượng vật lý như là điện áp, dòng điện, nhiệt độ, áp suất hoặc âm thanh. Sự thu thập dữ liệu trên PC sử dụng một sự kết hơp giữa mô đun phần cứng, phần mềm ứng dụng và một máy tính để thực hiện việc thu thập. Trong khi mỗi hệ thống thu thập dữ liệu được định nghĩa bởi yêu cầu ứng dụng của nó. Mỗi hệ thống chia sẽ một mục đích chung thu được, phân tích và nhận thông tin hiện có. Những hệ thống thu thập dữ liệu hợp nhất những tín hiệu, các cảm biến, những cơ cấu chấp hành, những trạng thái tín hiệu, những thiết bị thu thập dữ liệu và phần mềm ứng dụng

doc105 trang | Chia sẻ: lethao | Lượt xem: 3003 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống thu thập dữ liệu nhiều kênh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ền theo chuẩn RS-232 của EIA (Electronics Industry Associations). Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA. Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch. Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200 bps. Các phương thức nối giữa DTE và DCE: Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng. Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉ được truyền theo 1 hướng. Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng. Định dạng của khung truyền dữ liệu theo chuẩn RS – 232 như sau: Hình 1.56 – Khung truyền dữ liệu theo chuẩn RS – 232 Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7 và Parity, cuối cùng là xung Stop (mark: –10V) để khôi phục trạng thái đường truyền. Dạng tín hiệu truyền mô tả như sau (truyền ký tự A): Hình 1.41 – Tín hiệu truyền của ký tự ‘A’ Các đặc tính kỹ thuật của chuẩn RS-232 như sau: Chiều dài cable cực đại 15m Tốc độ dữ liệu cực đại 20 Kbps Điện áp ngõ ra cực đại ± 25V Điện áp ngõ ra có tải ± 5V đến ± 15V Trở kháng tải 3K đến 7K Điện áp ngõ vào ± 15V Độ nhạy ngõ vào ± 3V Trở kháng ngõ vào 3K đến 7K Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps, 9600 bps và 19200 bps. Hình 1.42 – Cấu trúc chân của RS – 232 Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như hình 2.38. Ý nghĩa của các chân mô tả như sau: D25 D9 Tín hiệu Hướng truyền Mô tả 1 – – – Protected ground: nối đất bảo vệ 2 3 TxD DTE – DCE Transmitted data: dữ liệu truyền 3 2 RxD DCE – DTE Received data: dữ liệu nhận 4 7 RTS DTE – DCE Request to send: DTE yêu cầu truyền dữ liệu 5 8 CTS DCE – DTE Clear to send: DCE sẵn sàng nhận dữ liệu 6 6 DSR DCE – DTE Data set ready: DCE sẵn sàng làm việc 7 5 GND – Ground: nối đất (0V) 8 1 DCD DCE – DTE Data carier detect: DCE phát hiện sóng mang 20 4 DTR DTE – DCE Data terminal ready: DTE sẵn sàng làm việc 22 9 RI DCE – DTE Ring indicator: báo chuông 23 – DSRD DCE – DTE Data signal rate detector: dò tốc độ truyền 24 – TSET DTE – DCE Transmit Signal Element Timing: tín hiệu định thời truyền đi từ DTE 15 – TSET DCE – DTE Transmitter Signal Element Timing: tín hiệu định thời truyền từ DCE để truyền dữ liệu 17 – RSET DCE – DTE Receiver Signal Element Timing: tín hiệu định thời truyền từ DCE để truyền dữ liệu 18 – LL Local Loopback: kiểm tra cổng 21 – RL DCE – DTE Remote Loopback: Tạo ra bởi DCE khi tín hiệu nhận từ DCE lỗi 14 – STxD DTE– DCE Secondary Transmitted Data 16 – SRxD DCE – DTE Secondary Received Data 19 – SRTS DTE – DCE Secondary Request To Send 13 – SCTS DCE – DTE Secondary Clear To Send 12 – SDSRD DCE – DTE Secondary Received Line Signal Detector 9, 10, 25 – Dành riêng cho chế độ test 11 – Không dùng 7.1.2 Truyền thông giữa hai nút Các sơ đồ khi kết nối dùng cổng nối tiếp: Hình 1.43 – Kết nối đơn giản trong truyền thông nối tiếp Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo ngắt. Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau: Hình 1.44 – Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM (ảo). Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có thể nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng. Quá trình điều khiển này có thể thực hiện bằng phần mềm hay phần cứng. Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff. Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ gởi ký tự Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lại CTS. 7.1.3 Truy xuất cổng nối tiếp Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4 với các địa chỉ như sau: Tên Địa chỉ Ngắt Vị trí chứa địa chỉ COM1 3F8H 4 0000H:0400H COM2 2F8H 3 0000H:0402H COM3 3E8H 4 0000H:0404H COM4 2E8H 3 0000H:0406H 7.2 IC MAX 232 IC max232 thường được dùng trong việc kết nối thiết bị ngoại vi qua cổng RS – 232. Nó cho phép chuyển đổi điện áp ngõ vào ± 30V (từ cổng Comm) thành điện áp ngõ ra đảo 5V và 0V để giao tiếp với thiết bị ngoại vi. Hình 1.45 – Sơ đồ chân IC MAX 232 Hình 1.62 – Cấu trúc Logic của MAX 232 Một vài thông số của MAX 232: Nguồn cung cấp: 4,5V đến 5,5V Hai bộ chuyển đổi và truyền nhận Tốc độ truyền lên đến 120 kbps Mức độ điện áp ngõ vào ± 30V Dòng do nguồn cung cấp: 8 đến 10 mA Tầm nhiệt độ hoạt động: từ 0 đến 70oC 8. NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 6.0 8.1 Cơ bản về Visual Basic 6.0 Visual Basic 6.0 là một phiên bản của bộ công cụ lập trình Visual Basic, cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows. Những ai đã từng quen thuộc với Visual Basic thì tìm thấy ở Visual Basic 6.0 những tính năng trợ giúp mới và các công cụ lập trình hiệu quả. Người dùng mới làm quen với Visual Basic cũng có thể làm chủ Visual Basic 6.0 một cách dễ dàng. 8.1.1 Các thuộc tính cơ bản của các đối tượng trong Visual Basic 6.0 Name: tên của đối tượng, mỗi đối tượng phải có tên khác nhau. Caption: hiển thị nội dung trên cửa sổ thiết kế. TabIndex: thứ tự chuyển đến khi nhấn phím. Tab Font: chọn font hiển thị trên đối tượng. BackColor, ForeColor: chọn màu hiển thị. Value: giá trị của đối tượng (dùng cho Check box và Option để xác định trạng thái được chọn hay không chọn). Text: nội dung chứa trong một Textbox. MultiLine: cho phép hiện nhiều dòng trên Textbox hay không. Enable: cho phép đối tượng hoạt động hay không. Duration: xác định thời gian Timer tràn (đơn vị là ms). 8.1.2 Các sự kiện cơ bản của các đối tượng trên Visual Basic 6 Form_Load: xảy ra mỗi khi mở một form. Click: xảy ra khi thực hiện nhấn chuột trái trên đối tượng. Timer: xảy ra mỗi khi Timer tràn. 8.1.3 Các lệnh cơ bản trong Visual Basic 6 8.1.3.1 Lệnh IF - THEN - ELSE Cấu trúc lệnh: IF Điều_kiện_1 THEN Công_việc_1 ELSEIF Điều_kiện_2 THEN Công_việc_2 ELSEIF Điều_kiện_3 THEN Công_việc_3 … ELSE Công_việc END IF Câu lệnh IF - THEN có thể bao gồm nhiều phát biểu ELSEIF hoặc không có phát biểu nào. Ví dụ: IF a > 10 THEN MsgBox “Lon hon 10” ELSEIF a > 0 THEN MsgBox “Lon hon 0 va nho hon 10” ELSE MsgBox “Nho hon 0” END IF 8.1.3.2 Lệnh SELECT CASE Trong trường hợp có nhiều lựa chọn cho một biểu thức điều kiện, ta có thể thay bằng lệnh Select Case Cấu trúc lệnh: SELECT CASE Biểu_thức_điều _kiện CASE Điều_kiện_1 Lệnh CASE Điều_kiện_2 Lệnh CASE Điều_kiện_3 Lệnh … ELSE Điều_kiện Lệnh END SELECT 8.1.3.3 Lệnh FOR FOR dùng để tạo vòng lặp xác định trước số lần lặp. Cấu trúc lệnh: FOR Biến_đếm = Giá_trị_đầu TO Giá_trị_cuối STEP Bước_nhảy Lệnh NEXT Biến_đếm Ví dụ: FOR i = 1 TO 100 STEP 2 Result = Result + 1 NEXT i Nếu bỏ qua phát biểu STEP thì xem như bước nhảy là 1 và có thể yêu cầu kết thúc vòng lặp FOR bằng lệnh EXIT FOR. 8.1.3.4 Lệnh DO Lệnh DO dùng để tạo vòng lặp vô tận và chỉ kết thúc khi điều kiện kiểm tra thoả mãn. Lệnh DO có 2 dạng : kiểm tra điều kiện trước khi thực hiện vòng lăp và sau khi thực hiện vòng lặp. Cấu trúc lệnh: DO Lệnh LOOP WHILE Điều_kiện Hay: DO WHILE Điều_kiện Lệnh LOOP 8.2 Lập trình giao tiếp cổng nối tiếp dùng Visual Basic 6.0 sử dụng Mscomm32.ocx 8.2.1 Mô tả Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một ActiveX có sẵn là Microsoft Comm Control. ActiveX này được lưu trữ trong file MSCOMM32.OCX. ActiveX MsComm được bổ sung vào một Visual Basic Project thông qua menu Project > Components Hình 1.46 – Cách bổ xung ActiveX Microsoft Comm Control vào VB6 Hình 1.47 – Biểu tượng và bảng thuộc tính của ActiveX Microsoft Comm Control 8.2.2 Các tham số và thuộc tính 8.2.2.1 Settings Xác định các tham số cho cổng nối tiếp. Cú pháp: MSComm1.Settings = ParamString MSComm1: tên đối tượng ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S" BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là 110 2400 38400 300 9600 (măc định) 56000 600 14400 188000 1200 19200 256000 P: kiểm tra chẵn lẻ, với các giá trị Giá trị Mô tả O Odd (kiểm tra lẻ) E Even (kiểm tra chẵn) M Mark (luôn bằng 1) S Space (luôn bằng 0) N Không kiểm tra D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit S: số bit stop (1, 1.5, 2) Ví dụ: MSComm1.Settings = "9600,N,8,1” sẽ xác định tốc độ truyền 9600bps, không kiểm tra parity với 1 bit stop và 8 bit dữ liệu. 8.2.2.2 CommPort Xác định số thứ tự của cổng truyền thông. Cần phải thiết lập thông số này trước khi mở cổng. Sẽ có lỗi error 68 (Device unavailable) nếu như không mở được cổng này. Cú pháp: MSComm1.CommPort = PortNumber PortNumber là giá trị nằm trong khoảng từ 1 đến 16, mặc định là 1. Ví dụ: MSComm1.CommPort = 1 xác định sử dụng COM1 8.2.2.3 PortOpen Đặt trạng thái hay kiểm tra trạng thái đóng / mở của cổng nối tiếp. Nếu dùng thuộc tính này để mở cổng nối tiếp thì phải sử dụng trước 2 thuộc tính Settings và CommPort. Cú pháp: MSComm1.PortOpen = True | False Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồng thời xoá nội dung của các bộ đệm truyền, nhận. Ví dụ: Mở cổng COM1 với tốc độ truyền 9600 bps MSComm1.Settings = "9600,N,8,1" MSComm1.CommPort = 1 MSComm1.PortOpen = True 8.2.2.4 Input Nhận một chuỗi ký tự và xóa khỏi bộ đệm .Nếu InputMode là comInputModeText thì giá trị trả về sẽ là một xâu tức có kiểu String , dữ liệu dạng text trong một biến kiểu Variant. Nếu InputMode = comInputModeBinary thì thuộc tính này sẽ trả lại dữ liệu dạng nhị phân dưới dạng một mảng kiểu byte trong một biến Variant. Cú pháp: InputString = MSComm1.Input Thuộc tính này kết hợp với InputLen để xác định số ký tự đọc vào. Nếu InputLen = 0 thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm. 8.2.2.5 InBuferSize Cú pháp: MSComm1. InBuferSize [ = value ] Thiết lập hoặc trả lại kích thước của bộ đệm nhận, tính = byte. Mặc định là 1024 byte. Không được nhầm lẫn với đặc tính InBufferCount là số byte đang chờ trong bộ đệm nhận. 8.2.2.6 InBufferCout Cú pháp: MSComm1. InBufferCout [ = value ] Trả lại số kí tự đang có trong bộ đệm nhận Bạn có thể xoá bộ đệm nhận bằng cách đặt thuộc tính này = 0 . Không nhầm với thuộc tính InBufferSize là tổng kích thước của bộ đệm nhận. 8.2.2.7 InputLen Cú pháp: MSComm1.InputLen [ = value ] Thiết lập hoặc trả lại số byte mỗi lần thuộc tính Input đọc trong bộ đệm nhận. Mặc định giá trị Value = 0 tức là thuộc tính Input sẽ đọc hết nội dung của bộ đệm nhận khi thuộc tính này được gọi. Nếu số kí tự trong bộ đệm nhận không = InputLen thì thuộc tính Input sẽ trả lại kí tự rỗng “”. Ví thế cần phải chọn cách kiểm tra InBufferCount để chắc chắn số kí tự yêu cầu đã có đủ trước khi dùng lệnh .Input. Tính chất này rất là có ích khi đọc dữ liệu một máy mà dữ liệu ra được định dạng bằng các khối có kích thước cố định. 8.2.2.8 InputMode Cú pháp: MSComm1.InputMode [ = value ] Value = 0 hay = comInputModeText dữ liệu nhận được dạng văn bản kiểu kí tự theo chuẩn ANSI. Dữ liệu nhận được sẽ là một sâu. Value=1 hay = comInputModeBinary dùng nhận mọi kiểu dữ liệu như kí tự điều khiển nhúng, kí tự NULL,.. Giá trị nhận được từ Input sẽ là một mảng kiểu Byte. 8.2.2.9 NullDiscard Cú pháp: MSComm1.NullDiscard [ = value ] Tính chất này quyết định kí tự trống có được truyền từ cổng đến bộ đệm nhận hay không. Nếu value = True kí tự này không được truyền. value = false kí tự trống sẽ được truyền. Kí tự trống được định nghĩa theo chuẩn ASCII là kí tự 0 – chr$(0). 8.2.2.10 Output Ghi dữ liệu vào bộ đệm truyền. có thể truyền kiểu text hoặc kiểu nhị phân. Nếu truyền bằng kiểu text thì cho một biến Variant = kiểu String, nếu truyền kiểu nhị phân thì cho cho Output= variant = một mảng kiểu Byte. 8.2.2.11 OutBufferCount: trả lại số kí tự trong bộ đệm truyền. 8.2.2.12 OutBuferSize: giống như InBuferSize, mặc định là 512. 8.2.2.13 RthresHold Cú pháp: MSComm1.Rthreshold [ = value ] [Value] kiểu số nguyên. Thiết lập số kí tự nhận được trước khi gây lên sự kiện comEvReceive. Mặc định = 0 tức là không có sự kiện OnComm khi nhận được dữ liệu. Thiết lập = 1 tức là sự kiện OnComm xảy ra khi bất kì kí tự nào được chuyển đến bộ đệm nhận. 8.2.2.14 SThreshold Thiết lập và trả lại số kí tự nhỏ nhất được cho phép trong bộ đệm gửi để xảy ra sự kiện OnComm = comEvSend . Theo mặc định giá trị này = 0 tức là khi truyền sẽ không gây ra sự kiện OnComm. Nếu thiết lập thông số này =1 thì sự kiện OnComm xảy ra khi bộ đệm truyền rỗng. Sự kiện OnComm = comEvSend chỉ xảy ra khi mà số kí tự trong bộ đệm truyền nhỏ hơn hoặc = Sthreshold. Nếu số kí tự trong bộ đệm này luôn lớn hơn Sthreshold thì sự kiện này không thể xảy ra. 8.2.2.15 Sư kiện OnComm Sự kiện OnComm được phát sinh vào bất cứ khi nào giá trị của đặc tính CommEvent thay đổi. Sự kiện : Private Sub MsComm_OnComm() Đặc tính CommEvent chứa mã số của lỗi hay sự kiện phát sinh bởi sự kiện OnComm. Nên đặt các đặc tính Rthreshold hoặc Streshold bằng 0 để vô hiệu bẫy sự kiện Receive and Send. CommEvent trả lại phần lớn sự kiện giao tiếp hoặc có lỗi. CommEvent xảy ra khi có lỗi hoặc khi xảy ra sự kiện nào đó. Sau đây là một số hằng số lỗi: Sự kiện Giá trị Miêu tả sự kiện comEventBreak 1001 Xảy ra khi nhận được một tín hiệu Break. comEventFrame 1004 Lỗi hệ thống. Phần cứng phát hiện ra một lỗi hệ thống comEventOverrun 1006 Xảy ra khi cổng tự tràn( Overrun). Một kí tự không được đọc từ phần cứng trước khi kí tự tiếp theo tới và do đó kí tự này bị mất. comEventRxOver 1008 Xảy ra khi bộ đệm nhận bị tràn. Không có đủ chỗ cho dữ liệu trong bộ đệm nhận. comEventRxParity 1009 Lỗi Parity. Phần cứng phát hiện ra một lỗi Parity. comEventTxFull 1010 xảy ra khi bộ đệm truyền bị đầy. Bộ đệm truyền bị đầy trong khi ghi dữ liệu lớn vào bộ đệm comEventDCB 1011 Một lỗi không mong muốn khi đang khôi phục lại khối điều khiển thiết bị( DCB – Device Control Block) cho cổng Một số sự kiện : Sự kiện Giá trị Miêu tả sự kiện comEvSend 1 Xảy ra khi số kí tự trong bộ đệm truyền nhỏ hơn giá trị SthresHold. comEvReceive 2 Xảy ra khi bộ đệm nhận được số kí tự bằng giá trị RthresHold. Sự kiện này được tạo ra liên tục cho tới khi bạn dùng thuộc tính Input để lấy hết dữ liệu từ trong bộ đệm nhận. RcomEvCTS 3 Xảy ra khi có thay đổi trong đường CTS( Clear To Send) comEvDSR 4 Xảy ra khi thay đổi trong đường DSR( Data Set Ready). Sự kiện này chỉ xảy ra khi đường DSR thay đổi từ 1 -> 0. comEvCD 5 Xảy ra khi có thay đổi trong đường CD( Carrier Detect) comEvRing 6 Phát hiện chuông (Ring).Một số UART không hỗ trợ sự kiện này. comEvEOF 7 Xảy ra khi nhận được kí tự kết thúc file ( kí tự 26 trong bảng mã ASCII) 8.3 Giới thiệu về ActiveX Teechart 8.3.1 Giới thiệu Để sử dụng Teechart ta copy teechart7.ocx vào C:/Windows/system32, dùng Visual Basic 6.0 mở Teechart thông qua menu Project > Components Hình 1.48 – ActiveX Teechart, biểu tượng và giao diện Để thay đổi giao diện, thiết lập thông số ta kích chuột phải vào giao diện trên Form và chọn Edit. Cửa sổ Editing hiện ra. Hình 1.49 – Cửa sổ Editing và các kiểu đò thị Tại TAB Chart/Series, ta chọn Add để thêm đồ thị cần hiển thị và chọn kiểu đồ thị. Ở đây hổ trợ nhiều kiểu đồ thị khác nhau. Bỏ Check 3D để được đồ thị 2D. Kết quả sau khi chọn kiểu đồ thị Point 2D Hình 1.50 – Đồ thị Point 2D Ngoài ra, trong cửa sổ Editing ta có thể cài đặt các thông số của đồ thi như Asix (trục đồ thị), Little (Nhãn, tiêu đề)… 8.3.2 Các lệnh cơ bản 8.3.2.1 Lệnh xóa đồ thị With TChart1.Series(0) .Clear End With Tchart1 là tên của giao diện đồ thị Series(0) là thứ tự của đồ thị. Ví dụ nếu muốn vẽ 2 đồ thị trên 1 giao diện thì thứ tự của đồ thị lần lược là Series(0), Series(1). Clear là lệnh xóa. 8.3.2.2 Lệnh vẽ một điểm lên đồ thị With TChart1.Series(0) .AddXY timer * 10, vtecd, "", vbRed End With AddXY là lệnh vẽ 1 điểm lên đồ thị có trục X là (timer*10) và trục Y là vtecd, đồ thị có màu vbRed (màu chuẩn của Visual Basic 6). Hoặc lệnh vẽ đồ thị đơn giãn hơn là: With TChart1.Series(0) .Add vtecd, "", vbRed End With Add là lệnh vẽ 1 điểm lên đồ thị có trục Y là vtecd, trục X là điểm kế tiếp hướng tăng (giả sử trước đó đã vẽ một điểm nào đó, nếu chưa vẽ điểm nào thì X bắt đầu là 0). 9. ĐIỀU KHIỂN SỐ-ĐIỀU KHIỂN HỒI TIẾP 9.1 Hệ thống điều khiển số 9.1.1 Cấu trúc hệ thống điều khiển số Máy tính số Đối tượng Công suất chấp hành DAC r(kt) ADC Cảm biến Số (digital) analog Hình 1.51: Cấu trúc hệ thống điều khiển số 9.1.2 Hệ thống lấy mẫu tín hiệu Lấy mẫu trong kênh hồi tiếp Chấp hành và đối tượng DA Máy tính số r(kt) + e(kt) u(kt) u(t) - y(kt) zoh ADC Hồi tiếp Hình 1.52: Hệ thống lấy mẫu tín hiệu 9.2 Phương pháp điều khiển ON/OFF Sơ đồ điều khiển lò nhiệt được thể hiện qua hình bên dưới: Hình 1.53 Sơ đồ điều khiển lò nhiệt Phương pháp điều khiển ON-OFF còn được gọi là phương pháp đóng ngắt hay dùng khâu relay có trễ: cơ cấu chấp hành sẽ đóng nguồn để cung cấp năng lượng ở mức tối đa cho thiết bị tiêu thụ nhiệt nếu nhiệt độ đặt w(k) lớn hơn nhiệt độ đo y(k), ngược lại mạch điều khiển sẽ ngắt mạch cung cấp năng lượng khi nhiệt độ đặt nhỏ hơn nhiệt độ đo. Một vùng trễ được đưa vào để hạn chế tần số đóng ngắt như sơ đồ khối ở trên: nguồn chỉ đóng khi sai số e(k) > ∆ và ngắt khi e(k) < - ∆. Như vậy, nhiệt độ đo y(k) sẽ dao động quanh giá trị đặt w(k) và 2∆ còn được gọi là vùng trễ của rơ le. Khâu rơ le có trễ còn gọi là mạch so sánh Smith trong mạch điện tử và như vậy ∆ là giá trị thềm hay ngưỡng. Điều khiển ON-OFF có ưu điểm là: Thiết bị tin cậy, đơn giản, chắc chắn, hệ thống luôn hoạt động được với mọi tải. Phương pháp này có giá thành rẻ, được ứng dụng cho những đối tượng không yêu cầu cao về chất lượng điều khiển. Tính toán thiết kế ít phức tạp và cân chỉnh dễ dàng. Nhưng có nhược điểm là sai số xác lập sẽ lớn do hệ chỉ cân bằng động quanh nhiệt độ đặt và thay đổi theo tải. Khuyết điểm này có thể được hạn chế khi giảm vùng trễ bằng cách dùng phần tử đóng ngắt điện tử ở mạch công suất. 9.3 Phương pháp điều khiển hồi tiếp Bộ điều khiển PID được sử dụng rất rộng rãi trong thực tế để điều khiển nhiều loại đối tượng khác nhau như nhiệt độ lò nhiệt, tốc độ động cơ, mực chất lỏng trong bồn chứa,… Lý do bộ điều khiển này được sử dụng rộng rãi là vì nó có khả năng triệt tiêu sai số xác lập, tăng đáp ứng quá độ, giảm độ vọt lố nếu các tham số bộ điều khiển được chọn lựa thích hợp. Do sự thông dụng của nó nên nhiều hãng sản xuất thiết bị điều khiển đã cho ra đời các bộ điều khiển thương mại rất thông dụng. Thực tế các phương pháp thiết kế bộ điều khiển PID dùng quỹ đạo nghiệm số, giản đồ Bode hay phương pháp giải tích rất ít được sử dụng do việc khó khăn trong xây dựng hàm truyền đối tượng. Phương pháp phổ biến nhất để chọn tham số PID thương mại hiện nay là phương pháp Ziegler-Nichols. KHẢO SÁT VÒNG HỞ Hình 1.54: Đáp ứng nấc của lò nhiệt Đáp ứng này có thể được xấp xỉ bởi hàm truyền sau: Trong đó: K : độ lợi tĩnh T : hằng số thời gian L : thời gian trễ Chú ý: Các tham số của bộ điều khiển PID được tính theo phương pháp đáp ứng nấc của Ziegler-Nichols như bảng 1. Bảng 1 Bộ điều khiển KP TI TD P 1/a PI 0.9/a 3L PID 1.2/a 2L L/2 ĐIỀU KHIỂN VÒNG KÍN Sơ đồ điều khiển như hình 1.55. Hình 1.55 Sơ đồ điều khiển lò nhiệt Bộ điều khiển PID có hàm truyền dạng liên tục như sau: Có 3 phương pháp căn bản để biến đổi z hàm truyền trên. Phương pháp Euler thuận (Forward Euler): Phương pháp Euler nghịch (Backward Euler): Phương pháp hình thang (Tustin): Biến đổi Z của nó như sau: Viết lại G(z) như sau: Đặt: Suy ra: Từ đó, ta tính được tín hiệu điều khiển u(k) khi tín hiệu vào e(k) như sau: Suy ra: Việc hiệu chỉnh 3 thông số Kp , Ki, Kd sẽ làm tăng chất lượng điều khiển. Ảnh hưởng của 3 thông số này lên hệ thống như sau: Điều khiển tỉ lệ (Kp) có ảnh hưởng làm giảm thời gian lên và sẽ làm giảm nhưng không loại bỏ sai số xác lập. Điều khiển tích phân (Ki) sẽ loại bỏ sai số xác lập nhưng có thể làm đáp ứng quá độ xấu đi. Điều khiển vi phân (Kd) có tác dụng làm tăng sự ổn định của hệ thống, giảm vọt lố và cải thiện đáp ứng quá độ. Ảnh hưởng của mỗi bộ điều khiển Kp, Ki, Kd lên hệ thống vòng kín được tóm tắt ở bảng bên dưới (bảng 2). Bảng 2 Đáp ứng vòng kín Thời gian lên Vọt lố Thời gian xác lập Sai số xác lập Kp Giảm Tăng Thay đổi nhỏ Giảm Ki Giảm Tăng Tăng Loại bỏ Kd Thay đổi nhỏ Giảm Giảm Thay đổi nhỏ Chương 2: THIẾT KẾ VÀ THI CÔNG 1. NHIỆM VỤ VÀ HƯỚNG GIẢI QUYẾT 1.1 Nhiệm Vụ Nhiệm vụ của đồ án này là thiết kế một hệ thống thu thập dữ liệu nhiều kênh, đối tượng thu thập và giám sát là nhiệt độ lò ba lò nhiệt. Yêu cầu là chúng ta phải giám sát và điều khiển nhiệt độ ba lò nhiệt luôn duy trì ở một nhiệt độ như ta mong muốn. Sử dụng vi xử lý 89V51 làm bộ điều khiển trung gian để giao tiếp máy tính. 1.2 Hướng Giải Quyết Sử dụng các cảm biến nhiệt độ như PT100, LM35. Sử dụng bộ chuyển đổi A/D và D/A. Sử dụng phương pháp điều khiển ON/OFF và PID. Thiết kế và lập trình giao tiếp giữa vi điều khiển 89V51RB2 với máy vi tính và lò nhiệt. Sử dụng ngôn ngữ visual basic để tạo giao diện và giao tiếp với vi xử lý 89V51 qua RS232. Viết chương trình điều khiển. 2. THIẾT KỀ PHẦN CỨNG 2.1 Sơ Đồ Khối Điều Khiển Hình 2.1: Sơ đồ khối điều khiển Máy tính ( PC ) Sơ đồ khối chi tiết hệ thống điều khiển To Max232 Khuyếch đại tín hiệu Bộ chuyển đổi ADC và MUX PT100 Lò nhiệt 1 Vi xử lý 89V51 Khuyếch đại tín hiệu LM35 Lò nhiệt 2 Khuyếch đại tín hiệu LM35 Lò nhiệt 3 PWM Bộ chuyển đổi DAC K.đại và chấp hành 3 K.đại và chấp hành 2 K.đại và chấp hành 1 Bus 3 Khuếch đại Quạt3 Khuếch đại Quạt2 Bus 3 Khuếch đại Quạt1 Hình 2.2: Sơ đồ khối chi tiết hệ thống điều khiển Lò 1: Điều khiển ON/OFF Lò 2: Điều khiển ON/OFF Lò 3: Điều khiển ON/OFF hoặc PID 2.2 Giải thích nguyên lý từng khối Máy tính(PC): Dùng ngôn ngữ lập trình Visual Basic 6.0 làm phương tiện giao tiếp. Nhiệm vụ của Visual Basic 6 là: Tạo giao diện người dùng để giao tiếp với người sử dụng. Trên đó cho phép thay đổi giá trị nhiệt độ yêu cầu, thay đổi bộ thông số PID, vẽ đồ thị biểu diễn đáp ứng của hệ thống. Thiết lập giao tiếp với khối Vi điều khiển qua cổng nối tiếp RS – 232. Lấy giá trị đo nhiệt đo thực tế do khối vi điều khiển truyền về để xử lý. Từ giá trị đo nhiệt độ thực tế, gửi lệnh xuống vi xử lý để thực hiện việc điều khiển đóng/mở (on/off) lò, hay thực hiện thuật toán PID xuất giá trị độ rộng xung về khối Vi xử lý để điều khiển. Vi điều khiển : Dùng ngôn ngữ lập trình hợp ngữ 8051 để lập trình cho Vi điều khiển 89V51RB2. Nhiệm vụ của khối vi điều khiển là: Thiết lập giao tiếp với máy tính qua cổng giao tiếp nối tiếp. Thực hiện việc lấy nhiệt độ thực tế của lò nhiệt từ bộ chuyển đổi ADC và truyền giá trị này về cho khối máy tính để xử lý. Xuất giá trị ra bộ chuyển đổi DAC để điều khiển việc đóng/mở lò nhiệt. Thực hiện thuật toán điều chế độ rộng xung (PWM), xuất xung PWM và xung điều khiển nhiệt độ của lò nhiệt cho khối công suất. Giá trị độ rộng xung nhận được từ khối máy tính. Mạch công suất: nhiệm vụ của khối này là: Khuếch đại công suất từ tín hiệu điều khiển do khối vi điều khiển truyền tới để điều khiển lò nhiệt. Bộ chuyển đổi ADC : Do các tín hiệu đầu ra của cảm biến là các tín hiệu tương tự không thích hợp để đưa vào các mạch số để xử lý. Vì thế cần phải có mạch ADC để chuyển đổi từ tương tự sang số để các vi mạch số có thể hiểu và xử lý được. Bộ chuyển đổi DAC: Dùng chuyển đổi từ tín hiệu số sang tương tự để điều khiển. Max 232: Max-232 dùng để giao tiếp giữa máy tính và vi điều khiển Cảm biến: để thu thập các giá trị của các đại lượng vật lý của môi trường bên ngoài. Mạch khuyếch đại và điều chỉnh: do giá trị của đầu ra các cảm biến thường nhỏ so với bộ chuyển đổi ADC của hệ thống vì thế cần có mạch khuyếch đại và chuyển đổi cho thích hợp với các mạch chuyển đổi. 2.2.1 Sơ Đồ Nguyên Lý KHỐI VI XỬ LÝ 2.2.2 Đối tượng lò nhiệt thực tế Hàm truyền của lò nhiệt được xác định bằng phương pháp thực nghiệm. Cấp nhiệt tối đa cho lò( công suất vào P=100%), nhiệt độ lò tăng dần.Sau thời gian nhiệt độ lò đạt giá trị bão hòa. Do đặc tính chính xác của lò nhiệt khá phức tạp nên ta xấp xỉ bằng đáp ứng gần đúng. a.Đặc tính

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

  • docnoi dung.doc
  • docbìa.doc
  • docmo dau.doc
  • docnhiem vu do an.doc
  • docPhieu dang ky do an tn.doc