Lập Trinh Labview Cơ Bản
-
Upload
kukungkung -
Category
Documents
-
view
240 -
download
5
description
Transcript of Lập Trinh Labview Cơ Bản
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Học phần
LẬP TRÌNH labVIEW CƠ BẢN
Lập trình LabVIEW GV: Nguyễn Thanh Tần
LabVIEW
Lập trình LabVIEW GV: Nguyễn Thanh Tần
labVIEW
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình
B1: Phương pháp phát triển phần mềm
B2: Xây dựng giải thuật
B3: Thiết kế giải thuật
B4: Thực thi
B5: Kiểm tra
B6: Bảo trì – Sữa chữa
B7: Tạo dự án
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Nội dung
1. Thao tác trên labVIEW
2. Kỹ thuật gỡ rối (Debug) cho VI
3. Lập trình theo Modul
4. Lập trình trong VI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Phần 1
THAO TÁC TRÊN LABVIEW
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Khởi động LabVIEW
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Giao diện labVIEW
Tham khảo
Thanh menu
Tạo new VI
(Blank VI)
Mở file đã lưu
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo một VI mới
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thành phần của một VI
Một VI trong labVIEW bao gồm 3 thành phần chính:
Front panel
Block Diagram
Icon/Connector pane
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Virtual Instruments (VIs)
Giao diện chính
• Controls = Inputs (Vào)
• Indicators = Outputs (Ra)
Biểu đồ khối
• Các khối chương trình của giao diện chính
• Các thành phần đi dây.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Icon/Connector pane
Icon: biểu tượng của một VI hay một subVI
Connector pane: Bản đồ chỉ thị các input và output
của một VI
Icon/Connector pane rất cần thiết cho một VI cũng
như subVI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Giao diện lập trình
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Giao diện lập trình
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thanh công cụ
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Bảng công cụ
LabVIEW tự động chọn những công cụ cần thiết.
Hiển thị trên Front panel và trên biểu đồ thiết lập
hệ thống.
Sử dụng các công cụ để tạo và chỉnh sửa giao dịên
chính và các đối tượng của biểu đồ khối
Hiển thị bảng công cụ (Tools Palette), chọn
View»Show Tools Palette
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Front panel
Lập trình:
1. Thực hiện tạo lệnh chương trình
bằng cách nhấp chuột phải (lấy
các control và indicator)
2. Chọn các đối tượng phù hợp
3. Kéo và thả đối tượng trong khung
lệnh
1
2
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Front panel
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Front panel
-Tạo các lệnh trên FP
-Thay đổi nhãn, chỉnh text và định dạng
-Thay đổi đặc tính đối tượng
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Block diagram
Functions (Hàm) nằm trong
Block Diagram
Nhằm tạo chương trình hoàn
chỉnh
Ví dụ: While loop, For Loop
While room is active
door is open
Loop
Webcam
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Block diagram
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Block diagram
1 Cực liên kết với FP
2 Đường lệnh: Truyền dữ liệu (Wires)
3 Các giao điểm trên mỗi đối tượng (Nodes)
4. Dạng dữ liệu của đối tượng 1
4
2 3
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Kiểu dữ liệu trên Block Diagram
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Block diagram
Chức năng tự sắp xếp
các đường dây gọn gàng
Nhấn tổ hợp Ctrl+B để xóa
các đường dây bị đứt
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Terminals trong Block Diagram
Terminal là đối tượng tồn tại trong Block Diagram
lẫn Front panel
Luôn tồn tại các đường vào ra để truyền thông giữa
Front panel và Block Diagram
Thay đổi kiểu hiển thị của các terminals bằng cách
nhấp phải chuột và chọn View as Icon
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Block Diagram
Function Nodes
Phần tử hoạt động chủ yếu của labVIEW
Có nền màu vàng nhạt
Không tồn tại trong Front Panel
subVI Nodes:
subVI là những VI được tạo ra để sử dụng cho những VI
khác
subVI chứa Front Panel và Block Diagram riêng của nó
VI Express
Là kiểu đặt biệt của subVI
Nền màu xanh
Lập trình LabVIEW GV: Nguyễn Thanh Tần
So sánh
Front panel
Chứa các biểu tượng điều
khiển và hiển thị (giao diện
người dùng)
Truy cập Control Palette
(chuột phải)
Bao gồm các control và
Indicator
Block Diagram
Chức code chương trình
(lập trình)
Truy cập Function Palette
(chuột phải)
Bao gồm các terminals, VIs,
subVIs, functions,
constants, Structures,
wires,….
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tìm kiếm và Help
Tìm Controls, Functions, Vis sử dụng nút Search
trên Controls và Functions palette
Chọn Help>>Show Context Help (Ctrl+H) hoặc
nhấp vào biểu tượng
Help: Search the labVIEW Help, NI Example Finder,
hiển thị các thông tin cơ bản về đối tượng labVIEW
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Phần 2
KỸ THUẬT GỠ RỐI (DEBUG)
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Vấn đề thường gặp
Dây bị đứt (nối dây bị sai kiểu dữ liệu hoặc kiểu
vào/ra)
Một terminal trên Block Diagram không được nối
dây
Một subVI bị hỏng hoặc do người dùng đã sữa đổi
các Connector pane
Dữ liệu đang sử dụng mặc định không chính xác
Lập trình LabVIEW GV: Nguyễn Thanh Tần
DEBUG
1. Execution Highlighting được sử dụng để xem
các luồng dữ liệu chạy trên Block Diagram
2. Single Stepping
Single-step: chạy xuyên qua VI để xem kết quả
hoạt động của mỗi VI trên Block Diagram
Tạm dừng thực thi một subVI để chỉnh sữa giá trị
các Control và Indicator
Lập trình LabVIEW GV: Nguyễn Thanh Tần
DEBUG
3. Probes để quan sát các giá trị và dữ liệu tức thì để
kiểm tra lỗi ngõ ra của VI và function
4. Giữ lại giá trị trong các dây để có thể quan sát dữ
liệu trên dây sau khi thực hiện xong
5. Breakpoint: VI sẽ tạm dừng và nút Pause sẽ xuất
hiện màu đỏ tại vị trí Breakpoint.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Phần 3
LẬP TRÌNH THEO MODUL
Lập trình LabVIEW GV: Nguyễn Thanh Tần
subVIs
Một VI trong một VI khác gọi là subVI
Một subVI xem như một chương trình con trong
ngôn ngữ dạng text
Góc bên phải của front panel và block diagram hiển
thị Icon của subVI
Icon xác định các VI khi bạn đặt nó trên sơ đồ khối
Lập trình LabVIEW GV: Nguyễn Thanh Tần
subVIs
Lập trình LabVIEW GV: Nguyễn Thanh Tần
subVIs
Lập trình LabVIEW GV: Nguyễn Thanh Tần
subVIs
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Icon của subVI
Ta có thể tạo và tùy chỉnh Icon bằng cách nhấp
chuột phải vào biểu tượng ở góc trên bên phải của
front panel hoặc block diagram và chọn Edit icon
Nhấp chuột phải vào biểu tượng ở góc trên bên
phải của front panel và chọn Show connector để
xác định các terminal vào/ra cho subVI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Để sử dụng một VI giống như một subVI, ta tạo một
Icon và Connector pane sau đó thiết kế Front panel
và Blockdiagram
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo Icon
Icon: biểu tượng miêu tả gợi nhớ của một VI
Click chuột phải lên Icon pane (Panel hoặc
Diagram) ở góc cửa sổ và chọn Edit icon
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo Connector Pane
Connector pane : bản đồ chỉ thị các input và output
của một VI
Nhấp chuột phải vào biểu tượng ở góc trên bên
phải của front panel và chọn Show connector để
xác định các terminal vào ra
Chọn điểm
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Trợ giúp và phân loại đầu cuối
Phân loại đầu vào/ra:
Required — Lỗi nếu không kết nối
Recommended — Cảnh báo nếu không kết nối
Optional — Không có tác dụng nếu không kết nối
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Trợ giúp và phân loại đầu cuối
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Sử dụng subVIs
Để đặt subVI trên block diagram:
Click chọn một VI trên Function palette
Di chuyển đến VI bạn muốn sử dụng như một subVI
Double click lên nó để đặt trong Block diagram
Để đặt một VI đang mở trên Block diagram của VI
đang mở khác
Click vào biểu tượng của VI bạn muốn sử dụng như một
subVI
Kéo biểu tượng (Icon) cho vào Block diagram của VI khác
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo một subVI
Chọn phần nào muốn đưa vào subVI
Chọn Edit>> Create SubVI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Phần 4
LẬP TRÌNH TRONG VI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Dataflow
LabVIEW hoạt động theo kiểu dataflow để thực thi
các chương trình trong VI
Block diagram thực thi phụ thuộc vào luồng dữ liệu
thì Block diagram sẽ KHÔNG thực thi từ trái qua
phải
Một nút chỉ có thể thực hiện khi dữ liệu đã có sẵn
tại tất cả các đầu vào của nó
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Dataflow
Ví dụ: Nút nào thực thi trước?
a) Add
b) Subtract
c) Random Number
d) Divide
e) Sine
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Các kiểu dữ liệu trong labVIEW
Terminals: thiết bị đầu cuối trực quan hiển thị các
kiểu dữ liệu
Numeries: kiểu dữ liệu số học hiển thị các con số
hoặc biến số (chọn Representation thay đổi kiểu
dữ liệu numeric)
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Các kiểu dữ liệu trong labVIEW
Boolean: kiểu True/False, 1/0, đúng/sai
Boolean: có thể là control (Knob, công tắc,..) hay
hiển thị (led,…)
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Các kiểu dữ liệu trong labVIEW
String: một chuỗi các hiển thị hoặc không hiển thị
các ký tự ASCII
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Các kiểu dữ liệu trong labVIEW
Enum bao gồm một cặp giá trị, một chuỗi và một số,
các Enum có thể là một danh sách được xác định
bằng các giá trị
Enum liệt kê các control, constant hoặc indicator
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Các kiểu dữ liệu trong labVIEW
Dynamic: kiểu dữ liệu động để lưu trữ các thông tin
được tạo ra hoặc thu thập bởi VI Express
Nếu sử dụng VI thích hợp thì labVIEW sẽ tự động
chuyển đổi thành kiểu dữ liệu động
Lập trình LabVIEW GV: Nguyễn Thanh Tần
KỸ THUẬT LẬP TRÌNH
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thư viện trong Block Diagram
Functions\Programming: Structures: các cấu trúc vong lặp (while, for, case, sequence, formula, feedback,….)
Array: các kiểu trích lọc, biến đổi, tạo mảng,…
Cluster: cấu trúc gom nhóm (bundle, unbundle,…)
Numeric: số học (toán học, random numer, hằng số…)
Boolean: dạng logic (cổng, biến đổi số boolean, ….)
String: text (string constant, biến đổi chuỗi,…)
Comparision: các hàm so sánh
Timing: hàm trê thời gian
Dialog & user..: button, thông báo, giao diện,….
File I/O: đọc, ghi file trong labVIEW.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thư viện trong Block Diagram
Measurement I/O: DAQmx – Data Acquisiton (thu
thập dữ liệu): DAQ Assistant
Instrument I/O: thu thập dữ liệu qua các giao tiếp
nối tiếp,…
Mathematics: các hàm toán học, tín hiệu (sin,cos...)
Signal Processing: tín hiệu mô phỏng, dạng sóng,
đồ thị, lọc, phổ,….
Express: Input (DAQ, scope, simulate sig), signal
analysis, output, Merge signals, Arithmatic &
comparision, Timing, Structure,…
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thư viện trong Front Panel
Modern:
Numeric: số control, indicator,..
Boolean: logic (SW, button, led,…)
String & path: text control, text indicator, file path,..
Array, matrix & cluster: mảng control, indicator, gom
nhóm,…
Graph: đồ thị (waveform chart, waveform graph,..)
System / Classic: các dạng control, indicator khác:
số học, boolean, text, button, SW,…
Express: numeric control, numeric indicator, tex
control, text indicator, button& Swithes, led, Graph,..
Lập trình LabVIEW GV: Nguyễn Thanh Tần
While Loop
Lập trình LabVIEW GV: Nguyễn Thanh Tần
While Loop
1. Chọn While Loop
2. Khoanh vùng mã muốn
đặt trong vong lặp
3. Kéo thả vào vong lặp
các nút và sau đó đi dây
Lập trình LabVIEW GV: Nguyễn Thanh Tần
While Loop
Biến đếm (Interation terminal): trả về số lần lặp đã
thực hiện, bắt đầu từ zero-0
Điều kiện kết thúc (conditional terminal): xác định
khi vong lặp dừng
Lập trình LabVIEW GV: Nguyễn Thanh Tần
While Loop - Tunnels
Tunnel – truyền dữ liệu vào ra cho vong lặp
Dữ liệu vượt ra khỏi vong lặp sau khi nó chấm dứt
Khi một đường dữ liệu nối vào Tunnel của một vong
lặp, vong lặp chỉ thực thi sau khi dữ liệu đến Tunnel
hoặc dữ liệu xuất ra Tunnel sau khi kết thúc vong
lặp
Lập trình LabVIEW GV: Nguyễn Thanh Tần
While Loop – Error Checking và Error
Handling
Dùng một error cluster trong while loop để dừng
vong lặp while loop nếu xảy ra lỗi
Lập trình LabVIEW GV: Nguyễn Thanh Tần
For Loop
Lập trình LabVIEW GV: Nguyễn Thanh Tần
For Loop
Số
lần
lặp
Biến
đếm
Lập trình LabVIEW GV: Nguyễn Thanh Tần
For Loops – Conditional Terminal
Conditional Terminal: điều kiện dừng, vong lặp For
Loop sẽ dừng lại khi nhận một Boolean Conditional
hoặc một lỗi xảy ra
Lập trình LabVIEW GV: Nguyễn Thanh Tần
For Loops – Conditional Terminal
Một khối vuông màu đỏ được gắn vào giống như
while loop
Điều kiện dừng nằm ở góc phải của vong lặp
Lập trình LabVIEW GV: Nguyễn Thanh Tần
For Loops – Numeric Conversion
8 bytes 4 bytes
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Ví dụ
Lập trình LabVIEW GV: Nguyễn Thanh Tần
So sánh For Loop/ While Loop
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Định thời cho một VI (Timing)
Tại sao phải định thời?
Kiểm soát tần số mà tại đó vong lặp thực hiện
Cung cấp tài nguyên cho bộ vi xử lý và thời gian để hoàn
thành các nhiệm vụ khác, chẳng hạn như tác vụ xử lí giao
diện người dùng
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Timing – Wait Functions
Một Wait Function trong vong lặp cho phép VI ở
trạng thái Sleep với thời gian được định trước
Cho phép bộ xử lý thực hiện các tác vụ khác trong
quá trình chờ đợi
Sử dụng xung đồng hồ của hệ điều hành tính bằng
ms
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Thanh ghi (Shift Registers)
Thực hiện việc truyền kết quả vào/ra vong lặp hoặc
từ vong lặp trước sang vong lặp sau
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Shift Registers
Click chuột phải vào khung vong lặp và chọn Add
Shift Register
Thanh ghi dịch bên phải sẽ lưu trữ kết quả sau mỗi
lần lặp
Thanh ghi dịch bên trái sẽ cung cấp dữ liệu cho lần
lặp tiếp theo
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Shift Registers
? ?
? ? Output=2 Output=4
Output=3 Output=5
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Stacked Shift Registers
Ngăn xếp thanh ghi lưu trữ nhiều giá trị từ các lần
lặp trước và truyền giá trị này đến lần lặp kế tiếp
Click chuột phải vào thanh ghi dịch (Shift register)
bên trái và chọn Add Element
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Nút phản hồi
Sẽ xuất hiện tự động trong vong lặp For hoặc While
nếu như bạn đi dây ở đầu ra của một subVI,
function, hoặc group của subVI và functions tới đầu
vào của VI tương đương, function, hoặc group.
Dữ liệu lưu trữ khi mà hoàn tất một vong lặp, gửi
dữ liệu tới vong lặp kế tiếp và truyền đi mọi kiểu dữ
liệu.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Nút phản hồi
Đi dây từ đầu ra tới đầu
vào được tự động tạo ra
một nút phản hồi
<Hoặc>
Đặt một nút phản
hồi từ bảng Functions»
Structures
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case
Thực hiện và hiển thị chỉ có một trường hợp hoặc
một sơ đồ con trong một thời điểm
Ngõ vào sẽ xác định cho phép trường hợp nào hay
sơ đồ nào được thực thi
Cấu trúc Case cũng tương tự như cấu trúc
If..then..else trong các ngôn ngữ lập trình dạng text
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case
Case Selector Label: chứa tên của trường hiện tại
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case
Đầu vào luôn có sẵn cho tất cả các trường hợp
Phải xác định mỗi đầu ra tunnel cho mỗi trường
hợp
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case - Default
Nếu ngõ vào không rơi vào bất kì trường hợp nào
thì cấu trúc Case sẽ thực hiện chương trình mặc
định (default)
Nếu không có dây nào đưa vào thì các kiểu dữ liệu
sẽ được default theo bảng sau:
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case - Boolean
Ngõ vào là Boolean chỉ tạo ra hai trường hợp: True
hoặc False
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case - Integer
Ta có mỗi trường hợp (case) cho mỗi số nguyên
Nếu số nguyên mà không có một trường hợp được
xác định thì tự động chọn trường hợp mặc định
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case - String
Mỗi trường hợp tương ứng với một chuỗi nhất định
Chuỗi không xác định thì nó sẽ chọn trường hợp
mặc định
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case - Enum
Cung cấp cho người dùng một danh sách các bảng
ghi để chọn
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Cấu trúc Case – Error Checking và
Error Handling
Sử dụng cấu trúc Case trong VI để thực thi chương
trình khi không có lỗi, và bỏ qua chương trình khi có
lỗi phát sinh
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Mảng (Arrays)
Một mảng (Array) đặc trưng bởi kích thước và phần
tử trong nó
Phần tử (Element): dữ liệu nằm trong mảng
Kích thước: chiều dài và chiều rộng, cột x hàng y
Mảng có thể có một hoặc nhiều chiều và có (2^31-1)
phần tử trên mỗi chiều
Mảng sử dụng một tập hợp cùng kiểu dữ liệu và
các phép toán mang tính lặp lại nhiều lần
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo mảng
1. Đặt một mảng trắng (array shell) lên front panel
2. Kéo hoặc thả đối tượng hoặc phần tử vào array
shell
3. Ví dụ: mảng hằng
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Array – Auto Idexing
Khi chế độ Auto index được mở ở ngõ ra tunnel,
mảng ở ngõ ra nhận từng phần tử mới ở mỗi vong
Mảng tạo ra luôn có kích thước (số phần tử) bằng
với số lần thực thi của vong lặp
Click chuột phải lên tunnel và chọn enable/disable
auto- indexing
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Mảng 2D
Lưu trữ các phần tử dạng lưới
Để tạo mảng đa chiều: click chuột phải vào index
display và chọn Add Dimention
Mảng chưa
khởi tạo Mảng đã khởi
tạo giá trị ban
đầu
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo mảng 2D
Có thể tạo 2 vong lặp For loop lồng vào nhau để tạo
mảng 2D
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Array
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Clusters – Kiểu gom nhóm
Clusters là tập hợp nhiều kiểu dữ liệu khác nhau
Dùng hàm Bundle hoặc Unbundle để tổ hợp hoặc
phân giải một Cluster
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Tạo một Cluster
Để tạo một Cluster control hoặc indicator trên front
panel:
Đặt một cluster shell trên front panel
Kéo thả các đối tượng hoặc phần tử vào cluster shell như:
numeric, boolean, string, path, refnum, array,…
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Error Cluster
LabVIEW sử dụng error cluster để chức thông tin lỗi
Một error cluster chứa các phần tử sau:
Status: kiểu boolean, trả về True nếu không có lỗi và
ngược lại
Code: kiểu 32 bits Signed integer xác định mã lỗi
Source: kiểu string xác định nơi bị lỗi
Lập trình LabVIEW GV: Nguyễn Thanh Tần
So sánh với Array
Giống nhau: có control hoặc indicator nhưng đồng
thời không chứa cả hai
Cluster có kích thước thay đổi so với kích thước cố
định của array
Cluster chứa nhiều kiểu dữ liệu khác nhau; con
array chỉ chứa một kiểu dữ liệu duy nhất
Lập trình LabVIEW GV: Nguyễn Thanh Tần
MỘT SỐ KỸ THUẬT THÔNG DỤNG
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình phân đoạn (Sequential
Programming)
Các VI bạn viết sẽ được thực hiện một cách tuần
tự
Không có bất kỳ sự ưu tiên nào trong block
diagram, và không biết được cái nào trước cái nào
sau.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình phân đoạn (Sequential
Programming)
Sử dụng error clusters để ưu tiên quá trình thực thi
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình phân đoạn (Sequential
Programming)
Sử dụng cấu trúc đoạn (Sequence structure) để ưu
tiên thực thi
Một cấu trúc với các khung (frames), Mỗi khung sẽ chứa
một tác vụ
Khung thứ 2 không thể thực thi cho đến khi mọi thứ trong
khung thứ nhất hoàn thành
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình phân đoạn (Sequential
Programming)
Tránh sử dụng quá nhiều cấu trúc phân đoạn
Bạn không thể dừng thực thi một thành phần trong
một đoạn
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Lập trình phân đoạn (Sequential
Programming)
Cách tốt nhất để viết VI này là đính kèm các hộp
thoại trong cấu trúc Case, dây error cluster sẽ
được nối tới bộ chọn của cấu trúc case(case
selectors)
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Trạng thái máy (State Machines)
Lập trình trạng thái(State Programming) là mẫu
thiết kế nhằm thực hiện một sơ đồ trạng thái hoặc
một lưu đồ
Khi nào sử dụng state machines?
− Thường được sử dụng để tạo các giao diện, đối với
mỗi người dùng khác nhau thì sẽ có giao diện khác
nhau
− Thường được sử dụng để thử nghiệm quá trình,
trong đó mỗi trạng thái đại diện mỗi phân đoạn của
quá trình.
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Trạng thái máy (State Machines)
•Một state machine bao gồm nhiều trạng thái và
một chức năng chuyển tiếp đến các trạng thái kế
tiếp
Mỗi trạng thái có thể dẫn tới một hoặc trạng thái
hoặc kết thúc quá trình thực thi
Lập trình LabVIEW GV: Nguyễn Thanh Tần
File I/O
File I/O đọc và ghi vào một file
Một phương pháp điển hình để truy xuất file:
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Định dạng File
(File Formats)
LabVIEW có thể sử dụng hoặc tạo ra các định
dạng tập tin sau đây:
Binary— là kiểu định dạng cấp thấp cho tất cả các
định dạng khác sử dụng
ASCII—Là kiểu đặt biệt của binary file, là định dạng
tiêu chuẩn cho hầu hết tất cả chương trình
LVM— LabVIEW measurement data file (.lvm) định
dạng của LabVIEW, chứa bản tính và văn bản
TDMS—Một kiểu file Binary ñược tạo bởi các sản
phẩm của NI bao gồm 2 file tách rời: Một binary file
và một binary index file
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Định dạng File
(File Formats)
Trong phần này, tập trung vào việc tạo text
(ASCII) files
Sử dụng các Text file trong các tình huống sau
đây :
− Truy xuất các tập tin từ các ứng dụng khác
− Không quan tâm đến bộ nhớ trống, và tốc độ I/O
của file
− Không nên truy xuất dạng random read hoặc
write
Lập trình LabVIEW GV: Nguyễn Thanh Tần
High-level File I/O
High-level VIs Để truy xuất I/O file phải qua 3 bước chung
Không hiệu quả cho việc cấu hình hoặc thiết kế cho các tính năng riêng của file
Low-level VIs VI riêng biệt cho mỗi bước
Nếu ghi file trong một vong lặp, sử dụng hàm low-level file I/O
Lập trình LabVIEW GV: Nguyễn Thanh Tần
High-Level File I/O
Write to Spreadsheet File
• Chuyển đổi một mảng dạng double-precision đến
text string và ghi string này đến ASCII file
Read From Spreadsheet File
• Đọc các giá trị số theo dong (line) hoặc hàng
(row) từ một text file chứa số và xuất ra ngoài một
mảng 2D array với các phần tử dạng số double-
precision
Write to/Read from Measurement File
• Một dạng Express VI cho phép ghi (write), đọc
(read) một LVM hay TDMS file
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Low-Level File I/O VIs
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Variable
Cannot pass data between parallel loops with a
wire
Variables allow you to circumvent normal dataflow
by passing data from one place to another without
connecting the two places with a wire
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Variable
Variables are block diagram elements that allow
you to access or store data in another location
Variables can be of the following types:
−Local: store data in front panel controls and
indicators −Global: store data in special repositories
that can be accessed from multiple VIs
−Functional Global: store data in While Loop shift
registers
−Shared: transfers data between various distributed
targets connected together over a network
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Local Variable
Use local variables to pass data within a single VI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Global Variable
Use a global variable or a single process shared
variable to share data between multiple VIs
Use a global variable to share data among VIs on
the same computer, especially if you do not use a
project file
Use a single process shared variable if you may
need to share the variable information among VIs
on multiple computers in the future
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Property Node
Property Nodes access the properties of an object
In some applications, you might want to modify the
appearance of front panel objects programmatically
in response to certain inputs
−If a user enters an invalid password, you might want
a red LED to start blinking
−If a data point is above a certain value, you might
want to show a red trace instead of a green one
Property Nodes allow you to make these
modifications programmatically
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Property Node
Property Nodes execute in order from top to bottom
If an error occurs on a terminal, the node stops at
that terminal, returns an error, and does not execute
any further terminals
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Control References
A control reference is a reference to a front panel
object
Wire control references to generic Property Nodes
Pass control references to subVI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Control References
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Control References
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Invoke Nodes
Invoke Nodes access the methods of an object
Use the Invoke Node to perform actions, or
methods, on an application or VI
Unlike the Property Node, a single Invoke Node
executes only a single method on an application or
VI
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Invoke Nodes
To create an implicitly-linked Invoke Node, right-
click the control and select Create»Invoke Node
and choose a method
An example of a method that is common to all
controls is the Reinitialize to Default method
The Waveform Graph has the method Export
Image:
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Events Programming
Lập trình LabVIEW GV: Nguyễn Thanh Tần
Events Programming
Examples of User Interface (Static) Events
• Pressing a button on the mouse, moves or clicks the
mouse
• Pressing a key on the keyboard
• Value (Signaling) Property can generate a
programmatic event
Lập trình LabVIEW GV: Nguyễn Thanh Tần
USB 6008
Lập trình LabVIEW GV: Nguyễn Thanh Tần
THANK YOU!