lập trinh labview cơ bản

125
Lập trình LabVIEW GV: Nguyễn Thanh Tần Học phần LẬP TRÌNH labVIEW CƠ BẢN

Upload: kukungkung

Post on 10-Jul-2016

237 views

Category:

Documents


5 download

DESCRIPTION

Lập Trinh Labview Cơ Bản

TRANSCRIPT

Page 1: 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

Page 2: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

LabVIEW

Page 3: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

labVIEW

Page 4: Lập Trinh Labview Cơ Bản

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

Page 5: Lập Trinh Labview Cơ Bả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

Page 6: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Phần 1

THAO TÁC TRÊN LABVIEW

Page 7: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Khởi động LabVIEW

Page 8: Lập Trinh Labview Cơ Bản

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

Page 9: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Tạo một VI mới

Page 10: Lập Trinh Labview Cơ Bản

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

Page 11: Lập Trinh Labview Cơ Bản

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.

Page 12: Lập Trinh Labview Cơ Bản

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

Page 13: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Giao diện lập trình

Page 14: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Giao diện lập trình

Page 15: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Thanh công cụ

Page 16: Lập Trinh Labview Cơ Bản

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

Page 17: Lập Trinh Labview Cơ Bản

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

Page 18: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Front panel

Page 19: Lập Trinh Labview Cơ Bản

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

Page 20: Lập Trinh Labview Cơ Bản

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

Page 21: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Block diagram

Page 22: Lập Trinh Labview Cơ Bản

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

Page 23: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Kiểu dữ liệu trên Block Diagram

Page 24: Lập Trinh Labview Cơ Bản

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

Page 25: Lập Trinh Labview Cơ Bản

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

Page 26: Lập Trinh Labview Cơ Bản

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

Page 27: Lập Trinh Labview Cơ Bản

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,….

Page 28: Lập Trinh Labview Cơ Bản

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

Page 29: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Phần 2

KỸ THUẬT GỠ RỐI (DEBUG)

Page 30: Lập Trinh Labview Cơ Bản

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

Page 31: Lập Trinh Labview Cơ Bản

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

Page 32: Lập Trinh Labview Cơ Bản

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.

Page 33: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Phần 3

LẬP TRÌNH THEO MODUL

Page 34: Lập Trinh Labview Cơ Bản

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

Page 35: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

subVIs

Page 36: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

subVIs

Page 37: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

subVIs

Page 38: Lập Trinh Labview Cơ Bản

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

Page 39: Lập Trinh Labview Cơ Bản

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

Page 40: Lập Trinh Labview Cơ Bản

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

Page 41: Lập Trinh Labview Cơ Bản

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

Page 42: Lập Trinh Labview Cơ Bản

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

Page 43: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Trợ giúp và phân loại đầu cuối

Page 44: Lập Trinh Labview Cơ Bản

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

Page 45: Lập Trinh Labview Cơ Bản

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

Page 46: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Phần 4

LẬP TRÌNH TRONG VI

Page 47: Lập Trinh Labview Cơ Bản

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ó

Page 48: Lập Trinh Labview Cơ Bả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

Page 49: Lập Trinh Labview Cơ Bản

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)

Page 50: Lập Trinh Labview Cơ Bản

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,…)

Page 51: Lập Trinh Labview Cơ Bản

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

Page 52: Lập Trinh Labview Cơ Bản

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

Page 53: Lập Trinh Labview Cơ Bản

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

Page 54: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

KỸ THUẬT LẬP TRÌNH

Page 55: Lập Trinh Labview Cơ Bản

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.

Page 56: Lập Trinh Labview Cơ Bản

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,…

Page 57: Lập Trinh Labview Cơ Bản

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,..

Page 58: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

While Loop

Page 59: Lập Trinh Labview Cơ Bản

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

Page 60: Lập Trinh Labview Cơ Bản

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

Page 61: Lập Trinh Labview Cơ Bản

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

Page 62: Lập Trinh Labview Cơ Bản

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

Page 63: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

For Loop

Page 64: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

For Loop

Số

lần

lặp

Biến

đếm

Page 65: Lập Trinh Labview Cơ Bản

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

Page 66: Lập Trinh Labview Cơ Bản

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

Page 67: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

For Loops – Numeric Conversion

8 bytes 4 bytes

Page 68: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Ví dụ

Page 69: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

So sánh For Loop/ While Loop

Page 70: Lập Trinh Labview Cơ Bản

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

Page 71: Lập Trinh Labview Cơ Bản

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

Page 72: Lập Trinh Labview Cơ Bản

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

Page 73: Lập Trinh Labview Cơ Bản

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

Page 74: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Shift Registers

? ?

? ? Output=2 Output=4

Output=3 Output=5

Page 75: Lập Trinh Labview Cơ Bản

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

Page 76: Lập Trinh Labview Cơ Bản

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.

Page 77: Lập Trinh Labview Cơ Bản

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

Page 78: Lập Trinh Labview Cơ Bản

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

Page 79: Lập Trinh Labview Cơ Bản

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

Page 80: Lập Trinh Labview Cơ Bản

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

Page 81: Lập Trinh Labview Cơ Bản

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:

Page 82: Lập Trinh Labview Cơ Bản

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

Page 83: Lập Trinh Labview Cơ Bản

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

Page 84: Lập Trinh Labview Cơ Bản

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

Page 85: Lập Trinh Labview Cơ Bản

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

Page 86: Lập Trinh Labview Cơ Bả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

Page 87: Lập Trinh Labview Cơ Bản

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

Page 88: Lập Trinh Labview Cơ Bả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

Page 89: Lập Trinh Labview Cơ Bản

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

Page 90: Lập Trinh Labview Cơ Bản

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

Page 91: Lập Trinh Labview Cơ Bản

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

Page 92: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Array

Page 93: Lập Trinh Labview Cơ Bản

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

Page 94: Lập Trinh Labview Cơ Bản

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,…

Page 95: Lập Trinh Labview Cơ Bản

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

Page 96: Lập Trinh Labview Cơ Bản

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

Page 97: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

MỘT SỐ KỸ THUẬT THÔNG DỤNG

Page 98: Lập Trinh Labview Cơ Bản

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.

Page 99: Lập Trinh Labview Cơ Bản

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

Page 100: Lập Trinh Labview Cơ Bản

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

Page 101: Lập Trinh Labview Cơ Bản

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

Page 102: Lập Trinh Labview Cơ Bả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)

Page 103: Lập Trinh Labview Cơ Bản

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.

Page 104: Lập Trinh Labview Cơ Bản

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

Page 105: Lập Trinh Labview Cơ Bản

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:

Page 106: Lập Trinh Labview Cơ Bản

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

Page 107: Lập Trinh Labview Cơ Bản

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

Page 108: Lập Trinh Labview Cơ Bản

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

Page 109: Lập Trinh Labview Cơ Bản

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

Page 110: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Low-Level File I/O VIs

Page 111: Lập Trinh Labview Cơ Bản

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

Page 112: Lập Trinh Labview Cơ Bản

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

Page 113: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Local Variable

Use local variables to pass data within a single VI

Page 114: Lập Trinh Labview Cơ Bản

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

Page 115: Lập Trinh Labview Cơ Bản

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

Page 116: Lập Trinh Labview Cơ Bản

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

Page 117: Lập Trinh Labview Cơ Bản

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

Page 118: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Control References

Page 119: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Control References

Page 120: Lập Trinh Labview Cơ Bản

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

Page 121: Lập Trinh Labview Cơ Bản

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:

Page 122: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

Events Programming

Page 123: Lập Trinh Labview Cơ Bản

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

Page 124: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

USB 6008

Page 125: Lập Trinh Labview Cơ Bản

Lập trình LabVIEW GV: Nguyễn Thanh Tần

THANK YOU!