1. Trang chủ
  2. » Thể loại khác

www.tinhgiac.com huong dan lap trinh labview

49 97 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 11,91 MB

Nội dung

www.tinhgiac.com huong dan lap trinh labview tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất...

Trang 1

LOI NOI DAU

Trong thời đại ngày nay, khoa học kỹ thuật rất là phát triển Các công cụ hỗ trợ người làm khoa học rất nhiều đặc biệt là công cụ máy tính Việc sử dụng công cụ máy tính số sẽ giảm thiểu được những công việc nặng nhọc không cần thiết đối với người kỹ sư đồng thời công cụ máy tính số cũng giảm thiểu những sai số của tín hiệu Đồng thời công cụ máy tính số cũng giúp cho người sử dụng

có thể thuận tiện trong việc quan sát tín hiệu của các thiết bị

Hiện nay, để ghép nối máy tính với thiết bị bên ngoài có thể dùng rất

nhiều chuẩn quốc tế như GPIB, VXI Tuy nhiên các chuân đó mặc dù rất mạnh

nhưng lại có nhược điểm là giá thành rất lớn Chuẩn ghép nối RS 232 là một

chuẩn ghép nối tuy không hiện đại nhưng lại có giá thành rẻ Hơn nữa nó là một chuẩn dễ sử dụng và có sẵn trong thực tế Hầu như thiết bị nào cũng được hỗ trợ chuẩn RS 232

Ngôn ngữ lập trình LabVIEW là một ngôn ngữ hỗ trợ mạnh trong lĩnh vực thu thập và xử lý tín hiệu Thông qua ngôn ngữ lập trình LabVIEW người làm việc có thể tránh được những công việc không cần thiết như tổ chức hệ thống Qua đó người dùng có thể nâng cao được hiệu quả công việc

Được sự động viên hướng dẫn của các thầy giáo trong khoa kỹ thuật điều khiển và đặc biệt là sự hướng dẫn, giúp đỡ tận tình của thây giáo-tiến sỹ khoa

học Nguyễn Công Định chúng em mạnh dạn nhận đề tài này VỚI mong muốn

góp một phần công sức nhỏ bé của mình vào việc khai thác và từng bước làm chủ ngôn ngữ lập trình đồ hoạ LabVIEW trong lĩnh vực đo lường-điều khiến

Đề tài giải quyết các vấn đề sau:

- _ Chương 1: Kỹ thuật lập trình trên LabVIEW

- Chương 2: Thiết bị đo thông minh HP 34970A

- _ Chương 3: Xây dựng các bài thí nghiệm trên bệ thí nghiệm máy điện Do hạn chê về thời gian và khả năng nên đê tài còn nhiêu vân đề cân bô xung Em rât mong được sự chỉ bảo của các thây giáo và các bạn học viên đê đê tài được hoàn chỉnh hơn

Xin chân thành cảm ơn

Các tác giả

Trang 2

VNArmy

Chuong 1

GIOI THIEU VE NGON NGU LAP TRINH LABVIEW

§1.1 KY THUAT LAP TRINH CO BAN TREN LABVIEW

I LabVIEW la gi?

LabVIEW (Laboratory Virtual Instrument Engineering Workbench) la một môi trường phát triển chương trình, rất giỗng môi trường phát triển của C hay Basic và National Instrument Lab Windows/CVI LabVIEW khác với các ứng dụng đó ở một điểm rất quan trọng Hệ thống lập trình khác sử dụng ngôn ngữ text-based để tạo các dòng mã lệnh, trong khi LabVIEW sử đụng ngôn ngữ lập trình đồ hoạ,G, để tạo các chương trình dưới dạng sơ đồ khối

II Thé manh cia LabVIEW

LabVIEW, giéng như C hay Basic, là một hệ thống lập trình đa dụng với các thư viện lớn chứa các hàm cho bất kỳ nhiệm vụ lập trình nào LabVIEW cũng chứa các công cụ phát triển chương trình thông thường nên bạn có thể đặt điểm gãy (break point), lam sông động quá trình thực hiện (highlight excution) để xem dữ liệu truyền trong chương trình như thế nào vả thực hiện từng bước chương trình để tiến hành gỡ rôi và phát triển chương trình dễ dàng hơn

LabVIEW cung cấp khả năng xây dựng những chương trình cho các hệ thống khoa học và kĩ thuật LabVIEW cung cấp cho bạn một ngôn ngữ lập trình linh hoạt và có tính khả thi

LabVIEW cung cấp cách nhanh hơn để lập trình với các thiết bị và các hệ thống thu thập dữ liệu Với việc dùng LabVIEW, bạn có giảm bớt thời gian phát triển hệ thống và tăng hiệu suất làm việc LabVIEW cung cấp những công cụ mạnh cho việc ghép nối với các các thiết bị vật lý bên ngồi mà khơng phải qua phân thiết kế hệ thông một cách phức tạp như trong các ngôn ngữ khác

LabVIEW là ngôn ngữ lập trình đồ hoạ nên rất trực quan và dễ sử dụng LabVIEW chứa các thư viện cho việc thu nhận dữ liệu, điều khiến thiết bị GPIB và Serial, phân tích dữ liệu, biểu diễn dữ liệu và cất giữ dữ liệu Với một thư

viện phong phú cho các hệ thống điều khiển, LabVIEW có thể ứng dụng mạnh

trong việc lập trình điều khiển hệ thống

Ill Các thanh phan cia LabVIEW

LabVIEW 1a mot hé thống lập trình đa dụng nhưng nó còn chứa các thư viện của các hàm và các công cụ phát triển được thiết kế đặc biệt cho việc thu

nhận dữ liệu và điều khiến thiết bị Chương trình LabVIEW được gọi là các thiết bị ảo (Virtual Instrument-V]) bởi vì sự hiển thị và vận hành có thể làm giả các

thiết bị thực Tuy nhiên, các VI tương tự như các hàm của các ngôn ngữ lập

trình thông thường

Một VI bao gồm một giao diện với người sử dụng, một đồ hình truyền dữ liệu mả phục vụ như là mã nguôn và biểu tượng kết nỗi ( icon conection) dé cho phép có thể gọi được từ các VI cấp cao Chi tiết hơn các VI có cầu trúc như sau:

Trang 3

e Giao diện với người dùng của một VI được goi 1a Front Panel boi vi no mô phỏng panel của một thiết bị vật lý Front Panel có thể bao gồm các nút

bắm, nút xoay, đồ thị và các bộ điều khiến (control) và chỉ thi (Indicator)

e VỊ nhận các lệnh từ Block Diagram mà bạn tạo nên từ ngôn ngữ G Block Diagram là sự giải quyết bằng hình ảnh cho một vấn đề lập trình Block Diagram cũng là mã nguồn cho VI của ban

e VI có tính phân cấp vả modul Bạn có thể dùng chúng như là những VI cấp cao hay như những chương trình con cùng với những chương trình khác Một VI được gan với một VỊ khác được gọi là subVI lcon và conector của một VI làm việc như một danh sách các tham số đồ hoạ để

các VI khác có thể gửi dữ liệu đến subVI

Với những đặc điểm trên, LabVIEW khuyến khích và gắn với khái niệm

lập trình modul Bạn chia một ứng dụng thành một loạt các nhiệm vụ con đơn

giản Xây dựng VI để hoàn thảnh mỗi nhiệm vụ con và sau đó tổ hợp những VI

đó trên Block Diagram khác để hoàn thành nhiệm vụ lớn Cuối cùng, VI mức

cao nhất bao gồm một sự tập hợp lại các sub VI mả biểu diễn hàm ứng dụng

Vì bạn có thê thực hiện mỗi subVI bởi chính nó, riêng rẽ với phần còn lại

của ứng dụng, nên việc gỡ roi có thể trở nên đễ dàng hơn Hơn nữa, nhiễu subVI cấp thập thường thực thi những nhiệm vụ mà chung cho nhiều ứng dụng nên bạn có thể phát triển một tập đặc biệt của các subVI cho ứng dụng mà bạn xây dựng Phần sau đây sẽ giải thích rõ hơn về Front Panel, Block Diagram, icon, conector và các đặc điểm liên quan khác

1 Front Panel

Hinh 1-1 minh hoa mot Front Panel trong LabVIEW Giao diện sử dụng của một subVI thường giống giao diện sử dụng của các thiết bị vật lí Nó được goi la Front Panel

i> Temp % Vol.vi

File Edit Operate Project YWindows Help

[hey #4 Il | |13gt Application Font a ma =| Te ri“ «| Temp Yolume 180 - 4000 80 = 800~ BŨ= B00” 40= 400= 20 = 200= 0~ = [4 me Hinh 1-1 Front Panel

Front Panel chi yéu 1a mét t6 hop cdc control va indicator Control m6 phỏng các thiết bị đầu vào của máy va cung cấp dữ liệu cho Block Diagram

Indicator mô phỏng các thiết bị đầu ra của máy để hiển thị các dữ liệu thu được

hay được phát ra tr Block Diagram cua VI

Cé thé dat cdc control hay indicator 1én Front Panel thong qua bang động Control

Trang 4

VNArmy

2 Block Diagram

Ban co thé chuyén tir Front Panel sang Block Diagram bang cach chon Windows>>Show diagram từ bảng thực đơn Cửa sô Diagram năm giữ Block Diagram của VI là mã nguồn đồ hoạ cho VI Xây dung Block Diagram bang cách nỗi với nhau các đối tượng gửi hay nhận dữ liệu, thực hiện các hàm cụ thể, điều khiển quá trình truyền Phần Diagram thể hiện những đối tượng chính của chương trình - các node, các terminal, các dây nỗi Hình 1-2 minh hoạ một Block Diagram l‡> Temp $ Vol.vi Diagiam mm

File Edit Operate Project ! Window's Help - =

Lê] <3: [§] bo|#|o2 | [r4 Application Fort #|[Đm >ẽ[5E ~]J[#đ-+] _- 5 Prac [P| a [BBt || = XS>———+*>t —————— a Mon |? | nở | ũ fast tan — v 4 | 14 Hinh 1-2 Block Diagram e Terminal

Cac terminal là các vùng trên một VI hay các hàm mà dữ liệu gửi qua đó Terminal tương tự như các tham số trong ngôn ngữ lập trình text based Khi bạn đặt một confrol hay indicator lên Front Panel, một terminal tương ứng sẽ tạo trên Block Diagram Bạn khơng thể xố một terminal mả thuộc một control hay indicator Terminal chỉ biến mất khi bạn xoá control hay indicator cua nó trên Panel Các terminal mà tạo ra dữ liệu được tham chiếu như các terminal nguon dữ liệu và các terminal mà nhận dữ liệu là các terminal đích dữ liệu

e Node (Nut)

Node là các phân tử thực hiện chương trình Chúng tương tự như các câu lệnh, các toán tử, các hàm và các thủ tục trong các ngôn ngữ thông thường G có một thư viện lớn của các hàm toán học so sánh, chuyền đỗi, Vào ra V.V

Có sáu kiểu node chính là hàm, subVI, cấu trúc, Code Interface Node

(CIN) , node công thức và Attibute Node © Wire ( Déy noi)

Wire là đường dẫn dữ liệu giữa các terminal nguồn va terminal dich Ban không thể nối một terminal nguồn với một terminal nguồn cũng như

không được nỗi một terminal đích với một terminal đích khác Tuy nhiên

một terminal nguồn có thể nỗi với một vài terminal đích Mỗi đường dẫn có một kiểu và màu riêng, phụ thuộc vào giá trị mà truyền qua dây nối e Data flow ( Luông đữ liệu)

Data flow là nguyên lý mà điều khiển sự thực hiện chương trình của G

Một node thực hiện khi tất cả các đầu vào đữ liệu đã đến; node đó lại cung

cấp dữ liệu tất cả các đàu ra của nó khi nó kết thúc việc thực hiện; dữ liệu

Trang 5

được gửi ngay lập tức từ nguồn tới đích Data flow trái ngược với phương

thức truyền trong các ngôn ngữ truyền thông Trong các ngôn ngữ đó, các

lẹnh được thực hiện tuần tự theo thứ tự mà chúng được viết 3 Icon va connector

Khi m6t icon cua mot VI dugc dat lén diagram cua mét VỊ khác, nó trở

thanh mot subVI Cac control va indicator cua mot subVI nhan dt liéu va tra

lại dữ liệu cho diagram cua VI go1

Connector la m6t tap hgp cac terminal ma tương ứng với các control và indicator cua subVI Icon hoac là biểu diễn bằng hình ảnh mục đích của VI

hoặc là sự mô tả văn bản của VI hay các terminal của nó

Mỗi VI đều có một icon mặc định ở góc phải phía trên cửa số Front Panel

va Block Diagram Hinh sau minh hoa mot icon mac dinh

fem et ee eT eet

File Edit Operate Project Windows Help

oY [es 5 II | [w] lenlff]:-z] | Spt Application Fort | Fol |:na_*| [és =] Hinh 1-3 Icon mac dinh

Tất cả các VI đều có connector mà có thể được truy nhập vào bằng cách chon Show connector từ menu pop-up ở ô Icon trên Front Panel Khi bạn gọi

connector lần đầu tiên, bạn sẽ thấy một mẫu connector Bạn có thể chon mẫu

connector khác nếu bạn muốn Thông thường thì connector có một terminal cho mỗi control và indicator trên Front Panel nhưng bạn có thê gán lên đến 28 terminal

4 Cac bang dong trong LabVIEW

* Bang Control g Fein s xi| | La:] = Hình 1-4 Bang Controls

Bang Control 14 bang d6ng chi co d6i véi Front Panel Dé dat cdc control va indicator lén Front Panel cé thé ding bang Control Nếu bảng không hiện có thé chon Windows>>Show Control palette hoặc là kích chuột phải lên một vùng trồng trên Front Panel Hình 1-4 minh hoạ bảng động Control

Bang Control gém cac control va indicator sau:

- Kiểu số học (hình 1-5) bao gồm các control và indicator kiểu số, kiểu slide,

kiểu rotate, kiểu ring

Trang 6

VNArmy

- _ Kiêu Boolean (hình 1-6) mô phỏng các nút có hai chê độ như các nút bat/tat, các chuyên mạch và mô phỏng các đèn LED và các bóng đèn Bi: c7 ><] #irzz| mzz-| [:.s› ] LÌ LI Kã E3 mm /ñ [L] J ?‡ :j ï? zw â â đ # s O00 it sare = E mm 3 ta Em B5 mm oe “ie bos) (3 oO Dac) # a El cok | cancel] FF @

Hinh 1-5 Numeric Hinh 1-6 Boolean

- Kiéu chudi (hinh 1-7) chita cdc control, indicator va constant kiéu chudi

- List va ring (hinh 1-8)

- Mang va cluster (hình 1-9) chứa các vỏ kiểu mang va cluster, cdc indicator báo lỗi - Graph va chart (hinh 1-10) chứa các indicator để hiển thị dữ liệu dưới dạng đô thị 2) 2) 5 05.400 ES |B > Anay & Cluster ‘Bi BỊ woe)

Trang 7

* Bang Functions > Functions [x | } 1 là +} : bị) OCF ts — + = OF Mus (eH TnstrLlik b Be = IF=I° 2e" ae) I? >4 el i | 5 Oe a 2) Eh (i

Hinh 1-13 Bang Functions

Để đặt các hàm và các node của ngôn ngữ lập trình G lên Block Diagram bạn có thể chọn chúng từ bảng Functions Để cho hiện bảng Functions chọn Windows>>Show Functfion palette Một cách khác để chọn phần tử của bảng Functions là bắm chuột phải lên vùng trống ở trên Block Diagram Hình 1-13 minh hoa bang Functions trong LabVIEW

Bang Functions chira cac ham va cac node sau:

- Numeric (hinh 1-14) chtra cdc ham 1am viéc trén cdc phan tt kiéu numeric Ngoài ra nó còn chứa các hăng số như pi, e

- Boolean (hinh 1-15) chtta céc ham làm việc trên các phần tử kiểu boolean

như and, or, xor, not

- _ Các hảm quan hệ hình (1-16) như lớn hơn, nhỏ hơn, băng, khác

[Comparison S|

[x) Jv Je {> Coal pea ||| E> > [E> E>

Hinh 1-15 Ham logi in - Liam 1OĐIC D> GE b> p> pone

Hinh 1-16 Ham quan hé Hinh 1-14 Numeric

- Structure (hinh 1-17) chwa cac phan tir diéu khién luéng dé liéu nhu vòng

for, while, cau tric case, sequence va formula node

Trang 8

VNArmy

Ngoài ra bảng Funcflons còn chứa các hàm làm việc trên dữ liệu như các ham xt ly mang (Functions>>Array), xu ly cluster (Functions>>Cluster), xu

lý chuỗi (Funetions>>String), vào ra với tệp (Functions>>UO File) và các thư

viện xử lý đa dạng như thư viện xử lý tin hiéu (Functions>>Signal Processing), toán học (Functions>>Mathematies), vào ra với thiết bị (Functions>> Instrument I/O) * Bang Tools

Hinh 1-18 Bang Tools

Mỗi công cụ trong bảng là một trạng thái hoạt động đặc biệt của con trỏ chuột Các công cụ này được dùng để xác định hoạt động xảy ra khi kích chuột trên Front Panel hay Block Diagram Để lẫy một công cụ, kích chuột vảo công cụ đó ở trên bảng công cụ Tools Palette Bảng công cụ có cho cả Front Panel và Block Diagram Nếu nó đang ân thì có thể cho hiện bằng cách chọn Windows>>Show Tools Palette Các công cụ trong bảng bao gồm:

Operating tool - thay déi gid tri cua control va chon phan van ban gan

vai control

Positioning tool - chon vi tri, thay đôi kích thước và chọn đối tượng

Labeling tool - soạn thảo phan van ban va tao cac label tu do

Wiring tool - néi các đối tượng với nhau trên Block Diagram Obiect Pop-up Menu tool - mở thực đơn pop-up của một đỗi tượng Scroll tool - cuộn cửa sô mà không cân thanh cuôn

Trang 9

5 Các bước soạn thảo m6t VI trong LabVIEW l1)Tạo giao điện sử dụng

Có thể tạo giao diện sử dụng đồ hoạ trên Front Panel băng cách lấy các control va indicator từ bang Control

a) Tạo một VI mới băng cách chọn New VI từ hộp hội thoại LabVIEW hoặc từ File>>New

b) Dat cdc control va indicator lén Front Panel dé tao giao diện sử dung cho chương trình

2) Tạo mã nguôn và chạy chương trình

Có thể tạo mã nguồn cho chương trình bằng cách xây dựng Block Diagram cho VI Để tạo các phần tử của Block Diagram có thé dùng bảng Functions

a) Chuyén ti Front Panel sang Block Diagram bằng cách chọn trong Windows>> Show Diagram

b) Lấy các đối tượng cần thiết từ trong bảng Functions dé đặt lên Block Diagram

c) Sử dụng công cụ Wiring tool để nối các phần tử trên Block Diagram với nhau Việc này sẽ xác định data flow của chương trình

d) Quay trở lại Front Panel và kích chuột vào nút Run trên thanh công cụ Việc dừng chương trình có thể lập trình hoặc kích vào nút Abort Excution trên thanh công cụ

3) Lưu chương trình vao đïa

Lưu chương trình vào đĩa bằng cách vào mục Save hoặc Save as trong thực đơn File

Vị dụ soạn thao mét VI don gidn trong LabVIEW Bước 1: Thiết kế giao diện sử dụng

a) Mở một VI mới bằng cách chọn New VI từ hộp hội thoại hoặc chọn File>> New VI

b) Đặt các control va indicator lén Front Panel

- Chon Tank tt Control>>Numeric va dat lén Front Panel

- Danh Volume vao hép label text va kich chudt vao bat kì dau trén Front Panel

- _ Thay đổi thang đo của Tank từ 0 đến 1000 băng cách:

+ Sử dụng công cụ label kích vào 70.00 ở trên Tank để làm nỗi nó

+ Đánh 1000 vào kích ở vị trí bất kì trên Front Panel Thang đo sẽ tự động thay đổi mức tăng trung gian

- Dat Thermometer cing tr Control >>Numeric lên Front Panel Đặt tên no 7emp và thay đôi thang đo từ 0 đến 100

Trang 10

VNArmy Bây giờ giao diện sử dụng của bạn như hình 1-19 Volume 1000.0- 500.00 750.0- FO0.0- 200.0- 0.0- Temp 100.0- S162 ?5.0- 60.0 - e505 0.0-

Hình 1-19 Giao diện sử dụng chương trình

Bước 2: Tạo mã nguôn cho chương trình a) Đặt các đôi tượng sau lên Block Diagram Prnr Hor Anh Process Monitor (lay từ Funcfons>>Select a VI và vào thư mục v LabVIEW \Activifty) mô phỏng việc đọc dung tích và nhiệt độ từ sensor =e mF) "| nhiên giữa 0 và 1

Fray Random Number (lay ti Functions>>Numeric) tao ra các số ngẫu

[=> Ham nhan (lay từ Functions>> Numeric) thực hiện nhân hai số và trả lại kết quả Chương trình này sử dụng 2 hàm nhân Có thể tạo ra 2 hàm này bằng cách lẫy 2 lần từ bảng hoặc sao chép từ một hàm va dan dé tao ra Hằng số (lấy từ Functions>>Numerie): tạo ra 2 cái Sử dụng công cụ label để thay đối giá trị của nó thành 70.00

b) Sử dụng công cụ Wiring để nối các đối tượng theo như sơ đồ khối hình 1-20 c) An vao nit Run trên thanh công cụ để thực hiện chương trình

Trang 11

6 Chuong trinh con trong LabVIEW a) Thiét ké phan cap

Các chương trình con trong LabVIEW cũng giống như các chương trình con trong các ngôn ngữ lập trình khác Nó là một VI được dùng trong Block Diagram của một VI khác được gọi là subVI

Khi bạn tạo một subVI là bạn đang ở VI mức cao nhất và định nghĩa các đầu vào và đầu ra cho ứng dụng Sau đó, cầu trúc các subVI để thực hiện các hoạt động cần thiết trên dữ liệu khi nó chảy trong Block Diagram Nếu một Block Diagram có một số lượng lớn các biểu tượng, tập hợp chúng vào một VI cấp thấp để Block Diagram đơn giản hơn Sự tiếp cận theo module khiến các ứng dụng để dàng gỡ rồi, hiểu và bảo dưỡng

b) Tao subVI tu VI

Dé gọi một VI từ một Block Diagram của một VỊ khác, trước hết cần phải

tạo biểu tượng và đầu nói cho nó * Tạo biểu tượng của VI

Mở VI mà sẽ tạo thành subVI cho VI khác

Để tạo biểu tượng của VỊ cần cho hiện cửa sô Ieon Editor Có thể gol cua

sô này băng cách kích đúp chuột vào ô biểu tượng ở góc bên phải hoặc kích chuột phải và chọn mục Edit Ieon Khi đó cửa số sẽ hiện lên như hình 1-21 B&W ae from SL) - 16 Colors i a ant a SES [~ Show Terminals 256 Colors OK | _— Pmeel—| Cancel

Hình 1-21 Cửa số Edit Icon

Sử dụng các công cụ ở bên trái biểu tượng để tạo biểu tượng theo y muốn Có thé chon OK để lưu biểu tượng vả quay về Front Panel hay Cancel dé quay vé Front Panel mà không lưu bat ctr thay déi nao

Trang 12

VNArmy

Để có thể nhận hay truyền đữ liệu bạn cần phải có các conector LabVIEW có rất nhiều mẫu conector mà có thể chọn bằng cách pop- up trên conector và chọn Paterns từ thực đơn pop-up sẽ được một bảng các mâu của conector như hình 1-22

Nếu muốn thêm một terminal vào mẫu, đưa con trỏ đến chỗ muốn thêm, pop-up va chon Add Terminal Nếu muốn bỏ một terminal, pop-up trên terminal muén bd va chon Remove Terminal Néu muén thay đổi sự sắp xếp không gian thì có thể chọn một trong các lệnh sau: Flip Horizontal, Flip Vertical hoac Rotage 90 degrees

* Gan cac terminal cho cac control va indicator

Bước 1: Kích chuột vào một terminal cla conector Céng cụ tự động chuyển thành công cụ Wire Terminal chuyển thành màu đen

Bước 2: Kích chuột vào control hay indicator trén Front Panel tuong tng voi terminal đã chọn ở bước trước Một đường nét đứt chuyển động bao quanh control hay indicator (như hình 1-23) để báo răng nó đang được chọn 1 TT ‹ ITemBI_ _ I1100- | #^= ! o.oo} | 75.0- | 50.0- | 25.0- | _ Tủ

Hinh 1-23 Chon indicator cho subVI

Bước 3: Kích chuột vào một vùng trồng trên Front Panel Terminal được chọn

chuyên thành màu theo kiểu đữ liệu của control hay Indicator được nối thông báo răng terminal đã được gán, nếu terminal là màu trắng tức là đã nỗi sal

Bước 4: Lặp lại bước 1 va 2 voi cdc control va indicator ban muén ndi c) Tao cdc subVI tir mét phan cua VI

Có thé chuyển đổi một phần của một VI thành một SubVI để gọi từ VI

khác Chọn một phan cua VI va chon Edit>>Creat SubVI Cac control va

indicator duoc tu dong tao cho SubVI mdi, SubVI duoc ty dong nội với các dây nối đang có và một biểu tượng thay thế cho phần được chọn của Block Diagram của VI gốc Tạo một Sub VI từ một phần của VI giống như việc bỏ một phần của SubVI va thay thé bang một Sub VI ngoại trừ các hoạt động sau:

- Không một terminal của Front Panel nào mà được chứa trong phần đó bị bỏ đi khỏi VI gọi Thay vào đó, các terminal đó được giữ lại và được nỗi với SubVI

- Tất cả các thuộc tính trong phần chọn giữ lại trong VI gọi và được nối với SubVI Những thuộc tính được chọn bị thay thế bởi các terminal của Front Panel trong SubVI ma biéu diễn như các kênh cho việc truyền gia tri của một thudc tinh, bén trong hoadc ngoai cua SubVI

- Khi phân chọn chứa một biến địa phương,nó được thay thế bởi terminal của Front Panel trong SubVI Biến địa phương được giữ lại trên VI gọi và

Trang 13

được nỗi với SubVI Khi có nhiều hơn một trường hợp của các biến địa phương giống nhau, trường hợp đầu trở thành terminal của Front Panel vả phân còn lại trở thành biến địa phương trong SubVI Chỉ có một trường hợp của biến địa phương được giữ lại trên VI gọi còn phan con lai bi bo di va dugc chuyén dén SubVI

- Bởi các biến địa phương có thể cả đọc và ghi từ một terminal của Front Panel, khi các trường hợp của các biến địa phương cả đọc và ghi được chọn, hai đối tượng của Front Panel được tạo - một gửi gia tri cua biến địa phương vào SubVI, một gửi giá trị của biến địa phương ra khỏi SubVI Các terminal của Front Panel được tạo dé biểu diễn biến địa phương đọc (ghi) sẽ có hậu tô read (wrIte) thêm vào tên của nó

7 Thực hiện gỡ rối trong LabVIEW

Một VI không thể biên dịch hoặc chạy nếu nó bị gãy Bình thường, VI bị

gãy trong khi đang tạo hoặc soạn nó cho tới khi nối tất cả các biểu tượng trong Block Diagram Nếu nó bị gãy khi đã hoàn thàn, thử chọn Remove Bad Wires từ thực đơn Edit Thông thường việc nay sữa chữa một VI gãy

Khi VI không thể thực hiện được, một mỗi tên gãy hiện lên thay cho nút Run Để liệt kê các lỗi, kích chuột vào nút Run gãy Kích vào một trong các lỗi được liệt kê và sau đó kích vào Find để hiện đối tượng hoặc terminal mà đã thông báo lỗi

_#fEli€ln]iS]is4s

Khi VI thực hiện thanh công cụ sẽ như hình trên Với mục đích gỡ Tôi, bạn có thể muốn thực hiện Block Diagram từng node một Việc nảy gọi là single-stepping Dé cho kha năng chạy từng bước, kích vào nút StepInfo hay StepOver Nếu node là một cấu trúc hoặc VI thì có thể chọn StepOver để thực hiện node nhưng không thực hiện từng bước qua node Để thực hiện từng bước qua node là cầu trúc hay Sub VI chọn nút StepInfo

Việc thực hiện từng bước thường đi với việc sử dụng Highlight Excution dé quan sat su chay cua di liéu trong Block Diagram Si dung Highlight Excution bang cach kich chudt vao nut Highlight Excution St dung Highlight Excution khiến cho VI trông sông động hơn

Một cách nữa để xem dữ liệu trong Block Diagram là sử dụng điểm dò (Probe) Co thé dat diém dò ở dây nối đầu ra của một node nhờ công cụ Probe trong bảng công cụ Tools hoặc kích chuột phải trên dây nối tại điểm muốn đặt điểm dò và chọn Probe từ thực đơn pop-up

IV Cac cau tric trong LabVIEW

Cấu trúc là các phần tử điều khiển chương trình Các cấu trúc điều khiển

dòng dữ liệu của một VI GŒ có nắm cấu tric: While loop, For loop, Case,

Sequence va Formula Node 1 Vong While

Vòng While là một cấu trúc mà lặp lại một phần của mã cho tới khi một

điều kiện được gặp Nó có thể tương đương như vòng Do-While hoặc Repeat Until trong các ngôn ngữ lập trình truyền thông Vòng While là một hộp có kích

thước thay đối được Nó thực hiện đoạn mã ở trong nó cho tới khi giá trị kiểu

Boolean được gửi đến terminal điều kiện (một terminal đầu vào) là False VI

http://www.dientuvietnam.net 13

Trang 14

VNArmy

kiểm tra điều kiện ở cuỗi mỗi lần lặp, do đó vòng While luôn thực hiện it nhất một lần Terminal lần lặp là một terminal đầu ra, nó gửi ra số lần vòng lặp đã thực Tuy nhiên vòng lặp luôn được đếm từ 0 nên nếu vòng lặp chỉ thực hiện một lần, đầu terminal lặp lại sẽ xuất ra giá trị 0 lteration Conditional Terminal Terminal Hình 1-24.Vòng While Vòng While tương đương đoạn giả mã sau: Đo

Execute Diagram inside the Loop (which sets the condition) While Condition is true

Để dit vong While lén Block Diagram vao Function>>Structures Vong While không đặt lên Block Diagram ngay mà thay vào đó ta có thé dat vi tri va

thay đôi kích thước của nó Đề thực hiện, kích chuột vào khu vực phía trên bên

trái của những terminal mà ta muốn đặt trong vòng Sau đó kéo chuột để nó bao các terminal đó và thả ra Nếu muốn đặt một đối tượng vào trong vòng While thì

phải kéo đối tượng vào vòng While chứ không được kéo vòng While đè lên đối

tượng Đây cũng là nguyên tắc chung đối với các structure trong LabVIEW * Thanh ghi dich

Thanh ghi dịch (có sẵn đối với vòng While và For) chuyến các giá trị từ một lần lặp đến lần lặp kế tiếp Có thể tạo thanh ghi dịch bằng cách pop-up trên viền trái hoặc phải của vòng lặp và chọn Add Shift Register

Thanh ghi dịch bao gôm một cặp terminal đối diện nhau ở trên mặt đứng của viên vòng lặp Terminal bên phải lưu trữ giư liệu khi hoàn thành một lần lặp Dữ liệu dịch chuyên đến cuối mỗi lần lặp và chuyển sang terminal trái ở đầu của

lần lặp kế tiếp Mỗi thanh ghi dịch có thể lưu trữ bất kì kiêu đữ liệu nào Thanh ghi dịch tự động thích ứng với kiểu dữ liệu của đối tượng đầu tiên nôi vào thanh

ghi dịch Hình 2-25 mình hoạ cách dùng thanh ghi dịch trong vòng lặp

Trang 15

Đê thêm thanh ghi dịch, kích chuột phải vào terminal ở bên phải hoặc trái và chọn Add Element Trước khi bắt đầu vòng lặp Lần lặp đầu tiên

Gia tri Gia tri ban dau moi —>~ Lân lặp cuôi cùng - Giá trị trước Giá trị mới ——nm Hình 1-25 Cách dùng thanh ghi dịch trong vòng lặp 2 Vòng For Loop Gaunt Numerical Input Numerical Output LiƑ—> Hình 1-26 Vòng lặp For

Vòng For cũng thực hiện lặp một đoạn mã như vòng While nhưng số lần lặp lại được xác định trước Vòng For cũng giống như vòng For trong các ngôn ngữ lập trình truyền thống Nó tương đương với đoạn giả mã sau:

For i=1 to N-1

Excute Diagram inside The Loop

Theo đó thì vòng For gém 2 terminal nhu minh hoa ở hình 1-26 Trong

đó

BÏỈ Count terminal là một terminal vào xác định số lần lặp

Li] Iteration terminal la terminal ra, đếm số lần phép lặp đã thực hiện

Để đặt vòng For lên Block Diagram cũng thực hiện như vòng While 3 Case & Sequence Structure

Cấu tric Case va Sequence co thể có hai hoặc nhiều đồ hình con (subdiagram) mà chỉ một trong sô chúng thực hiện khi cầu trúc thực hiện Tại đỉnh của viền mỗi cầu trúc có một cửa số biểu diễn subdiagram Cửa số nảy gồm một mục nhận dạng đồ hình (diagram identifier) ở giữa và các nút tăng giảm ở

mỗi cạnh Đối với cầu trúc Case, phân điagram identifier là một danh sách các

Trang 16

VNArmy , giá tri dé chon subdiagram, con voi Sequence là sô khung theo trình tự (0 đên n-1) Hinh 1-27 minh hoa cau tric Case va Sequence Increment/Decrement Buttons Ì I J Ỷ & [ll False PS ïI4| 1[0 1]}* Diagram 5 s A Identifier boa eae Pd _ Case Structure Sequence Structure Hinh 1-27 Cu tric Case va Sequence a) Cau truc Case Selection Terminal (Selector) Hinh 1-28 Cấu trúc Case

Cấu trúc Case có hai hoặc nhiều subdiagram (các case) mà chỉ có một case thực hiện Điều này phụ thuộc vào giá tri của kiểu đữ liệu được nối vào cạnh ngoài của terminal lựa chọn hay còn gọi là selector Hình 1-28 minh hoa

một cầu tric Case

Với câu trúc Case bạn có thê thực hiện:

- Chỉ định danh sách hoặc dãy của các giá trị selector tương ứng với mỗi case

- Su dụng một s6 nguyên, một số Boolean, một chuỗi hay một kiểu định nghĩa như một selector

-_ Chỉ định một case mặc định (hoặc hoạt động) -_ Sắp các case theo giá trị selector đầu tiên

Đề tham khảo về cấu trúc Case có thê tham khảo Online help cua nó b) Cấu trúc Sequence

Cầu trúc Sequence trông giỗng một khung phim thực hiện các subdiagram hay các khung (frame) bên trong nó một cách tuân tự Trong các ngôn ngữ lập trình truyền thống, các lệnh được thực hiện theo thứ tự được viết ra nhưng trong LabVIEW chương trình được thực hiện theo nguyên tắc dataflow tức là các node sẽ thực hiện khi tất cả các đầu vào của nó đã sẵn sàng Tuy nhiên thỉnh

thoảng, vẫn cần phải thực hiện một node trước một node khác Để điều khiển

việc nảy G sử dụng cấu trúc Sequence như một phương thức để thực hiện các node theo thứ tự Trong cấu trúc này G sẽ thực hiện các node trong sơ đồ của frame 0 rồi đến frame1, cứ thế cho tới frame cuối cùng thì đữ liệu mới được gửi Ta ngoài

Trang 17

Dé thém frame vao cau tric, kich chudt phai vao viền của frame va chon Add Frame After hoặc Add Frame Before Hình 1-29 minh hoạ cấu trúc Sequence 1 [0.11] Hình 1-29 Câu trúc Sequence

Để gửi dữ liệu từ frame nay sang frame sau no co thé str dung Sequence Local Dé tao Sequence Local kich chudt phai vao vién cua frame va chon Add Sequence Local

4 Formula node

Hình 1-30 minh hoạ một node công thức trong LabVIEW Với node công thức, ta có thể nhập vào một hay nhiều công thức đơn giản hay phức tạp thay vì tạo những sơ đồ con công kènh Đề nhập công thức vào sử dụng Label tool Cần chú ý rằng cuối mỗi công thức phải có dấu chấm phảy (;) Để tạo các đầu vào hay đầu ra cho node công thức, kích chuột phải vào biên của node vả chọn Add

Input hoặc Add Ouput và đánh tên biến vào Các biến phân biệt chữ thường

với chữ hoa

Hình 1-30 Formula Node

Trang 18

VNArmy

Vĩ dụ về sử dụng câu trúc

PTinh deta cua la] phuong trinh*! delta=h"2-4*a*c, J Tinh nghiem*! x†=(-h+sa@rl(deltla))/2/ È be fi Hinh 1-31

Hình 1-31 minh hoa Front Panel va Block Diagram cua mot chuong trinh su dung các phan tu diéu khién luong trong LabVIEW

IV Mang

1 Khai niém chung

Mảng là tập hợp của các phần tử dữ liệu có cùng kiểu Mảng có kích

thước có thể thay đôi Máng có thể có một hoặc nhiều chiều và lên đến 2”'-1

phan tử mỗi chiều Có thể truy cập vảo mỗi phân tử qua chỉ số của nó Chỉ số

của các phần tử trong mảng từ 0 đến n-1 với n là số phần tử của mảng Phần tử

đầu tiên của máng có chỉ số 0, phần tử thứ 2 có chỉ số 1

Trang 19

2 Tao cac mang

Co thé tao mang ctia cdc control hay indicator trén Front Panel bang cach lây vo mang tir Control >>Array & Cluster dat 1én Front Panel Sau d6 chon đôi tượng cần tạo mảng (chang han kiểu Boolean) dat vao trong vo mang Khi đó sẽ tạo ra mảng của các đối tượng kiểu Boolean Tương tự nếu ta chọn vỏ mảng trong Funetions >> Array rồi đặt đối tượng vào ta cũng có thể tạo ra mang các hằng số theo kiểu vừa chọn ở trên Block Diagram

3 Tự động ghỉ chí mục

Các vòng lặp For và While có thể ghi chỉ mục và tích luỹ các mảng ở biên của nó một cách tự động Khả năng tích luỹ này được gọi là auío-indexing Khi cho phép khả năng này và nỗi một mảng hoặc một chiều bất kì của mảng vào đường hằm đầu vào ở biên vòng lặp thì các thành phần của mảng đó nạp vào vòng lặp mỗi lần một thành phân, bắt đầu từ thành phần đầu tiên Vòng lặp đặt chỉ mục cho cdc phan tử vô hướng từ mảng một chiều và mảng một chiêu từ mang hai chiều Tương tự như đối với đường hầm đầu ra, vòng lặp sẽ tích luỹ các phần tử vào mảng một chiều và mảng một chiều vào mảng hai chiều

4 Sử dụng các hàm xử lí mảng

G có nhiêu hàm đê thực hiện trên mảng được đặt trong Functions>>Array Sau day sẽ giới thiệu một sô hàm thông dụng

8) Build Array element array) = array with appended element(s)

alarnant ™ “ii Phi

Ham Build Array có một hay nhiều đầu vào và một đầu ra Trong đó, đầu vào có thể là kiểu mảng hay vô hướng Hàm Build Array gắn các mảng array và phân tử element ở đầu vào của hàm theo thứ tự từ trên xuống thanh mang array with appended element(s) Để tạo mảng có n chiều thì các đầu vào array phải có cùng n chiều vả các phần tử element phải có n-1 chiêu

b) Initialize Array

element ==> El]— initislized

dimension size a HH n-dimension array

f eT STI civ Ï vedas

wit TÊN CiờN Size att HH =!

Trang 20

VNArmy

Ham Array Subset được dùng để trích ra một phần của mảng hoặc ma tran Ham nay sẽ trả lại một phân của mảng bát đâu tt vi tri index va bao gdm length phân tử Chú ý răng chỉ mục của mảng bắt đầu từ 0 e) Index Array nedinencion array == HỊ " element or index 0 ——=t | sub-array indaxt 4-1 |

Ham Index Array su dung dé truy nhap vao phân tử của mảng Hàm này còn được sử dụng để cắt mảng nhiều chiều thành một mảng con của mảng gốc Dé cat mảng thực hiện theo các bước sau:

- Kéo hàm Index Array để nó chứa thêm các đầu vào index Số các đầu vào này bằng với số chiều của mảng đầu vào

- Số các chiều của phần lấy ra bằng với số các đầu vào index ở chế độ Disable Indexing Muốn chọn Disable Indexing thì kích chuột phải vào đầu vao index va chọn Disable Indexing từ thực đơn pop-up Ví dụ, muốn lẫy ra phân tử vô hướng thì không chọn cho đầu vào index nào, muốn lấy ra mang một chiều thì cho một đầu vào index ở chế độ Disable Indexing, muốn lấy ra mang hai chiều thì cho hai đầu vào index ở chế độ Disable Indexing

-_ Các đầu vào index còn lại được nối với giá trị sẽ xác định giá trỊ của chiều can lay ra Ví dụ đôi với máng 2 chiều nếu nối đầu vào này với 2 thì sẽ lẫy ra được mảng 1 chiều là cột hoặc hàng tuỳ vào đầu vào ở chế độ Disable Indexing là thứ nhất hay thứ hai

Để tham khảo thêm về các hàm xử lý mảng xem thêm trong Online Help của nó Vi du vé su dung mang | llx Index Äirap.vi * ai E | | File Edit Operate Project Vvindows Help cal | ấÐ] H|[L3t eppicationFont — >|[§z>Ì| 0g x]|[#5 >] > Array 2D Array3 3D Array = m1 12 03 m1 D2 3 j1 a2 02 2D Array? Index Output Array —n——— H02 |JRHD3 3P | a 5,02 ElsiiEi of 6,02 503 ot ña 02 02 pia] ¬ = aie jt lat Le bat ad

|2IU0I25210/01/5,L8 Ms + 1i) ÏÊg

Trang 21

Hình 1-32 minh hoạ về việc sử dụng mang và các hàm xử lý mang trong LabVIEW Ham Build Array x4y dựng một mảng 3 chiều từ 3 mảng 2 chiều Ham Index Array lay mang 2 chiéu ra từ mảng 3 chiều

V Cluster

1.Khái niệm chung

Cluster là một kiểu đữ liệu mà có thể bao gồm các phần tử có kiểu đữ liệu

khác nhau Khi dùng cluster, subVI yêu cầu số đầu nỗi ít hơn Kiểu dữ liệu cluster có thể so sánh như kiểu bản ghi trong Pascal và kiểu cấu trúc trong C Khác với mảng, cluster có kích thước không đôi Cũng giống như mảng, cluster cũng có thể là control hay indicator nhưng cluster không thể chứa cả control và indicator Hai cluster chi có thể nối với nhau khi các phần tử tương ứng có cùng kiểu Hai phần tử tương ứng là hai phần tử có cùng thir ty trong cluster

2 Tao cluster

Dé tao cluster vao Control>>Array & Cluster va dat v6 cluster lén Front

Panel Sau đó đặt các phần tử vào cluster như đối với mảng Thứ tự đặt phần tử

vao cluster sé qui định thứ tự của phần tử trong cluster Nêu muốn thay đổi thứ

tự của cluster, kích chuột phải vào cluster và chọn Cluster Order trong thuc

đơn pop-up của nó

3 Các hàm xử lý đối với Cluster

Dé lắp ráp cluster có 3 hàm là:Bundle vả Bundle By Name để lắp ráp cluster từ những phần tử riêng biệt còn Array To Cluster chuyển mảng thanh cluster Tương ứng với các hàm này là 3 hàm tháo rỡ cluster la: Unbundle va Unbundle By Name để tháo cluster thành các phần tử riêng biệt còn Cluster To Array để chuyển cluster của các phần tử cùng kiểu thành mảng Có thể truy cập vào các hàm nay tir Functions >> Cluster Co thé tham khảo thêm về các hàm cua cluster trong Online Help cua no

VI Graph va Chart 1 Khai niém chung

Graph là một thể hiện hai chiều của một hay nhiều đồ thị Graph nhận dữ

liệu theo khối Chart cũng thể hiện các đồ thị nhưng chart nhận và cập nhật dữ

liệu từ điểm tới điểm hay mảng tới máng, giữ lại một chút các điểm trước trong vùng đệm với mục đích biéu dién Co 3 loại graph va 2 loai chart 6 trong Controls >> Graph 1a: Waveform Graph, XY Graph, Intensity Graph và Waveform Chart, Intensity Chart

2 Waveform Graph va XY Graph

Waveform Graph để biểu diễn các giá trị được lấy mẫu như nhau XY Graph co thé biểu diễn bất kì tập các điểm nào dù nó có được lấy mẫu như nhau không Waveform Graph chỉ vẽ được các hàm đơn trị với các điểm được phân bố như nhau dọc theo trục x XY Graph có thể vẽ được các hàm đa trị Đề vẽ

được đồ thị thì bạn phải có kiểu dữ liệu riêng cho mỗi đồ thị a) Vẽ đồ thị đơn

* Các kiéu dit liéu cho Waveform Graph

Trang 22

VNArmy

Có 2 kiểu dữ liệu cho Waveform Graph 1a:

1) Dữ liệu kiểu mảng của các giá trị Graph sẽ đối xử như các điểm và tăng lên 1 bắt đầu từ x=0

2) Dữ liệu là một cluster gồm một giá trị khởi tạo xạ, giá trị Ax và một

mảng đữ liệu y

* Các kiểu dữ liệu cho XY Graph

Cé 2 kiéu dit ligu cho XY Graph 1a:

1) Dữ liệu là một cluster chứa một mảng dữ liệu x và một mảng dữ liệu y 2) Dữ liệu là một mảng các điểm mà mỗi điểm là một cluster của x va y

b) Vẽ nhiều đồ thị

* Các kiểu dữ liệu cho Waveform Graph

Có 5 kiểu đữ liệu cho Waveform Graph là:

1) Kiểu dữ liệu là một mảng hai chiều mà mỗi hàng là một đồ thị như trong trường hợp vẽ đơn đồ thị Để chuyển thành mỗi cột biểu diễn

một đồ thị có thể chọn Transpose Array trong thực đơn pop-up của graph

2) Dữ liệu là một cluster của một giá trị khởi tạo x, một giả trị Ax và một

mảng 2 chiều y

3) Kiểu dữ liệu thứ 3 là một mảng của các cluster Các cluster này chứa một mảng dữ liệu y Mảng bên trong mô tả các điểm trong một đồ thị còn mảng bên ngoài chứa mỗi phân tử ứng với một đồ thị Kiểu đữ liệu này rất hữu dụng khi số lượng các phần tử trong mỗi đồ thị là khác nhau

4) Kiểu dữ liệu thứ 4 là một cluster của một gia tri x, mot gia tri Ax va

một mảng cluster của mảng dữ liệu y

5) Kiểu dữ liệu thứ 5 là một mảng của các cluster Mỗi cluster gồm có một gia tri x, mot giá trị Ax và một mảng dữ liệu y

* Kiéu dit liéu cho XY Graph

Cé 2 kiéu dit ligu cho XY Graph 1a:

1) Mảng các cluster chứa các đồ thị mà mỗi đồ thị là mảng của các điểm Mỗi điểm là 1 cluster chứa một giá trị x và một giá trị y

2) Màng các cluster chứa các đồ thị mà mỗi đồ thị là một cluster của một mảng x và một mảng y

3 Waveform Chart

Chart khác với graph ở chỗ nó giữ lại các giá trị cũ, lên đến một giá trị mà ta có thể xác định Giá trị mới được gan thêm vào với giá trị cũ để bạn có thể thấy được giá trị mới trong mạch với giá trị trước đó

* Kiêu đữ liệu cua Waveform Chart

Có thể gửi cho chart một giá trị hay nhiều giá trị cùng lúc Chart sẽ quản lý mỗi giá trị như một phần của dạng sóng cách đều, với mỗi điểm cách điểm trước đó một điểm theo trục x

Có thể gửi một giá trị vô hướng hay một mảng cho đồ thị đơn Chart sẽ

đối xử với chúng như giá trị mới cho đô thị đơn

Trang 23

Có nhiều cách để gửi đữ liệu cho đa đồ thị Có thể gửi qua một hay một

mảng cluster của các số vô hướng mà mỗi số biểu diễn một điểm trên đồ thị Cũng có thể gửi một mảng 2 chiều cho chart trong đó mỗi hàng sẽ cập nhật cho một đồ thị Có thể cho mỗi cột sẽ cập nhật cho một đồ thị bằng cách chọn Transpose Array từ thực đơn pop-up của chart

4 Intensity Chart và Intensity Graph

LabVIEW có hai cách để biểu diễn các mảng dữ liệu 3 chiều: Intensity Graph va Intensity Chart Ca hai đồ thị này cũng chấp nhận mảng 2 chiều của các sô mà môi sô được gan Với một màu Vỉ dụ về sử dụng graph và char!

lf Temperature Analysis vi * | (ot x!

Fle Edit Operate Project Windows Hep B Be Co it 3pt Application Fort xl Oe 7 l[“®° ~| Temperature z | * a0,0- 30,0- deg F 70,0- Mean B379 60,0- 1 Max Temp Graph 87 40 87.4 ` 0 aa deg F vr [4| | _ 3ÏZ2

iB! Temperature Analysis vi Diagram ~ | | OE x!

File Edit Operate Project Windows Help ~ fle i es | | |) [@] lealff|-›2] |t4pt Application Font | | a NEm ~||£® -| N nh LES a [335] [Teme es |] — [mrjkm ] lusdu|——jLBEt ]|Mean] | Heon | pax) 625) B ait Until Next = Muttiple = L+/ Hình 1-33

Hình 1-33 minh hoạ việc sử dụng graph và chart trong LabVIEW Chương trình gui cho chart ting giá trị một và gửi dữ liệu cho graph theo kiêu cluster của

phân tử khởi tạo Xọ, Delta X và mảng dữ liệu Y

VII Chuỗi

1 Khái niệm chung

Trang 24

VNArmy

Chuỗi là một tập các kí tự ASCII Chuỗi có ứng dụng rất rộng rãi Trong điều khiến thiết bị, co thé gửi dữ liệu đi như một chuỗi kí tự và sau đó lại chuyển các chuỗi nhận về thành các số Khi lưu trữ giữ liệu trước tiên phải chuyển đữ liệu thành các chuỗi sau đó lưu vào tệp ASCII

2 Tạo các control và indicator kiểu chuỗi

Có thể tạo các control và indicator kiểu chuỗi từ Control >> String & Table Để nhập hay thay đỗi văn bản bên trong control kiểu chuỗi băng Operating Tool hay Label Tool Để tiết kiệm không gian, ta có thể cho chuỗi hiện thanh scrollbar bằng cách chọn Show >> Serollbar trong thực đơn pop-up của nó Bình thường mục này bị mờ Dé cho nó hiện lên có thể sử dụng Positioning Tool kéo đủ đài control hay indicator ra 3 Các hàm xử lý chuỗi a)Ham Format Into String fornnat string initial string error in tne error] argument 1 (0) ¬ ‘ey EULESS | NV DỰ amestaess sms resulting string error out

Ham Format Into String chuyén déi cac tham số đầu vào thành chuỗi result string với việc định dạng nó theo tham sô format string Tham sô định đạng có thê tham khảo trong Online help

b) Ham String Length string leniotk Hàm này trả lại số ki tự của chudi string trong length c) Ham String Subset length ¬ aflset []——— es substring shing-~

Ham String Subset tra lại chuỗi substring được cắt ra từ chuỗi string bat dau tt offset và chứa length kí tự Offset d61 voi ki tu dau tién 1a 0

d) Ham Scan From String format string

input string EJEL-+£ Pemsining string

initial search Tocation + + offset past con

Trang 25

Vi du vé viéc sur dung string trong LabVIEW

ip Build String vi | {OF x}

File me Operate Project: Win dows Help ean

][@]| H][I2et^ppicaionrFon — +{[§z;*j[fg >]|#5>] 2

E

Header Combined String|

‘string control* ‘string indicator* | Number 36.00 | Length of String] ‘digital control* h | - *dligital indicator® Trailer| Representation -» 132 aay] *string contral* lũ File = er Project Windows | Help =— S]©j H][W|lko|ff[¿2][rseteppicaionron — +[[Đ *|[g >|[#đ*] 2 | Hinh1-34 VIII Tép

1 Khai niém chung

Cac ham vao ra tép trong G (Functions>>File I/O) la cac céng cu manh và linh hoạt để làm việc với các tệp Cùng với việc đọc và ghi dữ liệu, hàm vào ra tệp trong LabVIEW có thé di chuyén và đôi tên các tệp và các thư mục, tạo các tệp kiểu bảng biểu ASCH, có thể đọc và ghi đữ liệu kiểu nhị phân để tăng tốc độ và nén tôi thiểu

Có 3 loại tệp khác nhau trong LabVIEW:

- _ ASCH Byte Stream - Nên lưu trữ dữ liệu dạng ASCII khi muốn truy cập nó từ gói phần mêm khác như xử lý từ hoặc chương trình bảng biểu Để lưu dữ liệu dạng này cần phải chuyển đổi tất cả dữ liệu thành chuéi ASCII

- Tép Datalog - Nhiing tép nay ở dạng nhị phân mà chỉ G mới có thê truy nhập được Datalog tương tự như các tệp cơ sở dữ liệu vì có thể

cất nhiều kiểu dữ liệu khác nhau vào một bản ghi của tệp

- Binary Byte Stream - Những tệp kiểu này là phương thức lưu trữ dữ

liệu nén chặt nhất và nhanh nhất Cần chuyển đổi đữ liệu thành dạng chuỗi nhị phân và phải biết chính xác kiểu dữ liệu nào dang duoc sử

dụng để lưu trữ vào hay phục hồi lại từ tệp 2 Các hàm vào ra tệp

Hầu hết các hoạt động vào ra tệp bao gồm 3 bước cơ bản: mở một tệp đang có hoặc tạo tệp mới; ghi vào hoặc đọc ra từ tệp; đóng tệp Do đó LabVIEW

Trang 26

VNArmy

bao gém nhiéu VI tién ich trong Functions>>File I/O Phan nay sẽ mô tả các tiện ích mức cao Những hàm này được xây dựng trên các VI mức trung gian mà kết hợp chặt chẽ việc kiểm tra và điều khiến lỗi với các hàm vào ra tệp

a) Write Characters To File VI file path (dialog if empty) character string append to file? (new file -F) new file path (Not «4 Fath if cancelled)

VI này ghi một chuỗi kí tự character string vào một tệp kiểu byte stream mới hoặc nôi thêm chuỗi vào một tệp đang có VI này mở hoặc tạo tệp, ghi dữ liệu và sau đó đóng tệp

b) Read Characters From File VI

convert eo “Írn E]J

file path "alow i empty] number of characters [all-1]

start of read offset (chars new file path [Not4Path if character string mark after read [chars.| ~~ EOF?

VI nay đọc một lượng kí tự từ một tệp kiểu byte stream bắt đầu tư cự ly xác định VỊ này mở hoặc tạo tệp và sau đó đóng tệp

c) Read Lines From File VI mew file path (dot & Path 7 ES line String

" mark after read (chars J

file path {dialog if empty} :

number of lanes (all :—1) — *

Start af read offset (ehars — [max characters per line]

VỊ này đọc một lượng xác định các dòng từ một tệp kiểu byte stream bắt dau tu cu ly xác định VI này mở hoặc tạo tệp và sau đó đóng tệp

d) Write To Spreadsheet File VI Format (> 3F] file path [dialog if empty] 2U) data 1D data anperid ta HÌz? [net file:F] ~-— 7 transpose? (ro:FY ee dzlIitZr [ Ï a] nev file path [Not 4 Path 1

Chuyển đổi một mảng 1 hoặc 2 chiều của các số chính xác đơn thảnh chuỗi văn bản và ghi chuỗi vào tệp kiểu byte stream hoặc nối thêm vào tệp đã có Có thể chuyển vị dữ liệu tuỳ ý VI này mở hoặc tạo tệp và sau đó đóng tệp Có thể dùng VI này để tạo một tệp văn bản có thể đọc bởi hầu hết các chương trình bảng tính e) Read From Spreadsheet File VI

fommet [32.37] ner file path [Hot 4 Path 1 fie path [dialog if empty] se Bay aI all rows

number vị rowes [all:-1] In † P¬ first row

Trang 27

Đọc một lượng xác định các dòng hoặc cột từ một tệp văn bản kiểu số ở cự ly xác định và chuyển dữ liệu thành mảng 2 chiều kiểu số chính xác đơn Có thể chuyển vị dữ liệu tuỳ ý VI này mở tệp trước khi đọc và sau đó đóng tệp Có thể dùng VI này để đọc tệp bảng biểu lưu dưới đạng văn bản

Vi du vé sir dung tép trong LabVIEW

Trong ví dụ có sử dụng hàm Write Spreadsheet File dé ghi m6t mang 2 chiều sang một tệp mà có thể truy nhập bởi các chương trình bảng tính như Excel chăng hạn Việc này cũng tạo điều kiện cho LabVIEW giao tiếp với ngôn ngữ khác Hình 1-35 minh hoạ Front Panel và Block Diagram của chương trình

Trang 28

VNArmy

§1.2.LAP TRINH NANG CAO TREN LABVIEW

L Biên đôi Fourier réi rac 1 Khai niém chung

Khi lay mẫu tín hiệu, các mẫu của tín hiệu tạo thành sự biểu diễn miền thời gian của tín hiệu Sự biểu diễn này đưa ra các biên độ của tín hiệu ở các khoảng thời gian nó được lây mẫu Tuy nhiên, trong nhiều trường hợp ta lại quan tâm đến tan số của tín hiệu hơn là biên độ của các mau Su biéu dién tin hiệu theo tấn số được gọi là su biểu diễn theo miễn tần số của tín hiệu Sự biểu diễn miền tần số có thê cho biết bản chất bên trong của tín hiệu và hệ thông tạo

ra tín hiệu

Để chuyển các mẫu dữ liệu từ miền thời gian sang miễn tần số có thể dùng thuật toán biến đổi Furier rời rạc - Discrete Fourier Transform (DET)

Thuật toán DFT thiết lập mối liên quan giữa các mẫu của một tín hiệu trong

miền thời gian vả sự biểu diễn của chúng trong miền tần số Thuật toán DFT được ứng dụng rộng rãi trong phân tích phố, cơ học ứng dụng, viễn thông Biến đổi Fourier nhanh

Thuật toán DFT xử lý N mẫu với độ phức tạp thuật toán xấp xi N” Nếu NÑ là một số luỹ thừa của 2 (N=2”) thì độ phức tạp thuật toán xấp xỉ NInN Như vậy thuật toán DFT có thể tính nhanh hơn và gọi là biến đôi nhanh Fourier - Fast Fourier Transform (FFT)

Ưu điểm của thuật toán FFT là tốc độ và bộ nhớ vì nó có thể tính FFT trực tiếp tức là không phải có thêm bộ nhớ đệm Tuy nhiên, nó chỉ áp dụng được khi độ dài của dãy là luỹ thừa của 2 Thuật toán DET có thể áp đụng với dãy có

độ dài bất kì nhưng nó lại chậm hơn và dùng nhiều bộ nhớ hơn vì phải cấp phát

bộ đệm phụ đề lưu các kết quả trung gian trong quá trình thực hiện

Một kĩ thuật thường được dùng để làm đầu vào có số phân tử là luỹ thừa của 2 là thêm các điểm 0 vào cuối của dãy đầu vào Việc thêm vao nay không

làm ảnh hưởng đến phô của tín hiệu

Thư viện phân tích của LabVIEW có 2 VI tính FFT của tín hiệu là Real FFT VI va Complex FFT VI Trong do, Real FFT VI tinh FFT cua tín hiệu thực con Complex FFT VỊ tính giá trị của tín hiệu phức

2 Các VI xử lí tín hiệu a)Cac VI mién tan so

Hình 2-1 minh hoạ các VI miền tân số Để lấy các VI miền tần số có thể truy nhập vào Euncfons>>Signal Processing>>Frequency Domain Các VỊ

miễn tần số gom CÓ:

Buneman Frequency Estimator, Power Spectrum, Cross Power, Complex FFT, Real FFT, Inverse Real FFT, Inverse Complex FFT, STFT Spectrogram, Fast Hilbert Transform, Inverse Fast Hilbert Transform Unevenly Sampled Signal Spectrum, FHT, Inverse FHT,Walsh Hadamard,Walsh Hadamard Inverse, WVD Spectrogram, Laplace Transform Real, Wavelet Transform Daubechies4, Wavelet Transform Daubechies4 Inverse

Trang 29

Dé tham khao thém vé cac VI nay co thé xem thém trong Help Online của chúng lê Frequencw Domain Pes | i Time Domain x | ee r Tín) | [f trì 5 : Hee | PO me|FEEìa| bạn + HCH) LHL Ce PA CD] 0) wi | | le || ge HUbert il usare if Harttenpel Howler v | bee | | | | ll eJsin | et | ee | ee | ch (re = = = Sh BL ` : tin Ben [E bát =| a =| =| ine

Hình 2-1 Các VI miền tần số Hình2-2 Các VI miền thời gian b) Các VI miễn thời gian

Hình 2-2 minh hoạ các VI miên thời gian ĐỂ truy cập vào các VI này vào Functions>>Signal Processine>>Time Domain Các VI miền thời gian gồm co:AutoCorrelation, Convolution, CrossCorrelation, Decimate, Deconvolution, Derivative x(t), Integral x(t), Unwrap Phase, Y[1] = Clip, {X[i]}, Y[i] = X[i-n], Zero Padder

II Cac bé6 loc s6- Digital Filter

1 Giới thiệu về các bộ lọc số

Các bộ lọc tương tự là một phần quan trong trong khi thiết kế mạch Các

công cụ lẫy mẫu và xử lý tín hiệu số hiện đại khiến nó có thể được thay thế bằng

các bộ lọc số trong các ứng dụng đòi hỏi sự linh hoạt và lập trình được Các bộ lọc số tiên tiễn hơn những bộ lọc tương tự ở các điểm sau:

- _ Chúng là các phần mêm có thể lập trình - Chúng ôn định và có thể dự đốn được

- Chúng khơng bị trôi bởi nhiệt độ vả độ ẩm và không yêu cầu phải có

các thành phân chính xác

2 Cac b6 loc IIR va FIR

Sự phân biệt giữa IIR và FIR là dựa trên đáp ứng xung của nó Các bộ lọc IIR là các bộ lọc có đáp ứng xung vô hạn còn các bộ lọc FTIR có đáp ứng xung hữu hạn Đáp ứng xung là hữu hạn hay vô hạn là dựa vào cách tính toán ở đầu

ra Các bộ lọc FIR có đầu ra chỉ phụ thuộc vào giá trị đầu vào hiện tại còn IIR thì không những phụ thuộc vào đầu vào hiện tại mà còn phụ thuộc vảo các đầu

ra trước đó Vì vậy bộ lọc IIR còn gọi là các bộ lọc đệ qui còn FTR là các bộ lọc

không đệ qui

Nhược điểm của các bộ lọc IR là đáp ứng pha của chúng là phi tuyến Nếu ứng dụng không yêu câu thông tin về pha thi cé thé ding DR

a) Bộ loc TR

Bộ lọc IIR là các bộ lọc có đáp ứng xung về lý thuyết là vô hạn Phương trình sai phân của chúng có dạng như sau:

Trang 30

VNArmy

N,-l N -l

1b, ợ (*)

1 ag] Ro PRT By eink

B6 loc IIR trong LabVIEW có các đặc điểm sau:

- Các chỉ số âm mà là kết quả của phương trình (*) được giả sử bằng 0 ở

lần đầu gọi VI

-_ Vì trạng thái khởi tạo được giả thiết bằng 0 (với các chỉ số âm) nên quá trình quá độ diễn ra trước khi bộ lọc ôn định sẽ tỉ lệ với bậc (order) của bộ lọc Sự tôn tại của đáp ứng quá độ hay thời gian giữ chậm (Delay) đối với các bộ lọc thông cao và thông thấp bằng với bậc bộ lọc (Delay=order)

-_ Thời gian tổn tại của quá trình quá độ đối với bộ lọc dải thông và dai chan

bằng 2 lần bậc của bộ lọc (Delay=2*order)

- Có thể loại bỏ đáp ứng quá độ ở lần gọi kế tiếp bằng cách đặt bộ nhớ

trạng thái hoạt động Đề thực hiện đặt init/cont control của VI bằng TRUE

Ưu điểm của bộ lọc này là bộ lọc yêu cầu ít hệ số hơn đề thực hiện Do đó bộ lọc hoạt động nhanh hơn và không yêu cầu vùng nhớ mở rộng

Nhược điểm của bộ lọc là đáp ứng pha của nó là phi tuyến LabVIEW co cac b6 loc IIR sau:

- Cac bé loc Butterworth: Dap ứng tần số của bộ lọc là đáp trơn ở tất cả các tân số và giảm đơn điệu từ tần số cắt Bộ lọc Butterworth là trơn tối đa - đáp ứng lý tưởng bằng 1 ở dải thông và bằng 0 ở dải chặn Ưu điểm của nó là có đáp ứng tần số trơn và giảm đơn điệu Sau khi đặt tần số cắt, LabVIEW sẽ

đặt độ dốc của quá trình quá độ tỉ lệ với bậc của bộ lọc Bộ lọc bậc càng cao

thì càng tiến tới bộ lọc thông thấp lí tưởng

- — Các bộ lọc Chebyshev: Các bộ lọc Chebyshev giảm tối thiểu đỉnh lỗi ở dải thông Đặc tuyến của đáp ứng tần số có đáp ứng biên độ lớn ở dải thông, giảm đơn điệu biên độ ở dải chặn và có vùng chuyền tiếp sắc hơn bộ

lọc Butterworth Điều này khiến sai số tuyệt đối nhỏ hơn và tốc độ thực hiện nhanh hơn

- — Bộ lọc Chebyshev II hay còn gọi là bộ lọc Chebyshev đảo: bộ lọc này tương tự như bộ lọc Chebyshev nhưng có phân bố sai số trên dải chặn và có sự băng phăng nhất ở dải thông

- — Bộ lọc Hliptic (Cauer): các bộ lọc loại này giảm tối đa các sai số đỉnh bằng cách phân bố chúng trến khắp dải thông và dải chắn So với các bộ lọc Butterworth và Chebyshev cùng bậc thì bộ lọc Eliptic có quá trình QUá độ giữa dải thông và dải chặn là sắc nhất Vì vậy, nó được dùng rộng rãi - — Bộ lọc Bessel: có thể dùng để giảm sự méo pha phì tuyến vôn có trong

các bộ lọc IIR Ở các bộ lọc bậc cao hơn và với vùng gấp dốc hơn thì méo pha càng rõ nét đặc biệt ở vùng quá độ của bộ lọc Bộ lọc này có đặc tuyến trơn tối đa ở cả pha và biên độ Đặc tuyến pha ở dải thông của bộ lọc thì gần như tuyến tính Cũng giống như bộ lọc Butterworth, bộ lọc Bessel đòi hỏi bộ lọc bậc cao để giảm sai số, vì vậy nó ít được dùng

b)Bộ lọc FTR

Trang 31

Các bộ lọc đáp ứng xung hữu hạn FIR là các bộ lọc số mà có đáp ứng xung là hữu hạn Các bộ FIR cũng gọi là các bộ lọc không đệ qui Phương trình sai phân của bộ lọc là:

n—|

yi kÈn "k*i~k

Trong đó x biểu diễn dãy đầu vào, y biểu diễn dãy đầu ra, h biểu diễn hệ

số bộ lọc

Các bộ lọc FIR có các đặc điểm quan trọng sau:

- _ Chúng có thể đạt được pha tuyến tính bởi sự đối xứng của hệ số - _ Chúng luôn 6n định

- Có thê thực hiện các hàm lọc dùng tương quan chéo và nói chung luôn gắn một khoảng trễ với dãy đầu ra

Delay = Ti với n là số hệ số của bộ lọc FTR

Có thể truy cập vào các bộ lọc trong LabVIEW bằng cách chọn

Functions>> Signal Processing>>Filters Hình 2-3 minh hoạ các bộ lọc trong LabVIEW |

Hinh 2-3 Cac b6 loc trong LabVIEW

HH Tông quan vê VISA

1 Khái niệm về VISA

VISA (Virtual Instrument System Architecture) là một chuẩn vào/ra giao diện chương trình ứng dung (API) cho thiét bị lập trình được VISA tự bản thân nó không cung cấp khả năng lập trình thiết bị mà là một API mức cao mà có thể gọi đến các driver mức thấp hơn Sự phân cấp của NI-VISA như hình sau: VISA Serial GPIB Wx OS Calls NI-488.2 NI-VXI

Hình 3-2 Sự phân cấp của VISA API

VISA có thể điều khiển các thiết bị theo chuẩn VXI, GPIB, hoặc Serial

Bởi vì VISA là một công nghệ chuân đê phát triên các trình điêu khiên thiết bị,

Trang 32

VNArmy

nên hiện tại có rât nhiêu instrument driver dugc viét béi hang National

Instrument trên VISA va duoc hé tro trén nén Windows, Macintosh, HP-UX 2 Điểm mạnh của VISA

-_ Được chuẩn hoá: VISA là một API chuẩn để xây dựng các trình điều khiển thiết bị Bạn chỉ cần sử dụng một API để điều khiển các thiết bị có kiểu

khác nhau, có thể theo chuẩn VXI, GPIB, hoặc serial

Có giao diện độc lập: VISA sử dụng các hoạt động tương tự nhau để kết nối với thiết bị mà không cần quan tâm tới kiểu giao diện của ching Lay một ví dụ, VISA viết một xâu ASCII (một message-based) tới một thiết bị thì lệnh này là chung cho tất cả các kiểu thiết bị (VXI, GPIB, serial) Điều này làm cho việc chuyển đổi bus giao diện trở nên để dàng Bạn chỉ cần biết một kiểu API là đã có thể sử dụng nó cho các kiểu giao diện khác nhau

- Nền độc lập: VISA được thiết kế để có thể hoạt động dễ dàng trên các hệ

điều hảnh khác nhau Dé dam bảo sự độc lập khi hoạt động VISA đã định

nghĩa một cách rất cân thận các kiểu dữ liệu của nó Bởi vậy các kích cỡ, s6 byte của biến do các HĐH quy định không làm ảnh hưởng đến chương trình VISA Các hàm của VISA gọi và liên kết các tham số của chúng là như nhau trên tất cả các nền Nó có thể chạy trên các HĐH khác nhau mà

không cần phải biên dịch lại

Tính tương thích cao: một lợi thế khác của VISA là nó dễ dàng tương thích VỚI Các giao diện thiết bị mới sẽ được phát triển trong tương lai

Có thể nói VISA là một công cụ điều khiển phần mềm hiệu quả dé tan dụng, phát huy và nâng cao các thế mạnh phần cứng của thiết bị

3 Các thành phân cơ bản của VISA:

Cấu trúc đơn giản của một VISA API như sau: Default Resource Manager — Finds Resources — Opens Sessions Message-Based Register-Based — Read -In — Write - Out Properties Events

— Read (Get) — Wait (Synchronous)

— Write (Set) — Install Handler (Asynchronous)

v

Hình 3-3 Cấu tric VISA API

a) Default Resource Manager

Trang 33

Default Resource Manager 6 mtrc cao nhat cia hoat dong VISA LabVIEW sé tu dong tô chức việc trao đôi thông tin với Default Resource Manager ở lần gọi VISA VI đầu tiên Default Resource Manager sẽ quản lý tải nguyên và phiên kết nối

Tài nguyên (resource) là một đối tượng mà bạn có thể trao đổi thông tin voi no Resource co thé là thiết bi (INSTR) hoac memory access (MEMACC)

Phiên kết nối (session) là một sự kết nối tới một resource đang tồn tại Session được VISA sử dụng để mở một phiên làm việc với thiết bị Có thể chọn

kiêu thiết bi trong session (GPIB, VXI, GPIB-VXI, serial, hoặc all INSTR) song

cần lưu ý khi đã chọn duy nhất một kiểu thiết bị (chẳng hạn Serial) thì không thể

mở một kiểu thiét bị khác Do vùng nhớ danh cho session có hạn nên mỗi khi thao tác xong ta cần phải đóng phiên làm việc lại

Để xác định tài nguyên phải dùng bộ mô tả thiết bị (instrument descriptor) Instrumnet descriptor có cú pháp như sau:

Interface Type[board index]::Address::VISA Class

Interface Type đặc trưng cho từng kiểu thiết bị (GPIB, VXI, hoặc serial)

Đối với các thiết bị sử dụng chuẩn GPIB hoặc VXI thì board index dùng để xác

định số card giao tiép gan trén main board

Với thiết bị VXI thì address được hiểu là địa chỉ logic còn với thiết bị GPIB thì đó là địa chỉ phụ (primary address) Lẫy ví dụ một máy tính có hai card GPIB gắn trên main board thì địa chỉ của một thiết bị nối với card thứ nhất sẽ là: GPIB0::0::INSTR Thiết bị Serial không sử dung Address Vi dụ

ASRL2:INSTR sẽ mô tả cổng COM2

VISA class là một lớp mà đón gói một vài hoặc tất cả các hoạt động VISA

cho một thiết bị hoặc sự kiện Lớp chung nhất là INSTR bao gồm tất cả các thao

tác VISA cho một thiết bị Nếu VISA Class để trống thì nó sẽ mặc định là lớp INSTR

b) Communication

VISA cung cấp hai kiếu giao thức để trao đối thông tin với thiết bị, đó là phương thức thông báo (Message-Based)-hỗ trợ cho tất cả các kiểu thiết bị theo chuẩn GPIB, VXI, Serial và phương thức thanh ghi (Register-Based)-chỉ cho các thiết bị VXI Trong giới hạn của đề tài chúng ta sẽ quan tâm tới các thiết bị Message-Based device

Với giao thức Message-Based chương trình sẽ gửi một thông báo lệnh tới

hoặc nhận một thông báo dữ liệu từ message-based device Các thông báo lệnh

(command-string) mà chương trình gửi tới thiết bi là các tập lệnh riêng của từng thiết bị do nhà sản xuất cung cấp Đó có thể là lệnh đặt câu hình hoặc lệnh yêu cầu gửi dữ liệu Các thông báo nhận được từ thiết bị có thể là các yêu cầu phục vụ (SQR) hoặc dữ liệu dưới dạng string Chương trình sẽ sử dụng các hàm chuyển đôi xâu-số để chuyên đữ liệu về dạng số để xử lý tiếp

c) VISA propertopies

Là các thuộc tính của VISA resources mà ta có thể thiết lập hoặc nhận được từ chương trình Có thể kể ra sau đây một vài properties thường gặp: Serial baud rate, Serial data bits, GPIB readdresing, GPIB unaddresing, VXI logical address, Lưu ý rằng có một vài thuộc tính là thuộc tính chỉ đọc

(read only), do đó không thể thiết lập lại giá trị của chúng

Trang 34

VNArmy

Ngoài ra còn co cac VISA Events dé lập trình theo sự kiện mà trong khuôn khô đề tài này không bàn đến

Các ham VISA trong LabVIEW

LabVIEW cung cấp sẵn một thư viện hàm để phối ghép va điều khiển thiết bị thông qua chuẩn VISA Để truy cập vào thư viện hảm này chọn Function>>Instrument I/O>>VISA Trong đó bạn có thể sử dụng các hàm

khởi tạo, đặt thuộc tính, các hàm VISA mức cao hoặc mức thấp Ưu is te visa IS Enivi+ ee, ne wo nh

F đu R wie R 3] [Re] isl is Lisa feu b + }

of] Event

oe} lc eA

ưa s4 Lesa isa visa =

ahox, ||abz-, || CLR || STE |[TR6 | KỈ E Em:| |w[Ei:l| [es[Ei| |x+[EI| |<+[cr:l| Hiah

Visa sa h isd i21 HH

Trang 35

; Chuong2

Thiét bi do thong minh HP34970A

I Tập lệnh của máy HP34970A 1 Một số qui ước

Dấu [ ] biểu thị các tham số hay từ khoá là tuỳ chọn Dâu { } chứa các tham số chọn cùng với câu lệnh

Dâu < > biểu thị các tham số mà bắt buộc phải thay bằng giá trị Dấu | để phân cách giữa các tham số

2 Cách sử dụng danh sách quét (scanlist)

Hau hết các câu lệnh của HP34970A đều có một scanlist đi kèm Scanlist có dạng ()scc) Irong đó, s là kí hiệu của khe căm (100,200 hay 300) con ce la số hiệu của kênh Có thể câu hình scanlist gồm một hay nhiều kênh hay gồm một dãy kênh Ví dụ: (@101) đặt scanlist là một kênh 01 của khe căm 100 (@101,203,305) đặt scanlist gồm 3 kênh 101,203 và 305 (@101:110,204) đặt scanlist gồm các kênh từ 101 đến 110 và kênh 204 3 Các lệnh đặt cầu hình kênh a) Cấu hình ão nhiệt độ CONFigure : TEMPerature {TCouple}, {B|E|J|K|N|R|S|T|DEF} [,1[, <resolution> |MIN|MAX|DEF}]] , (@<scan_list>) Vi du: CONF:TEMP TC,B,1,0.003,(@101,102,201)

Lénh nay dat cầu hình cho các kênh trong scanlist đo nhiệt độ sử dụng cặp nhiệt ngẫu với các kiểu cặp nhiệt ngẫu khác nhau (mặc định là kiểu J) Độ chính xác của kênh được xác định bằng thông số resolufion

CONFigure : TEMPerature

{RTD |EFRTD}, {85 | 91 | DEF}

[; 1[ , <resoluion> |MTN |MAX |DEE}]] , (@<scan Iist>)

Vi du: CONF:TEMP RTD,91,1,0.001,(@103,203)

Lệnh này đặt cấu hình cho các kênh trong scanlist đo nhiệt độ dùng 2-wire RTD hay 4-wire RTD (FRTD) Tham số 85 và 91 tương ứng với œ=0.00385 và a=0.00391

Đối với phép đo dùng FRTD thì thiết bị sẽ tự động cặp kênh thứ n và kênh thứ n+10 (đối với 34901A) hoặc n+8 (đối với 34902A)

CONFigure : TEMPerature

{THERmistor}, {2252 |5000|10000 | DEF}

[,1[, <resolution> |MIN|MAX|DEF}]] , (@<scan_list>)

Vi du: CONF: TEMP THER, 10000,1,0.0001,(@101,102)

Lệnh này đặt cấu hình cho phép đo nhiệt độ dùng bộ biến đôi thermistor Mac dinh 1a dung thermistor 5KQ

b) Các lệnh đặt cấu hình do dién áp

CONF'igure : VOLTage : DC CONF'i1gure : VOLTage : AC

Trang 36

VNArmy

[ {<range> | AUTO | MIN | MAX | DEF}

[ , <resolution> |MIN|MAX|DEF}],] (@<scan Iist>)

Vi du: CONF: VOLT:DC AUTO,0.0003,(@101,103) hoặc CONF:VOLT:AC AUTO,0.0003(@101,103)

Cấu hình các kênh trong scanlist để đo điện áp một chiều hoặc xoay

chiều

c) Các lệnh đặt cầu hình đo điện trở

CONFigure :RESistance CONFigure:FRESistance

[ {<range> | AUTO | MIN | MAX | DEF }

[ , <resolution> |MIN|MAX|DEF}],] (@<scan Iist>)

Vi du: CONF:RES (@101,102) hoặc CONF:FRES (@101,102)

Cầu hình các kênh trong scanlist để đo điện trở Lệnh với tham số RES sẽ

sử dụng phép đo 2-wire Lệnh với tham số FRES sẽ sử dụng phép đo 4-wire và

thiết bị cũng tự động cặp đôi kênh n với n+10 (34901A) hoặc n+8 (34902A)

d) Cac lệnh đặt cầu hình đo điện ap CONFigure :CURRent : DC CONF igure: CURRent : AC

[ {<range> | AUTO | MIN | MAX | DEF}

[ , <resolution> |MIN|MAX|DEF}],] (@<scan Iist>)

Vi du: CONF:CURR:DC (@121) hodc CONF:CURR:AC (@122)

Cấu hình các kênh trong scanlist dé do dong điện một chiều hoặc xoay

chiều Các phép đo dòng chỉ cho phép đo trên kênh 21 và 22 của HP 34901A multiplexer module

e) Các lệnh đặt cấu hình ẩo tân số và chu kì

CONFigure : FREQuency CONFigure :PERiod

[ {<range> | AUTO | MIN | MAX | DEF}

[ , <resolution> |MIN|MAX|DEF}],] (@<scan Iist>)

Vi du: CONF:FREQ (@109,110) CONF:PER (@111)

Cầu hình các kênh trong scanlist đo chu kì hay tan số

f) Cac lénh dat cau hinh do tin hiệu số

CONFigure:DIGital:BYTE (@<scan_list>)

Vi du: CONF:DIG:BYTE (@201)

Cầu hình thiết bị để đọc các kênh đầu vào số của khéi multifunction

module mà được chỉ định trong scanlist Dạng của kênh số đầu vào có dạng s01

và s02 với s là số của khe cắm Nếu cho cả 2 kênh đầu vào số vào scanlist thì

thiết bị sẽ đọc từ cả 2 cổng trong cùng một lúc Điều này cho phép gộp hai tín hiệu 8-bit thành 1 tín hiệu 16-bit

ø) Các lệnh đặt cấu hình bộ đếm

CONFigure:TOTalize {READ|RRESet} , (@<scan_list>)

Trang 37

Vi du: CONF:TOT READ,(@203)

Cấu hình thiết bị đọc kênh bộ đếm trong multifunction module Kénh

của bộ đếm có dạng s03 với s là số hiệu của khe cắm Đề bộ đếm không đặt lại trong khi quét thi sir dung tham sé READ Dé doc bộ đếm trong quá trình quét va dat lai b6 dém vé không sau khi đọc dùng tham số RRESet

h) Lệnh hỏi cầu hình kênh

CONFigure? [ (@<ch_list>) ] Vi du: CONF? (@303)

Lệnh này hỏi về cầu hình của kênh và trả về một loạt các chuỗi Chuỗi trả về gồm một loạt các trường được phân cách bởi dấu phảy Mỗi trường chứa các tham số của kênh như chức năng, giới hạn, độ chính xác

Vi du: "FRES +1.000000E+02,+3.000000E-04" , “TEMP TC,K,+1.000000E+00,+3.000000E-06"

4 Cac lénh dat dat cầu hình dé thực hiện quét (scan)

Thiết bị HP34970A được gắn một đồng hồ số vạn năng để đọc đữ liệu Để thu được dữ liệu từ đồng hồ này, ta phải tạo một lần quét Tập lệnh SCPI có hộ trợ đối với việc thực hiện quét dé có thể điều khiển từ máy tính Từ máy tính có thê đặt khoảng thời gian quét, số lần quét, độ dữ chậm của mỗi kênh Các bước thực hiện một lần quét gồm:

a) Đặt danh sách quét

Mỗi lần quét chỉ thực hiện khi có danh sách quét (scanlist) Khi quét, máy sẽ chỉ thực hiện quét qua các kênh có trong danh sách quét theo thứ tự tăng dẫn từ khe 100 đến 300 còn các kênh khác bỏ qua Để đặt scanlist có thể dùng lệnh sau: ROUTe:SCAN (@scanlist) Vi du: ROUT:SCAN (@101:105,112,114) Đề hỏi về danh sách quét hiện tại sử dụng lệnh: ROUTe:SCAN?

b) Đặt nguôn khởi động quét

Mỗi khi có tín hiệu từ nguồn khởi động quét thiết bị sẽ thực hiện lần đảo

qua các kênh Lệnh thực hiện của nó như sau:

TRIGger:SOURce {BUS|IMMediate|EXTernal|ALARm {1|2/3|4}|TIMer} Có thể khởi động lần đảo qua nảy bằng lệnh phần mềm (tham số BUS), thực hiện liên tục (tham số IMM), khởi động từ xung TTL bên ngoài (tham số EXT), từ đồng hồ báo nguy (tham số ALAR) hoặc từ bộ đồng hỗ bên trong (tham số TIM) Mặc định là sử dụng tham số TIM

Để hỏi về nguồn khởi động có thể dùng lệnh hỏi:

TRIGger:SOURce? c) Dat khoang thoi gian quet

Sau mỗi lần đảo qua các kênh có thể đặt khoảng thời gian đợi bằng lệnh:

TRIGger:TIMer {<seconds>|MIN|MAX}

Khoảng thời gian có thể đặt từ 0 giây đến 359 999 giây (99:59:59 giờ) Các

tham sô MIN, MAX tương ứng với giá trị 0 và 359 999,

Để hỏi về khoảng thời gian quét dùng lệnh:

Trang 38

VNArmy

TRIGger:TIMer?

d) Dat sé lan quét

TRIGger:COUNt {<count>|MIN|MAX|INFinity }

Lệnh này sẽ đặt số lần đảo qua các kênh mà một lần quét thực hiện Số lần quét có thể đặt từ 1 đến 50 000 hoặc liên tục (tham số INF) Giá trị MIN=1 va

MAX=50 000

Đề hỏi về số lần đảo qua này có thể dùng lệnh: TRIGger:COUNt?

e) Dat khoang thoi gian trễ giữa các kênh

ROUTe:CHANnel:DELay <seconds>[,(@<ch_ list>) |

Lệnh này sẽ thiết lập khoảng thời gian trễ giữa các kênh trong ch_ list bằng tham số seconds

Có thê thiết lập khoảng thời gian trễ tự động bằng lệnh sau:

TRIGger:CHANnel:DELay:AUTO {OFF|ON}[,(@<ch_list>)] f) Khéi tao lan quét

Có thể khởi tạo lần quét bằng lệnh INIT hoặc READ? Sự khác nhau giữa hai lệnh nảy là lệnh INIT sẽ lưu các kết quả vào bộ nhớ đệm của thiết bị

Ngoài ra để khởi động từ giao diện từ xa có thể dùng lệnh *TRG 5 Các lệnh định dạng dữ liệu Khi thực hiện quét dữ liệu sẽ được lưu trong bộ nhớ của thiết bị dưới dạng sau: 2.61950000E+01 C , 00000000 017 , 101 ,2 i 2 3®

1 Reading with Units (26.195 °C) 3 ¢ nal Number

2 Time Since Stari of § een femal blr nit Threshok!d Cressed No ‘Alem 1=L0,2=<Hh)

Ở dạng mặc định các dữ liệu kèm theo này để ở chế độ tắt Đề bật hay tắt các dữ liệu kèm theo khi đọc về có thể dùng các lệnh sau đây:

- FORMat:READing:ALARm {OFF|ON} bật hay tắt đữ liệu báo nguy - FORMat:READing:CHANnel {OFF|ON} bat hay tat dữ liệu kênh

- FORMat:READing:TIME {OFF|ON) bật hay tắt dữ liệu về thời gian - FORMat:READing:TIME:TYPE {ABSolute|RELative} sử dụng thời

gian tuyệt đôi hay tương đối

- FORMat:READing: UNIT {OFF|ON} co hay khong don vi kem theo Để hỏi xem các dữ liệu kèm theo này ở dạng bật hay tắt có thể dùng lệnh hỏi có đấu hỏi kèm theo mỗi lệnh ví dụ như FORMat:READing:TTME.2

6 Các lệnh đặt mức do

Thiết bị HP34970A cho phép đặt thang đo cho đữ liệu gồm độ khuyếch

dai va gia tri bu Gia trị thu được sẽ được tính theo công thức sau:

Giá trị=Giá trị đo * Khuyếch đại - Giá trị bù

- CALCulate:SCALe:GAIN <gain>[,(@<ch_list>)] đặt độ khuyếch đại cho

gia tri

Trang 39

- CALCulate:SCALe:OFFSet <offset>[,(@<ch_list>)] dat gia tri bu

- CALCulate:SCALe:UNIT <quoted_string>[,(@<ch_ list>)] dat don vi do theo y cua nguoi dung nhu PRM, PSI

7 Các lệnh đọc dữ liệu

-DATA:POINts? đếm tổng số giá trị đọc hiện đang lưu trong bộ nhớ

- DATA:REMove? <num _rdgs> đọc và xoá khỏi bộ nhớ bát đầu từ gia tri

cũ nhất Lệnh này thường để xoá có chu kì khỏi bộ nhớ để khỏi tràn bộ

nhớ Dữ liệu thu được sẽ có dạng do lệnh định dạng dữ liệu qui định - FETCh? chuyển dữ liệu được lưu trong bộ nhớ ra của thiết bị sang máy

tính Lệnh này khơng xố các dữ liệu khỏi bộ nhớ Dữ liệu ra có dạng theo như lệnh định dạng dữ liệu qui định

-R? [<max count>| đọc và xoá tất cả dữ liệu trong bộ nhớ theo giá trị max count qui định Đây là một phiên bản của lệnh DATA:REMove? nhưng thực hiện nhanh hơn nếu bỏ qua tham số max count thì lệnh này đọc và xoá 50000 giá trị từ bộ nhớ Lệnh này cũng bi ảnh hưởng bởi lệnh

định dạng dữ liệu Dữ liệu trả về theo dạng khối độ dài xác định

- READ? đọc dữ liệu từ thiết bị và gửi trực tiếp ra bộ đệm ra chứ không lưu

trữ vào bộ nhớ như lệnh FETC?2

- MEASure? có cấu trúc lệnh như là lệnh CONERIgure và thực hiện như cặp

lệnh CONF va theo sau là lệnh READ? Tuy nhiên lệnh này không tiện bởi

khi thực hiện thiết bị sẽ đặt cấu hình phép đo theo các giá trị mặc định và

thực hiện ngay

II Sơ đồ thuật toán đo lường dùng chuẩn RS-232

1 Giới thiệu về chuẩn RS-232

Chuẩn RS-232 là chuẩn giao tiếp thông dụng nhất giữa máy tính vả thiết bị ngoại vi Hầu hết mỗi máy tính đều có một vài công nối tiếp COM Kết nối bằng RS-232 có thể có khoảng cách lớn Tuy nhiên nó cũng có nhược điểm là tại một

thời điểm chỉ kết nối được với một máy Tốc độ truyền của RS-232 cũng chậm

hơn so với các chuẩn khác

2 Các VI làm việc với chuẩn RS-232 trong LabVIEW

LabVIEW cung cấp một số VI để làm việc với chuẩn RS-232 Có thể truy

Trang 40

VNArmy Các hàm này gôm : Flow control ete port number baud rate data bits stop bits parity buffer size-——— SERIAL PORT | 7S error code =i - Serial Port Init: khdi tao céng Serial theo tham sé da chon port number t>—— byte count error code

- Byte at Serial Port: tra lại trong byte count số byte ở bộ đệm vào của

Ngày đăng: 02/12/2017, 20:34

TỪ KHÓA LIÊN QUAN

w