lOMoARcPSD| 58931565
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT TP. HỒ CHÍ MINH
KHOA CƠ KHÍ ĐỘNG LỰC
MÔN HỌC: ỨNG DỤNG MÁY TÍNH
Đề tài: ĐIỀU KHIỂN THIẾT BỊ THÔNG
QUA ESP 8266
GVHD: TS. Nguyễn Thành Tuyên
SVTH: Lương Thanh
MSSV: 20845266
SVTH: Nguyễn Ngọc Duy
MSSV: 19545005
Tp. Hồ Chí Minh, tháng 7 năm 2024
lOMoARcPSD| 58931565
Lời cảm ơn
Để hoàn thành tiểu luận môn học này thì chúng em xin cảm ơn chân thành đến
thầy Khoa khí động lực đã truyền đạt cho chúng em những kiến thức kinh
nghiệm quý báu trong suốt quá trình học tập và thực tập tại trường.
Chúng em xin gửi lời cảm ơn chân thành đến thầy TS. Nguyễn Thành Tuyên
đã hướng dẫn giải đáp những thắc mắc trong thời gian thực hiện tiểu luận này.
Nhưng thời gian kiến thức cũng như kinh nghiệm n hạn chế nhiều buộc
phải ko thể tránh khỏi những sai st trong quá trình thực hiện tiểu luận. Kính mong
được sự thông cảm và gp ý của quý Thầy Cô để giúp cho tiểu luận được thành công
hơn nữa.
Xin chân thành cảm ơn !
TP Hồ Chí Minh, tháng 7 năm 2024
Sinh viên
lOMoARcPSD| 58931565
Chương 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1. Đặt vấn đề
Ngày nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên nhu cầu
về trao đổi thông tin giải trí, nhu cầu về điều khiển các thiết bị từ xa, ngày càng cao.
những hệ thống y cáp phức tạp lại không thể đáp ứng nhu cầu này, nhất
những khu vực chật hẹp, những nơi xa xôi, trên các phương tiện vận chuyển, vậy
công nghệ không dây đã ra đời và phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con
người trong đời sống hằng ngày.
Trong những năm gần đây công nghệ truyền nhận dữ liệu không y đang c
những bước phát triển mạnh mẽ, gp công lớn trong việc phát triển các hệ thống điều
khiển, giám sát từ xa, đặc biệt các hệ thống thông minh. Hiện nay, c khá nhiều
công nghệ không truyền nhận dữ liệu không y như RF, Wifi, Bluetooth, NFC. Trong
đ, Wifi là một trong những công nghệ được phát triển nhanh luôn được cải tiến
để nâng cao tốc độ cũng như khả năng bảo mật.
Việc ra đời ngôn ngữ đồ họa LabVIEW c một sức hút và tiềm lực thật hấp dẫn. Tính
trực quan của ngôn ngnày nằm chỗ thay phải viết những dòng lệnh bằng chữ
số như các ngôn ngữ lập trình truyền thống VB, C, C++…thì các câu lệnh của
LabVIEW được lập trình bằng việc kéo thả các Icon nối dây trong môi trường phát
triển nguồn. Nhìn vào một đoạn code của LabVIEW chúng ta như đứng trước một
bức tranh với các họa tiết là các icon, các SubVI, các dây nối c màu sắc sặc sỡ. Bên
cạnh đ, một khi bạn vạch ra biểu đồ tiến trình (Flowchart) cho chương trình của bạn
như thế nào thì môi trường LabVIEW cho phép bạn cứ như bê nguyên xi Flowchart
đ vào môi trường G Code.
Do đ, chúng em quyết định thực hiện đề tài: “Điều khiển thiết bị qua ESP8266 bằng
LabVIEW”. Đề tài ứng dụng công nghệ Wifi phổ biến trên nhiều thiết bị và viết bằng
phần mềm Labview và IDE đặc biệt điểm mới của đề tài so với các sản phẩm hiện c
điều khiển thông qua hệ điều hành Android giúp tận dụng những thiết bị sử dụng
hệ điều hành Android c sẵn của người ng giúp giảm giá thành sản phẩm, ngoài ra
với màn hình hiển thị lớn của điện thoại cho phép hiển thị nhiều thông tin hơn. 1.2.
Mục tiêu
Thiết kế hệ thống điều khiển c thiết bị như đèn, động thông qua board
mạch ESP8266. Hệ thống được lập trình thông qua phần mềm LabView và IDE.
Tìm hiểu giao thức truyền nhận dữ liệu giữa theo giao thức UART.
lOMoARcPSD| 58931565
1.3. Đ i tố ượng nghiên cứu
Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn ctìm
kiếm thông tin liên quan, chúng em xác định các đối tượng cần nghiên cứu là:
Công nghệ Wifi: khái niệm về Wifi, các đặc điểm của công nghệ Wifi, liên kết
vật lý trong công nghệ Wifi, các chế độ kết nối, cách thức hoạt động. Nghiên
cứu Module ESP8266: các thông skỹ thuật, nguyên lý hoạt động của module
ESP8266.
Nghiên cứu phần mềm lập trình IDE, LabVIEW.
Nghiên cứu về board ESP 8266
Nghiên cứu viết code điều khiển các thiết bị.
1.4. Giới hạn về đề tài
Đề tài chỉ giới hạn trong việc điều khiển các thiết bị giả lập là đèn và động
DC thông qua wifi ESP8266 và mạch L298, hiển thị kết quả trạng thái hoạt động của
các thiết bị thông qua các đèn trên Labview.
1.5. Nội dung đ tàiề
Chương 1: Tổng quan về đề tài
Chương 2: Phần mềm lập trình LabVIEW.
Chương 3: Tính toán thiết kế hệ thng
Chương 4: Kết quả, kết luận, đánh giá
Chương 2
TỔNG QUAN VỀ PHẦN MỀM LABVIEW
2.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ử, điện tử, hàng không, ha sinh, điện tử y sinh các nước đặc biệt Mỹ,
Hàn quốc, Nhật Bản.
2.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 điều khiển. Ngôn ngữ lưu đồ kết hợp với I/O gắn liền điều khiển giao
diện người sdụng tương tác cùng đèn chỉ 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.
lOMoARcPSD| 58931565
2.1.2. Các khả năng chính của LabVIEW
LabVIEW được biết đến như 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 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, ng NI đã phát triển các modul
LabVIEW cho máy hỗ trợ cá nhân (PDA).
2.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 I/O nhanh chng
tạo ra các ứng dụng đo lường phổ biến 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 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 (teamoriented): 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ã nguồn, quản lý đích. Thu thập, phân
tích hiển thị lập sẵn. Thu thập: môi trường LabVIEW mở ơ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ễ ng. Thông tin chi tiết c tại trang web
ni.com/labVIEWtools.
2.1.4. 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 quan trọng từ dữ liệu của mình. thuật toán 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 quphân tích. phỏng
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.
lOMoARcPSD| 58931565
2.1.5. 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 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ỡ phông, kiểu đồ thị, quay,
phng to thu nhỏ quay quét (pan) đồ thị khi đang chạy. Thêm vào đ, ta c thể
xem đ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 2.1 Khả năng hiển thị của phần mềm Labview
2.1.6. Đ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++.
lOMoARcPSD| 58931565
2.1.7. Giao tiếp với thiết bị ngoại vi
Giao tiếp với c thiết bngoạ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
Hình 2.2 Khả năng giao tiếp của phần mềm
2.2. Những khái niệm cơ bản của LabView
2.2.1. VI (Vitual Instrument) - Thiết bị ảo
Lập trình Labview được thực hiện trên sở các thiết bị ảo (VI). Các đối ợ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ữ.
2.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 giao diện dạng đồ khối cung cấp nguồn (Block
Diagram) và các biểu tượng kết nối (Icon/Connector).
2.2.2.1 Front Panel
Front panel một panel tương tự như panel của thiết bị thực tế. Ví dcác nút bấm,
nút bật, các đồ thị và các bộ điều khiển. Từ Front Panel người dùng chạy và quan sát
kết quả c thể dùng chuột, bàn phím để đưa dữ liệu vào sau đ cho chương trình chạy
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 các đối tượng được đặt trên Front Panel để cung cấp dữ liệu
lOMoARcPSD| 58931565
cho chương trình. N ơ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.ӫ
Hình 2.3 Front Panel của chương trình Labview
2.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 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).
lOMoARcPSD| 58931565
Hình 2.4 Block Diagram của chương trình LabVIEW
2.2.3. Icon & Connector
Icon (biểu tượng): 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 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 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 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.
2.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 khnhớ. 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
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.
lOMoARcPSD| 58931565
2.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 ợng của công cụ
đ. Nếu thiết lập chế đtự động lựa chọn công cụ 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.
2.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) các bộ hiển thị (Indicator). Bảng điều khiển đầy đủ được
minh họa như hình 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ị 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 cthể 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 2.5 Controls palette
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
lOMoARcPSD| 58931565
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ị True 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 c dụng khi các thiết bị đđược xác lập chế độ các Control.
Còn nếu chế độ c Indicator thì giá trị không thay đổi chúng chỉ các thiết
bị hiển thị.
String & Path
Các điều khiển này ng để nhập 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ị
2.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 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
sử dụng lại các hàm, chức năng 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.
2.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 dạng số cthể đượ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:
2.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ử 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 biến toàn cục (global
variables) và các biến địa phương (local variables).
lOMoARcPSD| 58931565
- Global variables (biến toàn cục): Biến toàn cục được sử dụng để thực hiện
côngviệc truyền và 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 functionsau đ đặ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ú ý đố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 Boolean. Tuy nhiên, khi ta sử dụng biến toàn cục để lưu trữ xử
lý các dữ liệu ớ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 bộ nhớ mỗi khi c biến đ gọi tới. Khi sử dụng 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 “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 được thực hiện song song, tta 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
trongnhữ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ểnhoặc thiết bị hiển thị 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ếtbị 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
lOMoARcPSD| 58931565
bạn thay đổi trạng thái một cách kh hiểu bởi 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.
2.4.2. String
Kiểu string (chuỗi) một kiểu dữ liệu dạng chuỗi 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ố tự trong bảng mã ASCII 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 từ đại diện cho chúng trên Front
Panel. Sau đây là một số từ thay thế (Escape Code)
2.4.3. Array
Trong việc lập trình đôi khi chúng ta cần xử một số các dãy số 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ể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 vòng lặp. Việc sử dụng vòng lặp tốt
cho các ứng dụng bởi 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
2.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ử 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ố hướng nào từ bảng
Function Palette đặ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.
lOMoARcPSD| 58931565
2.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ể mảng n chiều của bất kỳ
loại dữ liệu nào. Giá trlớn nhất (max value) cùng dạng dữ liệu như các thành
phần trong mảng các số. Chỉ số lớn nhất (max index) chỉ số của phần tử lớn nhất
Giá trị nhỏ nhất (min value) c a cùng dạng dữ liệu như 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
2.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 làm việc với các phần
tử điều khiển luồng chương trình, đ 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 tập hợp của các Node, Wire 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 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 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
các đường ống (Tunel).
2.5. SubVI và cách xây dựng SubVI
2.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 đầ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ố SubVI và mỗi SubVI không
lOMoARcPSD| 58931565
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.
2.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 tạo
một SubVI từ một phần của VI 2.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 ӫ một
biểu tượng đồ họa. Conetor của một VI gán các Control Indicator cho các Terminal
đầu vào đầ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 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 Đ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 2.6 Icon mặc định và Icon sau khi được tạo
lOMoARcPSD| 58931565
Xác định kiểu Connector Terminal: SubVI nhận dữ liệu tới 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 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
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 2.7 Cách thức tạo Connector của một VI
2.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 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 y hiện c 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. 2.6. Kỹ thuật lập trình nâng
cao trong LabVIEW
lOMoARcPSD| 58931565
2.6.1. Liên kết thiết bị ảo với thiết bị phần cứng
2.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 2.8 Thư viện DAQ
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.
lOMoARcPSD| 58931565
Hình 2.9 Thư viện Advanced và Thư viện Instrument I/O
Để đư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. 2.6.2. Cấu trúc cơ bản của DAQ
Thiết bị ảo được xem như một công cụ liên kết giữa thiết bị phần cứng 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 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ể LabVIEW, LabWindows/CVI, ComponentWorks các công cụ đo lường
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
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
lOMoARcPSD| 58931565
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. 2.6.2.1. DAQ (data acquisition)
Nhiệm vụ bản của tất cả các hệ thống đo lường đo tạo ra các tín hiệu vật
thực tế. Điểm khác biệt lớn nhất của các thiết bị phương thức truyền giữa thiết bị
đo lường 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 thành tín hiệu số 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 ctính mềm dẻo cao cthể sử dụng một
thiết bị phần cứng cho nhiều dạng kiểm tra 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.
Tuy nhiên, một số thiết bị đo ờng nằm ngoài máy tính không thể tồn tại độc lập,
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ộ ng cụ đo lường cụ thể sc 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 2.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
lOMoARcPSD| 58931565
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 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 hệ thống
thực hiện thu nhận dữ liệu từ xa và điều khiển ứng dụng.
Hình 2.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) ctrong 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 truyền tín hiệu tới bo
mạch như trong sự lựa chọn A. Đây chính sự linh động chặt chẽ của hệ thống
DAQ.
2.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ềmh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 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

Preview text:

lOMoAR cPSD| 58931565
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT TP. HỒ CHÍ MINH
KHOA CƠ KHÍ ĐỘNG LỰC
MÔN HỌC: ỨNG DỤNG MÁY TÍNH
Đề tài: ĐIỀU KHIỂN THIẾT BỊ THÔNG QUA ESP 8266
GVHD: TS. Nguyễn Thành Tuyên
SVTH: Lương Thanh Vũ MSSV: 20845266
SVTH: Nguyễn Ngọc Duy MSSV: 19545005
Tp. Hồ Chí Minh, tháng 7 năm 2024 lOMoAR cPSD| 58931565 Lời cảm ơn
Để hoàn thành tiểu luận môn học này thì chúng em xin cảm ơn chân thành đến
thầy cô Khoa Cơ khí động lực đã truyền đạt cho chúng em những kiến thức và kinh
nghiệm quý báu trong suốt quá trình học tập và thực tập tại trường.
Chúng em xin gửi lời cảm ơn chân thành đến thầy TS. Nguyễn Thành Tuyên
đã hướng dẫn giải đáp những thắc mắc trong thời gian thực hiện tiểu luận này.
Nhưng vì thời gian và kiến thức cũng như kinh nghiệm còn hạn chế nhiều buộc
phải ko thể tránh khỏi những sai sót trong quá trình thực hiện tiểu luận. Kính mong
được sự thông cảm và góp ý của quý Thầy Cô để giúp cho tiểu luận được thành công hơn nữa. Xin chân thành cảm ơn !
TP Hồ Chí Minh, tháng 7 năm 2024 Sinh viên lOMoAR cPSD| 58931565
Chương 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1. Đặt vấn đề
Ngày nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên nhu cầu
về trao đổi thông tin giải trí, nhu cầu về điều khiển các thiết bị từ xa, ngày càng cao.
Và những hệ thống dây cáp phức tạp lại không thể đáp ứng nhu cầu này, nhất là ở
những khu vực chật hẹp, những nơi xa xôi, trên các phương tiện vận chuyển, vì vậy
công nghệ không dây đã ra đời và phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con
người trong đời sống hằng ngày.
Trong những năm gần đây công nghệ truyền nhận dữ liệu không dây đang có
những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều
khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá nhiều
công nghệ không truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth, NFC. Trong
đó, Wifi là một trong những công nghệ được phát triển nhanh và luôn được cải tiến
để nâng cao tốc độ cũng như khả năng bảo mật.
Việc ra đời ngôn ngữ đồ họa LabVIEW có một sức hút và tiềm lực thật hấp dẫn. Tính
trực quan của ngôn ngữ này nằm ở chỗ thay vì phải viết những dòng lệnh bằng chữ
và số như các ngôn ngữ lập trình truyền thống VB, C, C++…thì các câu lệnh của
LabVIEW được lập trình bằng việc kéo thả các Icon và nối dây trong môi trường phát
triển mã nguồn. Nhìn vào một đoạn code của LabVIEW chúng ta như đứng trước một
bức tranh với các họa tiết là các icon, các SubVI, các dây nối có màu sắc sặc sỡ. Bên
cạnh đó, một khi bạn vạch ra biểu đồ tiến trình (Flowchart) cho chương trình của bạn
như thế nào thì môi trường LabVIEW cho phép bạn cứ như là bê nguyên xi Flowchart
đó vào môi trường G Code.
Do đó, chúng em quyết định thực hiện đề tài: “Điều khiển thiết bị qua ESP8266 bằng
LabVIEW”. Đề tài ứng dụng công nghệ Wifi phổ biến trên nhiều thiết bị và viết bằng
phần mềm Labview và IDE đặc biệt điểm mới của đề tài so với các sản phẩm hiện có
là điều khiển thông qua hệ điều hành Android giúp tận dụng những thiết bị sử dụng
hệ điều hành Android có sẵn của người dùng giúp giảm giá thành sản phẩm, ngoài ra
với màn hình hiển thị lớn của điện thoại cho phép hiển thị nhiều thông tin hơn. 1.2. Mục tiêu
Thiết kế hệ thống điều khiển các thiết bị như đèn, động cơ thông qua board
mạch ESP8266. Hệ thống được lập trình thông qua phần mềm LabView và IDE.
Tìm hiểu giao thức truyền nhận dữ liệu giữa theo giao thức UART. lOMoAR cPSD| 58931565
1.3. Đ i tố ượng nghiên cứu
Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn có và tìm
kiếm thông tin liên quan, chúng em xác định các đối tượng cần nghiên cứu là:
Công nghệ Wifi: khái niệm về Wifi, các đặc điểm của công nghệ Wifi, liên kết
vật lý trong công nghệ Wifi, các chế độ kết nối, cách thức hoạt động. Nghiên
cứu Module ESP8266: các thông số kỹ thuật, nguyên lý hoạt động của module ESP8266.
Nghiên cứu phần mềm lập trình IDE, LabVIEW.
Nghiên cứu về board ESP 8266
Nghiên cứu viết code điều khiển các thiết bị.
1.4. Giới hạn về đề tài
Đề tài chỉ giới hạn trong việc điều khiển các thiết bị giả lập là đèn và động cơ
DC thông qua wifi ESP8266 và mạch L298, hiển thị kết quả trạng thái hoạt động của
các thiết bị thông qua các đèn trên Labview.
1.5. Nội dung đ tàiề
Chương 1: Tổng quan về đề tài
Chương 2: Phần mềm lập trình LabVIEW.
Chương 3: Tính toán thiết kế hệ thống
Chương 4: Kết quả, kết luận, đánh giá Chương 2
TỔNG QUAN VỀ PHẦN MỀM LABVIEW
2.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. 2.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. lOMoAR cPSD| 58931565
2.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).
2.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 (teamoriented): 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ã 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. 2.1.4. 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. lOMoAR cPSD| 58931565 2.1.5. 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ỡ 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 2.1 Khả năng hiển thị của phần mềm Labview 2.1.6. Đ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++. lOMoAR cPSD| 58931565
2.1.7. 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
Hình 2.2 Khả năng giao tiếp của phần mềm
2.2. Những khái niệm cơ bản của LabView
2.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ữ.
2.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). 2.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 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 lOMoAR cPSD| 58931565
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.ӫ
Hình 2.3 Front Panel của chương trình Labview 2.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). lOMoAR cPSD| 58931565
Hình 2.4 Block Diagram của chương trình LabVIEW
2.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.
2.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. lOMoAR cPSD| 58931565 2.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.
2.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 2.5 Controls palette
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 lOMoAR cPSD| 58931565 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ị
2.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.
2.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:
2.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). lOMoAR cPSD| 58931565 -
Global variables (biến toàn cục): Biến toàn cục được sử dụng để thực hiện
côngviệ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 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
trongnhữ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ểnhoặ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ếtbị 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 lOMoAR cPSD| 58931565
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. 2.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 từ đại diện cho chúng trên Front
Panel. Sau đây là một số từ thay thế (Escape Code) 2.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
2.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. lOMoAR cPSD| 58931565
2.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
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
2.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).
2.5. SubVI và cách xây dựng SubVI
2.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ố SubVI và mỗi SubVI không lOMoAR cPSD| 58931565
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.
2.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 2.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 2.6 Icon mặc định và Icon sau khi được tạo lOMoAR cPSD| 58931565
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 2.7 Cách thức tạo Connector của một VI
2.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. 2.6. Kỹ thuật lập trình nâng cao trong LabVIEW lOMoAR cPSD| 58931565
2.6.1. Liên kết thiết bị ảo với thiết bị phần cứng
2.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 2.8 Thư viện DAQ
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. lOMoAR cPSD| 58931565
Hình 2.9 Thư viện Advanced và Thư viện Instrument I/O
Để đư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. 2.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 lOMoAR cPSD| 58931565
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. 2.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.
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 2.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 ở lOMoAR cPSD| 58931565
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.
Hình 2.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.
2.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