Tìm hiểu 10 chức năng trong NI-DAQmx (Phần 2)

KS Quỳnh Anh
KS Quỳnh Anh

Bài trước chúng ta đã xét về 05 chức năng đầu tiên của NI-DAQmx. Rất vui được gặp lại các bạn ở kỳ này với 05 chức năng còn lại của ứng dụng này.

Chức năng 6: NI-DAQmx Start Task

Cac-chuc-nang-trong-NI-DAQmx-14

Như đã đề cập trong phần giới thiệu, kiểu trạng thái được sử dụng bởi NI-DAQmx đã loại bỏ việc tái cấu hình không cần thiết để thu được một hiệu quả cao hơn và hiệu suất lớn nhất. Kiểu trạng thái này bao gồm năm trạng thái trong đó một tác vụ có thể tồn tại. Thông tin chi tiết của mỗi trạng thái có sẵn trong NI-DAQmx Help dưới Key NI-DAQmx Concepts»Tasks»Task State Model.

Chức năng NI-DAQmx Start Task chuyển tiếp một tác vụ đến trạng thái chạy. Trong trạng thái chạy, tác vụ thực hiện việc thu thập hoặc tạo cụ thể. Một tác vụ sẽ hoàn toàn được chuyển tiếp đến trạng thái chạy, hoặc tự động được bắt đầu, nếu chức năng NI-DAQmx Start Task không được sử dụng, khi chức năng NI-DAQmx Read thực thi. Sự chuyển tiếp hoàn toàn này cũng xảy ra nếu chức năng NI-DAQmx Start Task không được sử dụng và chức năng NI-DAQmx Write thực thi với ngõ vào tự động bắt đầu, phù hợp với nó.

Mặc dù nó không thường xuyên được yêu cầu, sử dụng chức năng NI-DAQmx Start Task để bắt đầu một tác vụ bao gồm một sự thu thập hoặc tạo phần cứng được định thời được ưu tiên. Ngoài ra, nếu chức năng NI-DAQmx Read hoặc chức năng NI-DAQmx Write được thực thi nhiều lần, như trong một vòng lặp, chức năng NI-DAQmx Start Task cũng nên được sử dụng. Mặt khác, hiệu suất tác vụ sẽ bị giảm do nó lặp lại sự bắt đầu và dừng. Các thông tin bổ sung mô tả khi sử dụng chức năng NI-DAQmx Start Task có sẵn trong NI-DAQmx Help bên dưới Key NI-DAQmx Concepts»Tasks» Explicitly Starting a Task.

Bắt đầu một Task trong Labview

Cac-chuc-nang-trong-NI-DAQmx-15

Sơ đồ khối Labview bên dưới chứng minh một giải pháp nơi chức năng NI-DAQmx Start không cần được sử dụng bởi vì ngõ ra analog chỉ tạo một mẫu phần mềm được định thời.

Ngược lại, sơ đồ khối Labview bên dưới chứng minh một giải pháp nơi chức năng NI-DAQmx Start nên được sử dụng vì chức năng NI-DAQmx Read được thực thi nhiều lần để đọc từ bộ đếm.

Cac-chuc-nang-trong-NI-DAQmx-16

Chức năng 7: NI-DAQmx Read

Cac-chuc-nang-trong-NI-DAQmx-17

Chức năng NI-DAQmx Read đọc các mẫu từ các tác vụ thu thập cụ thể. Các phiên bản khác nhau của chức năng cho phép nhiều loại thu thập (analog, digital, hoặc bộ đếm), số lượng các kênh ảo, số lượng mẫu, và dạng dữ liệu để lựa chọn. Sau khi số lượng mẫu cụ thể được chuyển từ FIFO trên board DAQ đến bộ đệm PC trong RAM, chức năng NI-DAQmx di chuyển các mẫu từ bộ đệm máy tính đến bộ nhớ môi trường phát triển ứng dụng (ADE).

Đọc dữ liệu trong Labview

Cac-chuc-nang-trong-NI-DAQmx-18

Ví dụ của chức năng NI-DAQmx Read có khả năng đọc nhiều mẫu bao gồm một ngõ vào đến số lượng mẫu mỗi kênh được chỉ định để đọc khi chức năng thực thi. Đối với thu thập hữu hạn, số lượng mẫu mỗi kênh được chỉ định là -1, chức năng chờ cho tất cả các mẫu được yêu cầu được thu thập và sau đó đọc các mẫu này. Số lượng mẫu mỗi kênh được chỉ định là -1 cho một sự thu thập liên tục dẫn đến chức năng đọc tất cả các mẫu hiện có sẵn trong bộ đệm khi chức năng thực thi. Trong sơ đồ khối Labview bên dưới, NI-DAQmx Read VI đã được cấu hình để đọc nhiều mẫu từ nhiều kênh ảo ngõ vào analog và trả về dữ liệu như dạng sóng. Ngoài ra, từ khi ngõ vào số lượng mẫu mỗi kênh được nối với một hằng số có giá trị bằng 10, mỗi lần VI thực thi nó sẽ đọc 10 mẫu từ mỗi kênh ảo.

Cac-chuc-nang-trong-NI-DAQmx-19

Chức năng 8: NI-DAQmx Write

Cac-chuc-nang-trong-NI-DAQmx-20

Chức năng NI-DAQmx Write ghi các mẫu vào tác vụ tạo cụ thể. Các phiên bản khác nhau của chức năng cho phép tạo (analog hoặc digital), số lượng các kênh ảo, số lượng mẫu, và loại dữ liệu được chọn. Chức năng NI-DAQmx Write di chuyển các mẫu từ bộ nhớ môi trường phát triển ứng dụng (ADE) đến bộ đệm máy tính trong RAM. Các mẫu này sau đó được chuyển từ bộ đệm máy tính đến board DAQ FIFO.

Mỗi phiên bản của chức năng NI-DAQmx có một ngõ vào tự động khởi động để quyết định. Như đã giải thích trong phần NI-DAQmx Start Task của tài liệu, chức năng NI-DAQmx Start Task nên được sử dụng để bắt đầu một tác vụ tạo sử dụng phần cứng định thời. Nó cũng được sử dụng để hiệu suất lớn nhất nếu chức năng NI-DAQmx được thực thi nhiều lần.

Ghi dữ liệu trong Labview

Hình bên dưới thể hiện bốn ví dụ của các phiên bản khác nhau của NI-DAQmx Write VI

Cac-chuc-nang-trong-NI-DAQmx-21

Sơ đồ khối Labview bên dưới, ví dụ cho sự tạo ngõ ra analog hữu hạn, bao gồm một hằng số Boolean “False” được nối đến ngõ vào tự động khởi động của NI-DAQmx Write VI vì việc tạo là phần cứng được định thời. NI-DAQmx Write VI đã được cấu hình để ghi nhiều mẫu của dữ liệu ngõ ra analog cho một kênh như một dạng sóng analog.

Cac-chuc-nang-trong-NI-DAQmx-22

Chức năng 9: NI-DAQmx Wait Until Done

Cac-chuc-nang-trong-NI-DAQmx-23

Chức năng NI-DAQmx Wait Until Done chờ hoạt động thu thập dữ liệu hoàn thành trước khi kết thúc. Chức năng này nên được sử dụng để đảm bảo rằng sự thu thập và tạo hoàn thành trước khi tác vụ dừng. Hầu hết, chức năng NI-DAQmx Wait Until Done được sử dụng với các hoạt động hữu hạn. Chỉ khi chức năng này kết thúc thực thi, sự thu thập hoặc tạo hữu hạn hoàn thành và tác vụ có thể được dừng mà không làm xáo trộn hoạt động. Ngoài ra, ngõ vào timeout cho phép một thời gian chờ tối đa. Nếu sự thu thập hoặc tạo không hoàn thành trong khoảng thời gian này, chức năng thoát khỏi và một lỗi thích hợp được hiển thị.

Wait Until Done trong Labview

NI-DAQmx Wait Until Done VI được sử dụng trong sơ đồ khối Labview bên dưới để xác nhận rằng hoạt động ngõ ra analog hữu hạn đã hoàn thành trước khi tác vụ bị xóa.

Cac-chuc-nang-trong-NI-DAQmx-24

Chức năng 10: NI-DAQmx Clear Task

Cac-chuc-nang-trong-NI-DAQmx-25

Chức năng NI-DAQmx Clear Task xóa tác vụ cụ thể. Nếu tác vụ hiện tại đang chạy, chức năng trước tiên dừng tác vụ và sau đó rời khỏi tất cả các nguồn tài nguyên của nó. Khi một tác vụ đã được xóa, nó không thể được sử dụng đến khi nó được tạo lại. Vì thế, nếu một tác vụ được sử dụng lần nữa, chức năng NI-DAQmx Stop Task nên được sử dụng để dừng tác vụ, nhưng không xóa nó.

Đối với các hoạt động liên tục, chức năng NI-DAQmx nên được sử dụng để dừng sự thu thập hoặc tạo hiện có.

Xóa một tác vụ trong Labview

Trong sơ đồ khối Labview dưới đây, một dãy xung liên tục được tạo với một bộ đếm. Dãy xung tiếp tục đến ngõ ra đến khi vòng lặp While được thoát khỏi và NI-DAQmx Clear Task VI thực thi.

Cac-chuc-nang-trong-NI-DAQmx-26