Tool Panel xuất hiện trên c Font 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 Tool Palette.
Để truy c p vào Tools paltte ta ch n Menu: View => Tools palette. Các công c trong Tools palatte g m có:
Hình 3.3: Tools palette 3.2.1.2. Controls Palette (b ng đi u khi n):
B 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 h a như bên ph i.
Hình 3.4: Control Palette
B ng điều khiển đư c s d ng để ngư i s d ng thi t k cấu trúc mặt hiển th g m các thi t b ví d : 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
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 dùng để 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:
Hình 3.5: Numeric controls
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 c a LabVIEW.
Hình 3.6: Numeric indicators
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ì giá tr không thay đ i vì chúng ch là các thi t b hiển th .
Hình 3.7: Boolean
String Controls/Indicators:
Các điều khiển này dùng để nh p và hiển th các ký tự, nó cũng có thểđư c xác l p ch độđầu vào hay đầu ra.
Functions Palette:
B ng Functions Palette ch xuất hiện trên Block Diagram. B ng này ch a các VI và các hàm mà ngư i s d ng xây dựng để xây dựng nên các khối lưu đ . B ng Function palette (xem hình 3.9).
Hình 3.9: Functions Palette
V i b ng Function Palette, ngư i l p trình thực hiện các cú pháp và 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 đư c minh h a thông qua 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.
3.2.2. D li u
Ngôn ng l p trình LabVIEW hỗ tr cho tất c các d ng d liệu. Các kiểu d liệu d ng Boolean, bytes, string, array, file, text, cluster và d ng số có thể đư c chuyển
đ i một cách dễ dàng sang các d ng cấu trúc. Sau đây chúng ta xem xét một vài d ng d liệu:
Trong quá trình l p trình cần thi t ph i s d ng t i các bi n. Thông qua các bi n, ngư i l p trình có thể thực hiện đư c việc x lý và thay đ i d liệu một cách thu n l i. Trong LabVIEW, các bi n đư c s d ng dư i 2 d ng là bi n toàn c c (global variables) và các bi n c c bộ (local variables).
Global variables (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 VI. 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 một 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 bi n toàn c c s thực hiện rất nhanh chóng đối v i các kiểu d liệu đ n gi n như 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 xâ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 đó 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 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 nhan 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
ch n Local Variable từ b ng Structs & Constant. Khi s d ng bi n c c bộ cần chú ý một số thông tin sau:
o 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ư t đ .
o 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
o 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.
3.2.2.2. String:
Kiểu string (chuỗi) là một t p 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 như hình bên ph i.
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 chuỗi sang một số chuỗi khác.
Hình 3.11: Truy xu t m t String
Không ch v y có thể thực hiện việc chuyển đ i từ d ng string này 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ựđó 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).
3.2.2.3. 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 một 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 mình mà trong đó ch a d liệu kiểu numberic, string, boolean… vƠ rất nhiều 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 là 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ì 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 Kh i t o m ng: Để kh i t o một m ng khi chư ng trình b t đầu, ta thực hiện theo một số phư ng pháp sau:
N u như tất c các giá tr là như nhau, thì s d ng một vòng lặp For v i một hằng số bên trong. Điểm bất l i là: nó ch c ch n cần một th i gian l n để t o m ng. S d ng ch c năng kh i t o m ng v i kích 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 t . 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:
o 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
o 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
o 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.
B ng 3.1: Các hàm trong b ng Array
Array Constant Interleave 1D Arrays
Array Max & Min Interpolate 1D Array
Array Size Replace Array Subset
Array Subset Replace Array
Array To Cluster Reverse 1D Array
Build Array Rotate 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
Hình 3.13: B ng Array
+ Array Constant:
S 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á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ình 3.14: Hàm 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.2.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 (Structures). Các cấu trúc
điều khiển lu ng chư ng trình trong một VI có 5 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ể 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.
3.2.3.1. For Loop:
For Loop là một cấu trúc lặp thực hiện s đ bên trong nó một số lần đ nh trư c. Để
truy c p For Loop ta ch n Menu: Functions=> Structures=> For Loop. Biểu tư ng c a For Loop đư c minh h a hình 3.15.
Hình 3.15: For Loop
For Loop có hai Terminal đó là:
Count 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.
3.2.3.2. While Loop:
Hình 3.16: 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 Termianl đầu vào) 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: