Đề tài: Thiết kế chương trình mô phỏng việc điều khiển và giám sát hệ thống
cấp nước tự động từ bể ngầm nên bể chứa trên cao (sử dụng 3 bơm nước ) ứng
dụng phần mềm labview
Đề tài..........................................................................................................................................1
Chương 1 Giới thiệu phần mềm LabVIEW, Proteus, IDE (Integrated Development
Environment)............................................................................................................................2
1.1.
LabVIEW là gì?.........................................................................................................2
1.2.
Tạo một Project Explorer.........................................................................................3
1.3.
Các thành phần của một VI......................................................................................5
1.4.
Phần mềm Proteus.....................................................................................................6
1.5.
Phần mềm IDE...........................................................................................................7
1.6.
Phần mềm Configure Virtual Serial Port Driver...................................................8
Chương 2 Bo mạch Arduino Mega2560 và thuật toán điều khiển.......................................8
2.1
Bo mạch Arduino Mega2560....................................................................................8
2.2.
Thuật toán điều khiển.............................................................................................11
Chương 3 Chương trình thực hiện........................................................................................12
3.1.
Chương trình thực hiện trên phân mềm LabVIEW............................................12
3.2.
Chương trình thực hiện trên phần mềm Proteus.................................................14
3.3.
Chương trình viết trên phần mềm IDE.................................................................15
3.4.
Thực hiện chạy chương trình.................................................................................17
Kết luận...................................................................................................................................22
Tài liệu tham khảo.................................................................................................................23
1
Chương 1
Giới thiệu phần mềm LabVIEW, Proteus, IDE (Integrated Development
Environment)
1.1. LabVIEW là gì?
- LabVIEW (viết tắt của nhóm từ Laboratory Virtual Instrumentation
Engineering Workbench) là một phần mềm máy tính được phát triển bởi công ty
National Instruments, Hoa kỳ. LabVIEW còn đượ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.
- LabVIEW là một môi trường lập trình đồ họa mà bạn có thể sử dụng để
tạo các ứng dụng với giao diện người dùng chuyên nghiệp một cách nhanh
chóngvà hiệu quả. Hàng triệu kỹ sư và nhà khoa học sử dụng LabVIEW để phát
triển các ứng dụng đo lường, kiểm thử, và điều khiển tinh vi bằng cách sử
dụngcác biểu tượng trực quan và dây nối tín hiệu. Ngoài ra, LabVIEW có thể
được mở rộng cho nhiều nền tảng phẩn cứng và hệ điều hành khác nhau. Trong
thực tế, nền tảng LabVIEW có khả năng tích hợp với hàng nghìn thiết bị phần
cứng và cung cấp hàng trăm thư viện được xây dựng sẵn để phân tích nâng
cao và hiển thị dữ liệu giúp bạn tạo ra các thiết bị ảo có thể tùy chỉnh theo nhu
cầu của mình.
- Bởi vì chương trình LabVIEW mô phỏng giao diện và hoạt động của
các thiết bị thực, chẳng hạn như dao động ký và thiết bị đo đa năng, chương
trìnhLabVIEW được gọi là thiết bị ảo (Virtual Instrument), thường gọi tắt
là VI. VI có Front Panel và Block Diagram. Front Panel là giao diện người
dùng. Block Diagram là chương trình phía sau giao diện người dùng. Sau
khi bạn xây dựng Front Panel, bạn thêm mã (code) để điều khiển các đối tượng
trên Front Panel bằng cách sử dụng các hình đồ họa đại diện cho các hàm. Mã
trên Block Diagram là mã dạng đồ họa, thường được biết đến là G code (mã G)
hoặc Block Diagram code.
- Khác với các ngôn ngữ lập trình dạng văn bản, như C++ và Visual
Basic, LabVIEW sử dụng các biểu tượng thay vì các dòng văn bản để tạo ra các
ứng dụng. Trong lập trình dạng văn bản, thứ tự các dòng lệnh xác định trình tự
thực hiện chương trình. LabVIEW sử dụng lập trình đồ họa dạng dòng chảy dữ
liệu. Trong lập trình đồ họa dạng dòng chảy dữ liệu, dòng chảy của dữ liệu
qua các nút trên Block Diagram xác định trình tự thực hiện chương trình. Lập
trình đồ họa và thực thi dạng dòng chảy dữ liệu là hai đặc
tính chính làm LabVIEW khác với hầu hết ngôn ngữ lập trình đa dụng khác.
- LabVIEW để tạo ra các ứng dụng thu thập dữ liệu đơn giản một cách hiệu
quả với ba bước: thu thập, phân tích, và hiển thị. Mặc dù giáo trình này được
2
giảng dạy trên Windows, LabVIEW hỗ trợ nhiều nền tảng. Bạn có thể phát
triển các ứng dụng trên Windows, Mac OS, hoặc Linux. Hơn nữa, bạn có thể
triển khai các ứng dụng LabVIEW cho một loạt các nền tảng thời gian thực
và FPGA.
- Đặc điểm của LabVIEW
Chương trình LabVIEW có các đặc điểm sau:
o Đồ họa và biên dịch
o Lập trình theo dạng dòng chảy dữ liệu hướng
o Đa mục tiêu và nhiều nên tảng
o Hướng đối tượng
o Khả năng đa luồng
1.2.
Tạo một Project Explorer
- VI là những chương trình LabVIEW, và bạn có thể sử dụng nhiều VI với
nhau để tạo ra một ứng dụng LabVIEW. Để nhóm các VI liên quan với nhau, sử
dụng LabVIEW project (dự án LabVIEW). Khi bạn lưu một dự án LabVIEW từ
cửa sổ Project Explorer, LabVIEW tạo ra một tập tin dự án (.lvproj), bao gồm
tất cả các tập tin LabVIEW và các tập tin khác trong dự án, thông tin cấu
hình, thông tin về xây dựng (để tạo ra các file thực thi .EXE, tạo ra file setup,
tạo ra tập tin .DLL, …), và các thông tin triển khai.
- Một số ứng dụng LabVIEW, chẳng hạn các VI đơn giản, không cần
phải sử dụng một dự án LabVIEW. Tuy nhiên, bạn phải sử dụng một dự án để
xây dựng các ứng dụng độc lập và thư viện chia sẻ. Ngoài ra, bạn phải sử
dụng một dự án để làm việc với mục tiêu phần cứng không phải là máy
tính phát triển như: thiết bị thời gian thực, FPGA. Tham khảo các tài liệu về
các mô-đun cụ thể để biết thêm thông tin về việc sử dụng các dự
án với LabVIEW Real-Time, FPGA.
- Cửa sổ Project Explorer:
+ Các dự án trong LabVIEW bao gồm VI, các tập tin cần
thiết để những VI này chạy đúng, và các tập tin bổ sung như tài liệu hoặc các
liên kết có liên quan.Sử dụng cửa sổ Project Explorer để quản lý dự
án trong LabVIEW.
+ Theo mặc định, cửa sổ Project Explorer bao gồm các mục sau đây:
Project root - Chứa tất cả các mục khác trong cửa sổ Project
Explorer. Nhãn trên project root là tên tập tin của dự án.
My Computer - Đại diện cho máy tính như là một mục tiêu trong dự án.
Dependencies - Bao gồm các VI và các mục mà VI trong mục tiêu yêu
cầu.
3
Build Specifications -Bao gồm cấu hình xây dựng cho việc phân
phối mã nguồn và các loại cấu hình khác có sẵn trong các mô-đun và toolkit của
LabVIEW. Nếu bạn đã cài LabVIEW Professional Development
System hoặc Application Builder, bạn có thể sử dụng Build
Specifications để cấu hình các ứng dụng độc lập, thư viện chia sẻ, trình cài
đặt, và các tập tin nén (zip).
- Hoàn thành các bước sau đây để sử dụng cửa sổ Project Explorer trong
việc tạo và chỉnh sửa các dự án LabVIEW:
1. Chọn File»Create Project để hiển thị hộp thoại Create Project. Hộp
thoại Create Project hiển thị một danh sách các chương trình mẫu và các ví
dụ mà bạn có thể sử dụng để đảm bảo rằng dự án bạn tạo ra sử dụng thiết
kế đáng tin cậy và phương thức lập trình chính thống.
2. Tìm dự án mẫu thích hợp với mục tiêu mà bạn muốn thực hiện với dự
án. Sử dụng các tính năng sau đây để tìm kiếm các dự án mẫu:
Filters – Chỉ hiển thị chỉ kết quả của một loại nhất định, chẳng
hạn như các dự án mẫu cho một mục tiêu cụ thể.
Additional Search - Tìm kiếm theo các từ khóa, tiêu đề, và mô tả của các
kết quả đã lọc.
More Information - Mở tập tin trợ giúp cho các mục. Xem lại các tập tin
trợ giúp để đảm bảo rằng dự án mẫu thích hợp với mục tiêu mà bạn muốn dự án
thực hiện.
3. Nhấn nút Next hay Finish để cấu hình chi tiết cho dự án, bao gồm
cách lưu dự án. Sau khi bạn hoàn thành việc cấu hình dự án, LabVIEW lưu dự
án vàmở cửa sổ Project Explorer.
4. Sử dụng cửa sổ Project Explorer để chỉnh sửa dự án. Tham
khảo các ghi chú trên block diagram của VI trong dự án mẫu để biết thêm thông
tin về cách chỉnh sửa dự án. Tham khảo thêm thư mục Project
Documentation trong cửa sổ Project Explorer để biết thêm thông tin về cách
chỉnh sửa dự án.
1.3.
Các thành phần của một VI
Một VI bao gồm ba thành phần chính:
Cửa số front panel
Cửa số block diagram
Icon/connector pane
- Cửa sổ Front panel
Cửa số Front panel là giao diện người dùng cho VI
4
Hình 1.1 Cửa sổ front panel
Cửa số block diagram
Hình 1.2 Cửa số block diagram
1.4.
Phần mềm Proteus
- Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử
bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều
khiển như MCS-51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử
của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông
dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola. Phần
5
mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES dùng để
vẽ mạch in. Proteus là công cụ mô phỏng cho các loại Vi Điều Khiển khá tốt, nó
hỗ trợ các dòng VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430,
ARM7/LPC2000 ... các giao tiếp I2C, SPI, CAN, USB, Ethenet,... ngòai ra còn
mô phỏng các mạch số, mạch tương tự một cách hiệu quả. Proteus là bộ công cụ
chuyên về mô phỏng mạch điện tử.
- Proteus có hai phần bao gồm:
+ ISIS cho phép mô phỏng hoạt động của các hệ vi điều khiển, cũng như hoạt
động của các linh kiện điện tử như led, tụ điện, điện trở….Chọn đối tượng và
thiết lập thông số cho đối tượng dễ dàng. ISIS tích hợp nhiều công cụ giúp cho
việc quản lý mạch điện lớn, mạch điện có thể lên đến hàng ngàn linh kiện
Hình 1.3 ISIS trong phần mềm Proteus
+ ARES dùng để vẽ mạch in và sắp xếp chúng
Hình 1.4 ARES trong phần mềm Proteus
1.5.
Phần mềm IDE
- Arduino IDE Arduino Integrated Development Environment) là một trình
soạn thảo văn bản, giúp bạn viết code để nạp vào bo mạch arduino.
6
- Một trương trình viết bởi Arduino IDE được gọi là sketch, sketch được
lưu dưới định dạng .ino.
Verify
Kiểm tra lỗi và biên dịch code
Upload
Dịch và upload code vào bo mạch đã được cài
đặt sẵn
New
Tạo sketch mới
Open
Mở một sketch có sẵn
Save
Lưu sketch
Serial Monitor
Mở serial monitor
- Nạp Sketch:
+ Trước khi nạp Sketch bạn phải chọn tên bo mạch, và cổng com:
+ Từ menu chính chọn Tools > Board và Tools > Port
- Libraries:
+ Là những thư viện bổ sung thêm những chức năng để sử dụng trong sketch, ví
dụ làm việc với màn hình LCD bạn phải cần có một thư viện để điều khiển nó.
Để dùng library, bạn chọn Sketch->import Library.
+ Đây là danh sách những thư viện thông dụng bạn nên biết. Một số thư viện có
sẵn với Arduino IDE. Một số khác bạn có thể tải thêm từ internet hoặc thông
qua Library Manager. Xem thêm hướng dẫn cài đặt Library.
- Serial Monitor:
+ Là hộp thoại để hiện thị dữ liệu được gửi từ bo mạch Arduino, hoặc gửi dữ
liệu từ máy tính tới bo mạch của bạn.
1.6.
Phần mềm Configure Virtual Serial Port Driver
- Virtual Serial Port Driver là phần mềm hữu hiệu để tạo ra các cổng
nối tiếp ảo và kết nối chúng theo cặp thông qua dây cáp null-modem ảo.
Các ứng dụng trên cả hai đầu của cặp đó sẽ có thể trao đổi dữ liệu cho
nhau. Khi đó, dữ liệu được ghi trên cổng đầu tiên sẽ xuất hiện ở cổng thứ hai và
ngược lại.
7
- Tất cả các cổng nối tiếp ảo đều hoạt động chính xác như những cổng
thực, mô phỏng các thiết lập của chúng. Do đó, bạn có thể tạo ra bao nhiêu cặp
cổng ảo theo ý muốn mà không cần phải sử dụng phần cứng bổ sung nào.
Hình 1.5 Giao diện phần mềm Virtual Serial Port Driver
Chương 2
Bo mạch Arduino Mega2560 và thuật toán điều khiển
2.1Bo mạch Arduino Mega2560
- Thành phần Arduino Mega2560
Hình 2.1 Bo mạch Arduino Mega2560
Arduino Mega2560 là một vi điều khiển bằng cách sử dụng ATmega2560.
- Bao gồm:
54 chân digital (15 có thể được sử dụng như các chân PWM)
16 đầu vào analog
4 UARTs (cổng nối tiếp phần cứng)
8
1 thạch anh 16 MHz
1 cổng kết nối USB
1 jack cắm điện
1 đầu ICSP
1 nút reset
- Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển.
- Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử
dụng FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó
sử dụng ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB.
Ngoài ra, Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số
lượng chân và nhiều tính năng mạnh mẽ hơn, nên các bạn vẫn có thể lập trình
cho con vi điều khiển này bằng chương trình lập trình cho Arduino Uno R3.
- Arduino Megas có sơ đồ linh kiện như các hình sau đây.
Hình 2.2 Một số linh kiện trên bo mạch Arduino Mega 2560
9
Hình 2.3 Sơ đồ chân của bo mạch Arduino Mega 2560
5 Chân GND
3 chân 5V
1 chân 3.3v
1 nút reset
16 chân analog
4 chân UART
54 Chân digital trong đó có 15 chân chúng ta có thể sử dụng như PWM
6 Chân lập trình ISP
10
2.2. Thuật toán điều khiển
11
Chương 3
Chương trình thực hiện
3.1. Chương trình thực hiện trên phân mềm LabVIEW
- Chương trình viết trên Block Diagram
Hình 3.1 Chương trình viết trên Block Diagram
VISA resource name
Chỉ định cổng com để kết nối LabVIEW với Proteus
VISA serial
Khởi tạo cổng nối tiếp được chỉ định bởi VISA resource
name để cài đặt cổng được chỉ định.
VISA read
Đọc số được chỉ định của những byte gửi từ thiết bị hoặc
giao tiếp được chỉ định bởi VISA resource name và trả lại
dữ liệu trên bộ đệm
Match Pattem
Tìm kiếm biểu thức thường trong chuỗi bắt đầu ở giá trị đối
trọng. Nếu chức năng tìm thấy khớp, nó chia chuỗi thành 3
chuỗi con.
Decimal String To Number
Chuyển ký tự số trong chuỗi, đang bắt đầu ở giá trị đối
trọng, để một số nguyên thập phân và trả lại nó trong số
thập phân.
12
SubVI
Chương trình con có nhiệm vụ chuyển bất ký một số nào
trong dải 0-300 sang dài 0-128.
Select
Trả về giá trị ở đầu T hoặc F , tùy thuộc vào giá trị của của
S.Nếu S là true hàm này lấy giá trị T và ngược lại
Greater
Trả lại là đúng nếu giá trị x lớn hơn giá trị y. Nếu không thì,
trả giá trị sai (nếu đúng thì đầu ra là 1 nếu không thì đầu ra
là 0).
Boolean
Nếu giá trị đầu vào là 1 thì đèn sáng, nếu là 0 thì tắt
Tank
Hiện thị mức nước
Boolean
Đưa ra giá trị true nếu được nhấn và false nếu không nhấn
Boolean
Đưa ra giá trị True nếu được nhấn và False nếu không nhấn
VISA Close
Đóng một phiên làm việc của thiết bị hoặc đối tượng sự
kiện được chỉ định bằng VISA recource name
While Loop
Vòng lặp
In Range and Coerce
Xác điịnh giá trị x có nằm trong giới hạn hay không và tùy
chọn ép buộc giá trị nằm trong phạm vi
Number To Decimal String
Chuyển đổi số thành chuỗi kí tự thập phân
Bảng 3.1 Bảng giải thích các khối cơ trong Block Diagram
+ Nguyê lý hoạt động: Khi cổng com được chỉ định nó sẽ được thiết lập bởi
Visa serial đưa vào vòng lặp While loop đến khối VISA Read dữ liệu sẽ được
đưa vào bộ đệm, dữ liệu vào sẽ được giới hạn tùy theo byte count. Sau đó đưa
tới khối Match Pattem tìm kiếm kỹ tự khớp với ký tự đã đặt và chia nó làm 3
phần rồi chuyển đến khối chuyển đổi dữ liệu từ dạng chuỗi sang dạng số để hiển
thị.
- Chương trình hiển thị trên Front Panel
13
Hình 3.2 Chương trình hiển thị trên Front Panel
14
3.2.
Chương trình thực hiện trên phần mềm Proteus
Hình 3.3 Chương trình thiết kế trên phần mềm Proteus
Ở đây để mô phỏng 3 led để mô phỏng cho 3 bơm b1,b2,b3
Cơ chế hoạt động:
Đầu tiên mức nước được cảm biến đo và chuyển thành tín hiệu điện áp và
chuyển tới đầu vào analog của bo mạch Arduino Mega2560. Được chuyển tới
chân TX của bo mạch Arduino Mega2560.
15
3.3.
Chương trình viết trên phần mềm IDE
int mucnuoc = A0;
void setup()
{
Serial.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
Serial.print("a");
}
void loop()
{
mucnuoc = analogRead(A0);
Serial.print("a");
delay (300);
Serial.print(mucnuoc);
delay (300);
}
void serialEvent()
{
while(Serial.available())
{
char tinhieu = (char) Serial.read();
if (tinhieu == '0')
{
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
if (tinhieu == '1')
{
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
16
digitalWrite(10,HIGH);
}
if (tinhieu == '2')
{
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
if (tinhieu == '3')
{
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
}
}
3.4.
Thực hiện chạy chương trình
- B1: Biên dịch Code trên phần mềm IDE
Hình 3.4 Biên dịch Code trên phần mềm IDE
- B2: Ghép đôi cổng COM1 và COM2 trong phần mềm Configure Virtual
Serial Port Driver
17
Hình 3.5 Ghép đôi cổng COM1 và COM2 trên phần mềm Virtual Serial
Port Driver
- B3: Chạy chương trình trên phần mềm Proteus
+ Nạp file .HEX cho bo Arduino Mega2560
18
Hình 3.6 Nạp file .HEX cho bo Arduino Mega2560
+ Chỉ định cổng COM cho Compim
19
Hình 3.7 Chọn cổng COM cho COMPIM
+ Chạy chương trình trong phần mềm Proteus
- Bước 4: Chạy chương trình trong phần mềm LabVIEW
20
Hình 3.8 Chạy chương trình hiện thị nhiệt độ trên phần mềm LabVIEW
21
Kết luận
Sau ba tháng tìm hiểu và nghiên cứu cùng với sự hướng dẫn của thầy PGS.TS
Trần Sinh Biên, nhóm đã hoàn thành xong bài tập lớn môn Điều khiển Sản Xuất
Tích Hợp Máy Tính. Trong quá trình làm bài tập lớn, mặc dù nhóm đã cố gắng
nhiều, song do kiến thức cũng như về tầm nhìn thực tế còn hạn chế, nên không
tránh khỏi những khiếm khuyết. Nhóm rất mong có thể nhận được các ý kiến
đóng góp, giúp đỡ của các thầy cô trong khoa để đề tài bài tập lớn được hoàn
thiện hơn nữa.
Em xin trân thành cảm ơn!
22
Tài liệu tham khảo
[1]. Tài liệu học tập, Điều khiển sản xuất tích hợp máy tính, NXB Hàng Hải.
[2]. Nguyễn Bá Hải, Lập trình LabVIEW, NXB Đại học quốc gia T.P Hồ Chí
Minh, 2010.
[3].
[4].
[5].
23