Thông báo

Collapse
No announcement yet.

Kỹ thuật sử dụng vòng lặp trong LabVIEW (Phần 1)

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Kỹ thuật sử dụng vòng lặp trong LabVIEW (Phần 1)

    Khái niệm vòng lặp (While loop hoặc For loop) là một trong những khái niệm cơ bản của bất cứ ngôn ngữ lập trình nào. Nhưng có một số vấn đề liên quan đến các vòng lặp mà những người mới lập trình LabVIEW thường không để ý hoặc vô tình mắc phải khiến cho sự hoạt động của chương trình LabVIEW không đạt được mức tối ưu. Một trong những điểm dễ mắc phải là thiếu sử dụng các hàm định cỡ thời gian trong các vòng lặp.

    Ví dụ: Hãy thử tạo ra hai chương trình có Block diagram sau đây rồi lần lượt chạy thử chúng. Trong quá trình chạy thử bạn hãy kiểm tra thông tin của trình quản lí bộ vi xử lí (CPU)
    Loop Timing in LabVIEW, Wait (ms), Wait Until Next ms Mutiple,Time Delay, Elapsed Time
    Chương trình trên chỉ có một nhiệm vụ đơn giản là tạo ra một vòng lặp while và hiển thị số vòng lặp trong quá trình thực thi. Thế nhưng với phương pháp lập trình này, vòng lặp đã không được thực thi một cách tối ưu nên tài nguyên CPU của máy đã bị khai thác gần như là tối đa. Để ý rằng với một chương trình rất nhỏ và quá đơn giản như vậy nhưng bộ vi xử lí của một máy tính có cấu hình Intel ® Coẻ ™ 2 Duo CPU E750 @ 2.93 GHz 2.94GHz bị sử dụng tới 71% là một điều không thể chấp nhận.
    Tại sao?
    Đọc tiếp...
    What is INO measure?
    Finding answer on the site

  • #2
    Kỹ thuật sử dụng vòng lặp trong LabVIEW (Phần 2)

    Tiếp theo phần kỹ thuật timing cho vòng lặp trong LabVIEW, ở bài viết này chúng ta sẽ cùng tìm hiểu một vài kỹ thuật lập trình liên quan đến vòng lặp For.

    Trước hết bạn hãy cùng quan sát hai Block diagram dưới đây.

    Block diagram, For Loop, Auto-indexing, enable indexing, disable indexing, loop parallelism
    Ở Block diagram bên trái, thật dễ dàng để phát hiện ra vì sao mũi tên Run lại bị broken. Đó là do vòng lặp For chưa được xác định số vòng lặp (Đầu vào count terminal N chưa được nối với một giá trị quy định số vòng lặp sẽ thực thi). Song ở Block diagram bên phải, mặc dù ở đầu vào Count teminal N vẫn chưa có giá trị nào được nối nhưng lúc này mũi tên Run lại không bị broken nữa.
    Vì sao?
    Đọc tiếp...
    What is INO measure?
    Finding answer on the site

    Comment


    • #3
      Kỹ thuật sử dụng vòng lặp trong LabVIEW (phần 3)

      Bài viết trình bày kỹ thuật sử dụng Shift Register và Feedback Node trong các vòng lặp (For hoặc While loop). Đây là kỹ thuật dùng để truyền dữ liệu từ một lần thực thi trước sang lần thực thi vòng lặp tiếp theo.

      Shift Registers

      Biểu tượng Shift Registers xuất hiện thành từng cặp mũi tên trên bờ biên đứng của các vòng lặp như hình dưới đây. Đầu terminal bên phải (mũi tên hướng lên) của vòng lặp (là đầu out put) chứa đựng giá trị của một lần thực thi vòng lặp. LabVIEW truyền dữ liệu lưu trữ ở terminal bên phải sang terminal bên trái (Mũi tên hướng xuống). Vòng lặp sau đó sử dụng dữ liệu của terminal bên trái như là giá trị ban đầu cho lần thực thi tiếp theo của vòng lặp. Quá trình này cứ tiếp diễn cho đến khi vòng lặp được thực thi hết. Sau khi thực thi xong cả vòng lặp, terminal bên phải trả về và lưu trữ giá trị cuối cùng của vòng lặp. Để đặt một Shift Register lên một vòng lặp, ta click phải lên bờ biên của vòng lặp và chọn Add Shift Register từ menu pop up của nó. Một Shift Register có thể lưu trữ và truyền bất cứ loại dữ liệu nào và các terminal (Trái và phải) của một Shift Register phải nối cùng một loại dữ liệu. Chúng ta có thể đặt nhiều Shift Register lên một vòng lặp. Mỗi Shift Register sẽ làm việc độc lập với một hoạt động nào đó trong vòng lặp.

      LabVIEW,Shift Registers, Feedback Node, while loop, For loop in LabVIEW

      Chúng ta hãy cùng phân tích hoạt động của Block Diagram trên đây với hai Shift Register được đặt trên biên của vòng lặp. Với Shift Register phía trên, ngay sau lần lặp đầu tiên thì terminal bên phải sẽ nhận và lưu trữ giá trị bằng 2 (là tổng của 0 và 2), sau đó giá trị 2 này sẽ được truyền sang terminal bên trái để trở thành giá trị ban đầu của lần lặp thứ hai. Đối với Shift Register phía dưới thì sau khi kết thúc vòng lặp đầu tiên, giá trị mà terminal bên phải nhận được là 2 (Tích của 1x2), giá trị 2 này cũng được truyền qua terminal bên trái của Shift Register phía dưới. Kết thúc lần lặp thứ 2, giá trị nhận được của terminal bên phải ở Shift Register phía trên là 4 (tổng của 2 cọng 2) và cũng truyền sang terminal bên trái để trở thành giá trị ban đầu cho vòng lặp thứ 3. Đối với Shift Register bên dưới thì kết thúc vòng lặp thứ hai thì giá trị nhận được ở terminal bên phải là 8 (tích của 2x4), giá trị này được truyền sang terminal bên trái và trở thành giá trị ban đầu cho lần lặp thứ 3. Quá trình cứ thế tiếp tục như thế và bạn có thể đoán được sau khi kết thúc 10 lần lặp, thì giá trị ở terminal bên phải của Shift Register trên và dưới sẽ bằng bao nhiêu?
      Đọc tiếp...
      What is INO measure?
      Finding answer on the site

      Comment

      Về tác giả

      Collapse

      INOmeasure Tìm hiểu thêm về INOmeasure

      Bài viết mới nhất

      Collapse

      Đang tải...
      X