Tải bản đầy đủ (.pdf) (70 trang)

Tổ chức một phòng thí nghiệm ảo Đo lường- lý thuyết mạch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 70 trang )



1
Lời nói đầu

Khi xây dựng một phòng thí nghiệm cho sinh viên học tập nghiên cứu,
cần phải trang bị khá nhiều thiết bị hiện đại và chuyên dụng. Trong thực tế, do
sự phát triển mạnh mẽ của khoa học kỹ thuật, nên các hệ thống thiết bị phục
vụ cho bài toán kỹ thuật luôn đợc phát triển không ngừng và vì sự hạn chế về
kinh phí nên các phòng thí nghiệm nhà trờng khó có thể trang bị đầy đủ và
kịp thời các thiết bị thực để đáp ứng nhu cầu học tập và nghiên cứu. Đây là
một trong những nguyên nhân khiến cho các sinh viên khi ra trờng lúng túng,
bỡ ngỡ trong các thao tác thực hành và vì thế hiệu quả công việc giảm đi rất
nhiều.

Có thể khắc phục hạn chế này bằng cách xây dựng một phòng thí
nghiệm ảo có đủ các trang thiết bị hiện đại với mục đích giúp các sinh viên có
thể làm quen với mặt máy, thao tác trên các núm nút, đọc chỉ số thiết bị đo
một cách thành thạo trớc khi làm việc với các thiết bị thật. Thiết bị ảo có
những lợi thế rất lớn về giá cả, chỉ tiêu chất lợng và tính linh hoạt so với thiết
bị thực. Do vậy, việc xây dựng một phòng thí nghiệm ảo bao gồm các thiết bị
đo lờng hiện đại cùng các panel thí nghiệm tổng hợp tạo ra một hiệu quả
đáng kể về kinh tế và có ý nghĩa rất lớn trong công tác đào tạo, giảng dạy và
nghiên cứu tại các nhà trờng.
Với mục đích nghiên cứu, xây dựng một phòng thí nghiệm ảo Lý thuyết
mạch trên cơ sở mạng máy tính và các thiết bị ảo chuyên dụng phục vụ cho
công tác đào tạo giảng day môn học Lý thuyết mạch , đồ án của em bao gồm
các nội dung chính nh sau:
- Chơng 1: Trình bày về ngôn ngữ lập trình LabVIEW trong các
bài toán điều khiển, ghép nối, mô phỏng thiết bị ảo và các kỹ
thuật lập trình tạo thiết bị ảo trên LabVIEW.




2
- Chơng 2: Trình bày lu đồ thuật toán và các bớc thiết kế xây
dựng thiết bị ảo cho phòng thí nghiệm Đo lờng - Lý thuyết
mạch.
- Chơng 3: Trình bày về phần mềm EWB trong mô phỏng
nguyên lý hoạt động của mạch điện tử và các bớc xây dựng
một bài thí nghiệm Lý thuyết mạch trên EWB.
- Chơng 4: Sử dụng kết quả nghiên cứu của các chơng trớc để
tổ chức xây dựng một phòng thí nghiệm ảo Đo lờng - Lý thuyết
mạch.
Do hạn chế về thời gian và trình độ nên đồ án không tránh khỏi những
sai sót. Em rất mong nhận đợc các ý kiến đóng góp, chỉ bảo của các thầy
giáo và các bạn đồng nghiệp.
Cuối cùng em xin chân thành cảm ơn thầy giáo PGS TSKH Nguyễn
Công Định, KS Cao Hữu Tình, các thầy giáo trong khoa Kỹ thuật Điều khiển
và Trung tâm Công nghệ Mô phỏng - HVKTQS đã quan tâm và tạo mọi điều
kiện giúp đỡ em hoàn thành đồ án của mình.

Xin chân thành cảm ơn

Tác giả




3
Chơng 1: Kỹ thuật lập trình hỗ trợ tạo thiết bị ảo
trên LabVIEW

1.1. Khái niệm về phần mềm đồ hoạ LabVIEW
LabVIEW (Laboratory Virtual Istrument Engineerring Worbench) là
một chơng trình ứng dụng phát triển, dựa trên cơ sở ngôn ngữ lập trình đồ
hoạ G, thờng đợc sử dụng cho mục đích đo lờng, xử lý, điều khiển tham số
và mô phỏng thiết bị.
Là một ngôn ngữ lập trình đa năng, giống nh C hoặc BASIC,
LabVIEW có các th viện hàm cho các nhiệm vụ khác nhau. Với mục đích
xây dựng một ngôn ngữ chuyên dụng cho các bài toán khoa học kỹ thuật, các
th viện hàm đợc cung cấp bởi LabVIEW rất mạnh, phong phú và luôn đợc
phát triển để tơng thích với sự phát triển của phần cứng và của các yêu cầu
thực tiễn. Có thể kể ra một số th viện hàm sau:
- Analysis VIs: Bao gồm các hàm phân tích và xử lý tín hiệu.
- Communication VIs: Cung cấp các hàm dùng để kết nối và trao đổi
dữ liệu giữa các ứng dụng trên nền WINDOWS.
- Control & Simulation Toolkit: Dùng cho các bài toán mô phỏng
và điều khiển.
Khác với ngôn ngữ lập trình thông thờng (ngôn ngữ dòng lệnh)
LabVIEW sử dụng ngôn ngữ lập trình G ngôn ngữ lập trình đồ hình - để tạo
các chơng trình ở dạng sơ đồ khối. Do đó ngời lập trình có thể thiết kế một
giao diện mô phỏng theo panel của các thiết bị vật lý thực. Nó còn tạo ra một
cái nhìn trực quan trong việc xây dựng mã nguồn, giúp ngời lập trình trong
thiết kế hệ thống, gỡ rối và kiểm tra chơng trình.
1.2. Kỹ thuật lập trình cơ bản trên LabVIEW
1.2.1. Cấu trúc chơng trình


4
Các chơng trình xây dựng trên LabVIEW (VIs) tơng tự nh các
function của một ngôn ngữ lập trình dòng lệnh. Một VI gồm có ba phần: Giao
diện với ngời sử dụng Front Panel, lu đồ cung cấp mã nguồn Block

Diagram, và biểu tợng kết nối Icon/Conector.
- Front Panel: Là nơi giao tiếp giữa ngời dùng và chơng trình. Nó
tơng tự nh một panel của các thiết bị vật lý, bao gồm các nút bật,
công tắc chuyển mạch, bộ hiển thị,..Với Front Panel bạn có thể nhập
số liệu từ bàn phím (hoặc chuột) và xem kết quả từ màn hình. Hình
1.1 minh hoạ một Front Panel của chơng trình.











- Block Diagram: VI nhận lệnh từ block diagram. Đây là một phơng
thức đợc sử dụng trong G ngôn ngữ đồ hình. Block diagram
thờng có các đối tợng, các hàm và SubVI, đợc kết nối với nhau
theo một quy tắc nhất định để cung cấp mã nguồn đồ hình cho VI
thực hiện. Block diagram gồm có các terminal, node và wire.
Terminal là cổng truyền dữ liệu giữa block diagram với front panel
hoặc giữa các node trong cùng một block diagram. Để hiển thị các
terminal của hàm hoặc VI, kích chuột phải vào icon của chúng rồi
chọn menu: Show>>Terminal. Node là các phần tử thực hiện
Hình 1.1: Front Panel của chơng trình


5

chơng trình. Chúng tơng tự nh các mệnh đề, toán tử, hàm hoặc
chơng trình con ở trong các ngôn ngữ lập trình dòng lệnh. Wire
giống nh các bus truyền dữ liệu giữa các node. Hình 1.2 minh hoạ
một Block Diagram của chơng trình.











- Icon và Connector: VI có thể thực hiện một cách độc lập hoặc đợc
một VI khác gọi tới nh một chơng trình con (SubVI). Để làm điều
này LabVIEW đa ra khái niệm icon và connector. Icon là biểu
tợng của một VI, đợc dùng khi sử dụng VI này nh một SubVI
trong một VI khác. Một VI gọi tới một VI khác bằng cách đa icon
của nó vào block diagram. Connector là một phần tử của terminal
dùng để kết nối các đầu vào hoặc đầu ra của một SubVI với các node
khác trong block diagram của VI gọi nó.
M
ỗi VI có một icon mặc
định hiển thị trong bảng Icon ở góc trên bên phải của cửa sổ Front
Panel hoặc Block Diagram (hình 1.3).





Hình 1.2: Block Diagram của chơng trình
Hình 1.3: Icon của chơng trình


6
Để hiển thị connector của một VI trên front panel, kích chuột phải vào
icon và chọn menu: Show>>Connector.
1.2.2. Các công cụ hỗ trợ lập trình
- Tools palette: Bao gồm các chế độ làm việc của chuột. Các công cụ
có trong tools palette đợc sử dụng để soạn thảo hoặc chạy chơg
trình. Để truy cập vào Tools palette chọn menu: Window>>Show
Tools palette. Khi này xuất hiện một bảng công cụ nh minh hoạ ở
hình 1.4.











- Controls palette:
L
à bảng chứa các bộ điều khiển và chỉ thị đợc sử
dụng trên front panel của các VI. Controls là các terminal đầu vào,
dùng để cung cấp dữ liệu cho VI còn Indicators là các terminal đầu

ra dùng để hiển thị dữ liệu do VI tạo đợc. Để truy cập vào controls
panel ta chọn menu: Window>>Show Controls palette. Khi này
xuất hiện bảng controls nh minh hoạ ở hình 1.5. Có thể tham khảo
[10] hoặc xem help của phần mềm để có thông tin chi tiết hơn về các
điều khiển trong controls palette.
Hình 1.4: Tools palette
Hình 1.5: Controls Palette


7
- Functions palette: Functions là các node cơ bản trong ngôn ngữ lập
trình G, nó tơng tự các toán tử hoặc các hàm trong ngôn ngữ thông
thờng. Functions có biểu tợng màu vàng, không có front panel và
block diagram (do chúng không phải là các VIs). Có thể truy nhập
các functions từ Window>>Functions palette. Hình 1.6 minh hoạ
một Functions Palette.

















Functions đợc sử dụng để xây dựng block diagram. LabVIEW có
th viện hàm rất mạnh và phong phú để xử lý kết quả cũng nh điều
khiển và mô phỏng thiết bị nh: các hàm xử lý toán học - Numeric
Functions, các hàm biến đổi logic - Boolean Functions, các hàm xử
lý mảng và ma trận - Array Functions. Cùng với sự phát triển của
khoa học kỹ thuật mà các th viện hàm trên LabVIEW luôn đợc
Hình 1.6: Functions Palette


8
phát triển và chuyên dụng hoá để ngời dùng có thể cập nhật và sử
dụng hiệu quả cho mục đích công việc của mình.
1.2.3. Các bớc xây dựng chơng trình trên LabVIEW
Sau khi đã tìm hiểu đặc điểm của ngôn ngữ, công cụ hỗ trợ và điều
khiển chơng trình ta sẽ bắt tay vào xây dựng một VI. Để xây dựng một
chơng trình trên LabVIEW cần tuân thủ theo các bớc sau:
- Thiết kế giao diện trên Fronl panel: Tạo một VI mới bằng cách
chọn New VI từ hộp hội thoại hoặc từ menu: File>>New. Đặt các
Control và Indicator cần thiết lên Front Panel bằng công cụ
positioning tool. Pop-up lên từng đối tợng để lựa chọn cách hiển
thị và thay đổi thuộc tính của chúng.
- Xây dựng mã nguồn trên Block Diagram: Chọn Windows>>
Show Block Diagram (phím tắt là Ctrl+E) để hiện Block Diagram
của VI. Thao tác tơng tự bớc 1 để xây dựng các cấu trúc và hàm
cần thiết cho chơng trình. Chọn công cụ Wiring tool để liên kết
các đối tợng trong Block Diagram. Trở lại front panel chọn công cụ
Operating tool để nhập giá trị đầu vào và kích hoạt cho VI hoạt
động để kiểm tra lỗi và đánh giá thuật toán.

- Sao lu chơng trình: Ghi chơng trình lên đĩa với tên mở rộng là
*.VI bằng cách chọn New >>Save (Ctrl+S) hoặc New>>Save As.
1.2.4. Khái niệm và cách xây dựng một SubVI
Trong lập trình ta thờng gặp hai vấn đề:
-
Có một số đoạn mã đợc lặp lại mà việc viết chúng khiến chơng
trình trở nên cồng kềnh nên cần phải tập hợp vào một modul để khi
chơng trình có yêu cầu thì chỉ cần gọi modul này.
- Với một chơng trình lớn cần phải chia thành các modul nhỏ cho
nhiều ngời cùng xây dựng (kiểu top-down) mà các modul này có


9
thể hoạt động độc lập song cũng có thể kết hợp lại trong một modul
mức đỉnh để thực hiện các yêu cầu đặt ra.
Để giải quyết vấn đề này, LabVIEW đa ra khái niệm SubVI. SubVI là
một VI đợc bổ sung thêm biểu tợng (icon) và đầu nối (connector) để có thể
sử dụng trong VI khác. Việc sử dụng SubVI giúp chơng trình dễ hiểu, dễ gỡ
rối và có thể phân chia một nhiệm vụ phức tạp thành nhiều modul để nhiều
ngời cùng tham gia hoàn thành.
Trong LabVIEW có hai cách cơ bản để xây dựng một SubVI: Xây dựng
từ một VI và xây dựng từ một phần của VI.
Để xây dựng SubVI từ một VI ta làm theo các bớc sau:
- Thiết kế front panel và xây dựng mã nguồn trên block diagram:
Bớc này tơng tự nh các bớc tạo một VI mà ta đã trình bày ở
trên.
- Tạo biểu tợng cho SubVI: Để tạo biểu tợng của VI cần cho hiện
cửa sổ Icon Editor. Có thể gọi cửa sổ này bằng cách kích đúp chuột
vào ô biểu tợng ở góc bên phải hoặc kích chuột phải và chọn mục
Edit Icon. Khi đó cửa sổ sẽ hiện lên nh minh hoạ dới hình 1.12.

Sử dụng các công cụ ở bên trái cửa sổ để thiết kế biểu tợng theo ý
muốn.










Hình 1.12: Icon Editor


10
- Xác định các mẫu connector terminal: Để có thể nhận hay truyền
dữ liệu bạn cần phải có các connector. LabVIEW có rất nhiều mẫu
conector mà ta có thể chọn bằng cách pop-up trên icon và chọn
Pattern. Khi này một bảng mẫu của connector sẽ xuất hiện nh hình
1.13.











Ta có thể thêm một terminal vào mẫu (Add Terminal), bỏ một
terminal (Remove Terminal) hoặc thay đổi không gian sắp xếp
(Flip Horizontal, Flip Vertical, Rotage 90 degrees).









Hình 1.13: Pattern Icon
Hình 1.14: Gán Terminal cho Controls


11
- Gán Terminal cho Control và Indicator: Bấm chuột vào một
Terminal, nó chuyển thành màu đen và chuột chuyển thành Wiring
tool. Bấm chuột vào control (hoặc Indicator) muốn gán cho
Terminal đã chọn, một khung nhấp nháy sẽ bao lấy đối tợng. Kích
chuột lên vùng trống bất kỳ để hoàn thành việc gán. Lặp lại cho các
Control và Indicator khác. Hình 1.14 minh hoạ việc gán Terminal
cho Control và Indicator.
Để xây dựng SubVI từ VI ta chọn phần cần xây dựng bằng công cụ
Positioning tool sau đó chọn menu: Edit>>Creat SubVI. Khi này các
control và indicator đợc tự động tạo cho SubVI mới, SubVI đợc tự động nối
với các dây nối đang có và một biểu tợng thay thế cho phần đợc chọn của
Block Diagram của VI gốc. Tạo một SubVI từ một phần của VI giống nh

việc bỏ một phần của SubVI và thay thế bằng một SubVI ngoại trừ các điểm
sau:
- Không một terminal nào của Front Panel trong phần đợc chọn bị
loại bỏ. Chúng đợc giữ lại và đợc nối với SubVI vừa tạo.
- Tất cả các thuộc tính trong phần chọn đợc giữ lại trong VI và đợc
nối với SubVI. Những thuộc tính này đợc thay thế bởi các terminal
của Front Panel trong SubVI và hoạt động nh các kênh truyền giá
trị của một thuộc tính vào hoặc ra khỏi SubVI.
- Khi phần đợc chọn chứa một biến cục bộ, nó đợc thay thế bởi
terminal của Front Panel trong SubVI và đợc giữ lại trong VI gọi để
nối với SubVI. Khi có nhiều biến cục bộ thì chỉ có biến đầu trở
thành terminal của Front Panel còn các biến còn lại đợc chuyển vào
SubVI.
Chú ý: Biểu tợng đặt lên SubVI khi tạo chúng từ một phần của VI là
một biểu tợng mặc định. Do vậy cần phải soạn lại biểu tợng theo cách đã
trình bày ở trên.


12
1.2.5. Gỡ rối chơng trình
Một VI không thể biên dịch hoặc chạy nếu nó bị lỗi. Nếu VI bị lỗi, nút
VI Run có biểu tợng là mũi tên gãy (Brocken Run). Điều này có thể do
trong Block Diagram có các Wire sai quy cách. Để loại bỏ chúng chọn Edit
>> Remove Bad Wires. Nếu thao tác trên vẫn không đợc ta có thể tìm
nguyên nhân gây lỗi bằng cách kích vào nút Brocken Run. Khi đó xuất hiện
hộp thông tin Error List liệt kê dạnh sách các lỗi.
Để truy cập vào hộp này chọn Windows >> Show Error List hoặc
kích vào nút Warning (chỉ xuất hiện khi VI có lỗi). Để tìm vị trí lỗi kích đúp
chuột vào dòng văn bản mô tả lỗi, nội dung của lỗi sẽ xuất hiện trong của sổ
phía trớc làm rõ đối tợng gây ra lỗi trên Block Diagram.

Hình 1.15 minh hoạ một hộp thông tin Error List:














Trong trờng hợp chơng trình thực hiện nhng không tạo ra kết quả
nh mong muốn (lỗi thuật toán), ta có thể debug theo các bớc sau:
Hình 1.15: Cửa sổ Error List


13
- Loại bỏ tất cả các lời báo hiệu. Chọn Show Warning trong cửa sổ
Error List, hộp liệt kê danh sách sẽ nhận ra các lời báo hiệu đối với
VI. Xác định nguyên nhân và loại bỏ chúng.
- Kiểm tra dây nối.
- Đảm bảo các node và function đã đợc dùng đúng.
- Sử dụng Breakpoints thực hiện từng bớc để xác định xem VI hoạt
động có đúng trình tự không.
- Sử dụng đặc tính thăm dò Probe để quan sát các giá trị dữ liệu trung
gian. Kiểm tra lỗi đầu ra của các function và VI thực hiện vào ra.

- Kiểm tra sự tràn của các Control và Indicators.
- Kiểm tra thứ tự các phần tử của Cluster tại điểm nguồn và đích.
Dới đây xin trình bày chi tiết hơn một số phơng pháp gỡ rối cho
chơng trình hay đợc dùng trong LabVIEW.
Sử dụng đặc tính thăm dò Probe: Phơng pháp này thờng đợc sử
dụng để quan sát các giá trị dữ liệu trung gian trong cấu trúc lặp. Trong Tools
palette chọn Probe tool. Trên Block Diagram chọn đối tợng cần debug, kích
chuột trái lên đối tợng để tạo một điểm dò. Làm tơng tự cho các đối tợng
cần debug khác. Trở lại Front Panel chạy chơng trình để quan sát giá trị trả
về trong cửa sổ Probe.
Chạy chơng trình theo chế độ Execution Highlighting: Để kiểm tra
kết quả, cách tốt nhất là theo dõi sự hoạt động của Block Diagram dới dạng
hoạt hoạ (animation) trong đó giá trị của các phần tử đợc hiển thị và di
chuyển chậm trong luồng dữ liệu (data flow) để ngời lập trình theo dõi và
kiểm tra tính đúng đắn của nó. Kích vào nút Highlighting Execution để chạy
trong chế độ này, kích lại một lần nữa để về chế độ bình th
ờng.
Sử dụng chế độ hoạt động Single-Step: Chạy chơng trình theo từng
node và tạm dừng ở node kế tiếp cho đến khi có sự kích hoạt của ngời sử


14
dụng. Chế độ này thờng đợc sử dụng cùng với chế độ Highlighting để kiểm
tra tính đúng đắn của chơng trình.
1.2.6. Ví dụ minh hoạ
Để kết thúc phần trình bày về lập trình cơ bản trên LabVIEW, em xin
đa ra một ví dụ nhỏ về sử dụng ngôn ngữ G để giải bài toán đa thức. Chơng
trình có nhiệm vụ tính giá trị một đa thức bậc hai cho một mảng biến bất kỳ
đợc nhập từ bàn phím. Dới đây là các bớc cụ thể để xây dựng chơng
trình:

Bớc 1: Mở một file mới bằng cách chọn File >> New. Thiết kế giao
diện cho chơng trình bao gồm ba numeric control tham số a, b và c, một
array numeric control đối số x và một array numeric indicator hàm số y. Pop-
up vào từng đối tợng để chọn thuộc tính của chúng. Kết thúc bớc 1 ta đợc
một front panel nh hình 1.16.









Bớc 2: Xây dựng mã nguồn cho Block diagram. ở đây ta sử dụng
Formula node để lập một đa thức bậc hai có dạng: y=ax
2
+bx+c. Node này
đợc đa vào trong một vòng lặp For loop để xử lý với mảng đối số x ở đầu
vào, cho ra kết quả là mảng hàm số y đầu ra. Block diagram của ví dụ 1 đợc
hoàn chỉnh nh hình 1.17.

Hình 1.16: Front Panel của Ví dụ 1


15











Bớc 3: Sau khi đã xây dựng xong mã nguồn đồ hình, đảm bảo chơng
trình chạy đúng, chúng ta kết thúc việc lập trình bằng cách lu chơng trình
vào đĩa với tên Vidu1.vi bằng menu: File >> Save hoặc phím tắt Ctrl+S.
Có thể xây dựng Vidu1.vi thành một SubVI cho các chơng trình khác
theo các bớc sau:











Bớc 1: Tạo Icon và Connector. Sử dụng Edit icon để tạo biểu tợng
nh hình 1.18. Nên tạo biểu tợng một cách trực quan thể hiện đợc các tính
Hình 1.17: Block Diagram của ví dụ 1
Hình 1.18: Thiết kế icon


16
chất của SubVI mà ta xây dựng. Sau đó pop-up vao icon chon menu: Show

connector để chọn mẫu connector phù hợp từ bảng pattern.
Bớc 2: Gán từng connector cho các terminal tơng ứng (nh hình
1.19). Chuyển icon về dạng ban đầu bằng cách chọn Show icon, ghi lại những
thay đổi trong chơng trình ta sẽ đợc một SubVI hoàn chỉnh.










Trên đây là toàn bộ các bớc để xây dựng một VI. Có thể phát triển VI
này để tìm giá trị của một đa thức bậc N với chỉ số bậc nhập vào từ bàn phím.
1.3. Lập trình nâng cao hỗ trợ tạo thiết bị ảo trên LabVIEW
1.3.1. Trao đổi thông tin và lập trình mạng bằng LabVIEW
LabVIEW hỗ trợ khả năng kết nối và chia sẻ tài nguyên giữa các ứng
dụng chạy trên nền Windows trong môi trờng mạng. Để trao đổi dữ liệu giữa
các ứng dụng, LabVIEW sử dụng các giao thức sau (ở đây ta chỉ quan tâm đến
các ứng dụng chạy trên nền Windows):
- TCP/IP: Có sẵn trong tất cả các máy tính.
- DDE: Có sẵn trong các máy PC để rao đổi thông tin giữa các ứng
dụng của Windows.
- Active X: Có sẵn trong các máy PC chạy trên hệ điều hành Win 9X.
- Data Socket: Đợc hỗ trợ trong phần mềm LabVIEW phiên bản 6.i.
Hình 1.19: Thiết kế connector



17
Tất cả các ứng dụng mạng đều có chung một mô hình, đó là mô hình
client/server. Trong mô hình này một tập các quá trình (client) yêu cầu sự
phục vụ từ một tập các quá trình khác (server). Trong LabVIEW chúng ta có
thể sử dụng mô hình này cho tất cả cácgiao thức liệt kê ở trên. Có thể khái
quát một quá trình kết nối sử dụng mô hình client/server nh sau.
Đối với một máy khách:

Đầu tiên client mở một kết nối với server. Nếu kết nối thành công,
client sẽ gửi tới server một tập lệnh yêu cầu truyền dữ liệu hoặc lệnh điều
khiển từ xa và nhận giá trị gửi trả (response) của server. Cuối cùng client đóng
kết nối lại kết thúc một quá trình trao đổi thông tin.
Đối với một máy chủ:

Đầu tiên LabVIEW khởi tạo một server. Nếu khởi tạo thành công nó sẽ
đi vào một vòng lặp, tại đó nó đợi các client kết nối và phát yêu cầu. Server
thực hiện các yêu cầu và lặp lại quá trình này cho đến khi bị dừng lại bởi
ngời sử dụng hoặc khi tiếp nhận lệnh kết thúc từ xa (do một client nào đó yêu
cầu).












Hình 1.20: DataSocket Server Manager


18
Khi xây dựng bài toán mạng trong các ngôn ngữ lập trình kiểu dòng
lệnh, ngời lập trình thờng phải tự xây dựng và quản lý các tiến trình trong
mô hình client/server của mình, điều này gây ra một khó khăn không nhỏ và
chiếm nhiều thời gian trong việc lập trình. Bắt đầu từ phiên bản 6.0 trở đi,
LabVIEW hỗ trợ việc trao đổi dữ liệu thông qua Data Socket bằng cách cung
cấp một th viện hàm và một tiện ích quản lý việc trao đổi dữ liệu bằng Data
Socket Data Socket Server Manager (minh hoạ ở hình 1.20), điều này giúp
ngời lập trình giảm đợc đáng kể thời gian cài đặt một hệ quản trị mạng và
khiến cho hiệu quả lập trình tăng lên rất nhiều.
Data Socket là một phơng thức trao đổi dữ liệu của Windows cho phép
các ứng dụng trao đổi dữ liệu cho nhau thông qua mạng. Nó cho phép các ứng
dụng trao đổi dữ liệu với nhau theo các gói thông tin (giao thức TCP/IP) hoặc
dới dạng các file dữ liệu (giao thức truyền file - FPT). Khi này Data Socket
Server tạo ra các Data Items cho phép một ứng dụng gửi dữ liệu tới hoặc nhận
dữ liệu về.
Để gửi dữ liệu tới một Data Items có thể sử dụng hàm DataSocket
Write, còn để nhận dữ liệu từ một Data Items có thể sử dụng hàm
DataSocket Read. Hình 1.21 và 1.22 minh hoạ hai hàm này trong LabVIEW.












Hình 1.21: DataSocket Read
Hình 1.22: DataSocket Write


19
Các terminal cần thiết cho hai hàm này: tên máy tính trên mạng, tên của
Data Items, kiểu dữ liệu và dữ liệu.
Để sử dụng phơng thức này, có thể gọi các hàm từ th viện
Communication >> DataSocket. Tham khảo Help để có thêm thông tin chi
tiết về các hàm.
1.3.2. Thiết kế custom controls
Nh đã trình bày ở các mục trớc, Controls là các terminals cho phép
ngời sử dụng nhập dữ liệu vào chơng trình và quan sát các kết quả nhận
đợc từ chơng trình. Với mục đích hỗ trợ cho các bài toán kết nối và điều
khiển, các controls trong LabVIEW đợc xây dựng nh các núm nút, bộ hiển
thị trong thiết bị vật lý thực. Hình 1.23 minh hoạ một số Controls trong
LabVIEW .







Mặc dù các controls đợc xây dựng bởi LabVIEW khá phong phú và đa
dạng về kiểu loại song vẫn không thể theo kịp sự phát triển liên tục của các
thiết bị kỹ thuật. Để giải quyết điều này, LabVIEW cho phép ngời lập trình

sử dụng Custom Controls. Custom Controls là các điều khiển tuỳ biến do
ngời lập trình tự thiết kế. Từ những Controls cơ bản, ngời lập trình có thể
thay đổi các thuộc tính, kiểu hiển thị,.. để tạo những Controls của riêng mình.
Điều này tạo ra một hiệu quả cao và đặc biệt có ý nghĩa trong bài toán mô
phỏng những thiết bị vật lý cụ thể. Hình 1.24 và 1.25 minh hoạ một Default
Controls và Custom Controls trong bài toán mô phỏng thiết bị.
Hình 1.23: Một số Controls cơ bản trên LabVIEW


20













Trong ví dụ minh hoạ này, em thiết kế một máy đo với phần hiển thị là
các đèn LED 7 đoạn. Rõ ràng là với chơng trình mô phỏng sử dụng các
Custom Controls tạo ra đợc một giao diện rất trực quan và ấn tợng mạnh
cho ngời thao tác.
Để tạo một Custom Controls, ta có thể xây dựng chúng theo các bớc
sau đây:
- Bớc 1: Từ menu bar chọn File >> New >> Control. Khi này xuất

hiện một cửa sổ xây dựng Custom Controls nh hình 1.26.








Hình 1.24: Mô phỏng thiết bị đo hiển thị số với các Default Controls
Hình 1.25: Mô phỏng thiết bị đo hiển thị số với Custom Controls
Hình 1.26: Tạo một New Custom Control


21
- Bớc 2: Lựa chọn Control để phát triển thành Custom Control. Lu
ý rằng trên LabVIEW, không thể tạo một Custom Controls hoàn
toàn mới (điều này phải sử dụng phơng thức ActiveX) mà chỉ có
thể phát triển nó từ một Control cơ bản của LabVIEW. Khi này cần
chọn Control với những thuộc tính gần giống với Custom Controls
cần xây dựng nhất và đặt vào cửa sổ nh minh hoạ ở hình 1.27.







- Bớc 3:


Sửa đổi các thuộc tính của control thành điều khiển tuỳ biến
của ngời sử dụng. Để có thể sửa đổi Controls chúng ta phải chuyển
chúng từ chế độ Edit Mode sang chế độ Customize Mode bằng
shortcut button minh hoạ ở hình 1.28.








Khi này các thành phần của một Control sẽ đợc tháo rời và cho
phép ngời sử dụng thay đổi thành các tuỳ chọn của riêng mình.
Thông thờng chúng ta chỉ thay đổi Picture Item của các thành phần
Hình 1.27: Lựa chọn một Control cơ sở để phát triển thành Custom Control
Hình 1.28: Chế độ Customize


22
của một Control. Khi này có thể click chuột phải vào đối tợng và
chọn Picture Item từ menu-popup nh hình 1.29.










- Bớc 4: Dùng cửa sổ Edit Icon để soạn thảo biểu tợng của Custom
Controls (thao tác nh việc soạn thảo biểu tợng cho một VI). Sau
cùng ghi lên đĩa với tên mở rộng *.ctl.
Để sử dụng một Custom Controls trong Cotrols Palette ta lựa chọn
Select a Control. Khi này một hộp thoại xuất hiện cho phép ngời sử dụng
lựa chon Custom Controls cần thiết (hình 1.30).









Có thể xây dựng một th viện các Custom Controls và cài vào Control
Palette trong lớp User Controls để tiện sử dụng cho các bài toán có liên quan.
Hình 1.29: Sử dụng menu-popup để chọn picture item của control
Hình 1.30: Hôp thoại lựa chọn một Custom Controls


23
Kết luận chơng 1
LabVIEW là một ngôn ngữ lập trình rất mạnh và chuyên dụng cho các
bài toán điều khiển, ghép nối và mô phỏng thiết bị ảo. Sử dụng LabVIEW
trong bài toán mô phỏng rất hiệu quả về mặt kinh tế. Trong chơng này, em
đã trình bày đặc điểm, kỹ thuật lập trình cơ bản cũng nh nâng cao trên
LabVIEW để làm cơ sở cho việc xây dựng các thiết bị ảo và phòng thí nghiệm
ảo Lý thuyết mạch - nhiệm vụ chính của đồ án.



24
Chơng 2: Xây dựng các thiết bị ảo
cho phòng thí nghiệm Đo lờng - Lý thuyết mạch
Đối với các thiết bị ảo trong phòng thí nghiệm Đo lờng - Lý thuyết
mạch, chúng ta có thể xây dựng theo các hớng sau:
- Xây dựng một thiết bị mô phỏng bán tự nhiên trên máy tính, bao
gồm một card ADC ghép với máy tính, và một phần mềm điều
khiển, ghép nối để giao tiếp với card. Theo hớng này, thiết bị mô
phỏng có thể đợc sử dụng để thu thập dữ liệu (thông qua card
ADC) và phân tích, xử lý cũng nh lu trữ trên máy tính.
- Thiết kế một thiết bị ảo, mô phỏng nguyên lý hoạt động và giao diện
sử dụng theo một thiết bị vật lý thực. Khi này có thể xây dựng một
hệ thống thiết bị ảo theo các thiết bị vật lý hiện đại, cho phép ngời
sử dụng làm quen với thiết bị cũng nh cách sử dụng chúng.
Với hớng tiếp cận thứ hai, một thiết bị ảo cần thoả mãn các yêu cầu
sau:
- Thiết bị ảo phải đợc xây dựng theo phơng trình động lực học của
thiết bị thực. Đây là một yêu cầu bắt buộc đối với mỗi thiết bị ảo để
chúng có thể hoạt động chính xác nh thiết bị vật lý thực. Để giải
quyết điều này, đòi hỏi ngời thiết kế phải nắm vững nguyên lý hoạt
động của từng thiết bị cụ thể và xây dựng chơng trình theo phơng
trình động lực học của chúng.
- Thiết bị ảo cần có một front panel nh thiết bị vật lý đợc mô
phỏng. Điều này có nghĩa là cần phải xây dựng trên thiết bị đo lờng
ảo các núm, nút, màn hiển thị nh thiết bị thật để ngời sử dụng có
thể thao tác và xem kết quả trên chúng. Đây là một yêu cầu quan
trọng trong các bài toán mô phỏng nói chung và trong bài toán xây
dựng thiết bị ảo nói riêng.



25
- Tiếp cận tốt nhất với tính thời gian thực của hệ thống. Đây là một
yêu cầu khó và trên thực tế khó có thể giải quyết triệt để. Ngời thiết
kế chỉ có thể làm cho hệ thống thiết bị ảo của mình tiệm cận tới tính
thời gian thực bằng cách lựa chọn ngôn ngữ lập trình hiệu quả, phù
hợp và xây dựng thuật toán lập trình tối u nhất.
- Hệ thống phải có tính mở, tức là phải có tính linh hoạt cao, cho phép
kết nối và trao đổi dữ liệu dễ dàng với các phần mềm ứng dụng khác.
Thiết bị ảo phải có khả năng kết nối, trao đổi qua các cổng và card
phần cứng vào ra để có thể xây dựng một hệ thống mô phỏng bán
tự nhiên.
Từ các yêu cầu cơ bản kể trên có thể nhận thấy rằng, ngoài việc phải
nắm chắc cấu tạo và nguyên lý hoạt động của thiết bị, để bài toán mô phỏng
thiết bị ảo đạt hiệu quả cao nhất ngời lập trình cần phải lựa chọn một công cụ
lập trình chuyên dụng cho bài toán mô phỏng phơng trình động lực học, hỗ
trợ cho việc xây dựng giao diện mặt máy ảo và có khả năng ghép nối và điều
khiển với các thiết bị phần cứng. Từ những kết quả phân tích và đánh giá ở
chơng một cho thấy: Có thể sử dụng ngôn ngữ LabVIEW cho bài toán xây
dựng các thiết bị ảo cho phòng thí nghiệm ảo Đo lờng - Lý thuyết mạch.
Quá trình xây dựng một thiết bị ảo trên LabVIEW sẽ bao gồm các vấn
đề sau:
- Xây dựng giao diện cho thiết bị mô phỏng: Để thiết bị ảo có hiệu
quả cao nhất thì ngoài việc xây dựng mã nguồn mô tả phơng trình
động lực học của thiết bị thực, cần phải xây dựng cho thiết bị ảo một
giao diện sử dụng giống nh thiết bị vật lý đợc mô phỏng. Để làm
đợc điều này, trong phạm vi đồ án của mình, em đã dựa vào các tài
liệu về giao diện đi kèm thiết bị để xây dựng một th viện điều khiển
tuỳ biến phục vụ cho thiết kế các thiết bị ảo của phòng thí nghiệm

Đo lờng - Lý thuyết mạch.

×