You are on page 1of 24

- 19 -

CHƯƠNG 3 PHẦN MỀM LABVIEW

3.1. Giới thiệu về LabVIEW


LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) là
một phần mềm máy tính được phát triển bởi National Instruments. LabVIEW dùng
trong hầu hết các phòng thí nghiệm, lĩnh vực khoa học kỹ thuật như tự động hóa,
điều khiển, điện tử, cơ điện tử, hàng không, hóa sinh, điện tử y sinh ở các nước đặc
biệt là Mỹ, Hàn quốc, Nhật Bản.
3.1.1. LabVIEW là gì?
Ngôn ngữ lưu đồ đồ họa của LabVIEW hấp dẫn các kỹ sư và nhà khoa học
trên toàn thế giới như một phương pháp trực giác hơn trong việc tự động hóa các
hệ thống đo lường và điều khiển. Ngôn ngữ lưu đồ kết hợp với I/O gắn liền và điều
khiển giao diện người sử dụng tương tác cùng đèn chỉ báo làm cho LabVIEW trở
thành một sự lựa chọn lý tưởng cho kĩ sư và nhà khoa học.
3.1.2. Các khả năng chính của LabVIEW
LabVIEW được biết đến như là một ngôn ngữ lập trình với khái niệm hoàn
toàn khác so với các ngôn ngữ lập trình truyền thống như ngôn ngữ C, Pascal.
Bằng cách diễn đạt cú pháp thông qua các hình ảnh trực quan trong môi trường
soạn thảo, LabVIEW đã được gọi với tên khác là lập trình G (viết tắt của
Graphical). Hiện tại ngoài phiên bản LabVIEW cho các hệ điều hành Window,
Linux, hãng NI đã phát triển các modul LabVIEW cho máy hỗ trợ cá nhân (PDA).
3.1.3. Môi trường phát triển LabVIEW
Phát triển nhanh với công nghệ Express: sử dụng Express VIs và I/O nhanh
chóng tạo ra các ứng dụng đo lường phổ biến mà không cần lập trình. Hàng nghìn
chương trình minh họa, kiểu module và phân cấp, trợ giúp tích hợp, thư viện giao
diện người sử dụng kéo và thả hàng nghìn chức năng lập sẵn, ngôn ngữ được biên
dịch để thực hiện nhanh hơn. Đến phát triển lớn, theo hướng nhóm (team-
oriented): Ngôn ngữ mở, gỡ rối bằng đồ họa tích hợp, phân phối ứng dụng đơn
giản, nhiều công cụ phát triển cấp cao, công cụ phát triển nhóm, điều khiển mã
- 20 -

nguồn, quản lý đích. Thu thập, phân tích và hiển thị lập sẵn. Thu thập: môi trường
LabVIEW mở tương thích với mọi phần cứng đo với các trợ giúp tương tác, tạo mã
nguồn và khả năng kết nối tới hàng nghìn thiết bị giúp tập hợp dữ liệu dễ dàng. Vì
LabVIEW cung cấp tính kết nối tới hầu hết mọi thiết bị đo, nên bạn có thể dễ dàng
kết hợp những ứng dụng LabVIEW mới vào các hệ thống hiện tại. Bất chấp mọi
yêu cầu của phần cứng, LabVIEW cung cấp một giao diện để kết nối tới I/O một
cách dễ dàng. Thông tin chi tiết có tại trang web ni.com/labVIEWtools.
3.1.4. Các tín hiệu đo được với LabVIEW
Nhiệt độ, sức căng, độ rung, âm thanh, điện áp, dòng, tần số, ánh sáng, điện
trở, xung, thời gian (giai đoạn), tín hiệu số, thu thập tín hiệu từ các thiết bị bên
ngoài như cảm biến nhiệt độ, hình ảnh từ webcam, vận tốc của động cơ, ...
3.1.5. Phân tích
Tính năng phân tích mạnh mẽ, dễ sử dụng là điều không thể thiếu cho ứng
dụng phần mềm. LabVIEW có hơn 500 chức năng lập sẵn để trích xuất thông tin
hữu ích từ dữ liệu thu nhận được, phân tích các phép đo và xử lý tín hiệu. Các chức
năng phân tích tần số, phát tín hiệu, toán học, chỉnh lý đường cong, phép nội suy
cho phép bạn nhận được số liệu thống kê quan trọng từ dữ liệu của mình. Dù thuật
toán cơ bản có phức tạp đến đâu đi nữa thì công cụ phân tích LabVIEW vẫn rất dễ
sử dụng. Hơn 15 Express VIs làm giảm độ phức tạp của việc phân tích phép đo
trong ứng dụng của bạn qua hộp thoại cấu hình tương tác để xem trước kết quả
phân tích. Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đích
nghiên cứu hay mục đích của hệ thống mà người lập trình mong muốn.
3.1.6. Hiển thị
Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm mỹ hơn
nhiều so với các ngôn ngữ khác như Visual Basic, Matlab. Hiển thị dữ liệu bao
gồm các chức năng: trực quan, tạo báo cáo và quản lý dữ liệu. LabVIEW bao gồm
các công cụ trực quan giúp hiển thị dữ liệu hấp dẫn, trong đó có các tiện ích vẽ
biểu đồ và đồ thị cùng các công cụ trực quan 2D, 3D cài sẵn. Nguời sử dụng có thể
nhanh chóng cấu hình lại các thuộc tính của phần hiển thị như màu sắc, kích cỡ
- 21 -

phông, kiểu đồ thị, quay, phóng to thu nhỏ và quay quét (pan) đồ thị khi đang chạy.
Thêm vào đó, ta có thể xem và điều khiển VIs qua Internet bằng LabVIEW. Đối
với việc tạo báo cáo, NI cung cấp một số tùy chọn như công cụ tạo tài liệu, báo cáo
dạng HTML, báo cáo dạng Word/Excel và báo cáo tương tác với NI DIA.

Hình 3.1 Khả năng hiển thị của phần mềm Labview
3.1.7. Điều khiển
LabVIEW đã tích hợp nhiều công cụ và tính năng hơn giúp kỹ sư điều khiển
tự động dễ dàng thực hiện các bài toán về điều khiển. Cho phép thực hiện các thuật
toán điều khiển như PID, Logic mờ (Fuzzy), một cách nhanh chóng thông qua các
chức năng tích hợp sẵn trong LabVIEW. Cho phép kết hợp với nhiều ngôn ngữ
truyền thống như C, C++.
3.1.8. Giao tiếp với thiết bị ngoại vi
Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua
các cổng giao tiếp: RS232, RS485, USB, PCI, Enthernet
- 22 -

Hình 3.2 Khả năng giao tiếp của phần mềm

3.2. Những khái niệm cơ bản của LabView


3.2.1. VI (Vitual Instrument) - Thiết bị ảo
Lập trình Labview được thực hiện trên cơ sở là các thiết bị ảo (VI). 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 tương tự như các hàm trong lập trình
bằng ngôn ngữ.
3.2.2. Front Panel và Block Diagram
Một chương trình trong LabView gồm hai 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à các biểu tượng kết nối (Icon/Connector).
3.2.2.1 Front Panel
Front panel là một panel tương tự như panel của thiết bị thự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
- 23 -

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ộ hiển 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.

Biểu tượng

Chú thích đồ thị

Chú thích thước

Hình 3.3 Front Panel của chương trình Labview

3.2.2.2 Block Diagram


Block diagram của một VI là một sơ đồ được xây dựng trong 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
trúc lệnh để chương trình thực hiện. Block Diagram là một mã nguồn đồ họa của
một 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.
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).
- 24 -

Hàm chia

Hình 3.4 Block Diagram của chương trình LabVIEW

3.2.3. Icon & Connector


Icon (biểu tượng): là biểu tượng của VI, được sử dụng khi từ một VI muốn sử
dụng chức năng của một VI khác. 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 (đầu 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ó một Icon mặc định hiển thị
trong bảng Icon ở góc trên bên phải cửa sổ Front Palette và Block Diagram.
Khi các VI được phân cấp và module hóa thì ta có thể dùng chúng như các
chương trình con. Do đó để xây dựng một 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 thành một
khối để thực thi những công việc cụ thể trong một chương trình.
3.3. Các kỹ thuật lập trình trên LabVIEW:
Khác với những ngôn ngữ lập trình khác, ngôn ngữ lập trình LabVIEW ngoài
những menu quen thuộc giống như những ngôn ngữ khác. LabVIEW còn sử dụng
các bảng: Tools Palette, Controls Palette, Function Palette, chính những bảng này
làm cho LabVIEW khác với các ngôn ngữ sử dụng những câu lệnh rườm rà khó
nhớ. Các bảng đó cung cấp các chức năng để người sử dụng có thể tạo và thay đổi
trên Front Panel và Block Diagram bằng các biểu tượng, các hình ảnh trực quan
giúp cho việc sử dụng trở nên dễ dàng, linh động hơn.
- 25 -

3.3.1. Tool palette


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.
3.3.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 đầy đủ
được minh họa như hình bên đưới. Để mở bảng controls palette ta vào menu View,
chọn controls 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 điều khiển này, người sử dụng có thể chọn các bộ thiết bị chuẩn do hãng sản
xuất cung cấp ví dụ 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.

Hình 3.5 Controls palette


- 26 -

Trên bảng controls palette thể hiện khá phong phú các bộ điều khiển khác nhau
như trên hình. Ta có thể sử dụng tất cả các thanh phần của bảng controls, ở hình
trên mục Express đang được mở, sau đây ta xem qua một số bộ điều khiển điển
hình của LabVIEW
 Numeric controls / Indicators
Bộ công cụ này dùng để hiện thị và điều khiển dữ liệu dạng số trong chương
trình LabVIEW
 Boollean controls /Indicators
Bộ công cụ này cung cấp hai 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ị.
 String & Path
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 hoặc chỉ đường dẫn đến các file cần hiển thị
3.3.3. Function 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 thiết kế để tạo dựng nên các khối lưu đồ. Với
bảng Function Palette, người lập trình thực hiện các lệnh khác nhau bằng các lưu
đồ như: các phép tính số học, các biểu thức toán học, các vòng 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 đó bảng này 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.
- 27 -

3.4. Các kiểu dữ liệu


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:
3.4.1. Variables (biến)
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 địa phương (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 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 đó 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
- 28 -

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
- Local variable: cho phép người sử dụng đọc hoặc viết thông tin lên một 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 địa phương, chọn Local Variable từ bảng Structs & Constant. Khi sử
dụng biến địa phương cần chú ý một số thông tin sau
 Các biến địa phương 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 địa phương để truy cập tới một điều khiển mà không cùng trên
một lược đồ.
 Ta có thể có rất nhiều các biến địa phương 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 địa phương
 Giống như biến toàn cục, bạn có thể sử dụng biến địa phương không có
một “dòng dữ liệu” hợp lệ khác sử dụng.
3.4.2. String
Kiểu string (chuỗi) là một kiểu dữ liệu dạng chuỗi 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 dưới.
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 như: 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
- 29 -

từ đại diện cho chúng trên Front Panel. Sau đây là một số từ thay thế (Escape
Code)
3.4.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 một 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
3.4.3.1. 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.
3.4.3.2. 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
- 30 -

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.4.4. 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).
3.5. SubVI và cách xây dựng SubVI
3.5.1. Khái niệm SubVI
Khi 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 một 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 chương
trình khác như C++… Trong một chương trình labVIEW, không bị hạn chế số
- 31 -

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.
3.5.2. 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
3.5.2.1. Tạo một SubVI từ một VI
Các SubVI được sử dụng thông qua Icon và Conector của nó. Icon của một VI
là một biểu tượng đồ họa. Conetor 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à Conector cho VI đó.
Để tạo Icon, ta bấm đúp chuột trái vào biểu tượng Icon ở góc bên 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ặt đị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 - Trắng
(Black-White), nhưng nó có thể bấm vào mục chọn màu để chuyển sang 16 màu
hoặc 256 màu. Ta có thể copy một Icon thành một Icon đen – trắng, và ngược lại.

Hình 3.6 Icon mặc định và Icon sau khi được tạo
- 32 -

Xác định kiểu Connector Terminal: SubVI nhận dữ liệu tới và gửi dữ liệu
thông qua các Terminal ở trong ô vuông Connector của nó. Ta có thể xác định các
mối liên hệ bằng cách chọn số Terminal cần thiết cho VI và gán một Front Panel
Control hoặc Indicator cho mỗi Terminal. Nếu Connector của VI chưa xuất hiện ở
góc trái của Front Panel thì ta chọn Show Connector từ menu của Icon. Connector
thay thế Icon ở góc bên phải phía trên của Front Panel. Kiểu Terminal ban đầu
được chọn cho VI có số các Terminal bên phải của Connector bằng số Indicator
trên Front panel và số Terminal bên trái Connector bằng số Control trên Front
Panel. Nếu điều này không thể có được thì phần mềm sẽ chọn kiểu Terminal phù
hợp gần nhất. Mỗi hình chữ nhật trong Connector sẽ tương ứng với một đầu vào
hoặc đầu ra từ VI.
Ta có thể chọn một kiểu Terminal khác trong menu Pattern. Ta có thể thêm
hoặc loại bỏ bớt Terminal bằng cách chọn Add Terminal hoặc chọn Remove
Terminal. Sau khi đã chọn được Connector Terminal Pattern ta phải gán các Front
Panel Control và Indicator cho các Terminal theo các bước sau:
- Bấm vào một Termianl của Connector, sau đó bấm vào một Front Panel Control
hoặc Front Panel Indicator muốn gán cho Terminal đã chọn. Một khung bao
xung quanh Front Panel của Control hoặc Indicator được chọn xuất hiện và
nhấp nháy.
- Bấm vào một vùng mở của Front Panel và bấm chuột, khung nhấp nháy biến
mất. Termianl và Front Panel Control hoặc Indicator đã chọn được gắn với
nhau.

Hình 3.7 Cách thức tạo Connector của một VI


- 33 -

3.5.2.2. Tạo một SubVI từ một phần của VI


Để biến đổi một phần của VI thành một SubVI được gọi từ VI khác, chọn một
phần trong Block Diagram của VI, sau đó chọn Edit\Create SubVI. Phần đó sẽ tự
động thành một SubVI. Các Control và Indicator được tự động khai báo cho SubVI
mới. SubVI mới tự động nối dây với các đầu dây hiện có và một Icon của SubVI sẽ
thay thế phần được chọn trong Block Diagram của VI gốc. Đối với SubVI này ta
có thể điều chỉnh được Icon & Connector tương tự như trên.
3.6. Kỹ thuật lập trình nâng cao trong LabVIEW
3.6.1. Liên kết thiết bị ảo với thiết bị phần cứng
3.6.1.1. Thư viện DAQ trong LabVIEW
Thư viện DAQ VIs nằm trong Panel Functions  Data Acquisition gồm các
lớp khác nhau của DAQ. DAQ được chia thành 6 lớp cơ bản sau:
- Analog Input VIs
- Analog Output VIs
- Digital I/O Vis
- Counter VIs
- Calibration and Configuration VIs
- Signal Conditioning VI

Hình 3.8 Thư viện DAQ


- 34 -

Các DAQ được chia thành các mức khác nhau tùy theo mức độ tác động của
chúng. Các DAQ được chia thành 4 mức:
* Easy VIs
* Intermadiate VIs
* Utility VIs
* Advance VIs
Ngoài ra, LabView còn có thư viện cho các hệ thống Card chuyên dụng của hãng
NI.

Hình 3.9 Thư viện Advanced và Thư viện Instrument I/O


- 35 -

Để đưa dữ liệu vào/ra các cổng song song, nối tiếp của máy tính ta có thể sử
dụng các VIs vào ra của LabVIEW.
3.6.2. Cấu trúc cơ bản của DAQ
Thiết bị ảo được xem như là một công cụ liên kết giữa thiết bị phần cứng và
phần mềm của thiết bị đo lường, được tạo ra bởi người sử dụng với các tiêu chuẩn
của máy tính. Hãng National Instruments đã phát triển phần cứng và phần mềm
điều khiển để thu nhận dữ liệu (DAQ), phân tích, biểu diễn và lưu giữ dữ liệu ở các
dạng khác nhau. Phần mềm điều khiển là một chương trình nối ghép giữa thiết bị
phần cứng và các chức năng mở rộng của các thiết bị cơ bản. Phần mềm ứng dụng
có thể là LabVIEW, LabWindows/CVI, ComponentWorks và các công cụ đo
lường cơ bản, mở rộng để hiển thị và phân tích các kết quả của thiết bị ảo.
Thiết bị ảo được sử dụng để tạo ra hệ thống theo yêu cầu của kiểm tra, đo
lường và kỹ thuật tự động hóa, phù hợp với phần cứng nối ghép và phần mềm
thành phần. Nếu hệ thống thay đổi, ta có thể thay đổi thiết bị ảo mà không cần phải
thay đổi phần mềm và phần cứng.
3.6.2.1. DAQ (data acquisition)
Nhiệm vụ cơ bản của tất cả các hệ thống đo lường là đo và tạo ra các tín hiệu
vật lý thực tế. Điểm khác biệt lớn nhất của các thiết bị là phương thức truyền giữa
thiết bị đo lường và máy tính. Thiết bị DAQ đa năng là thiết bị kết nối tới máy tính
và nó cho phép truy xuất tín hiệu số. Thiết bị DAQ cho phép liên kết trực tiếp với
bus của máy tính thông qua khe cắm mở rộng. Một vài thiết bị DAQ ở bên ngoài
cho phép liên kết với máy tính thông qua cổng nối tiếp, IEEE 488 (GPIB), hoặc
cổng ethernet. Thiết bị DAQ cho phép biến đổi tín hiệu và thành tín hiệu số và gửi
chúng tới máy tính (tới phần mềm bên trong máy tính). Phần mềm ứng dụng sử
dụng các dữ liệu đó để đo lường, điều khiển và hiển thị dữ liệu bên trong máy tính,
đồng thời gửi dữ liệu đó trở lại thiết bị đo lường. Phương pháp này có tính mềm
dẻo cao vì có thể sử dụng một thiết bị phần cứng cho nhiều dạng kiểm tra và có thể
phát triển thêm các ứng dụng khác cho các dạng kiểm tra. Thiết bị DAQ đa năng
rất thích ứng sử dụng để số hóa dữ liệu của thiết bị đo lường.
- 36 -

Tuy nhiên, một số thiết bị đo lường nằm ngoài máy tính không thể tồn tại độc
lập, mà chúng cần được điều khiển và giám sát thông qua việc liên kết với máy
tính. Đối với mỗi bộ công cụ đo lường cụ thể sẽ có những giao thức cụ thể với máy
tính tùy theo việc chúng liên kết với máy tính thông qua Ethernet, Serial, GPIB
hoặc VXI.

Hình 3.10 Thiết bị DAQ


Trên hình 3.10, trình bày hai dạng lựa chọn của thiết bị DAQ. Trong lựa chọn
A, hệ thống thiết bị DAQ nằm bên trong máy tính. Trong lựa chọn B, thiết bị DAQ
nằm ở bên ngoài máy tính. Với bảng mạch mở rộng nằm ở bên ngoài ta có thể xây
dựng hệ thống DAQ liên kết với máy tính mà không cần đến khe cắm mở rộng, ví
dụ như máy tính xách tay. Khi này, máy tính và modul DAQ giao tiếp với nhau
thông qua nhiều loại kênh khác nhau như: Cổng song song, cổng nối tiếp, Ethernet.
Đây là hệ thống thực hiện thu nhận dữ liệu từ xa và điều khiển ứng dụng.
- 37 -

Hình 3.11 Các dạng lựa chọn của thiết bị DAQ


Trên hình 3.27 không thể hiện lựa chọn thứ 3, lựa chọn này sử dụng bus
PCMCIA (Personal Computer Memory Card International Assoaciation) có trong
một số máy tính xách tay. Một thiết bị PCMCIA liên kết với máy tính và truyền tín
hiệu tới bo mạch như trong sự lựa chọn A. Đây chính là sự linh động và chặt chẽ
của hệ thống DAQ.
3.6.2.2. Mối quan hệ giữa LabVIEW với thiết bị DAQ
Máy tính thu nhận dữ liệu thô và chuyển đổi nó thành dạng chuẩn mà người sử
dụng có thể hiểu được. Phần mềm mã hóa dữ liệu thành dạng có thể thể hiện trong
đồ thị, biểu đồ hoặc trong file của report. Phần mềm không chỉ tác động vào hệ
thống DAQ mà còn có tác động đối với thiết bị DAQ khi chúng thu nhận dữ liệu,
cũng như là đối với các kênh khi chúng nhận dữ liệu.
Đặc trưng cho phần mềm của DAQ bao gồm bộ điều khiển và phần mềm ứng
dụng. Những bộ điều khiển chỉ tác động đối với một loại thiết bị nhất định, chúng
bao gồm các lệnh điều khiển chức năng thiết bị. Phần mềm ứng dụng gửi các lệnh
tới bộ điều khiển, như khi có dữ liệu chúng thực hiện hai công việc: đọc dữ liệu
vào và đưa dữ liệu ngược trở lại khi có kết quả phân tích và hiển thị dữ liệu.
LabVIEW bao gồm các VIs cho phép thay đổi cấu trúc dữ liệu nhận được và
gửi dữ liệu tới thiết bị DAQ. LabVIEW DAQ VIs có thể gọi tới các NI-DAQ ghép
nói với chương trình ứng dụng (API – Application Program Interface). Trong NI-
- 38 -

DAQ API chứa các công cụ và các hàm cơ bản để liên kết với phần cứng của thiết
bị DAQ.
NI-DAQ là phần mềm điều khiển của thiết bị NI-DAQ, nó thiết lập giao tiếp
giữa LabVIEW với thiết bị đo lường. Hãng NI chỉ cung cấp phần mềm điều khiển
cho liên kết với một số bộ công cụ đo lường đặc biệt, bao gồm: NI-488.2, NI-VISA
và IVI. Mối quan hệ giữa LabVIEW, phần mềm điều khiển và phần cứng đo lường.
LabVIEW VIs đưa tới phần mềm điều khiển để nối với phần cứng đo lường.

LabVIEW VIs

Phần mềm điều khiển

Phần cứng đo lường

3.6.2.3. Cấu trúc cơ bản của DAQ


Ngày nay, các nhà khoa học và các kỹ sư sử dụng máy tính PC với PCI,
PXI/CompactPCI, PCMCIA, USB, IEEE 1394, ISA, cổng nối tiếp, cổng song song
để thu nhận dữ liệu trong phòng thí nghiệm, kỹ thuật tự động hóa, thử nghiệm và
đo lường. Nhiều ứng dụng sử dụng thiết bị thu nhận dữ liệu và chuyển chúng tới
bộ nhớ máy tính. Mức độ chính xác của kết quả từ hệ thống thu nhận dữ liệu tới
máy tính phụ thuộc vào mỗi phần tử trong hệ thống (Hình 3.29).

Hình 3.12 Các phần tử cơ bản trong hệ thống DAQ


- 39 -

Các thành phần của hệ thống bao gồm:


- Máy tính PC (Personal Computer).
- Bộ chuyển đổi (Transducers).
- Điều hòa đường truyền tín hiệu (Signal Conditioning).
- Phần cứng DAQ (DAQ Hardware).
- Phần mềm (Software).
3.6.2.4. Máy tính PC
Ngày nay, máy tính PC được trang bị những tiêu chuẩn mới là bus PCI và
USB. Cùng với sự phát triển của PCMCIA, USB và IEE 1394 thì hệ thống DAQ
PC có nhiều sự lựa chọn linh động hơn trước đây. Bởi vì DAQ sử dụng truyền nối
tiếp RS - 232 hoặc RS - 485 bi hạn chế bởi tốc độ đường truyền dữ liệu. Khi lựa
chọn thiết bị DAQ và cấu trúc bus cần phải lưu ý đến phương thức truyền để khả
năng truyền dữ liệu của máy tính không làm ảnh hưởng tới hệ thống DAQ. Máy
tính PC có chương trình hỗ trợ I/O và truyền các ngắt.
Ngày nay, các máy tính PC đều có thể truy xuất trực tiếp bộ nhớ (DMA –
Direct memory access), điều này làm tăng tốc độ truyền khi truyền dữ liệu từ phần
cứng chuyên dụng tới bộ nhớ máy tính. Phương thức truyền đó giúp bộ xử lý
không bị nghẽn khi di chuyển dữ liệu và trong các thao tác xử lý phức tạp. Việc
chọn phương thức truyền ảnh hưởng đến năng suất truyền của thiết bị DAQ. Nhân
tố giới hạn đôi khi chính là thiết bị phần cứng, thời gian truy nhập đĩa và các phân
vùng của dĩa cứng làm ảnh hưởng lớn tới dòng dữ liệu và tốc độ truyền dữ liệu.
Thêm vào đó, đĩa cứng phải có đủ khoảng trống để hệ điều hành chạy và thực hiện
sắp xế dữ liệu vào đĩa. Ứng dụng đòi hỏi xử lý thời gian thực của tín hiệu tần số
lớn cần có tốc độ xử lý cao, bộ xử lý 32-bit kết hợp với bộ đồng xử lý hoặc bộ xử
lý chuyên dụng như là bo mạch DSP (digital signal processing). Tuy nhiên, với
những ứng dụng chỉ cần thực hiện việc đọ dữ liệu ra trong 1 hoặc 2 giây thì những
máy tính cấp thấp cũng có thể đáp ứng.
3.6.2.5. Bộ chuyển đổi và điều hòa đường truyền tín hiệu
- 40 -

Bộ chuyển đổi có khả năng chuyển đổi hiện tượng vật lý thành tín hiệu điện
đưa đến DAQ của hệ thống đo lường. Trong một số trường hợp, tín hiệu điện nhận
được tương ứng với tín hiệu điện nhận được tương ứng với tín hiệu vật lý của thiết
bị, tín hiệu điện nhận được từ bộ chuyển đổi chính là tham số đánh giá dải thông
tin đầu vào của thiết bị DAQ.
Điều hòa đường truyền tín hiệu giúp khuếch đại tín hiệu mức thấp, tách và lọc
tín hiệu để có kết quả đo chính xác. Ngoài ra, một số bộ chuyển đổi sử dụng điện
áp đầu và làm tín hiệu kích để tạo ra điện áp trên đầu ra. Điều hòa đường truyến tín
hiệu được sử dụng một cách đa dạng trong những ứng dụng quan trọng.
Một ứng dụng phổ biến của điều hòa đường truyền tín hiệu là khuếch đại. Tín
hiệu mức thấp được khuếch đại lên để tăng tốc độ phân giải và giảm bớt nhiễu. Để
có độ chính xác cao, điều đường truyền tín hiệu khuếch đại tín hiệu lên để đảm bảo
đầu vào bộ ADC.
Một ứng dụng khác của điều hòa đường truyền tín hiệu là tách tín hiệu từ máy
tính. Hệ thống sẽ tách các tín hiệu chuyển đổi bị hỏng từ máy tính khỏi điều hòa
đường truyền tín hiệu. Tách tín hiệu còn giúp việc đọc tín hiệu từ thiết bị DAQ vào
không bị thay đổi bởi các tín hiệu khác. Sử dụng chức năng tách tín hiệu của modul
điều hòa đường truyền tín hiệu giúp tạo ra tín hệu chính xác cho hệ thống.
Multiplexing (dồn) là một kỹ thuật phổ biến của các dụng cụ đo lường tín hiệu,
phần cứng của điều hòa đường truyền tín hiệu của tín hiệu anlog cung cấp
Multiplexing. Modul SCXI của tín hiệu analog có thể có tới 3.072 tín hiệu đo
lường với một thiết bị DAQ. Đây là một điểm đặc biệt trong thiết bị DAQ.
Filter: Kết quả của bộ lọc là loại bỏ các tín hiệu không cần thiết khỏi tín hiệu
của thiết bị đo lường. Đối với loại tín hiệu một chiều, bộ lọc làm suy giảm các tín
hiệu tần số thấp để tăng độ chính xác cho các thiết bị đo. Ví dụ, nhiều modul SCXI
sử dụng 4Hz và 10kHz làm mức cho qua bộ lọc để loại trừ tín hiệu nhiễu trước khi
đưa tín hiệu đi số hóa bằng thiết bị DAQ. Đối với tín hiệu xoay chiều, thường phải
sử dụng các dạng bộ lọc khác như bộ lọc răng cưa. Một số thiết bị cơ bản được
thiết kế cho tín hiệu đo lường xoay chiều như: NI 455x, NI 445x và NI 447x.
- 41 -

Tuyến tính hóa: Chức năng phổ biến của điều hòa đường truyền tín hiệu là
tuyến tính hóa. Nhiều bộ chuyển đổi có đáp ứng không tuyến tính đối với sự thay
đổi của đầu vào. Hãng NI đã tạo ra NI-DAQ, LabVIEW, Measurement Studio và
VirtualBench để tạo ra sự tuyến tính hóa đều đặn.
Trong thực tế, tín hiệu đo lường chịu ảnh hưởng cảu môi trường xung quanh
làm thay đổi kết quả đo lường. Do đó, modul điều hòa đường truyền tín hiệu là
không thể thiếu trong hệ thống DAQ.
3.7. Phần cứng DAQ
Đầu vào analog: Đặc điểm kỹ thuật của đầu vào analog trên đa số sản phẩm
DAQ cho biết số của kênh, tốc độ lấy mẫu, mức lượng tử hóa và khoảng đầu ra.
Tốc độ lấy mẫu: Khoảng lấy mẫu là tham số xác định cho quá trình chuyển
đổi. Tốc độ lấy mẫu lớn thì sẽ có được nhiều dữ liệu trong một đon vị thời gian, do
đó trong trường hợp này biểu diễn tín hiệu gốc tốt hơn.
Multiplexing (Dồn): đây là một kỹ thuật phổ biến trong các thiết bị đo lường
tín hiệu.
Độ phân giải: Độ phân giải của thiết bị DAC biểu thị bằng số bit tín hiệu số
đầu ra. Số bit càng nhiều thì sai số lượng tử hóa càng nhỏ. Độ chính xác càng cao.
Độ rộng mã hóa: Thiết bị DAQ có dải, độ phân dải và những tiện ích sẵn có
thể xác định được sự thay đổi rất nhỏ của điện áp. Sự thay đổi trong điện áp được
thể hiện ở bít có trọng số nhỏ nhất (LSB) cuả giá trị digital và được gọi là độ rộng
mã hóa.
Đầu ra analog: Đầu ra analog thường được bố trí phụ thuộc vào tác nhân kích
thích của hệ thống DAQ. Đặc điểm kỹ thuật của bộ DAC (digital - to - anlog
converter) quyết định chất lượng của tín hiệu đầu ra sản phẩm như: thời gian xác
lập, tốc độ chuyển đổi và độ phân giải đầu ra.
Thời gian xác lập: Thời gian xác lập là thời gian từ khi tín hiệu số được đưa
vào đến khi dòng điện hoặc điện áp đầu ra ổn định.
Tốc độ chuyển đổi: Tốc độ chuyển đổi là giá trị tốc độ lớn nhất của DAC để
trên đầu ra có tín hiệu. Thời gian xác lập và tốc độ chuyển đổi trong quá trình làm
- 42 -

việc quyết định sự thay đổi của mức tín hiệu đầu ra DAC. Vì vậy, DAC có thời
gian xác lập nhỏ và tốc độ chuyển đổi lớn có thể tạo ra tín hiệu cao tần, bởi vì thời
gian nhỏ cần thiết cho việc thay đổi chính xác mức điện áp đầu ra.
Độ phân giải đầu ra: Độ phân giải là tỉ số giữa giá trị cựa tiểu với giá trị cực
đại của điện áp đầu ra. Về trị số tỉ số này tương ứng tỉ số giá trị cực tiểu đối với giá
trị cực đại của tín hiệu số đầu vào.
Vào, ra tín hiệu số (DIO): Vào ra tín hiệu số thường được ghép nối với hệ
thống PC DAQ tới các quy trình điều khiển, tạo ra các mô hình kiểm tra và gửi
chúng tới thiết bị ngoại vi. Trong một số trường hợp, tham số quan trọng gồm số
đường digital sử dụng, tốc độ lấy dữ liệu từ dữ liệu digital nguồn trên các đường đó
và khả năng truyền của các đường đó. Ứng dụng phổ biến nhất của DIO là truyền
dữ liệu giữa máy tính và các thiết bị như dữ liệu bộ xử lý, máy in.
3.8. Phần mềm (Software)
Phần mềm chuyển đổi giữa PC và thiết bị phần cứng DAQ giúp thu nhận dữ
liệu, phân tích và hiển thị. Phần cứng DAQ không có phần mềm thì không có tác
dụng và phần cứng DAQ với phần mềm chất lượng kém thì hầu như không có tác
dụng. Đa phần các ứng dụng DAQ đều sử dụng phần mềm điều khiển. Phần mềm
điều khiển là lớp phần mềm tác động trực tiếp lên thanh ghi của phần cứng DAQ
để quản lý hoạt động của thanh ghi và hợp thành một thể thống nhất với tài nguyên
của máy tính, cũng như là với các ngắt xử lý, DMA và bộ nhớ.
Phần mềm ứng dụng cũng như phần mềm điều khiển là để điều khiển phần
cứng DAQ. Lợi thế của phần mềm ứng dụng là chúng có thể phân tích và làm tăng
hiệu quả của phần mềm điều khiển. Phần mềm ứng dụng kết hợp điều khiển thiết
bị đo lường (GPIB, RS-232, and VXI) và thu nhận dữ liệu. Phần mềm ứng dụng
truyền thống là chương trình C, LabVIEW, phần mềm ứng dụng với các chương
trình đồ họa giúp phát triển hoàn thiện thiết bị đo lường, kết quả thu được và điều
khiển ứng dụng.

You might also like