lập trình mô phỏng thời gian thực với hai đối tượng điều khiển là động cơ điện một chiều và mạch vòng khóa pha PLL sử dụng hai card PCI 1711và card PCI 1727 - Pdf 35

MỤC LỤC

1


LỜI MỞ ĐẦU
Trong lập trình, có một câu đơn giản nhưng bao giờ cũng có giá trị là:
Nên chọn công cụ cho phù hợp với công việc cần làm. Ví dụ như khi viết các
chương trình truy cập đến các cấp thấp của máy tính, bạn nên dùng
ASSEMBLER, ở cấp cao hơn có thể dùng Pascal, C ... Đối với những chương
trình yêu cầu bạn phải lập trình hướng đối tượng ví dụ như tạo hệ cửa sổ giao
tiếp đồ hoạ thì bạn phải sử dụng VB, Laview... Mỗi ngôn ngữ lập trình cũng
chính là một chương trình, có thể được dùng để tạo nên các chương trình khác.
Các ngôn ngữ lập trình hiện đại ngày nay như VB, Labview, Matlab... cũng
được xây dựng từ những ngôn ngữ lập trinh cơ bản. Mỗi ngôn ngữ lập trình đều
có những đặc điểm riêng nhưng điểm chung giữa chúng là đều được biên dịch ra
ngôn ngữ máy tính để máy tính có thể hiểu và thực hiện chương trình. Ngày nay
các ngôn ngữ lập trình hiện đại được sử dụng nhiều hơn do tính đơn giản vì
được cung cấp thêm một số lượng rất lớn các thư viện bao gồm nhiều hàm để hỗ
trợ giao diện người dùng (graphic interface) và các thiết bị đầu cuối. Đồng thời
các ngôn ngữ lập trình hiện đại thường thiết kế để hỗ trợ nhiều hệ điều hành, đáp
ứng tính thời gian thực trong lĩnh vực điều khiển.
Ngày nay có hai dạng lập trình phổ biến là lập trình sử dụng cấu trúc dòng
lệnh và lập trình sử dụng dạng sơ đồ khối. Với những ngôn ngữ lập trình sử
dụng câu trúc dòng lệnh như C, VB... thì đều gây khó khăn cho người lập trình
là phải nhớ cấu trúc lệnh, chương trình viết có thể dài hàng chục trang, việc dà
soát lỗi cũng không đơn giản, mất nhiều thời gian để học và lập trình. Đối với
ngôn ngữ lập trình sử dụng dạng sơ đồ khối như Matlab, Laview... việc lập trình
trở nên đơn giản hơn, người lập trình không cần phải nhớ cấu trúc lệnh, không
cần phải mất thời gian học nhiều mà vẫn có thể lập trình được. Do sử dụng dạng
sơ đồ khối nên chương trình ngắn gọn, việc dà soát lỗi dễ dàng, với những ai

- Chương 2 giới thiệu khái quát về các thiết bị hỗ trợ lập trình LabVIEW
của các hãng Advantech, National Instruments, giới thiệu đi sâu tìm hiểu
về các tài nguyên phần cứng cũng như khả năng lập trình điều khiển , kỹ
thuật lập trình LabVIEW đối với hai card PCI 1727 và PCI 1711.
- Chương 3 tiến hành xây dựng đối tượng mô phỏng và mô phỏng đối
tượng trong thời gian thực thông qua giao tiếp với card PCI 1711và PCI
1727.

3


Trong thời gian làm đồ án, do thời gian có hạn, kiến thức còn hạn chế nên
đồ án còn nhiều những thiếu sót, em rất mong nhận được những ý kiến đóng góp
của các thầy cô giáo và các bạn để đồ án được hoàn thiện hơn nữa.
Em xin bày tỏ lòng biết ơn sâu sắc đến:
• Giáo viên hướng dẫn THS. Phạm Tuấn Anh, người đã tận tình chỉ bảo,
giúp đỡ để em hoàn thành tốt đồ án này.
• Toàn thể các thầy cô giáo khoa điện – ĐTTB, những người đã tận tình
giảng dạy, giúp đỡ em trong suốt hơn 4 năm học qua.
• Toàn thể gia đình, bạn bè và người thân đã quan tâm, động viên, giúp
đỡ trong suốt thời gian học tập và hoàn thành đồ án.
Sinh viên thực hiện

Vũ Văn Hoàng

4


CHƯƠNG 1 GiỚI THIỆU MÔI TRƯỜNG LẬP TRÌNH
LABVIEW

dữ liệu. Trong đó có các tiện ích vẽ biểu đồ và đồ thị cùng các công cụ trực quan
5


2D, 3D cài sẵn. Thêm vào đó, bạn có thể xem và điều khiển chương trình VIs
qua Internet bằng LABVIEW.
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
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...
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++.Cho phép
triển khai các ứng dụng nhúng đến các bộ vi xử lý 32 bit.

Hình 1.1: Giao diện lập trình của LabVIEW
LABVIEW có rất nhiều những thư viện mở rộng về hàm và chương trình
con. Ngoài ra, LABVIEW cũng có những thư viện ứng dụng riêng cho việc nhận
dữ liệu và thiết bị điều khiển theo chuẩn VXI, các thư viện ứng dụng riêng theo
chuẩn GPIB và thiết bị điều khiển nối tiếp, phân tích, trình bày và lưu trữ dữ
liệu.

6


Chương trình LABVIEW được gọi là các thiết bị ảo (VI: Virtual
Instruments) vì giao diện và cách thức hoạt động của nó tương tự như thiết bị
thật. Các VI có giao diện với người sử dụng và một mã nguồn tương đương tiếp
nhận các thông số từ VI cao hơn . Một VI có ba đặc trưng sau
- VI chứa một giao diện với người sử dụng được gọi là mặt máy (font

(ngôn ngữ lập trình G) thông qua các biểu tượng (icon) để tạo ra mã điều khiển
chứa trong Block Diagram .
- Lập trình nhanh gọn, giao diện GUI của Labview đẹp hơn nhiều so với VB
hay Matlab.
- Linh động trong việc thiết kế các ứng dụng do sản phẩm phần cứng hỗ trợ đa
dạng và rất tốt .
- Mô phỏng các hệ thống hay thu thập và xử lý dữ liệu dễ dàng hơn do được hỗ
trợ nhiều thư viện và các hàm chức năng.
- Có khả năng lưu trữ các dữ liệu, các báo cáo, và khả năng lập trình đa lõi
- Labview cho phép kết hợp với nhiều ngôn ngữ truyền thống khác trong quá
trình lập trình như C, C++... như thế người sử dụng có thêm nhiều phương pháp
để tiếp cận lập trình không chỉ với một ngôn ngữ Graphic. Đồng thời nó còn cho
phép nhúng các phần mềm khác vào trong Labview như Matlab và Simulink,
Microsoft Access, Microsoft Excel, Microsoft SQL service, Texas Istruments
Code Composer studio, Ansoft RT Circuit design software...
- LabVIEW hỗ trợ giao tiếp với phần cứng với nhiều chuẩn giao tiếp truyền
thông như Enthernet, Can, Divice Net, USB, IEEE 1394, GPIB, RS 232, RS
485. Sử dụng LabVIEW có thể tạo ra các ứng dụng biên dịch 32 bi tốc độ cao,
có khả năng chia sẻ với các ứng dụng khác như DLL.
- Không như các phần mềm khác bị giới hạn chỉ chạy được trên một số hệ điều
hành thì Labview chạy được trên hầu hết các hệ điều hành hiện nay như
Microsoft Windows, Apple, Linux và Sun ...
- Đặc biệt Labview còn có khả năng điều khiển và giám sát hệ thống qua
website bằng việc sử dụng chuẩn giao tiếp TCP/IP , active X kết hợp với modul
Web Labview Builder để thiết kế giao diện điều khiển. Ứng dụng này mang lại
nhiều tiện ích cho quá trình điều khiển như điều khiển thiết bị ở nơi nguy hiểm,
nơi con người không thể đến được...

8


đo cầm tay với lập trình đồ họa.
Trong môi trường công nghiệp, để đáp ứng tính thời gian thực, bạn có thể
sử dụng module thời gian thực LabVIEW để thực hiện nhiều ứng dụng đa dạng
trên một hệ điều hành thời gian thực như PXI, Compact FieldPoint,
CompactRIO, Compact Vision System và Windows PC. Để tạo ra phần cứng
cho các hệ thống tất định, bạn có thể sử dụng module FPGA LabVIEW. Ngoài
ra, module ghi dữ liệu (datalogging) và điều khiển giám sát LabVIEW tích hợp
các thiết bị ghi dữ liệu (logging), cảnh báo và OPC cho các hệ thống công
nghiệp đếm nhiều kênh (high-channel-count).
b.Trong dạy học và nghiên cứu
LabVIEW cũng nhanh chóng thâm nhập vào lĩnh vực giáo dục và học
thuật. Nó kết nối chương trình giảng dạy với thế giới thực nhờ một môi trường
phát triển đồ họa sáng tạo, giúp sinh viên hình dung và áp dụng các khái niệm lí
thuyết vào những thiết kế có thể ứng dụng được. LabVIEW cũng cung cấp cho
các nhà nghiên cứu một công cụ làm mô hình, thiết kế và lắp đặt trong một môi
trường đơn lẻ. Nhờ LabVIEW, các nhà nghiên cứu có thể đổi mới liên tục và các
nhà giáo dục có thể thu hút sinh viên và cải tiến cách học những nguyên lí kĩ
thuật và khoa học của sinh viên.
Mô đun phát triển nhúng NI LabVIEW mới có thể mở rộng LabVIEW tới
bất kỳ bộ xử lý 32 bit nhúng nào, đồng thời cung cấp phương pháp đồ họa cho
các nhà khoa học cũng như kỹ sư giúp họ thiết kế thuật toán, mô phỏng, tạo mẫu
và triển khai các thiết kế tùy chỉnh cho hệ thống nhúng. Với mô đun phát triển
10


nhúng LabVIEW, người sử dụng có thể thiết kế các thuật toán và lập trình cho
ứng dụng của mình bằng ngôn ngữ dòng dữ liệu đồ họa trực giác. Thêm vào đó,
các chỉ báo và điều khiển panen trước đồ họa LabVIEW giúp thử nghiệm và gỡ
rối các mã nhúng nhanh hơn nhiều so với phương pháp thông thường. Mô đun
phát triển nhúng LabVIEW bao gồm hơn 400 chức năng phân tích cho quá trình

và các thuật toán tinh vi và tích hợp thiết bị điện tử cao cấp vào máy cơ khí của
họ. Nhà chế tạo máy Best-in-class đang sử dụng phần cứng các công cụ phần
mềm của National Instruments để thiết kế nên hệ thống (hình 1.4).

12


13


Hình 1.5: Sử dụng Labview và các modul đi kèm để điều khiển và giám sát hệ
thống điện sử dụng năng lượng gió
Các mô đun của NI cho phép mở rộng các hệ thống để đáp ứng yêu cầu ngày
càng tăng của công nghệ, nhanh chóng phát triển năng lượng gió.

Hình 1.6: Thiết kế Robot giống người sử dụng LabVIEW
Đại học Virginia Tech, Hoa kỳ phát triển Robot giống người sử dụng LabVIEW
1.2. Môi trường lập trình LabVIEW
1.2.1. Giao diện lập trình và các thư viện lập trình cơ bản của LabVIEW
a. Giao diện lập trình cơ bản của LabVIEW
- VI (Vitual Instrument) - Thiết bị ảo

14


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ữ.
- Front Panel và Block Diagram

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.
b. Các kỹ thuật lập trình và các thư viện cơ bản của 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
16


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

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ị.
- 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
18


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.

Hình 1.11: Function palette
c. 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:
- 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

đổi và được đọc giá trị mới.
+ Local variable
Cho phép người sử dụng đọc hoặc viết thông tin lên một trong những
thiết bị điều khiển hoặc thiết bị hiển thị trên Front Panel. Để tạo một biến
địa phương, chọn Local Variable từ bảng Structs & Constant. Khi sử dụng biến
địa phương cần chú ý một số thông tin sau

20


* Các biến địa phương bộ chỉ có tác dụng duy nhất trên các thiết bị điều
khiển hoặc thiết bị hiển thị mà cùng ở trên một lược đồ. Ta không thể sử dụng
biến địa phương để truy cập tới một điều khiển mà không cùng trên
một lược đồ.
* Ta có thể có rất nhiều các biến địa phương cho mỗi thiết bị điều khiển hoặc
thiết bị hiển thị. Tuy nhiên điều đó có thể gây ra sự phức tạp, cho rằng điều
khiển của bạn thay đổi trạng thái một cách khó hiểu bởi vì bạn ngẫu nhiên lựa
chọn sai các phần tử trong một hoặc nhiều biến địa phương
* Giống như biến toàn cục, bạn có thể sử dụng biến địa phương không có
một “dòng dữ liệu” hợp lệ khác sử dụng.
- 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.

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
- Các cấu trúc điều khiển luồng chương trình
22


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.

Hình 1.13: Thư viện Structures (cấu trúc điều khiển luồng chương trình)
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).Các cấu trúc điều
khiển chương trình trong LabVIEW nằm ở Functions Structures Palette
d. SubVI và cách xây dựng SubVI
- Khái niệm SubVI

24


Hình 1.14: Icon mặc định và Icon sau khi được tạo
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

25



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status