Giới thiệu chung: Labview Virtual Instrument Engineering Workbench là một môi trường phát triển dựa trên ngôn ngữ lập trình đồ hoạ, thường được sử dụng cho mục đích :đo lường, kiểm tra,
Trang 1Mục lục
I Những khái niệm cơ bản: 2
1 Giới thiệu chung: 2
2 Thiết bị ảo (VI- Vitual Instrument): 2
3 Front Panel: 2
4 Block Diagram: 3
5 Icon & Connector 5
II Kỹ thuật lập trình trên LabView: 5
1 Các công cụ hỗ trợ lập trình: 5
2 Dữ liệu: 9
3 Các cấu trúc điều khiển luồng chương trình: 16
4 SubVI và cách xây dựng SubVI: 20
5 Xây dựng ứng dụng: 24
6 Gỡ rối và sửa chương trình xây dựng trên LabView: 26
III Kỹ thuật lập trình nâng cao trong LabView: 27
1 Liên kết thiết bị ảo với thiết bị phần cứng: 27
2 Xử lý tín hiệu và lọc nhiễu: 39
Trang 2Lập trình điều khiển trong môi trường labview
I Những khái niệm cơ bản:
1 Giới thiệu chung:
Labview (Virtual Instrument Engineering Workbench) là một môi trường phát triển dựa trên ngôn ngữ lập trình đồ hoạ, thường được sử dụng cho mục đích :đo lường, kiểm tra, đánh giá, xử lý và điều khiển các tham
số của thiết bị
Labview là một ngôn ngữ lập trình đa năng, giống như các ngôn ngữ lập trình hiện đại khác Labview gồm có các thư viên thu nhận dữ liệu, một loạt các thiết bị điều khiển, phân tích dữ liệu, biểu diễn và lưu trữ dữ liệu Nó còn có các công cụ phát triển được thiết kế riêng cho việc nối ghép và điều khiển thiết bị
Labview khác với các ngôn ngữ lập trình thông thường ở điểm cơ bản là: các ngôn ngữ lập trình khác thường dùng trên cơ chế dòng lệnh, trong khi đó Labview dùng ngôn ngữ lập trình Graphical để trạo ra các chương trình ở dạng sơ đồ khối
2 Thiết bị ảo (VI- Vitual Instrument):
Lập trình Labview trên cơ sở các thiết bị ảo Các đối tượng trong các thiết bị ảo được sử dụng để mô phỏng các thiết bị thực, nhưng chúng
được thêm vào bởi phần mềm Các VI (thiết bị ảo) tương tự như các hàm trong các ngôn ngữ lập trình khác
3 Front Panel:
Một chương trình chung trong LabView gồm 3 phần chính: một là giao diện với người sử dụng (Front Panel),hai là giao diện dạng sơ đồ khối cung cấp mã nguồn (Block Diagram) và biểu tượng kết nối (Icon/Connector) Front Panel là một panel tương tư như panel của thiết bị
Trang 3thực tế ví dụ các nút bấm, nút bật, các đồ thị và các bộ điều khiển Từ Front Panel người dùng chạy và quan sát kết quả có thể dùng chuột, bàn phím để đưa dữ liệu vào sau đó cho chương trình chạy và quan sát
Front Panel thường gồm các bộ điều khiển (Control) và các bộ chỉ thị (Indicator):
- Control là các đối tượng được đặt trên Front Panel để cung cấp dữ liệu cho chương trình Nó tương tự như đầu vào cung cấp dữ liệu
- Indicator là đối tượng được đặt trên Front Panel dùng để hiện thị kết quả, nó tương tự như bộ phận đầu ra của chương trình
Front Panel của 1 VI được minh hoạ như hình I.1:
Hình I.1
4 Block Diagram:
Block Diagram của 1 VI là một sơ đồ được xây dựng trên môi trường Labview, nó có thể gồm nhiều đối tượng và các hàm khác nhau để tạo các câu lệnh để chương trình thực hiện Block Diagram là một mã
Trang 4nguồn đồ hoạ của 1 VI Các đối tượng trên Front Panel được thể hiện bằng các thiết bị đầu cuối trên Block Diagram, không thể loại bỏ các thiết bị đầu cuối trên Block Diagram Các thiết bị đầu cuối chỉ mất đi sau khi loại bỏ đối tượng tương ứng trên Front panel
Block Diagram của 1 VI đơn giản được thể hiện ở hình I.2:
Hình I.2
Cấu trúc của một Block Diagram gồm các thiết bị đâu cuối (Terminal), Nút (Node) và các dây nối (wire)
- Terminal: là các cổng mà dữ liệu truyền qua giữa Block Diagram
và Front panel, và giữa các Node trong Block Diagram Các Terminal nằm ở dưới dạng các Icon của các Function
- Nodes: là các phần tử thực hiện chương trình, chúng tương tự như các mệnh đề, toán tử, hàm và các chương trình con trong các ngôn ngữ lập trình thông thường
Trang 5- Wises: là các dây nối dữ liệu giữa các node
5 Icon & Connector
+ Icon (biểu tượng) : là biểu tượng của VI, được sử dụng khi từ 1
VI muốn sử dụng chức năng của 1 VI khac Khi đó VI đó được gọi là
SubVI, nó tương đương như một chương trình con trong các ngôn ngữ
khác
+ Connector (bộ nối) :là một phần tử của Terminal dùng để nối
các đầu vào và đầu ra của các VI với nhau khi sử dụng
Mỗi VI có 1 Icon mặc định hiển thị trong bảng Icon ở góc trên bên
phải cửa sổ Front Panel và Block Diagram như hình I.3
Hình I.3
Ta có thể thay đổi được Icon và connector
Khi các Vi được phân cấp và modul hoá thì ta có thể dùng chúng như
các chương trình con Do đó để xây dựng 1 VI ta có thể chia thành
nhiều VI thực hiện các chức năng đơn giản và cuối cùng kết hợp
chúng lại với nhau
II Kỹ thuật lập trình trên LabView:
1 Các công cụ hỗ trợ lập trình:
Việc lập trình trên LabView cần sử dụng các bảng: Tools Palette,
Controls Panelette, Functions Palette, các bảng đó cung cấp các chức năng
Trang 6a Tool Panel:
Tool Panel xuất hiện trên cả Front Panel và Block Diagram Bảng này cho phép người sử dụng có thể xác lập các chế độ làm việc đặc biệt của con trỏ chuột Khi lựa chọn một công cụ, biểu tượng của con trỏ sẽ được thay đổi theo biểu tượng của công cụ đó
Nếu thiết lập chế độ tự động lựa chọn công cụ và người sử dụng di chuyển con trỏ qua các đối tượng trên Front Panel hoặc Block Diagram, Labview sẽ tự động lựa chọn công cụ phù hợp trên bảng Tools Palette
Để truy cập vào Tools palette ta chọn Menu: Window◊Show Tools palette Các công cụ trong Tools palette gồm có:
b Controls Palette(bảng điều khiển):
Hình I.4: Tools Palette
Trang 7Bảng điều khiển chỉ duy nhất xuất hiện trên Front panel Bảng điều khiển chứa các bộ điều khiển(control) và các bộ hiển thị (Indicator) Bảng
điều khiển được minh hoạ như I.5:
Bảng điều khiển được sử dụng để người sử thiết kế cấu trúc mặt hiển thị gồm các thiết bị vd: các công tắc, các loại đèn, các loại màn hình hiển thị…Với bảng điều khiển này, người sử dung có thể chọn các bộ thiết bị chuẩn do hãng sản xuất cung cấp vd công tắc những cũng có thể chọn các thiết bị do người sử dụng tự xây dựng
Bảng điều khiển dung để cung cấp dữ liệu đầu vào và hiển thị kết quả
đầu ra
• Một số bộ điều khiển và hiển thị trên
controls palette:
Numeric Controls/Indicators:
Bộ công cụ này được sử dụng để hiển thị
và điều khiển dữ liệu dạng số trong chương
trình
Boolean Controls/Indicators:
Bộ công cụ này cung cấp 2 giá trị là True và False Khi thực hiện chương trình người sử dụng sử dụng chuột để
điều khiển giá trị của thiết bị Việc thay đổi
giá trị của các thiết bị chỉ có tác dụng khi các
thiết bị đó được xác lập ở chế độ là các
Control Còn nếu ở chế độ là các Indicator thì
Hình I.6
Trang 8giá trị không thay đổi vì chúng chỉ là các thiết bị hiển thị
Với bảng Function Palette, người
lập trình thực hiện các cú pháp vd phép
lặp, phép lựa chọn thông qua các nhóm
hàm, chức năng đã được cung cấp bên
cạnh đó từ bảng này người sử dụng có
thể tạo ra và sử dụng lại các hàm, chức
năng mà người sử dụng tự xây dựng
Các hàm toán học đựoc minh hoạ thông
Hình I.7
Hình I.8
Hình I.9: Functions Palette
Trang 9qua các biểu tượng Khi muốn lựa chọn thực hiện một hàm nào đó thì người
sử dụng chọn biểu tượng thể hiện cho hàm đó và có thể kéo thả ở bất kỳ vị trí nào trên Block Diagram sau đó xác định những đầu vào và đầu ra cần thiết
- Global varialbles (biến toàn cục):Biến toàn cục được sử dụng để thực hiện công việc truyền và lưu trữ dữ liệu giữa một vài Vis Biến toàn cục được coi là một đối tượng trong Labview Khi ta tạo ra một biến toàn cục Labview sẽ tạo ra một “VI toàn cục”
đặc biệt Để tạo ra các biến toàn cục, ta lựa chọn chúng trên menu “Structs and Constants function” sau đó đặt chúng lên Diagram Tiếp tục cần xác định cho chúng kiểu dữ liệu thông qua các kiểu dữ liệu đã sử dụng thông qua các Controls hoặc các Indicators Chúng ta cần chú ý là đối với mỗi biến toàn cục chúng ta cần phải tạo ra 1 VI với một tên riêng duy nhất.Đối với các biến toàn cục chúng ta cũng cần xác định chế độ chỉ cho phép ghi hoặc chỉ cho phép đọc Đối với việc truy xuất vào các
Trang 10kiểu dữ liệu đơn giản vd: numerics và Boolean Tuy nhiên, khi
ta sử dụng biến toàn cục để lưu trữ và xử lý các dữ liệu dưới dạng mảng (arrays), Clusters hay các sâu(string) lớn thì thời gian cũng như bộ nhớ cần thiết để xử lý chúng lại sẽ tương đối lớn Vì nó đòi hỏi một vài dịch vụ quản lý bộ nhớ mỗi khi các biến đó được gọi tới Khi sử dụng các biến toàn cục cũng như các biến cục bộ thì một vấn đề có thể gặp phải là sự “tranh chấp dữ liệu” Biến sử dụng trong Labview không hoàn toàn giống như trong các ngôn ngữ lập trình dòng lệnh Việc “tranh châp dữ liệu ” xảy ra khi hai hoặc nhiều hơn các đoạn mã lệnh cùng
được thực hiện song song cùng thay đổi giá trị của một biến
Đầu ra của VI phụ thuộc vào thứ tự được thực thi của các dòng lệnh Bởi vì nếu không có sự phụ thuộc dữ liệu giữa các biểu thức khác nhau thì sẽ không xác định được cái nào chạy trước Nếu sử dụng các biến toàn cục trong Vis mà được thực hiện song song, thì ta có thể sử dụng một biến toàn cục thêm vào để xác định khi nào dữ liệu được phép thay đổi và được đọc giá trị mới
- Local variable: Cho phép người sử dụng đọc hoặc viết thông tin lên 1 trong những thiết bị điều khiển hoặc thiết bị hiển thị trên Front Panel Để tạo một biến cục bộ, chọn Local Variable từ bảng Structs & Constants Khi sử dụng biến cục bộ cần chú ý một số thông tin sau:
ơ Các biến cục bộ chỉ có tác dụng duy nhất trên các thiết bị
điều khiển hoặc thiết bị hiển thị mà cùng ở trên một lược đồ
Ta không thể sử dụng biến cục bộ để truy cập tới 1 điều khiển mà không cùng trên một lược đồ
Trang 11ơ Ta có thể có rất nhiều các biến cục bộ cho mỗi thiết bị điều khiển hoặc thiết bị hiển thị.Tuy nhiên điều đó có thể gây ra
sự phức tạp: cho rằng điều khiển của bạn thay đổi trạng thái một cách khó hiểu bởi vì bạn ngẫu nhiên lựa chọn sai các phần tử trong một hoặc nhiều biến cục bộ
ơ Giống như biến toàn cục, bạn có thể sử dụng biến cục bộ không có một “dòng dữ liệu” hợp lệ khác sử dụng
b String:
Kiểu string (chuỗi) là một tậơ hợp các ký tự Ta có thể sử dụng chuỗi tham gia tính toán xử lý Để lựa chọn các ô text lưu trữ dữ liệu kiểu string ta chọn từ ô “String & path” từ control palette có hình như sau (hình I.10):
Hình I.10: string LabView cung cấp cho người sử dụng các công cụ để thao tác trên LabView như việc tìm kiếm, xác định độ dài của chuỗi ký tự, chuyển dẫy ký tự thành dạng viết hoa và ngược lại, so sánh chuỗi, thay một số
ký tự trong chỗi sang một số chỗi khác các hàm được cung cấp trong menu “string” trên Function Pallete có hình sau (I.11):
Trang 12Hình I.11:Function>> string
Không chỉ vậy có thể thực hiện việc chuyển đổi từ dạng string sang các dạng khác như dạng số, dạng mảng (array) Trong labView, đôi khi người sử dụng có thể cần phải tạo ra hoặc hiển thị một số ký tự trong bảng mã ASCII mà không thể hiển thị được vd: Esc,tab… Để giải quyết vấn đề đó, labview đã cung cấp một số từ đại diện cho các
từ đó, khi cần thể hiện các ký tự đo ta chỉ cần gõ vào những từ đại diện cho chúng trên Front Panel Sau đây là một số từ thay thế (Escape Code)
Escape code Từ được thay (Interpreted As)
\00-\FF Giá trị dạng Hex của ký tự 8 bít
Trang 13\t Tab
c Array:
Trong việc lập trình đôi khi chúng ta cần xử lý một số các dãy số
mà mỗi phần tử trong đó có thể được xử lý như từng thành phần riêng biệt, vì vậy mà ta cần tới mảng Các mảng ở đây có thể là mảng 1 chiều (một cột hoặc 1 véc tơ), mảng 2 chiều, mảng 3 chiều Labview
hỗ trợ cho người lập trình có thể tạo ra các mảng của các mà trong đó chứa dữ liệu kiểu numberic, string, boolean… và rất nhiều các dạng dữ liệu khác Các mảng thường được tạo ra bởi các vòng lặp Việc sử dụng vòng lặp la tốt cho các ứng dụng bởi vì nó xác định một vùng bộ nhớ xác định từ khi nó bắt đầu Nếu không dùng các vòng lặp thì thì Labview không có cách nào biết được khi nào vòng lặp lại được lặp lại, việc quản lý bộ nhớ có thể sẽ được gọi lại nhiều lần và làm chậm việc xử lý
Người sử dụng có thể sử dụng chức năng xây dựng mảng Nó còn cho phép ràng buộc mảng gốc vào các mảng khác
- Sử dụng chức năng khởi tạo mảng với kích cỡ các các chiều đầu vào được kết nối tới một hằng số được đặt là giá trị của các phần
Trang 14tử Nó tương đương với phương pháp trước nhưng thuân tiên hơn
- Một cách tương tự, nếu như các giá trị có thể được tính toán trong một số cách không phức tạp, thì đặt công thức tính toán vào một vòng lặp và tạo ra mảng theo cách đó
- Tạo ra trên Front panel một đối tượng mảng và kiểu dữ liệu của giá trị được điều khiển bằng tay
Một trường hợp đặc biệt trong việc khởi tạo mảng là tạo ra một mảng rỗng.Nó là một mảng mà các phần tử trong mảng được đặt về giá trị 0, false, sâu rỗng… Thường thì việc sử dụng một mảng rỗng
để sử dụng để khởi tạo một bộ ghi dịch mà sử dụng để lưu giữ các giá trị trong mảng sau đây là các cách để tạo ra một mảng trống:
- Tạo trên front panel một điều khiển mảng Chọn Emty Array,
và sau đó Make Current value Default từ menu Control
- Tạo một vòng lặp với số lần lặp N, vòng lặp được nối tới một giá trị 0
- Sử dụng chức năng “Initialize Array”
Bộ nhớ của mảng để sử dụng và thi hành:
Khi một mảng được tạo ra, Labview sẽ sử dụng một không gian bộ nhớ hợp lý nhất Labview phải phân chia bộ nhớ thành những phần kế tiếp nhau để lưu trữ mảng Nếu người sử dụng thực hiện các phép tính
đơn giản như phép nhân một dãy trong một mảng, thì sẽ không cần yêu cầu một vùng nhớ lớn
Một số hàm sử dụng thao tác trên mảng:
Việc sử dụng các hàm trên bảng Function >> Array để tạo và điều khiển các mảng
Trang 15Hình I.12: Array
Trên đó bao gồm các hàm sau
Array Constant Interleave 1D Arrays Array Max & Min Interpolate 1D Array Array Size Replace Array Subset
Array To Cluster Reverse 1D Array
Cluster To Array Search 1D Array Decimate 1D Array Sort 1D Array Delete From Array Split 1D Array Index Array Threshold 1D Array Initialize Array Transpose 2D Array Insert Into Array
ϖ Array Constant :
Trang 16Sử dụng hàm này sẽ tạo ra một mảng với các phần tử là các hằng số Để định nghĩa dạng dữ liệu của mảng hằng số ta lựa chọn bất kỳ hằng số vô hướng nào từ bảng Function Palette
và đặt nó vào bên trong mảng hằng số Tất các thành phần của mảng sẽ có dạng này Sử dụng Operating Tool để nhập giá trị cho từng thành phần của mảng Ta không thể thay đổi
được giá trị của mảng trong khi VI chạy
ϖ Array Max & Min
Hàm này có chức năng tìm kiếm số lớn nhất và số nhỏ nhất của các số trong mảng hàm này thường trả về kết quả để hiển thị
Mảng có thể là mảng n chiều của bất kỳ loại dữ liệu nào Giá trị lớn nhất (max value) là cùng dạng dữ liệu như là các thành phần trong mảng các số
Chỉ số lớn nhất (max index) là chỉ số của phần tử lớn nhất Giá trị nhỏ nhất (min value) là của cùng dạng dữ liệu như là các thành phần trong mảng
chỉ số nhỏ nhất (min index) là chỉ số của giá trị nhỏ nhất
3 Các cấu trúc điều khiển luồng chương trình:
Trong bất cứ ngôn ngữ lập trình nào, ta cũng hay thường gặp và làm việc với các phần tử điều khiển luồng chương trình, đó là các cấu trúc
Trang 17(Structures) Các cấu trúc điều khiên luồng chương trình trong một VI có năm cấu trúc là: For Loop, While Loop, Case Structure, Sequence Structure
và Fomula Node
Các cấu trúc đó thực hiện tự động khi dữ liệu đầu vào của chúng có sẵn và thực hiện các công việc theo ý muốn cho tới khi hoàn thành thì mới cung cấp dữ liệu tới các dây nối dữ liệu đầu ra Tuy nhiên, mỗi cấu trúc thực hiện theo các quy tắc riêng (Sub Diagram) của nó
SubDiagram là tập hợp của các Node, Wire và Terminal bên trong
đường viền của Structure Mỗi cấu trúc For Loop và While Loop có một SubDiagram
Cấu trúc Case và Sequence có thể có nhiều SubDiagram, nhưng chỉ có một SubDiagram có thể được thực hiện tại một thời điểm Cách xây dựng các SubDiagram cũng giống như việc xây dựng các Block diagram mức đầu
Việc truyền dữ liệu vào và ra các Structure thông qua các Terminal mà
được tự động tạo ra ở nơi dây nối đi qua đường viền của cấu trúc, các Terminal này được gọi là các đường ống (Tunel)
Các cấu trúc điều khiển chương trình trong LabVIEW nằm ở
Functions◊ Structures Palette
truy cập For Loop ta
chọn Menu: Functions◊ Structures◊ For Loop
Biểu tượng của For Loop được minh hoạ ở hình 13:
For Loop có hai Terminal đó là:
Loop Count Numerical Input
Numerical Output Hình I.13: For Loop
Trang 18Count Terminal (Terminal đầu vào): Chỉ ra số lần vòng lặp phải thực hiện
Iteration Terminal (Terminal đầu ra): Chứa số lần vòng lặp đã thực hiện Giá trị của i thay đổi từ 0 tới n-1
While Loop
While Loop là một cấu trúc lặp thực hiện sơ đồ bên trong nó cho đến khi giá trị Boolean đưa tới Conditional Terminal (một Terminal đầu vào) là là trùng với điều kiện được thiết lập để thực hiện vòng lặp Để truy cập While Loop ta chọn Menu: Functions◊ Structures ◊ While Loop
Biêu tượng của While Loop được minh hoạ ở hình I.14
VI kiểm tra Conditional Terminal tại cuối mỗi vòng lặp, do đó While Loop luôn thục hiện ít nhấy một lần Iteration Terminal là một Terminal đầu
ra mà đưa ra số lần vòng lặp thực hiện được Việc tính sự lặp luôn được bắt
đầu từ 0 Vì vậy, nếu vòng lặp chạy một lần thì Iteration Terminal đưa ra kết quả 0.Việc thực hiện vòng lặp có thể được xác định thông qua Conditional Terminal Tại Conditional Terminal, ta có thể chọn các điều kiện:
Iteration
Hình I.14: While Loop
Trang 19+ Stop if true
+ Continue if true
Việc xác định điều khiện để thực hiện vòng lặp tại Conditional Terminal, rất quan trọng vì nếu không xác định đúng thì vòng lặp có thể rơi vào vòng lặp vô hạn
- Case & Sequence Structures
Case Structure và Sequence Structure là các cấu trúc thực hiện một SubDiagram bên trong nó Case Structure thực hiện SubDiagram dựa trên một giá trị đầu vào mà được bộ chọn gọi Sequence Structure thực hiện các SubDiagram một cách tuần tự theo thứ tự mà chúng xuất hiện
Cả Case Structure và Sequence Structure có thể có nhiều SubDiagram, nhưng chỉ có một SubDiagram được nhin thấy tại một thời điểm Tại đường viền bên trên của mỗi cấu trúc là một cửa sổ hiển thị SubDiagram mà gồm có sơ đồ định danh (Diagram Identifer) ở giữa và nút tăng (Increment), nút giảm (Decrement) ở hai bên Diagram identifier chỉ ra SubDiagram hiện thời được hiển thị Đối với Case Structure thì diagram identifer là một danh sách các giá trị để lựa chọn SubDiagram Đối với Sequence Structure thì diagram identifier là khung (Frame) trong Sequence (từ 0 tới n-1) Case Structure và Sequence Structure đượcminh họa ở hình I.15
Increment/Decrement
Buttons
Diagram Identifier
Case Structure Sequence Structure Hình I.15:Case & Sequence Structure
Trang 20Khi nhấn vào nút tăng (bên phải) hoặc nút giảm (bên trái) sẽ làm hiển thị SubDiagram kế tiếp hoặc trước đó tương ứng Nhấn nút tăng khi ở SubDiagram cuối cùng làm hiển thị SubDiagram đầu tiên còn nhấn nút giảm khi ở SubDiagram đầu tiên làm hiển thị SubDiagram cuối cùng
Để truy cập Case Structure và Sequence Structure ta chọn Menu:
Functions◊ Structures◊ Case
Hoặc Functions◊ Structures◊ Sequence
Block diagram nhờ chuột ở chế độ Labeling Tool Để tạo các đầu vào và các
đầu ra, bấm vào đường viền của Formula Node và chọn Add Input (Add Output), đánh vào tên biến vào bên trong hộp Các công thức được đánh vào bên trong đường viền của Formula Node, mỗi công thức trình bày phải kết thúc bằng dấu chấm phẩy (;) Ví dụ minh họa Formula Node có dạng như hình I.16
Để truy cập Formula Node ta chọn:
Functions◊ Structures◊Formula Node
Các toán tử và hàm có thể dùng bên trong Formula Node được liệt kê trong cửa sổ Help của Formula Node
4 SubVI và cách xây dựng SubVI:
a Khái niệm SubVI:
Hình I.16: Formula Node
Trang 21Khi thiết kế chương trình trong LabView, ta thường chú ý thiết kế các
VI và xác định đầu vào và đầu ra cho chúng Khi đó mỗi VI thực hiện một chức năng xác định Trong việc lập trình, các VI đó có thể được
sử dụng trong các Block Diagram của 1 VI khác ở mức độ cao hơn Khi đó VI cao hơn đó được gọi là một SubVI Như vậy, một SubVI ta
có thể coi như một chương trình con trong các ngôn ngữ lập trình khác
vd C++…Trong một chương trình labview, không bị hạn chế số SubVI
và mỗi SubVI không bị hạn chế việc gọi đến các SubVI Với tiện ích này, một chương trình trên Labview sẽ trở nên dễ hiểu, gọn gàng và dễ
gỡ rối hơn
b Xây dựng SubVI:
Có hai cách đơn giản nhất để xây dựng một SubVI: tạo một SubVI từ một VI và tạo một SubVI từ một phần của VI:
+ Tạo một SubVI từ một VI:
Các SubVI được sử dụng thông qua Icon và Connector của nó Icon của một VI là một biểu tượng đồ hoạ Connector của một VI gán các Control và Indicator cho các Terminal đầu vào và đầu ra Muốn gọi một VI từ Block Diagram của một VI khác, thì trước tiên ta phải tạo ra Icon và Connector cho VI đó
Để tạo Icon, ta bấm đúp chuột trái vào biểu tượng Icon ở góc bên trái phía trên của Front Panel hoặc bấm chuột phải vào biểu tượng Icon và chọn Edit Icon … Sau khi chọn Edit Icon … ta dụng các công
cụ ở bên trái cửa sổ để tạo ra kiểu Icon trong vùng soạn thảo điểm lớn Hình ảnh mặc định của Icon xuất hiện trong vùng soạn thảo Phụ thuộc vào dạng màn hình đang sử dụng, ta có thể thiết kế kiểu Icon ở dạng đơn sắc, 16 màu hoặc 256 màu Màu mặc định của Icon là Đen –