



















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